賈洪勇,潘云飛,劉文賀,曾俊杰,張建輝
(1.鄭州大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,河南 鄭州 450001;2.國(guó)家數(shù)字交換系統(tǒng)工程技術(shù)研究中心,河南 鄭州 450001)
針對(duì)當(dāng)今網(wǎng)絡(luò)安全易攻難守的局面,美國(guó)國(guó)家科學(xué)技術(shù)委員會(huì)提出了移動(dòng)目標(biāo)防御(MTD,moving target defense)[1]。其采用包括IP 地址和端口跳變[2]、IP 安全協(xié)議隨機(jī)化[3]、用戶角色隨機(jī)化、地址空間隨機(jī)化[4-7]、指令集合隨機(jī)化[8]以及動(dòng)態(tài)路由[9]等相關(guān)技術(shù)手段構(gòu)建一種動(dòng)態(tài)的、不確定的網(wǎng)絡(luò)攻防環(huán)境,使防御目標(biāo)對(duì)攻擊者表現(xiàn)出不可預(yù)測(cè)的狀態(tài)。
2014 年,鄔江興院士[10]提出了網(wǎng)絡(luò)空間擬態(tài)防御(CMD,cyber mimic defense),并結(jié)合生物學(xué)“擬態(tài)偽裝”和“特異和非特異性免疫”現(xiàn)象,以異構(gòu)冗余和動(dòng)態(tài)反饋機(jī)制不斷調(diào)整防御系統(tǒng)執(zhí)行環(huán)境,從而打破以往的被動(dòng)防御,以一種主動(dòng)變遷[11]的方式對(duì)已知或未知漏洞后門(mén)等實(shí)現(xiàn)優(yōu)秀的防御效果。其核心架構(gòu)是動(dòng)態(tài)異構(gòu)冗余(DHR,dynamic heterogeneous redundancy)[12-13],如圖1 所示。
圖1 DHR 架構(gòu)
調(diào)度和裁決模塊是DHR 的2 個(gè)核心模塊。調(diào)度模塊具有從等待池調(diào)度執(zhí)行體進(jìn)入運(yùn)行池的功能,一個(gè)優(yōu)秀的調(diào)度算法應(yīng)兼顧調(diào)度的動(dòng)態(tài)性和安全性,使攻擊者無(wú)法判斷當(dāng)前運(yùn)行執(zhí)行體編號(hào)并使調(diào)入執(zhí)行體對(duì)攻擊者的攻擊造成嚴(yán)重阻礙;裁決模塊具有判斷運(yùn)行池中執(zhí)行體輸出是否正確的功能,其能幫助系統(tǒng)分辨出已被攻破的執(zhí)行體,評(píng)估并預(yù)警系統(tǒng)的安全隱患。調(diào)度/裁決算法的可靠程度關(guān)系到DHR 架構(gòu)的安全性,即整個(gè)系統(tǒng)的安全程度,因此對(duì)調(diào)度/裁決算法的研究是至關(guān)重要的。本文主要針對(duì)調(diào)度算法的優(yōu)化進(jìn)行研究。
目前,圍繞調(diào)度算法[14]的優(yōu)化問(wèn)題,已有很多學(xué)者提出了相應(yīng)的解決方案。文獻(xiàn)[15]提出了基于歷史信息的人工調(diào)度算法FAWA(feedback artificial weighted algorithm),該算法通過(guò)歷史記錄威脅信息動(dòng)態(tài)調(diào)度執(zhí)行體以達(dá)到動(dòng)態(tài)改變的效果,但未考慮執(zhí)行體間的差異性問(wèn)題;文獻(xiàn)[16-17]采用二階相似性進(jìn)行裁決/調(diào)度算法優(yōu)化,這種方法能有效增大運(yùn)行池中執(zhí)行體的異構(gòu)度,減小共模漏洞,但在等待池中執(zhí)行體確定的情況下會(huì)造成執(zhí)行體集調(diào)度單一化的問(wèn)題;文獻(xiàn)[18]提出了基于隨機(jī)種子的調(diào)度算法,該算法考慮了調(diào)度的動(dòng)態(tài)性和執(zhí)行體間異構(gòu)度,但其只考慮了執(zhí)行體的二階異構(gòu)度,無(wú)法準(zhǔn)確評(píng)估執(zhí)行體間的差異性;文獻(xiàn)[19]提出了高階異構(gòu)度的性質(zhì)并給出了基于高階異構(gòu)度的裁決算法,其證明了引入高階異構(gòu)度的裁決算法具有優(yōu)于傳統(tǒng)僅考慮二階異構(gòu)度算法的安全性,但并未給出高階異構(gòu)度的計(jì)算方法。目前,執(zhí)行體調(diào)度領(lǐng)域的研究缺少一種從高階層面考慮執(zhí)行體間異構(gòu)度的動(dòng)態(tài)調(diào)度算法。
本文的主要研究工作及貢獻(xiàn)如下。
1)在FAWA 的基礎(chǔ)上引入高階異構(gòu)度思想,設(shè)計(jì)并提出了一種同時(shí)考慮歷史威脅信息和執(zhí)行體高階異構(gòu)度的調(diào)度算法HFAWA(high level heterogeneity feedback artificial weighted algorithm),解決了因未考慮異構(gòu)度導(dǎo)致系統(tǒng)共模漏洞過(guò)多、只考慮異構(gòu)度造成執(zhí)行體調(diào)度固化無(wú)法動(dòng)態(tài)變動(dòng)的問(wèn)題。
2)基于容斥原理給出高階相似度和高階異構(gòu)度的計(jì)算方式,解決了目前缺少高階異構(gòu)度計(jì)算方法的問(wèn)題。
3)通過(guò)對(duì)DHR 結(jié)構(gòu)中調(diào)度模塊與裁決模塊間關(guān)聯(lián)分析,提出了根據(jù)裁決算法動(dòng)態(tài)改變的HFAWA 改進(jìn)策略,并以大數(shù)裁決算法為例給出了相應(yīng)改變方法。
4)通過(guò)進(jìn)行碰撞實(shí)驗(yàn)和大數(shù)裁決系統(tǒng)攻擊(LSA,large number adjudication system attack)實(shí)驗(yàn),對(duì)現(xiàn)有5 種調(diào)度方案進(jìn)行對(duì)比評(píng)估,驗(yàn)證了HFAWA 相較于以往方案具有明顯的安全性?xún)?yōu)勢(shì)且兼具動(dòng)態(tài)調(diào)度執(zhí)行體的能力。
目前,在引入異構(gòu)度的執(zhí)行體調(diào)度算法的研究中,使用的異構(gòu)度指標(biāo)均為二階異構(gòu)度[16],其通過(guò)異構(gòu)體之間兩兩比較的差異程度值求和的方式來(lái)計(jì)算整體的差異度。當(dāng)運(yùn)行池大小大于2 時(shí),僅考慮二階異構(gòu)度的調(diào)度算法會(huì)產(chǎn)生局限性,造成系統(tǒng)出現(xiàn)共模漏洞。下面進(jìn)行舉例分析。
假設(shè)在系統(tǒng)等待池中存在4 個(gè)執(zhí)行體(編號(hào)為1~4),其存在的漏洞情況如表1 所示。
表1 執(zhí)行體存在的漏洞情況
若當(dāng)前所需調(diào)度執(zhí)行體數(shù)量為3,則可以得到異構(gòu)體間的2 階相似度矩陣為
對(duì)各種調(diào)度情況的相似度進(jìn)行求和,如表2所示。
表2 二階相似度求和
算法應(yīng)選取二階相似度最?。串悩?gòu)度最大)結(jié)果作為調(diào)度方案,即1,2,3 或1,3,4。但當(dāng)觀察執(zhí)行體漏洞情況時(shí)發(fā)現(xiàn),無(wú)論是1,2,3 還是1,3,4 均存在大小為1 的共模漏洞(5 或1);當(dāng)系統(tǒng)選擇1,2,4 時(shí),系統(tǒng)整體共模漏洞為0,為最優(yōu)解。因此,需要引入高階異構(gòu)度來(lái)解決這一問(wèn)題。
文獻(xiàn)[18]給出了二階相似度的相關(guān)含義指標(biāo),即在余度為n的n模冗余體集合Ω中,相似度由集合中所有不同元素兩兩之間的相似度之和歸一化表示,即
這種相似度計(jì)算方式缺乏對(duì)高階異構(gòu)性的考慮,沒(méi)有分析高階共生漏洞對(duì)異構(gòu)體的影響,因此文獻(xiàn)[19]提出了高階相似度的相關(guān)含義,并給出了相關(guān)性質(zhì)和推論。本節(jié)將在其基礎(chǔ)上通過(guò)對(duì)容斥原理加以分析,從而提出高階相似性的計(jì)算方式,并延伸至高階異構(gòu)度的計(jì)算。
容斥原理是統(tǒng)計(jì)學(xué)中一種常用的計(jì)數(shù)方法,在計(jì)數(shù)時(shí)為了防止重疊部分被重復(fù)計(jì)算,提出先對(duì)整體所有元素進(jìn)行計(jì)數(shù),然后排除被重復(fù)計(jì)算元素的方法。其數(shù)學(xué)表達(dá)式為
在碰撞實(shí)驗(yàn)中,執(zhí)行體由防御原子組成,因此可以將執(zhí)行體的防御面積當(dāng)作該執(zhí)行體中防御原子的集合,從而通過(guò)容斥原理計(jì)算多個(gè)執(zhí)行體的共同防御面積,即相似性,如圖2 所示。
圖2 三模異構(gòu)冗余體的高階相似度
圖2中以圓的面積表示執(zhí)行體的防御平面,S(2)表示2 個(gè)執(zhí)行體之間的二階相似區(qū)域,S(3)表示3 個(gè)執(zhí)行體之間的三階相似區(qū)域,同理,S(n)表示n個(gè)執(zhí)行體之間的n階相似區(qū)域,它們之間的關(guān)系為
易知n階相似區(qū)域性質(zhì)與n階相似度性質(zhì)相符,因此,可將圖2中的n階相似區(qū)域等價(jià)為n階相似度進(jìn)行計(jì)算。
定義1高階相似度計(jì)算方式。n模異構(gòu)冗余體的防御面積為P(n)=|A1∪A2∪…∪An|,|Ai|=S(1)(1≤i≤N)|,|Ai∩Aj|=S(2)(1≤i<j≤N),…,|A1∩A2∩…∩An|=S(n),則n模相似度計(jì)算式為
在得到高階相似度S(n)之后,可進(jìn)行計(jì)算求得高階異構(gòu)度[20-22]。以碰撞實(shí)驗(yàn)為例,高階異構(gòu)度的計(jì)算式為
對(duì)其進(jìn)行歸一化處理,有
針對(duì)之前所述調(diào)度算法存在的問(wèn)題,基于FAWA和高階異構(gòu)度思想,設(shè)計(jì)了一種同時(shí)考慮歷史威脅信息和異構(gòu)體間高階異構(gòu)度的動(dòng)態(tài)調(diào)度算法HFAWA。符號(hào)表示如表3 所示,并根據(jù)以下定義對(duì)算法進(jìn)行形式化描述。
表3 符號(hào)表示
定義2異構(gòu)執(zhí)行體池。異構(gòu)執(zhí)行體池由多個(gè)功能等價(jià)的異構(gòu)執(zhí)行體組成,異構(gòu)執(zhí)行體池分為等待池ΩW和運(yùn)行池ΩR,可表示為Ω={A1,A2,…,AN},各執(zhí)行體間相互獨(dú)立。
根據(jù)表3中的符號(hào)定義,對(duì)其中部分符號(hào)的用法及計(jì)算方式做以下說(shuō)明。
技術(shù)因素與技術(shù)團(tuán)隊(duì)的建設(shè)互為影響,技術(shù)選型影響著開(kāi)發(fā)團(tuán)隊(duì)的技術(shù)組成和技術(shù)積累,同時(shí)團(tuán)隊(duì)現(xiàn)有的技術(shù)積累和人員配置又影響著技術(shù)選型。企業(yè)在做移動(dòng)應(yīng)用時(shí),通常需同時(shí)考慮用戶對(duì)應(yīng)用的功能性和非功能性需求指標(biāo), 而非單純的技術(shù)因素,下面對(duì)一些影響選型的限制因素進(jìn)行分析。
4)M為執(zhí)行體調(diào)度概率矩陣,其值根據(jù)歷史威脅反饋動(dòng)態(tài)改變,計(jì)算方式與文獻(xiàn)[14]中計(jì)算方法相同。
5)調(diào)度值D是算法選取執(zhí)行體的重要憑證,D值越大,執(zhí)行體被調(diào)度的可能性越高。D的計(jì)算式為
根據(jù)以上定義及計(jì)算式,基于高階異構(gòu)度的負(fù)反饋調(diào)度算法HFAWA 如算法1 所示。
算法1基于高階異構(gòu)度的負(fù)反饋調(diào)度算法HFAWA
輸入等待池ΩW,運(yùn)行池執(zhí)行體容量NR,高階異構(gòu)度矩陣H,執(zhí)行體調(diào)度概率矩陣M,選取執(zhí)行體集Sel,最大調(diào)度值集合best_s。其中H(n)已提前計(jì)算完畢,M矩陣初始默認(rèn)值為全1,Sel 與best_s 初始為空,大小與ΩR相同
輸出運(yùn)行池ΩR
算法1 為一次調(diào)度的HFAWA 實(shí)現(xiàn),其中矩陣M隨每次調(diào)度記錄的歷史威脅信息反饋而改變,從而影響下次調(diào)度結(jié)果。算法1 對(duì)應(yīng)的算法流程如圖3 所示。
圖3 算法1 對(duì)應(yīng)的算法流程
下面以NR=5的DHR 系統(tǒng)為例,對(duì)HFAWA運(yùn)行流程進(jìn)行簡(jiǎn)要說(shuō)明。
1)當(dāng)選擇執(zhí)行體集Sel 為空時(shí),挑選M數(shù)組中最大的執(zhí)行體A1進(jìn)行調(diào)度加入Sel。Sel={A1},將Sel 送入算法進(jìn)行下一執(zhí)行體選擇。
3)將等待池中除Sel中已有執(zhí)行體外的執(zhí)行體wi輪流與Sel中執(zhí)行體匹配,計(jì)算選擇D最大的執(zhí)行體加入Sel;若D最大值不唯一,將對(duì)應(yīng)執(zhí)行體分別加入Sel。Sel={A1,A2,A3},將Sel 送入算法進(jìn)行下一執(zhí)行體選擇。
4)將等待池中除Sel中已有執(zhí)行體外的執(zhí)行體wi輪流與Sel中執(zhí)行體匹配,計(jì)算M[i],選擇D最大的執(zhí)行體加入Sel;若D最大值不唯一,將對(duì)應(yīng)執(zhí)行體分別加入 Sel。Sel={A1,A2,A3,A4},將Sel 送入算法進(jìn)行下一執(zhí)行體選擇。
5)將等待池中除Sel中已有執(zhí)行體外的執(zhí)行體wi輪流與 Sel中執(zhí)行體匹配,計(jì)算D=,選擇D最大的執(zhí)行體加入Sel;若D最大值不唯一,從中隨機(jī)選取一執(zhí)行體加入Sel。S el={A1,A2,A3,A4,A5},將Sel 輸出,Sel 即當(dāng)次選擇調(diào)度5 模異構(gòu)體。
目前,針對(duì)多執(zhí)行體策略的評(píng)估方法有很多,如基于博弈模型對(duì)攻防雙方進(jìn)行收益量化作為評(píng)判標(biāo)準(zhǔn)[23]、采用攻擊成功累計(jì)時(shí)長(zhǎng)作為評(píng)判標(biāo)準(zhǔn)[24]、采用成功控守目標(biāo)個(gè)數(shù)作為評(píng)判標(biāo)準(zhǔn)[25]等。本文采用當(dāng)前運(yùn)行池中執(zhí)行體集的共模漏洞個(gè)數(shù)作為評(píng)判標(biāo)準(zhǔn)。
在不考慮執(zhí)行體歷史信息的影響,即執(zhí)行體調(diào)度概率矩陣M時(shí)。算法的調(diào)度值僅受異構(gòu)度值Hi影響,即
以表1中執(zhí)行體情況為例進(jìn)行分析。
1)在算法初始選擇執(zhí)行體時(shí),由于各執(zhí)行體間無(wú)調(diào)度值差別,因此遍歷所有執(zhí)行體分別加入執(zhí)行體待選集Sel中,并送入算法進(jìn)行下一階段執(zhí)行體選擇,Sel={{1},{ 2},{3 },{ 4}}。
2)根據(jù)之前送入的執(zhí)行體待選集,分別遍歷剩余執(zhí)行體并計(jì)算二階異構(gòu)度,選出異構(gòu)度最高的集合送入算法進(jìn)行下一階段執(zhí)行體選擇。根據(jù)表1中執(zhí)行體的二階相似度矩陣可知,此時(shí)被選擇送入算法的執(zhí)行體集為Sel={{1,2},{1,3},{1,4},{ 2,3},{ 3,4}}(相似度最低)。
3)根據(jù)之前送入的執(zhí)行體待選集,分別遍歷剩余執(zhí)行體并計(jì)算三階異構(gòu)度,選出異構(gòu)度最高的集合,此時(shí)算法計(jì)算最高階數(shù)與運(yùn)行池容量相等,因此輸出算法最終選擇結(jié)果Sel={1,2,4},共模漏洞數(shù)量為0。
算法中影響調(diào)度值的另一部分矩陣M僅受執(zhí)行體的歷史信息影響,即執(zhí)行體被攻擊次數(shù)。而在實(shí)際情況中,攻擊者是無(wú)法預(yù)先探知擬態(tài)系統(tǒng)中被調(diào)度執(zhí)行體的種類(lèi)的,即攻擊者的攻擊意圖與調(diào)度算法無(wú)關(guān)。因此,矩陣M對(duì)不同算法的安全性影響是相同的,而又由于增加了歷史信息的影響,算法的動(dòng)態(tài)性得到了提升(通過(guò)攻擊者的攻擊傾向而動(dòng)態(tài)調(diào)度執(zhí)行體)。
由此可見(jiàn),HFAWA 在調(diào)度時(shí)會(huì)盡可能選擇使系統(tǒng)共模漏洞數(shù)量少的執(zhí)行體進(jìn)行調(diào)度,能夠在保證安全性的前提下表現(xiàn)出良好的動(dòng)態(tài)性。
在碰撞實(shí)驗(yàn)中給出高階異構(gòu)度計(jì)算式H(n)=P(n)-S(n),這樣做的目的是盡量增大防御面積,選擇防御面積最大的執(zhí)行體集進(jìn)行調(diào)度。但在實(shí)際的擬態(tài)場(chǎng)景中并非防御面積越大效果越好。在經(jīng)典擬態(tài)場(chǎng)景中通常需要構(gòu)建執(zhí)行體池,由調(diào)度算法調(diào)度執(zhí)行體進(jìn)入運(yùn)行池,最后根據(jù)裁決算法對(duì)執(zhí)行體輸出結(jié)果進(jìn)行裁決。因此,一個(gè)優(yōu)秀的調(diào)度算法往往需要根據(jù)擬態(tài)構(gòu)造的裁決機(jī)制進(jìn)行相應(yīng)的調(diào)整。
目前,學(xué)者已提出了很多裁決算法,如基于高階異構(gòu)度的裁決算法[19]、基于二進(jìn)制文件的裁決算法[26]、基于異常值的裁決算法[27]、大數(shù)裁決算法[28]等。相較于其他算法,大數(shù)裁決算法以其通用性被更廣泛地應(yīng)用于現(xiàn)有的DHR 系統(tǒng)中,其基本思想是將執(zhí)行體輸出相同數(shù)量最多的結(jié)果作為判決結(jié)果。因此本節(jié)將以大數(shù)裁決算法為例,對(duì)HFAWA 進(jìn)行調(diào)整,同時(shí)構(gòu)建相應(yīng)測(cè)試模型對(duì)算法有效性進(jìn)行測(cè)試。
本文在算法1和文獻(xiàn)[15]碰撞實(shí)驗(yàn)的基礎(chǔ)上做如下調(diào)整。
1)將碰撞實(shí)驗(yàn)中執(zhí)行體由防御原子組成改為執(zhí)行體由漏洞原子組成,每個(gè)執(zhí)行體的漏洞原子個(gè)數(shù)為最大威脅數(shù)的,且最小不少于10 個(gè)。
2)威脅生成策略不變,為隨機(jī)裝載和全裝載。碰撞測(cè)試調(diào)整為若執(zhí)行體中存在威脅集中的漏洞原子則被攻破。在5 模異構(gòu)執(zhí)行體集中,若攻破執(zhí)行體數(shù)超過(guò)3 個(gè),則判斷系統(tǒng)被攻破。
大數(shù)裁決下5 模執(zhí)行體高階異構(gòu)度如表4 所示。調(diào)整后的實(shí)驗(yàn)算法如算法2 所示。
算法2大數(shù)裁決系統(tǒng)攻擊實(shí)驗(yàn)算法
輸入系統(tǒng)執(zhí)行體池Ω,執(zhí)行體調(diào)度概率矩陣M,調(diào)度總輪次n,歷史威脅記錄矩陣HS
輸出系統(tǒng)平均攻破率PA
1)計(jì)算系統(tǒng)高階異構(gòu)度矩陣H,計(jì)算式如表4 所示
表4 大數(shù)裁決下5 模執(zhí)行體高階異構(gòu)度
算法2 對(duì)應(yīng)的實(shí)驗(yàn)流程如圖4 所示。
圖4 算法2 對(duì)應(yīng)的實(shí)驗(yàn)流程
采用大數(shù)裁決算法的擬態(tài)防御系統(tǒng)被攻破的概率等效于運(yùn)行池中半數(shù)以上執(zhí)行體產(chǎn)生共模漏洞的概率之和,因此可以采用被選中的異構(gòu)執(zhí)行體共模漏洞的面積與公共漏洞的面積之比作為系統(tǒng)被攻破的概率。
幾個(gè)基本假設(shè)如下。
假設(shè)1攻擊者每次隨機(jī)使用一種攻擊方式進(jìn)行攻擊,若該攻擊方式能同時(shí)攻破半數(shù)以上處于運(yùn)行池中的執(zhí)行體,則擬態(tài)系統(tǒng)被攻破。
假設(shè)2HFAWA、FAWA、H2 算法[15]均使用執(zhí)行體的歷史信息作為部分調(diào)度依據(jù),雖然具體使用方法有所差異,但為了便于分析,均使用P(HI)表示被執(zhí)行體歷史信息(HI,history information)所影響的執(zhí)行體調(diào)度概率。
假設(shè)3當(dāng)前等待池中執(zhí)行體的漏洞數(shù)量為,二階共模漏洞數(shù)量為Nb,…,n階共模漏洞數(shù)量為。漏洞總數(shù)為Nsum=Na∪Nb∪…∪Nz。
根據(jù)以上假設(shè),可得各算法在運(yùn)行池大小為k的擬態(tài)系統(tǒng)中的失效率如表5 所示。
表5 各算法在運(yùn)行池大小為k 的擬態(tài)系統(tǒng)中的失效率
接下來(lái),將通過(guò)實(shí)驗(yàn)比較以上算法的安全性能。
為了驗(yàn)證HFAWA 的有效性,將其與其他4 種調(diào)度算法(FAWA、FIFO、Random、H2)進(jìn)行對(duì)比。其中H2 為文獻(xiàn)[16]中的算法,該文提出將異構(gòu)度(2 階)與歷史信息(執(zhí)行體運(yùn)行次數(shù))結(jié)合,其焦點(diǎn)在于裁決算法的改進(jìn),因此根據(jù)其思想實(shí)現(xiàn)“H2 調(diào)度算法”與本文算法進(jìn)行對(duì)比分析。
本文通過(guò)2 種實(shí)驗(yàn)對(duì)算法的安全性進(jìn)行對(duì)比,實(shí)驗(yàn)分別為碰撞實(shí)驗(yàn)和大數(shù)裁決系統(tǒng)攻擊實(shí)驗(yàn)。其中碰撞實(shí)驗(yàn)由文獻(xiàn)[14]提出,其核心思想是通過(guò)對(duì)攻擊原子和防御原子的碰撞率來(lái)衡量系統(tǒng)的安全性,碰撞率越高系統(tǒng)越安全,實(shí)驗(yàn)步驟如下。
Step1等待池和運(yùn)行池初始化。
Step2構(gòu)造威脅輸入。
Step3進(jìn)行動(dòng)態(tài)調(diào)度,從等待池中選取異構(gòu)執(zhí)行體填入運(yùn)行池。
Step4進(jìn)行碰撞檢測(cè)和計(jì)數(shù)。
Step5返回Step2,重復(fù)進(jìn)行多次實(shí)驗(yàn)。
Step6計(jì)算平均碰撞概率。
Step7改變威脅數(shù)目,返回Step1。
本文對(duì)碰撞實(shí)驗(yàn)進(jìn)行改進(jìn),提出了LSA,實(shí)驗(yàn)流程如圖4 所示。2 種實(shí)驗(yàn)的對(duì)比實(shí)驗(yàn)環(huán)境如表6所示。
表6 對(duì)比實(shí)驗(yàn)環(huán)境
表6中,隨機(jī)部分裝載與隨機(jī)全裝載均為隨機(jī)裝載,區(qū)別在于部分裝載的執(zhí)行體組成原子中可能會(huì)存在0 原子(無(wú)效原子);全裝載的執(zhí)行體組成原子均為非0 原子(有效原子)。威脅構(gòu)造方式分為負(fù)反饋和隨機(jī)裝載2 種,區(qū)別在于隨機(jī)裝載為隨機(jī)選取攻擊原子進(jìn)行裝載,而負(fù)反饋裝載會(huì)選取之前的系統(tǒng)攻擊結(jié)果中攻破概率最高的攻擊原子進(jìn)行裝載。
仿真中相關(guān)實(shí)驗(yàn)參數(shù)設(shè)定如下。
1)執(zhí)行體調(diào)度為5 模異構(gòu)執(zhí)行體集,即每次從等待池中調(diào)度5 個(gè)執(zhí)行體到運(yùn)行池中。
2)執(zhí)行體的防御/漏洞原子、威脅集均為隨機(jī)生成。
3)實(shí)驗(yàn)采用蒙特卡羅方法進(jìn)行測(cè)試,每種實(shí)驗(yàn)環(huán)境下測(cè)試10 000 次,最后取均值表示實(shí)驗(yàn)結(jié)果。
4)負(fù)反饋威脅實(shí)驗(yàn)中威脅原子更新概率式與文獻(xiàn)[15]中相同,為
其中,P1和P2在碰撞實(shí)驗(yàn)中分別表示發(fā)生碰撞和未發(fā)生碰撞的威脅原子被選中的概率,在LSA 實(shí)驗(yàn)中分別表示未攻破系統(tǒng)和攻破系統(tǒng)的威脅原子被選中的概率;p為單次實(shí)驗(yàn)中該威脅原子與防御/漏洞原子發(fā)生碰撞的概率。
實(shí)驗(yàn)參數(shù)配置如表7 所示。
表7 實(shí)驗(yàn)參數(shù)配置
本文實(shí)驗(yàn)假設(shè)每次從等待池中調(diào)度5 個(gè)執(zhí)行體(其中原子種類(lèi)隨機(jī)生成)進(jìn)入運(yùn)行池中工作,因此設(shè)定運(yùn)行池大小為5,等待池大小為20。在碰撞實(shí)驗(yàn)中異構(gòu)執(zhí)行體容量參考文獻(xiàn)[15]中參數(shù)進(jìn)行設(shè)置;在LSA 實(shí)驗(yàn)中由于執(zhí)行體中原子為漏洞原子,在通常漏洞發(fā)現(xiàn)的過(guò)程中,單一類(lèi)型系統(tǒng)/軟件存在的漏洞數(shù)量應(yīng)與同功能的系統(tǒng)/軟件發(fā)現(xiàn)的漏洞數(shù)量總數(shù)存在比例關(guān)系。因此在LSA實(shí)驗(yàn)中,當(dāng)威脅數(shù)大于100 時(shí)異構(gòu)執(zhí)行體容量設(shè)定為,其執(zhí)行體容量變化如圖5 所示。實(shí)驗(yàn)結(jié)構(gòu)如圖6 所示。
圖5 LSA 實(shí)驗(yàn)執(zhí)行體容量變化
圖6 實(shí)驗(yàn)結(jié)構(gòu)
實(shí)驗(yàn)程序用Python 編寫(xiě)。為更好地量化實(shí)驗(yàn)結(jié)果,碰撞實(shí)驗(yàn)中用碰撞率表示威脅被系統(tǒng)防御的概率,碰撞率越高,代表系統(tǒng)防御能力越強(qiáng);LSA 實(shí)驗(yàn)中用系統(tǒng)攻破率表示系統(tǒng)被威脅攻破的概率,系統(tǒng)攻破率越低,代表系統(tǒng)越安全。
4.1.1 碰撞實(shí)驗(yàn)
根據(jù)表5中的環(huán)境描述,在碰撞實(shí)驗(yàn)中分別測(cè)試了執(zhí)行體負(fù)反饋威脅下部分裝載、負(fù)反饋威脅下全裝載、隨機(jī)威脅下部分裝載和隨機(jī)威脅下全裝載4 種環(huán)境,得到的實(shí)驗(yàn)結(jié)果如圖7和圖8所示。
從圖7和圖8 的實(shí)驗(yàn)結(jié)果可以看出,在全裝載和部分裝載的環(huán)境下,HFAWA 都具有優(yōu)于其他算法的防御效果,且這種優(yōu)勢(shì)在威脅數(shù)較少時(shí)更明顯。而攻擊方式的改變會(huì)對(duì)系統(tǒng)的安全性產(chǎn)生一定威脅,但這種威脅主要體現(xiàn)在威脅數(shù)較少時(shí)碰撞率會(huì)有些許降低,威脅數(shù)較大時(shí)負(fù)反饋攻擊的碰撞率反而高于隨機(jī)攻擊的碰撞率,這與文獻(xiàn)[15]中的結(jié)論是一致的。
圖7 碰撞實(shí)驗(yàn)下執(zhí)行體全裝載
圖8 碰撞實(shí)驗(yàn)下執(zhí)行體部分裝載
由于在實(shí)際場(chǎng)景中,異構(gòu)執(zhí)行體間雖然擁有相同的層級(jí)數(shù),但其具有的防御能力和漏洞類(lèi)型/個(gè)數(shù)往往都是不同的,因此部分裝載的實(shí)驗(yàn)環(huán)境更能體現(xiàn)實(shí)際場(chǎng)景中的效果。給出部分裝載環(huán)境下的詳細(xì)實(shí)驗(yàn)數(shù)據(jù),如表8和表9 所示。
表8 隨機(jī)攻擊碰撞試驗(yàn)下執(zhí)行體部分裝載實(shí)驗(yàn)結(jié)果
表9 負(fù)反饋攻擊碰撞試驗(yàn)下執(zhí)行體部分裝載實(shí)驗(yàn)結(jié)果
4.1.2 LSA 實(shí)驗(yàn)
根據(jù)圖4 所示流程進(jìn)行實(shí)驗(yàn),LSA 實(shí)驗(yàn)中同樣測(cè)試了表5中描述的4 種環(huán)境,得到的實(shí)驗(yàn)結(jié)果如圖9和圖10 所示。
圖9 LSA 實(shí)驗(yàn)下執(zhí)行體全裝載
圖10 LSA 實(shí)驗(yàn)下執(zhí)行體部分裝載
從圖9和圖10 的實(shí)驗(yàn)結(jié)果可以看出,在LSA實(shí)驗(yàn)中,HFAWA 依然保持著良好的防御能力。雖然在攻擊方式由隨機(jī)攻擊變?yōu)樨?fù)反饋攻擊后,系統(tǒng)攻破率會(huì)有些許上升,但通過(guò)對(duì)比可以看出,受影響較大的是威脅數(shù)較少的情況(H2 算法受到的影響最大),隨著威脅數(shù)增大,攻擊方式的改變對(duì)系統(tǒng)攻破率的影響可以忽略。給出部分裝載實(shí)驗(yàn)的詳細(xì)數(shù)據(jù),如表10和表11 所示。
表10 隨機(jī)攻擊大數(shù)裁決下執(zhí)行體部分裝載實(shí)驗(yàn)結(jié)果
表11 負(fù)反饋攻擊大數(shù)裁決下執(zhí)行體部分裝載實(shí)驗(yàn)結(jié)果
根據(jù)以上實(shí)驗(yàn)參數(shù)配置,本文對(duì)5 種調(diào)度算法的運(yùn)行時(shí)間進(jìn)行仿真實(shí)驗(yàn),實(shí)驗(yàn)環(huán)境如表12 所示。
表12 性能測(cè)試環(huán)境
實(shí)驗(yàn)只測(cè)試算法在調(diào)度選擇過(guò)程的時(shí)間消耗,由于HFAWA、H2 算法中異構(gòu)度數(shù)組的構(gòu)建為前期準(zhǔn)備工作,因此不將其算作算法時(shí)間消耗內(nèi)。實(shí)驗(yàn)測(cè)試每種算法調(diào)度10 000 次的時(shí)間消耗,詳細(xì)數(shù)據(jù)如表13 所示。
表13 算法時(shí)間消耗
在笛卡爾坐標(biāo)系中繪制表13 所示實(shí)驗(yàn)數(shù)據(jù),如圖11 所示。
圖11 算法時(shí)間消耗
根據(jù)以上實(shí)驗(yàn)結(jié)果,可以得到以下結(jié)論。
1)在碰撞實(shí)驗(yàn)中,HFAWA 的碰撞率基本上高于其他算法。當(dāng)威脅數(shù)較小時(shí),HFAWA 優(yōu)勢(shì)較明顯;當(dāng)威脅數(shù)大時(shí),HFAWA和FAWA 的碰撞率相近且高于其他算法。這是因?yàn)橥{數(shù)越大,異構(gòu)體選擇防御原子相同的概率就越小。當(dāng)威脅數(shù)趨近于無(wú)窮時(shí),異構(gòu)體間出現(xiàn)相同防御原子的概率為0,這時(shí)HFAWA 與FAWA 效果相同。
2)在LSA 實(shí)驗(yàn)中,HFAWA 的系統(tǒng)攻破率始終低于其他算法。在異構(gòu)體部分裝載環(huán)境下,使用HFAWA 的系統(tǒng)被攻破概率為0。這是因?yàn)樵诋悩?gòu)體部分裝載環(huán)境下,5 模執(zhí)行體中極易存在3模相似度為0(異構(gòu)度最大)的情況,這時(shí)根據(jù)高階異構(gòu)度調(diào)度執(zhí)行體的HFAWA 效果明顯優(yōu)于其他算法。
3)由算法性能測(cè)試結(jié)果可明顯看出,HFAWA在威脅數(shù)少的情況下相較于其他3 種算法運(yùn)行速度較慢,而較H2 算法更快。這是由于HFAWA 的時(shí)間消耗主要是算法中異構(gòu)度數(shù)組的比較,這與運(yùn)行池的大小有直接關(guān)系,與威脅個(gè)數(shù)關(guān)系不大,當(dāng)威脅個(gè)數(shù)較大時(shí)這一消耗可以忽略。而相較于H2 算法中每次實(shí)驗(yàn)都需要更新的歷史信息為二維數(shù)組,HFAWA 僅需對(duì)一維數(shù)組進(jìn)行更新,因此HFAWA具有優(yōu)于H2 算法的運(yùn)行效率。
將以上實(shí)驗(yàn)算法的防御能力和運(yùn)行速度指標(biāo)進(jìn)行對(duì)比,結(jié)果如表14 所示。
表14 算法指標(biāo)對(duì)比
綜上,HFAWA 能夠在保證系統(tǒng)安全的同時(shí),不造成過(guò)高的系統(tǒng)開(kāi)銷(xiāo)。
針對(duì)目前DHR 系統(tǒng)對(duì)異構(gòu)度的考慮僅局限于二階層面,造成系統(tǒng)安全性不足且調(diào)度異構(gòu)體缺乏動(dòng)態(tài)性的問(wèn)題。本文提出了HFAWA 調(diào)度算法,并通過(guò)對(duì)容斥原理進(jìn)行擴(kuò)展應(yīng)用,給出了高階異構(gòu)度的計(jì)算方式。仿真實(shí)驗(yàn)驗(yàn)證了HFAWA 具有良好的防御能力和運(yùn)行速度。后續(xù)將基于本文所做工作,繼續(xù)優(yōu)化執(zhí)行體的調(diào)度算法,進(jìn)一步提高系統(tǒng)安全性。