岳陽陽 付 雄 鄧 松
(南京郵電大學計算機學院 江蘇 南京 210023)
邊緣計算(Edge Computing,EC)是指在網(wǎng)絡邊緣側的分布式云計算平臺,更加靠近用戶終端,多接入邊緣計算(Multi-access Edge Computing,MEC)[1]作為云計算和邊緣計算的補充,擴展了邊緣計算的定義和應用,使其在網(wǎng)絡邊緣節(jié)點提供各類信息技術業(yè)務,能夠同時為移動用戶和固定用戶提供邊緣計算服務,將計算任務和數(shù)據(jù)遷移至MEC節(jié)點進行處理,從而有效節(jié)約了傳送至遠程數(shù)據(jù)中心的帶寬?,F(xiàn)如今,MEC服務器在安全性性上存在三個特點:(1) 應用的軟硬件種類繁多,大部分軟硬件具有無法預知的安全漏洞;(2) 網(wǎng)絡結構和端口主要采用靜態(tài)配置,攻擊者持續(xù)攻擊使得系統(tǒng)的安全性隨時間增長而下降;(3) 服務器采用的防御技術主要為被動防御,無法應對未知的漏洞威脅。因此,“動態(tài)防御”成為網(wǎng)絡安全領域的主要研究問題[2]。
為了解決安全問題,相關領域的研究者提出了多種防御思想,其中包括傳統(tǒng)的被動防御,比如早期的防火墻對一些特定的攻擊行為具有一定的抵御性,但存在被繞過防御的可能性,防御力較低。入侵檢測[3]系統(tǒng)是一種較為主流的防御系統(tǒng),但其對攻擊行為存在一定的誤報性,且對攻擊源存在滯后性,只能防御一些已知攻擊,面對未知的新型攻擊束手無策,這些防御系統(tǒng)均是被動的,無法主動對未知攻擊做出反應。
基于此,主動防御技術[4]成為了研究焦點,擬態(tài)防御是國內研究者鄔江興院士提出的一種主動防御方法[5],借鑒結合了移動目標防御[6]和非相似度冗余構造的防御機理,利用動態(tài)異構冗余(Dynamic Heterogeneous Redundancy,DHR)特性,增強了系統(tǒng)的安全性[7]。擬態(tài)防御思想已被應用于多種網(wǎng)絡設備及軟件設計中,為系統(tǒng)提供內生的安全防護性能。文獻[8]在軟件多樣化的基礎上,與擬態(tài)防御相結合,提高了軟件安全性。文獻[9]研究了“數(shù)據(jù)多樣性”機制,并定義了大量的SQL重寫規(guī)則,將客戶機發(fā)送的語句轉換為另一個邏輯上等價的語句,提高了數(shù)據(jù)庫的安全性。文獻[10-11]利用基于DHR的擬態(tài)防御模型構建了擬態(tài)防御Web服務器,分析了該方案的可行性,并在測試中表明其有效提高了安全性。文獻[12]研究了可靠性優(yōu)化問題,提出了一種新的改進的多樣性保存和約束處理方法,指出了冗余分配的重要性。文獻[13]在DNS中引入了擬態(tài)防御技術,提出了一種有效的安全策略,具有重要的指導意義。文獻[14]構建了路由器擬態(tài)防御原理驗證系統(tǒng),改變了漏洞所呈現(xiàn)性質,擾亂了攻擊者對于漏洞的鎖定和攻擊鏈路的順通,大幅增加了系統(tǒng)漏洞的可利用難度。擬態(tài)防御技術在工程實踐上驗證了其有效性,主要在于其執(zhí)行體的異構冗余特性,但是其異構型難以量化評估,使其在能夠帶來多少安全增益等方面存在爭議。
傳統(tǒng)的度量算法大多是基于空間距離定義的,適用于低維度空間,在高維度空間沒有意義[15]。基于擬態(tài)防御的MEC服務器屬性特征維度較高,因此該方法不適用。文獻[16]采用近似熵來量化系統(tǒng)的復雜性,但是不適用于一致性較低的情況。在機器學習和數(shù)據(jù)挖掘領域,常用的量化差異性或相似性方法為數(shù)據(jù)挖掘中的聚類算法。文獻[17-18]運用交叉熵和余弦相似度等方法,計算聚類之間的相似性。文獻[19]采用多種方法量化聚類的差異性,并通過實驗分析了多種方法在不同的平均成員聚類準確度、不同的集體大小和不同的數(shù)據(jù)分布情況下與各種聚類集成算法性能之間的關系。量化聚類的算法只適用于數(shù)據(jù)規(guī)模較大的場景,而在MEC服務器場景下,執(zhí)行體的數(shù)量較少,因此并不適用。
本文提出一種基于樹層次模型的異構性量化算法,主要有兩部分組成,第一部分是對功能相同的構件集的復雜性量化,通過生物上的多樣性方法來計算復雜性指數(shù)計算;第二部分是對執(zhí)行體集間差異性的量化,對執(zhí)行體的特征元素進行分層次處理,不同的特征具有大小不同的比重,從而計算其差異性指數(shù)。最后得到執(zhí)行體集的異構性指數(shù)。實驗測試表明,該方法在準確度上優(yōu)于傳統(tǒng)的生物上的多樣性量化方法,更合理并且適用于本文所提出的多接入邊緣計算應用場景。
本文采用擬態(tài)防御作為基礎,設計了基于擬態(tài)防御的MEC服務器架構,系統(tǒng)架構主要基于擬態(tài)防御中的DHR理念,DHR作為擬態(tài)防御的核心理念,主要是為安全防御目標系統(tǒng)引入多個功能等價的異構執(zhí)行體,并使用動態(tài)的調度策略,在系統(tǒng)中加入冗余,使靜態(tài)系統(tǒng)在功能上和執(zhí)行模式等方面轉變?yōu)閯討B(tài)的、難以識別的,從而擾亂攻擊者。DHR可以為系統(tǒng)帶來內生的安全防護,并且可以和靜態(tài)防御措施協(xié)同防御,從而大幅提高系統(tǒng)的安全性。
MEC系統(tǒng)架構如圖1所示,待處理的數(shù)據(jù)源由數(shù)據(jù)采集器收集,然后交由轉發(fā)代理設備進行數(shù)據(jù)的分割、校驗和轉發(fā)處理,數(shù)據(jù)經(jīng)過處理后,交由MEC服務器執(zhí)行體集進行數(shù)據(jù)的處理,當數(shù)據(jù)處理完后交由接受代理進行表決校驗分析,然后將正確結果返回給數(shù)據(jù)接收方,對于產生錯誤信息的服務器,動態(tài)選擇算法會根據(jù)表決校驗機制的反饋將其進行替換,然后對其進行重置、清洗等手段進行恢復并加入到MEC異構池中,等待下一次被調用。
圖1 MEC架構
基于擬態(tài)防御的MEC架構的基礎是異構性,執(zhí)行體之間差異越大,具有相同漏洞的概率越低。異構層面越多,則系統(tǒng)的異構性越強,相同漏洞越少,抵御攻擊的能力越強。執(zhí)行體集的多樣性可以增加系統(tǒng)的異構性,比如服務器軟件的多樣性、數(shù)據(jù)庫的多樣性等都可以增加系統(tǒng)的異構性。
基于擬態(tài)防御的MEC架構中,對于輸入操作,通過異構執(zhí)行體集處理后再經(jīng)由表決校驗機制進行輸出。基于DHR理念,系統(tǒng)不僅可以抵御已知的攻擊,還可以抵御未知的攻擊,使系統(tǒng)具有較強的容侵能力,由于異構特性,攻擊只能在部分執(zhí)行體上成功,而對于其他的執(zhí)行體則失效,通過表決校驗機制,識別各執(zhí)行體所產生的相異結果,輸出相對正確的結果。而提高結果正確性的根本就在于提高系統(tǒng)的異構性,異構程度越高,則被入侵的執(zhí)行體越少,產生錯誤輸出的執(zhí)行體數(shù)量也就越少,表決校驗輸出正確結果的概率也就越高。本文重點不在于表決校驗機制,因此提到的表決檢驗機制采用多數(shù)一致算法。
異構性的實現(xiàn)本質在于系統(tǒng)軟硬件的多樣性,軟硬件差距越大,相似性越低。兩個系統(tǒng)的軟件差異越大,存在共生漏洞的可能性就越低,相同攻擊所造成的影響也就越低[20]。
(1) 面對同構系統(tǒng),即執(zhí)行體集中所有的執(zhí)行體完全相同,所有執(zhí)行體具有相同的漏洞,若針對該漏洞進行攻擊,則對所有執(zhí)行體攻擊成功,表決校驗機制失效,出現(xiàn)共模逃逸,輸出為錯誤結果。
(2) 面對理想的基于擬態(tài)防御的系統(tǒng),各執(zhí)行體之間具有不同的漏洞,針對某一漏洞攻擊,只能影響一個執(zhí)行體,表決校驗機制能夠檢測識別錯誤的執(zhí)行體輸出結果,表決檢驗機制可以產生正確結果。
(3) 面對真實的基于擬態(tài)防御的系統(tǒng),執(zhí)行體之間存在相同漏洞,但又不是每個執(zhí)行體都存在同一漏洞,面對針對某一漏洞或多個漏洞的攻擊,會導致部分執(zhí)行體產生錯誤輸出,但漏洞的觸發(fā)機制會受執(zhí)行體的軟硬件因素影響,未必會產生一致的錯誤輸出,表決檢驗機制同樣檢測識別不一致輸出。但當系統(tǒng)的差異性過小,存在相同漏洞的執(zhí)行體過多時,會出現(xiàn)共模逃逸,表決校驗機制也會失效。
綜上所述,相較于同構系統(tǒng),基于擬態(tài)防御的系統(tǒng)的異構冗余架構雖然無法完全避免共模逃逸,但大幅提高了產生錯誤輸出的可能。面對真實的基于擬態(tài)防御的系統(tǒng),雖然無法做到完全異構,但可以盡可能地提高其異構性,從而提高系統(tǒng)的安全性。因此,量化基于擬態(tài)防御的系統(tǒng)的異構性就變成了衡量系統(tǒng)安全性的重要指標,而基于擬態(tài)防御的系統(tǒng)的異構性主要在于執(zhí)行體集的異構性,因此本文將對執(zhí)行體集的異構性進行量化評估。
基于擬態(tài)防御的MEC服務器通過異構性保證了系統(tǒng)的安全性,大幅提高了抵御攻擊的能力。然而對于系統(tǒng)的異構性缺乏一個統(tǒng)一的定義。首先,可以類比生物多樣性的高低,異構系統(tǒng)也是如此,系統(tǒng)里的執(zhí)行體集越復雜,越不容易受到相同攻擊。其次,對于類型相似的執(zhí)行體,還要考慮軟件上的細微差異,兩個執(zhí)行體之間軟件越不相同,存在相同漏洞的可能性就越低。
Twu等[21]將異構性定義為兩個特征,復雜性和差異性,并解釋了該定義的有效性和合理性,同時該定義適用于本文關于基于擬態(tài)防御的MEC服務器的異構型定義。如圖2所示,集合a和b元素種類較為單一,只有圓形,沒有復雜性,其中b具有一定的差異性;集合c和d既有圓形也有方形,具有較強的復雜性,d同時具有較強的差異性。定義本文構造的MEC服務器執(zhí)行體集的異構性為H,復雜性為C,差異性為D,關系如下[22]:
圖2 異構性描述
H=C×D
(1)
定義1執(zhí)行體集合:基于擬態(tài)防御的MEC服務器的執(zhí)行體集和為S={s1,s2,…,sn}。
定義2系統(tǒng)構件集合:基于擬態(tài)防御的MEC服務器的所有執(zhí)行體的一類功能等價的硬件或軟件構件集合Mk={mk1,mk2,…,mkn},中任意兩個元素功能是等價的。
定義3執(zhí)行體的特征向量:基于擬態(tài)防御的MEC服務器的執(zhí)行體的特征向量為CVk=(ci1,ci2,…,cin),cij為執(zhí)行體的第j個特征值,n為執(zhí)行體的特征數(shù)量。例如特征向量(X86,Ubuntu 18.04,Apache 2.4,Oracle 11g)可以表示為(1,2,1,2),X86屬于處理器構件集,Ubuntu 18.04屬于操作系統(tǒng)構件集,Apache 2.4屬于Web服務器構件集,Oracle 11g屬于數(shù)據(jù)庫構件集。數(shù)字代表每種構件在其所屬構件集的編號。
定義4執(zhí)行體集的特征矩陣:基于擬態(tài)防御的MEC服務器的執(zhí)行體集的特征矩陣為:
其中列向量表示一類功能等價的構件集,行向量表示某執(zhí)行體的特征向量。使用“單位”樣式。
本文采用生物學上的物種多樣性方法來量化復雜性,采用的是Shannon-Wiener指數(shù),構件集的復雜性計算公式如下:
(2)
式中:a為構件集Mk所有構件的種類數(shù),pi為第i種構件在構件集Mk所占的比例,其中ni為第i種構件的個體數(shù),N為構件集Mk內的構件數(shù)。執(zhí)行體集S的復雜性為所有構件集的復雜性之和,計算公式如下:
(3)
式中:m為構件集的數(shù)量。
對于執(zhí)行體集的量化基于一種樹層次模型來衡量,該模型如圖3-圖4所示。將執(zhí)行體集的特征進行分層處理,處于最高層級的特征具有最大的權值,表示在最高層級的特征對差異性有最強的影響,從上到下權值依次減小,影響依次減弱。本文的特征影響從硬件層到軟件層依次減小,計算機越靠近底層的層面差異越大,則兩者之間所造成的差異會越大。在每一層級內,又會進行細分,按類目大到小分類,權值依次遞減,可以自行調整分類層級,例如同為數(shù)據(jù)庫軟件,非關系型數(shù)據(jù)庫和關系型數(shù)據(jù)庫差異較大,可以列為分類1,關系型數(shù)據(jù)庫MySQL和Oracle差異變小,可以列為分類2,MySQL5.6和MySQL5.7差異更小,可以列為分類3,權值可以按照其構件種類的豐富程度適當增加。
圖3 樹層次模型
圖4 子節(jié)點層次模型
執(zhí)行體之間的差異性計算公式如下:
(4)
fk(A,B)=v(l)l=mk(A,B)
(5)
式中:n為層級數(shù);w是相應層級的權值,如w(A,k)為執(zhí)行體A在第k層特征的權值,w(B,k)為執(zhí)行體B在第k層的權值;m為兩個執(zhí)行體之間產生差異的層級編號,如m(A,B)表示執(zhí)行體A和執(zhí)行體B在層次特征中第一個差異的編號。fk為執(zhí)行體A和執(zhí)行體B在第k層內的差異,v是層級內各分類的影響值,如v(l)為第l層的影響值,本文默認v最大為1,最小為0.5。
最后,將每一個執(zhí)行體與執(zhí)行體集的其他執(zhí)行體比較計算差異度,并將所得到的差異度指標求平均值作為該執(zhí)行體與執(zhí)行體集整體的差異度指標,然后對執(zhí)行體集的所有執(zhí)行體的該差異度指標進行求和,得到執(zhí)行體集總的差異度如下:
(6)
式中:ns為執(zhí)行體集中執(zhí)行體的數(shù)量;nm為構件集的數(shù)量,即樹模型的層級數(shù)。
算法基于樹層次模型的異構性量化算法(Tree-Level algorithm)
輸入:構件集M,執(zhí)行體的特征矩陣CM。
輸出:異構性指數(shù)H。
1.fori=1 Tok
2.forj=1 ToMk.length
3.Ck+=pj*ln(pj)
4.C+=(-Ck)
5.fori=1 Tons
6.forj=1 Tons
7.fork=m(i,j) Tonm
8.diff(i,j)=w(i,k)*w(j,k)*fk(i,j)
9.diffi+=diff(i,j)
10.D+=1/ns*diffi
11.H=C*D
12.returnH
實驗部分選取的執(zhí)行體均包含四個特征,按照樹層次模型從上到下分別是處理器架構、操作系統(tǒng)、服務器軟件和數(shù)據(jù)庫軟件,樹層次模型的權值從上到下默認依次為1、0.8、0.6、0.5。子節(jié)點層次模型的權值默認依次為1、0.8、0.6,可根據(jù)分類的多少進行適當調節(jié)。
對于執(zhí)行體集中冗余度的選擇,當構件種類數(shù)m小于等于執(zhí)行體集中執(zhí)行體數(shù)量N時,根據(jù)式(1)、式(3)、式(6)得執(zhí)行體集中執(zhí)行體數(shù)量和最大異構性指數(shù)的關系如圖5所示??梢缘贸?當m≤N時,最大異構性指數(shù)并不會隨著執(zhí)行體集中執(zhí)行體數(shù)量的增加而增加。理論上,執(zhí)行體集中含有2個完全異構的執(zhí)行體就能實現(xiàn)容錯,當含有3個完全一樣的執(zhí)行體時可以實現(xiàn)入侵檢測[23]。因此本文選取的每個執(zhí)行體集含有3個執(zhí)行體。
圖5 最大異構性指數(shù)變化
我們選取3組數(shù)據(jù),每組均含有4個執(zhí)行體集,每組執(zhí)行體集復雜性相同。組1中,4個執(zhí)行體集分別只在第一層、第二層、第三層和第四層產生差異,且均在層內的“分類1”層級產生差異;組2中,第一個執(zhí)行體集在全部四層都產生差異,第二個執(zhí)行體集在后三層都產生差異,第三個執(zhí)行體集在后兩層都產生差異,第四個執(zhí)行體集只在第四層產生差異,四個執(zhí)行體集均在層內的“分類1”層級產生差異;組3中,4個執(zhí)行體集均在全部四層產生差異,且后三層均在“分類1”產生差異,第一個執(zhí)行體集在第一層的“分類1”層級產生差異,第二個執(zhí)行體集在第一層的“分類2”層級產生差異,第三個執(zhí)行體集在第一層的“分類3”層級產生差異,第四個執(zhí)行體集在第一層的“分類4”層級產生差異。
根據(jù)式(3)可得這3組數(shù)據(jù)中執(zhí)行體集的復雜度相同,根據(jù)式(6)得差異性比較如圖6所示。當執(zhí)行體集的復雜性相同時,異構性的大小就由執(zhí)行體集的差異性決定,差異性的大小由執(zhí)行體間產生差異的層級數(shù)和層級內的分類等級決定,越在高層和層內的高分類層級產生差異,差異性就越大,異構性也就越大。
圖6 差異性指數(shù)變化
我們選取8組不同的MEC異構服務器執(zhí)行體集,CPU架構均采用X86,操作系統(tǒng)、服務器軟件和數(shù)據(jù)庫均采用不同的軟件,如表1所示。根據(jù)式(1)、式(3)、式(6)計算,8組數(shù)據(jù)理論上異構性越來越低。我們和Margalef指數(shù)、Shannon-Wiener指數(shù)和Simpson指數(shù)對比,異構性量化結果如圖7所示。
表1 執(zhí)行體集
圖7 異構性量化結果對比
可以看出本文提出的Tree-Level算法可以有效區(qū)分和量化執(zhí)行體集的異構性,而其他三種算法對于異構性的度量效果類似,只能將8組數(shù)據(jù)分為3類,區(qū)分度不足,無法準確量化異構性大小。
本文針對擬態(tài)構造的MEC服務器中的異構性難以量化的問題,將執(zhí)行體集的異構性分解兩部分計算,即復雜性和差異性,引入Shannon-Wiener指數(shù)和樹層次模型來量化執(zhí)行體集的異構性,在此基礎上,分析了影響異構性的因素。與其他量化異構性的方法相比,該方法更加適用于本文提出的架構模型,效果更好。
下一步將對本文提出的異構特征元素的權重進行進一步細化,從軟件同源的角度完善異構性的量化。另一方面,反饋調節(jié)機制也是擬態(tài)防御系統(tǒng)架構的重點之一,在本文異構性量化的基礎上,將對異構執(zhí)行體的動態(tài)調度算法進行分析和改進。