雷文鑫,侯文靜,文 紅,徐鑫辰,吳思慧,費靈芝
(電子科技大學(xué),四川 成都 611731)
邊緣計算[1]是在高帶寬、時間敏感和物聯(lián)網(wǎng)高度創(chuàng)新的背景下提出的。它可以在系統(tǒng)網(wǎng)絡(luò)的邊緣提供一個集連接、計算、存儲和應(yīng)用于一體的開放平臺,為就近終端的數(shù)據(jù)提供邊緣智能服務(wù)。邊緣計算作為一種新型的計算基礎(chǔ)設(shè)施,可以提供相比于云計算[2]更好的安全性。然而,邊緣計算設(shè)備由于與大量智能終端的緊密物理連接,且計算資源有限,更容易受到安全威脅。
攻擊者通常瞄準邊緣計算設(shè)備上的私人隱私數(shù)據(jù)和豐富的數(shù)字資產(chǎn)。攻擊過程通常開始于對被攻擊目標的偵察。攻擊者使用端口掃描或暴力破解密碼等手段發(fā)現(xiàn)開放的接口和服務(wù)漏洞,進而繞過合法身份,使用從遠程到本地(Remote to Local,R2L)的方法非法獲取私有數(shù)據(jù)。然后,利用用戶到根(User to Root,U2R)攻擊獲得更高級別的系統(tǒng)特權(quán)或竊取數(shù)字資產(chǎn)[3],使攻擊者從中受益。然而,邊緣計算設(shè)備因遭遇攻擊而無法及時處理終端發(fā)出的任務(wù)請求導(dǎo)致停機,將使區(qū)域或整個物聯(lián)網(wǎng)絡(luò)崩潰。
攻擊者在攻擊邊緣設(shè)備時,根據(jù)入侵階段收集的信息,利用系統(tǒng)的漏洞進行攻擊。入侵的惡意代碼通過訪問邊緣設(shè)備的敏感數(shù)據(jù)資產(chǎn)實現(xiàn)攻擊,通過修改數(shù)據(jù)刪除攻擊證據(jù),清除操作日志,使管理員無法訪問攻擊證據(jù)。
現(xiàn)有的邊緣系統(tǒng)安全解決方案[4-5]多側(cè)重于單個或局部安全問題的保護和檢測,缺乏全局安全防護觀念,因此無法提供足夠的安全保護。安全態(tài)勢感知[6-8]是指對環(huán)境因素在一定時間和空間的安全性認識和理解,并預(yù)測未來的趨勢。態(tài)勢感知技術(shù)有助于通過有限的邊緣計算資源成本合理評估物聯(lián)網(wǎng)系統(tǒng),充分考慮各種威脅,防范攻擊。
本文提出了一種利用邊緣設(shè)備的存儲、通信和計算能力在不同時隙下的狀態(tài),實現(xiàn)對邊緣設(shè)備進行安全態(tài)勢感知的新模型。將邊緣計算設(shè)備運行過程中產(chǎn)生的海量數(shù)據(jù)抽象為不同時隙下的指標數(shù)據(jù)集,然后映射為狀態(tài),構(gòu)建基于設(shè)備狀態(tài)信息的模型,再通過狀態(tài)轉(zhuǎn)移矩陣分析不同時隙下的設(shè)備運行是否發(fā)生不正常改變,從而實現(xiàn)對惡意入侵或攻擊的識別。
傳統(tǒng)的邊緣計算安全防護系統(tǒng)是針對特定的攻擊手段而設(shè)置的,如接入認證、角色訪問控制以及數(shù)據(jù)加密等。面對攻擊者竊取數(shù)字資產(chǎn)和破壞證據(jù)的行動,它往往功能不全,導(dǎo)致防護效果不佳。資深的攻擊者通常會想方設(shè)法偽裝自己的攻擊,消除證據(jù)。因此,傳統(tǒng)的基于操作日志定位攻擊的防御措施可能是無效的。
幸運的是,攻擊者的威脅行為在目標受體(邊緣設(shè)備)上留下了痕跡,為安全狀態(tài)感知的研究提供了思路。與以往的方法不同,收集的數(shù)據(jù)為表征邊緣設(shè)備運行過程的狀態(tài)參數(shù),而不是邊緣設(shè)備的應(yīng)用層數(shù)據(jù)。一旦邊緣計算受到攻擊,從監(jiān)控攻擊者到入侵,再到數(shù)據(jù)資產(chǎn)丟失或拒絕服務(wù),受體設(shè)備的CPU、磁盤、內(nèi)存和網(wǎng)絡(luò)狀態(tài)都會表現(xiàn)出不同的行為趨勢,成為判斷邊緣計算設(shè)備安全態(tài)勢感知的良好依據(jù)。
在邊緣計算架構(gòu)的物聯(lián)網(wǎng)中收集邊緣計算設(shè)備的狀態(tài)參數(shù)數(shù)據(jù),定義邊緣設(shè)備的指標集C={C1,C2,…,C|C|},其中|C|為指標個數(shù)。這里的指標集是指能夠直接表征邊緣計算設(shè)備在運行過程中的性能參數(shù)集合,如設(shè)備在當(dāng)前時刻的磁盤讀寫能力、內(nèi)存占用率、CPU 占用率以及網(wǎng)絡(luò)數(shù)據(jù)包收發(fā)頻率等。在確定需要采集的數(shù)據(jù)指標后,采集這些指標在設(shè)備運行時的時間序列。對于指標Ci(i=1,2,…,|C|),接收到的時間序列表示為{Ci,j},數(shù)據(jù)采集時間的總時隙數(shù)為T。
采集的每個指標在T個時隙的數(shù)據(jù)量是龐大的,而且是非結(jié)構(gòu)化的。收集原始數(shù)據(jù)的目的是獲得設(shè)備在運行時的性能,或者檢測設(shè)備是否遭遇攻擊,因此需要將這些原始數(shù)據(jù)映射為表征設(shè)備安全的狀態(tài)。為了降低數(shù)據(jù)處理難度,常用的方法是找出數(shù)據(jù)的統(tǒng)計特性,如均值方差法。但是,每一個特定的指標采集得到的數(shù)據(jù)都擁有不同的概率分布,因此受限于邊緣計算設(shè)備的時間敏感性和資源消耗,不可能單獨分析每個指標的統(tǒng)計特性。
為了使邊緣設(shè)備在處理大型數(shù)據(jù)集時具有良好的擴展性,同時不占用過多的邊緣計算資源,考慮采用復(fù)雜度較低的算法。這里將獲取的原始數(shù)據(jù)映射為設(shè)備的安全狀態(tài),而無監(jiān)督的機器學(xué)習(xí)K-means 聚類算法滿足要求。
對于指標Ci(i=1,2,…,|C|),將采集的設(shè)備原始數(shù)據(jù)時間序列值{Ci,j}(i=1,2,…,|C|;j ∈1,2,…,T)作為訓(xùn)練集,其中包括樣本點,聚類的類別簇數(shù)規(guī)定為k。隨機選取聚類中心點,表示為K={k1,k2,…,kk}??紤]到訓(xùn)練集的每個樣本點Ci,j,計算其與各聚類中心kw的距離,將樣本點分配到離樣本中心最近的聚類類別中,得到其類別標簽:
這里j ∈1,2,…,T,w=1,2,…,k。
更新k個簇的中心:
重復(fù)上述步驟直到收斂,得到原時間序列映射后的狀態(tài)序列:
許多復(fù)雜系統(tǒng)都可以通過建模對復(fù)雜網(wǎng)絡(luò)進行分析,如常見的電力網(wǎng)絡(luò)、航空網(wǎng)絡(luò)、交通網(wǎng)絡(luò)、計算機網(wǎng)絡(luò)和社會網(wǎng)絡(luò)等。復(fù)雜網(wǎng)絡(luò)不僅是一種數(shù)據(jù)表示形式,也往往是對現(xiàn)實世界中一個極其復(fù)雜的系統(tǒng)的數(shù)學(xué)描述,具有大量的節(jié)點和復(fù)雜的拓撲關(guān)系。
數(shù)學(xué)上,復(fù)雜網(wǎng)絡(luò)用G=(V,E)表示。網(wǎng)絡(luò)中的節(jié)點集用V={v1,v2,…,vn}表示,|V|=n為節(jié)點的數(shù)量;邊集用E={e1,e2,…,em}表示,|E|=m表示邊的總條數(shù)。
(1)對于矩陣S,元素是量化的。由于|C|和T通常很大,而S的維度很大,同時邊緣計算設(shè)備計算能力通常較低,因此直接處理非常困難。但是,狀態(tài)序列矩陣S包含了設(shè)備的歷史狀態(tài)和當(dāng)前狀態(tài)信息和狀態(tài)之間豐富的轉(zhuǎn)換關(guān)系。
(2)對于基于復(fù)雜網(wǎng)絡(luò)的態(tài)勢感知節(jié)點集合,狀態(tài)矩陣S由列向量組成,其中列向量代表設(shè)備在數(shù)據(jù)采集時間段的狀態(tài)。因此,找到S中的向量作為復(fù)雜網(wǎng)絡(luò)的狀態(tài)節(jié)點,并將這些節(jié)點按照采集時間的先后順序進行編號。如果采集時刻的狀態(tài)向量在采集前就已經(jīng)存在,則放棄這個向量,以避免重復(fù)節(jié)點的產(chǎn)生。
(3)對于基于復(fù)雜網(wǎng)絡(luò)的態(tài)勢感知邊集合,按照采集時間的先后順序?qū)仃嘢中兩兩相鄰的列向量依次執(zhí)行操作,如果列向量代表的節(jié)點va轉(zhuǎn)移到下一個列向量代表的節(jié)點vb,則在va和vb之間增加一條邊,且這條邊從節(jié)點va指向節(jié)點vb,這里1 ≤a<b≤T。
為了驗證所提方法在基于邊緣計算的物聯(lián)網(wǎng)環(huán)境中的有效性,設(shè)計實驗構(gòu)建邊緣計算設(shè)備的安全狀態(tài)感知模型。
實驗過程中,采集邊緣計算設(shè)備的設(shè)備磁盤讀、設(shè)備磁盤寫、內(nèi)存占用、網(wǎng)絡(luò)數(shù)據(jù)包收和網(wǎng)絡(luò)數(shù)據(jù)包發(fā)5 個指標。設(shè)定每次數(shù)據(jù)采集的時間間隔為10 s,然后將收集到的原始數(shù)據(jù)的1 200 個時隙的數(shù)值通過K-means 聚類,得到狀態(tài)序列矩陣S~:
這里k=5,Si,j?{1,2,…,5},i={1,2,3,4,5},j=1,2,…,1 200。
在這種情況下得到網(wǎng)絡(luò)圖G=(V,E),其中|V|=76 和|E|=178。大量的原始數(shù)據(jù)被縮減為設(shè)備運行的76 種狀態(tài),而圖1 的部分節(jié)點是聚合的,反映了設(shè)備運行的大部分時間應(yīng)該處于的狀態(tài)。根據(jù)模型表現(xiàn)的特性,可見所提方法降低了評估設(shè)備安全性能的復(fù)雜度。
下面考慮狀態(tài)節(jié)點的聚集性。觀察節(jié)點及節(jié)點之間的轉(zhuǎn)換關(guān)系,將網(wǎng)絡(luò)G劃分為5 個部分作為安全評估的初步結(jié)果。關(guān)注其中一部分,節(jié)點v1與節(jié)點v2之間的連接邊最粗,說明節(jié)點v1所代表的狀態(tài)與節(jié)點v2所代表的狀態(tài)轉(zhuǎn)換比較頻繁。
當(dāng)需要確認設(shè)備的安全狀態(tài)時,主要考慮的因素是狀態(tài)節(jié)點是否是較大的影響節(jié)點(如節(jié)點v1和節(jié)點v2),如果不是,則考慮該節(jié)點是否與較大的影響節(jié)點相連,此外還需要考慮該節(jié)點到最大影響力節(jié)點的最短路徑長度。如果需要檢測的狀態(tài)節(jié)點在復(fù)雜網(wǎng)絡(luò)中不存在,則認為該設(shè)備受到攻擊。此時,將此狀態(tài)節(jié)點轉(zhuǎn)化為離該節(jié)點最近的節(jié)點,再轉(zhuǎn)化到影響力較大的節(jié)點,是避免攻擊發(fā)生的有效途徑。
圖1 安全態(tài)勢感知的復(fù)雜網(wǎng)絡(luò)模型
針對現(xiàn)有的邊緣計算安全防護方案大多集中在具體問題的安全防護和檢測上而缺乏全局安全的概念的問題,在邊緣計算廣泛應(yīng)用于物聯(lián)網(wǎng)的背景下,為了全面保護邊緣數(shù)據(jù)資產(chǎn)和隱私,闡述了邊緣設(shè)備的安全態(tài)勢感知方法。從收集邊緣設(shè)備特征的原始數(shù)據(jù)到狀態(tài)的映射,最后構(gòu)建了基于復(fù)雜網(wǎng)絡(luò)的邊緣計算安全態(tài)勢感知模型。數(shù)值仿真結(jié)果表明,所提方案是有效的,能夠準確表征邊緣設(shè)備的工作狀態(tài)。今后的研究將考慮分析復(fù)雜網(wǎng)絡(luò)的其他特征,如模擬邊緣設(shè)備的多維度攻擊和檢測模型的魯棒性,從而使安全狀態(tài)感知的工作更加有效。