楊 林,王永杰
(國(guó)防科技大學(xué) 電子對(duì)抗學(xué)院,合肥 230037)
隨著計(jì)算機(jī)網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,新型網(wǎng)絡(luò)攻擊技術(shù)相繼出現(xiàn),網(wǎng)絡(luò)攻擊手段趨于復(fù)雜化、智能化和多樣化[1],各類信息安全事件發(fā)生頻率持續(xù)增高,網(wǎng)絡(luò)環(huán)境安全問題成為研究人員關(guān)注的熱點(diǎn)[2]。導(dǎo)致網(wǎng)絡(luò)安全問題的本質(zhì)原因在于計(jì)算機(jī)軟硬件以及網(wǎng)絡(luò)通信協(xié)議存在漏洞,惡意攻擊者利用漏洞逐步滲透到系統(tǒng)關(guān)鍵位置并獲取系統(tǒng)權(quán)限,進(jìn)而竊取信息并損害系統(tǒng)網(wǎng)絡(luò)。網(wǎng)絡(luò)防御技術(shù)包括被動(dòng)防御技術(shù)與主動(dòng)防御技術(shù),與被動(dòng)防御技術(shù)相比,主動(dòng)防御技術(shù)可以使用戶提前識(shí)別系統(tǒng)漏洞和潛在的安全威脅[3]。
博弈論作為研究具有斗爭(zhēng)或競(jìng)爭(zhēng)性質(zhì)現(xiàn)象的數(shù)學(xué)理論和方法,常用于研究網(wǎng)絡(luò)攻防決策,在主動(dòng)防御方面應(yīng)用廣泛。網(wǎng)絡(luò)安全攻防博弈中信息是非對(duì)稱的,攻擊方采用網(wǎng)絡(luò)掃描和漏洞利用等多種入侵手段,防御方相應(yīng)采取入侵檢測(cè)和漏洞修復(fù)等對(duì)策[4]。
近年來,博弈論被廣泛應(yīng)用于各類網(wǎng)絡(luò)攻防決策場(chǎng)景,文獻(xiàn)[5]使用博弈論模擬工程團(tuán)隊(duì)之間的關(guān)系,促進(jìn)團(tuán)隊(duì)分布式協(xié)調(diào)決策,避免不必要的信息交換。文獻(xiàn)[6]指出信息安全是很有前景的博弈論應(yīng)用發(fā)展方向。博弈論在基于網(wǎng)絡(luò)脆弱性的安全決策分析上應(yīng)用較多。文獻(xiàn)[7]針對(duì)傳統(tǒng)被動(dòng)響應(yīng)模型滯后于攻擊導(dǎo)致的各類問題提出一種基于部分馬爾可夫博弈的主動(dòng)響應(yīng)決策模型,通過生成和匹配入侵狀態(tài)轉(zhuǎn)換圖,并結(jié)合系統(tǒng)信念狀態(tài)構(gòu)建入侵狀態(tài)轉(zhuǎn)換子圖,利用POMG算法做出響應(yīng)決策。文獻(xiàn)[8]對(duì)非合作與非零和的漏洞攻防博弈模型均衡局勢(shì)下攻防雙方的收益期望進(jìn)行量化賦值,結(jié)合攻擊圖和矩陣方法設(shè)計(jì)兩種矩陣算子與系統(tǒng)漏洞風(fēng)險(xiǎn)評(píng)估算法,能有效識(shí)別關(guān)鍵漏洞。文獻(xiàn)[9]通過擴(kuò)展對(duì)象Petri網(wǎng)的定義,將攻防策略及效用信息體現(xiàn)在輸出弧上,定義了攻防對(duì)峙模型。文獻(xiàn)[10]設(shè)計(jì)出一種攻防策略搜索算法,求解混合策略納什均衡得到最優(yōu)防御策略,可靜態(tài)識(shí)別網(wǎng)絡(luò)系統(tǒng)中脆弱節(jié)點(diǎn)及路徑。
在防火墻、蜜罐網(wǎng)、擬態(tài)防御以及隔離區(qū)(Demilitarized Zone,DMZ)等防御體系下,攻擊方無法根據(jù)初次探測(cè)所得系統(tǒng)信息進(jìn)行滲透,大部分網(wǎng)絡(luò)攻擊具有邊滲透邊探測(cè)的特點(diǎn),因此滲透具有單點(diǎn)多步的過程特性,而上述基于攻防博弈模型的研究未考慮該特性。文獻(xiàn)[11]結(jié)合馬爾可夫決策過程和演化博弈提出一種網(wǎng)絡(luò)防御策略選取方法,從不完全理性角度考慮非合作博弈下的攻防決策,實(shí)現(xiàn)動(dòng)態(tài)與多階段分析,然而該方法存在一定的主觀性,且攻擊概率不易準(zhǔn)確衡量。針對(duì)上述問題,本文提出利用單點(diǎn)多步網(wǎng)絡(luò)攻防博弈(Single-Point Multi-Step Network Attack-Defense Game,SMNADG)模型的防御策略選取方法,使用通用的漏洞評(píng)分系統(tǒng)量化博弈效用,基于攻防決策攻擊圖和攻防博弈模型設(shè)計(jì)防御策略選取方法,并結(jié)合典型網(wǎng)絡(luò)攻防場(chǎng)景進(jìn)行驗(yàn)證。
完整的博弈模型包括博弈方、信息、博弈動(dòng)作、博弈策略和效用集合5 個(gè)元素。2009 年,姜偉等人[12]首次提出一種攻防博弈模型ADG,該博弈模型由局中人、策略集合和效用函數(shù)組成。文獻(xiàn)[10]將網(wǎng)絡(luò)中的應(yīng)用模型分為局中人、主機(jī)節(jié)點(diǎn)集合、防御動(dòng)作集合、攻擊動(dòng)作集合、策略集合和效用集合6 個(gè)部分,并提出網(wǎng)絡(luò)攻防博弈模型NADGM 的概念,用于專門描述網(wǎng)絡(luò)攻防對(duì)抗中攻擊方和防御方之間的博弈,但是該模型不符合網(wǎng)絡(luò)攻防的過程特征且計(jì)算量過大。
以下對(duì)本文提出的SMNADG 模型進(jìn)行介紹。
定義1單點(diǎn)多步網(wǎng)絡(luò)攻防博弈模型定義為一個(gè)六元組SMNADG=(P,t,I,M,S,U)。
1)P={Attacker,Defender}為博弈參與者,即博弈中的決策主體,包括攻擊方Attacker 和防御方Defender,其目的是通過選擇合理的博弈行動(dòng)來最大化自身效用水平。
2)t為博弈過程的時(shí)間因素。
3)I(t)={IA(t),ID(t)}為攻防雙方所掌握的信息集合。其中,信息指博弈方所掌握的博弈參與者的行動(dòng)、策略和環(huán)境因素等博弈過程知識(shí)。攻擊方所掌握的信息為當(dāng)前t時(shí)刻探測(cè)得到的部分防御網(wǎng)絡(luò)系統(tǒng)信息,防御方已知信息集合為防御網(wǎng)絡(luò)系統(tǒng)拓?fù)浜退兄鳈C(jī)漏洞信息。主機(jī)i的漏洞集為主機(jī)i的第j個(gè)漏洞。
4)M={MA,MD}為攻擊方和防御方的博弈動(dòng)作集合,是博弈方在某個(gè)時(shí)刻的原子決策變量,表達(dá)式如下:
其中,k為t時(shí)刻攻擊方在某一節(jié)點(diǎn)上可利用的漏洞數(shù)目。由于防御方有修復(fù)和不修復(fù)兩種選擇,因此其動(dòng)作集合規(guī)模為2k,是由構(gòu)成的二進(jìn)制集合。
5)S(t)={SA(t),SD(t)}為攻擊方和防御方的博弈策略。博弈策略指博弈方在已知信息集下選定的博弈動(dòng)作,博弈方在某次博弈過程中選擇的所有策略構(gòu)成博弈策略集∑S(t)。
6)U為效用矩陣。在單點(diǎn)博弈中,攻防雙方在單個(gè)節(jié)點(diǎn)上進(jìn)行局部博弈,此時(shí)的效用矩陣由攻防雙方當(dāng)前可選擇的博弈動(dòng)作集確定,表達(dá)式如下:
在博弈過程中,如果無論對(duì)方策略如何選擇,當(dāng)事人一方都傾向選擇某個(gè)確定策略,則該策略稱作支配性策略。如果博弈方的策略組合分別構(gòu)成各自的支配性策略,則該策略組合稱為納什均衡[13]。
由于規(guī)模為k×2k的矩陣不是方陣,其屬于非線性博弈,若無法反復(fù)嚴(yán)格消除下策,則將導(dǎo)致變量冗余且矩陣規(guī)模過大,不適用于大規(guī)模網(wǎng)絡(luò)分析。若將攻防雙方的博弈分散轉(zhuǎn)移到漏洞上進(jìn)行分析,則可有效減小博弈規(guī)模與計(jì)算量,漏洞上的博弈分析過程如圖1 所示?;旌喜呗韵碌墓シ罌Q策具備隨機(jī)性與始終優(yōu)勢(shì)性,可通過期望效用相等法求解混合策略納什均衡以及攻防雙方的動(dòng)作選擇概率,即求解得到攻擊方利用漏洞攻擊的概率p,且對(duì)于每個(gè)脆弱性上的博弈,該概率均獨(dú)立。不同攻防博弈模型的構(gòu)成和技術(shù)差異如表1 所示。
圖1 漏洞上的博弈分析過程Fig.1 Process of game analysis on vulnerability
表1 不同模型的構(gòu)成和技術(shù)差異Table 1 Composition and technical differences in different models
通用漏洞評(píng)分系統(tǒng)(Common Vulnerability Scoring System,CVSS)是由NASA 創(chuàng)新先進(jìn)概念組織NIAC發(fā)布、計(jì)算機(jī)安全應(yīng)急響應(yīng)組FIRST 維護(hù)的開放式框架,用于對(duì)漏洞特征和嚴(yán)重性進(jìn)行標(biāo)準(zhǔn)化[14]。CVSS 在風(fēng)險(xiǎn)分析、安全審計(jì)框架、攻擊圖以及經(jīng)驗(yàn)評(píng)估[15]等方面應(yīng)用廣泛。
網(wǎng)絡(luò)攻防博弈模型主要包括攻擊成本Acost(v,t)、攻擊收益Aprofit(v,t)、防御成本Dcost(v,t)、防御收益Dprofit(v,t)和攻防效用5 個(gè)部分[16]。
1)攻擊成本Acost(v,t)。攻擊成本為攻擊方在t時(shí)刻利用漏洞v所消耗的成本。根據(jù)CVSS 的漏洞評(píng)分標(biāo)準(zhǔn),漏洞可利用率反映漏洞的攻擊成本,其影響因素包括攻擊向量(AV)、攻擊復(fù)雜度(AC)、權(quán)限要求(PR)以及用戶交互(UI),漏洞可利用率影響因素的量化標(biāo)準(zhǔn)如表2 所示。
表2 漏洞可利用率影響因素量化標(biāo)準(zhǔn)Table 2 Quantitative criteria for influencing factors of vulnerability availability
CVSS(3.1 版本)將可利用率定義為:
文獻(xiàn)[17]設(shè)計(jì)了漏洞v的成功利用概率函數(shù),表達(dá)式如下:
其中,λ1、λ2分別為增長(zhǎng)因子和衰減因子,tr為漏洞自發(fā)布之日起的時(shí)間跨度,pv(tr)為漏洞v的周期可利用率,典型的漏洞生命周期變化如圖2 所示。
圖2 典型的漏洞生命周期變化曲線Fig.2 The changing curve of a typical vulnerability lifecycle
由圖2 可以看出,在漏洞發(fā)現(xiàn)初期,針對(duì)該漏洞的攻擊行為相繼出現(xiàn),而安全防護(hù)措施還未完善,隨著Exploit 代碼的出現(xiàn)、擴(kuò)散和惡意程序的傳播,攻擊成功率不斷上升,并在第β天達(dá)到最大值δ,當(dāng)漏洞補(bǔ)丁Patch 發(fā)布后,隨著針對(duì)性的防護(hù)措施逐漸完善,漏洞逐步得到修補(bǔ)控制,利用成功率又將遞減。
根據(jù)2018 年TCell 公司發(fā)布的研究報(bào)告,漏洞補(bǔ)丁發(fā)布的平均時(shí)長(zhǎng)為38 天[18]。為便于獲取數(shù)據(jù),以漏洞公布的時(shí)間為坐標(biāo)原點(diǎn),假設(shè)第38 天攻擊的成功概率達(dá)到最大值δ=1,并假設(shè)漏洞基本消亡需要5 年,即令pv(1825)≤10×e-6,則將上述條件代入式(5)得到:
將λ1和λ2代入式(5),得到漏洞可利用率函數(shù)曲線如圖3 所示。
圖3 漏洞可利用率函數(shù)曲線Fig.3 Curve of vulnerability availability function
引入修正因子θ,由上述結(jié)果可將攻擊成本定義為:
2)攻擊收益Aprofit(v,t)。攻擊收益為攻擊方在t時(shí)刻利用漏洞v所產(chǎn)生的收益,即脆弱性v的價(jià)值V(v),表達(dá)式如下:
其中,Vasset(v)、Vstructure(v)分別為存在漏洞主機(jī)的資產(chǎn)價(jià)值和結(jié)構(gòu)價(jià)值。
資產(chǎn)價(jià)值指主機(jī)發(fā)生安全事件時(shí)受到影響的潛在業(yè)務(wù)價(jià)值,其影響因素量化標(biāo)準(zhǔn)如表3 所示。
表3 資產(chǎn)價(jià)值影響因素量化標(biāo)準(zhǔn)Table 3 Quantitative criteria for influencing factors of asset value
在CVSS 中,衡量資產(chǎn)價(jià)值的參數(shù)ISS 定義如下:
結(jié)構(gòu)價(jià)值指主機(jī)節(jié)點(diǎn)在拓?fù)浣Y(jié)構(gòu)中的重要性,其表達(dá)式如下:
其中,Cbet為節(jié)點(diǎn)的中介中心性,βc為橋接系數(shù)。
由于擬態(tài)防御等防御手段的存在,攻防博弈環(huán)境的網(wǎng)絡(luò)結(jié)構(gòu)隨時(shí)會(huì)發(fā)生改變,因此滲透無法獲得恒定的完整拓?fù)?,雖然文獻(xiàn)[19]證明兩跳相鄰節(jié)點(diǎn)局部橋接中心性Clbet具有可用性,但本文暫不考慮結(jié)構(gòu)價(jià)值。
攻擊方滲透時(shí)目標(biāo)信息將帶來目標(biāo)牽引,由此能最終實(shí)現(xiàn)攻擊目標(biāo)漏洞的目標(biāo)增益σ,該值由網(wǎng)絡(luò)規(guī)模決定,網(wǎng)絡(luò)規(guī)模越大,牽引越重要,目標(biāo)增益越大。因此,在目標(biāo)漏洞上博弈攻擊方的收益提高為:
3)防御成本Dcost(v,t)。防御成本為防御方在t時(shí)刻修復(fù)漏洞v所付出的成本,與漏洞補(bǔ)救的難度有關(guān)。CVSS(3.1 版本)將補(bǔ)救措施難度分為5 個(gè)等級(jí),如表4 所示。
表4 漏洞補(bǔ)救措施難度等級(jí)量化標(biāo)準(zhǔn)Table 4 Quantitative criteria for difficulty level of vulnerability remedial measures
假設(shè)防御方總是選擇當(dāng)前可采用的最高等級(jí)措施進(jìn)行補(bǔ)救,補(bǔ)救等級(jí)的數(shù)值表示采取相應(yīng)措施補(bǔ)救后對(duì)漏洞可利用率帶來的影響,則令攻擊成本修正因子θ=RL。
防御成本與漏洞被利用后帶來的負(fù)面影響有關(guān),該負(fù)面影響稱為負(fù)面代價(jià)[12],負(fù)面影響越嚴(yán)重,修復(fù)投入越多,防御成本越高。同時(shí),漏洞的利用難度[10]越小以及防御方采取的補(bǔ)救措施等級(jí)越高,補(bǔ)救操作越復(fù)雜,防御成本越高,因此,防御成本表達(dá)式為:
4)防御收益Dprofit(v,t)。防御收益為防御方在t時(shí)刻修復(fù)原子動(dòng)作依賴的漏洞v所帶來的收益,攻防雙方爭(zhēng)奪的是漏洞價(jià)值,其表達(dá)式為:
5)攻防效用。攻防效用為攻防雙方確定策略后的收益和成本。漏洞上攻防博弈效用的形成結(jié)果如圖4 所示。
圖4 漏洞上攻防博弈情況Fig.4 The situation of attack-defense game on vulnerability
防御方成功防御一次攻擊動(dòng)作帶來的增益稱為阻擊增益。若攻擊方未對(duì)漏洞展開攻擊,但防御方仍選擇修復(fù),則該修復(fù)行為在此次防御中多余,由此產(chǎn)生的減益稱為多余減益。本文令阻擊增益和多余減益均為25%,攻防效用計(jì)算結(jié)果如表5 所示。
表5 攻防效用計(jì)算結(jié)果Table 5 Calculation results of attack-defense utility
攻擊圖是一種基于圖論的網(wǎng)絡(luò)漏洞評(píng)估形式,可直觀顯示攻擊者用來入侵目標(biāo)網(wǎng)絡(luò)并通過一系列漏洞利用操作獲得特權(quán)的可能路徑[20]。
不同類型的攻擊圖對(duì)節(jié)點(diǎn)和邊的定義不同,通常節(jié)點(diǎn)可表示主機(jī)、服務(wù)、漏洞、權(quán)限等網(wǎng)絡(luò)安全相關(guān)要素以及賬戶被攻擊者破解、權(quán)限被攻擊者獲取等網(wǎng)絡(luò)安全狀態(tài),邊表示攻擊行為的先后順序或網(wǎng)絡(luò)狀態(tài)變化情況[21]。
文獻(xiàn)[22]提出特權(quán)圖的概念,指出特權(quán)圖節(jié)點(diǎn)表示攻擊者獲取的權(quán)限,邊表示系統(tǒng)可被攻擊利用的漏洞。文獻(xiàn)[23]提出將屬性攻擊圖的原子攻擊節(jié)點(diǎn)轉(zhuǎn)化為邊而保留條件節(jié)點(diǎn)。文獻(xiàn)[8]和文獻(xiàn)[24]提出漏洞攻擊圖VAG 的概念,將系統(tǒng)漏洞作為節(jié)點(diǎn),將漏洞之間的滲透關(guān)系作為有向邊。
在實(shí)際情況下,攻擊路徑的邊由服務(wù)漏洞形成,因此漏洞作為有向聯(lián)系被標(biāo)記為邊,主機(jī)信息作為實(shí)體被標(biāo)記為節(jié)點(diǎn),這更符合網(wǎng)絡(luò)攻防實(shí)際過程,有利于記錄攻防雙方在目標(biāo)網(wǎng)絡(luò)上的攻防對(duì)抗?fàn)顟B(tài)。
本文結(jié)合特權(quán)圖和屬性依賴攻擊圖的特點(diǎn),參考上述攻擊圖構(gòu)建方法給出漏洞連通圖(Vulnerability Connected Graph,VCG)和漏洞鄰接矩陣(Vulnerability Adjacency Matrix,VAM)的定義。
定義2(漏洞連通圖) 漏洞連通圖作為生成攻擊圖的輔助工具,是一個(gè)由屬性節(jié)點(diǎn)和條件邊構(gòu)成的有向圖,其中,屬性節(jié)點(diǎn)包含主機(jī)節(jié)點(diǎn)信息以及攻擊者在該主機(jī)已獲的權(quán)限,條件邊為可被利用的漏洞。
定義3(漏洞鄰接矩陣) 如果將網(wǎng)絡(luò)中主機(jī)之間的漏洞連通關(guān)系作為矩陣行列元素放在矩陣中,則稱該矩陣為漏洞鄰接矩陣。若存在多個(gè)可利用的漏洞連通關(guān)系,則矩陣元素是一條包含漏洞信息的鏈。漏洞鄰接矩陣為漏洞連通圖的一種存儲(chǔ)形式,漏洞連通圖和漏洞鄰接矩陣如圖5 所示。
圖5 漏洞連通圖與漏洞鄰接矩陣Fig.5 Vulnerability connected graph and vulnerability adjacency matrix
實(shí)施原子攻擊使攻擊者在成功利用被訪主機(jī)的漏洞后獲得一定的權(quán)限提升,從而危害當(dāng)前主機(jī)或形成實(shí)施下一步滲透的條件。文獻(xiàn)[25]將攻擊者在網(wǎng)絡(luò)中所有主機(jī)上的權(quán)限分為ROOT、USER 和NONE 3 個(gè)等級(jí)。ROOT 權(quán)限下攻擊者可在主機(jī)上執(zhí)行任何程序,USER 權(quán)限下攻擊者可在主機(jī)上執(zhí)行某些特定程序,NONE 權(quán)限下攻擊者只能進(jìn)行普通的Internet 公開服務(wù)訪問。
文獻(xiàn)[26]采用不回溯性假設(shè)確定循環(huán)路徑,再對(duì)循環(huán)路徑進(jìn)行刪除確定最終的攻擊路徑。假設(shè)攻擊者是理智的,其選擇的攻擊行為不會(huì)重復(fù)獲得已有權(quán)限,且總是希望獲取更高的權(quán)限來滿足更豐富的攻擊手段要求,則可簡(jiǎn)化該循環(huán)檢測(cè)過程。文獻(xiàn)[27]將權(quán)限提升模式分為RS、RP、RR、LP 和LR 5 類,這5 類權(quán)限的提升模式如圖6 所示。
圖6 5 類權(quán)限提升模式Fig.6 Five privilege promotion modes
國(guó)家信息安全漏洞庫(kù)將信息安全漏洞分為配置錯(cuò)誤、緩沖區(qū)錯(cuò)誤等26 種類型[28],并將漏洞權(quán)限提升模式統(tǒng)一歸納為NONE →USER、NONE →ROOT和USER →ROOT 3 類,從而減小路徑構(gòu)建遍歷規(guī)模,同時(shí)提高構(gòu)建效率。
攻防博弈最優(yōu)策略選取方法從防御方角度考慮攻防博弈問題,包含攻擊方路徑構(gòu)造和防御方策略選取兩個(gè)模塊。攻防博弈防御策略的選取是一個(gè)迭代優(yōu)化過程,如圖7 所示。
圖7 攻防博弈防御策略選取過程Fig.7 The selection process of defense strategy in attack-defense game
由上述分析設(shè)計(jì)單點(diǎn)多步攻防博弈修復(fù)策略選取方法,其流程如圖8 所示。
圖8 單點(diǎn)多步攻防博弈修復(fù)策略選取方法流程Fig.8 Procedure of repair strategy selection method based on single-point multi-step attack-defense game
根據(jù)單點(diǎn)多步攻防博弈修復(fù)策略選取方法流程分別設(shè)計(jì)VAM 生成算法、單點(diǎn)多步攻防博弈攻擊路徑生成算法和防御策略選取算法,上述算法的偽代碼如下:
算法1VAM 生成算法
輸入NAM,漏洞信息Vuln_Info,已知節(jié)點(diǎn)數(shù)n
輸出漏洞鄰接矩陣VAM
1.Generate_VAM(NAM,Vuln_Info,n)
2.Initial_VAM();//初始化VAM
3.for Line_Index ←1 to n do
4.for Column_Index ←1 to n do
5.if NAM[Line_Index,Column_Index]=1&&ExistVuln()=TRUE then//若鄰接且存在漏洞
6.VAM[Line_Index,Column_Index]←Vuln_Info;//將可轉(zhuǎn)//移滲透邊鏈入漏洞鄰接表單元漏洞鏈的尾部
7.return VAM
算法2單點(diǎn)多步攻防博弈攻擊路徑生成算法
輸入目標(biāo)信息Target_Info
輸出攻擊路徑Attack_Path
1.DeepSearch_SMNADG(Target_Info)
2.NetworkInfo_t ←Detection();//探測(cè)獲得當(dāng)前網(wǎng)絡(luò)信息
3.VAM ←Generate_VAM(NAM,Vuln_Info);//生成VAM
4.Current_Node ←Search_InitNode(VAM);//選取可滲//透初始節(jié)點(diǎn)并指定為當(dāng)前節(jié)點(diǎn)
5.while Current_Node_Info ≠Target_Info do//若當(dāng)前節(jié)//點(diǎn)信息與目標(biāo)不匹配
6.Motion_Set ←Search_AvailableEdge(Current_Node,VAM);//搜索當(dāng)前節(jié)點(diǎn)可轉(zhuǎn)移的滲透邊并建立博弈動(dòng)作集合
7.if Motion_Set=NULL then;//若當(dāng)前節(jié)點(diǎn)不存在可轉(zhuǎn)//移的滲透邊
8.Remove_Motion(UtilityMatrix,Current_Node);//從上//一時(shí)刻的效用矩陣中將與該節(jié)點(diǎn)相關(guān)的博弈動(dòng)作移除
9.Pop(Current_Node);//將當(dāng)前節(jié)點(diǎn)出棧
10.else Utility Matrix ←Create_Utility Matrix(Motion_Set);//若存在則生成當(dāng)前時(shí)刻的效用矩陣
11.Current_Node ←Best_Motion(Utility Matrix);//通過//效用矩陣確定下一跳節(jié)點(diǎn)
12.Push(Current_Node);//將當(dāng)前節(jié)點(diǎn)壓棧
13.return Record_Attack_Path();//返回并記錄攻擊路徑
算法3防御策略選取算法
輸入漏洞鄰接矩陣VAM
輸出防御策略集Strategy_Set
1.Repair_Strategy_Selection(VAM)
2.Target_Info ←Select_Target();//選定防御目標(biāo)
3.Do
4.NAM_Info ←Change_Network_State();//改變網(wǎng)絡(luò)狀//態(tài),包括NAM 和Vuln_Info
5.Attack_Path ← Deep Search_SMNADG(VAM,Target_Info);//進(jìn)行博弈算法生成攻擊路徑
6.Defense_Cost ←Calc_Defense Cost(Attack_ Path);//根據(jù)攻擊路徑計(jì)算實(shí)際防御損失
7.Defense_Cost_Set ←Record(Defense_Cost);//記錄防//御損失
8.Until Is The Minimum Cost(Defense_Cost)=TRUE;//直到當(dāng)前防御損失最小
9.Strategy_Set ←Generate_Strategy(NAM_Info);//通過//當(dāng)前網(wǎng)絡(luò)狀態(tài)生成防御策略集
10.return Strategy_Set;//返回防御策略集
上述算法提出VCG 和VAM 的概念以輔助生成攻擊路徑;攻擊路徑基于貪心原則動(dòng)態(tài)構(gòu)建,能適應(yīng)網(wǎng)絡(luò)動(dòng)態(tài)變化,更好地模擬實(shí)際攻防過程中攻擊方的策略選取情況;防御策略的選取可動(dòng)態(tài)調(diào)整網(wǎng)絡(luò)環(huán)境,并結(jié)合優(yōu)化算法求最優(yōu)解,最終形成最優(yōu)防御策略。
本文設(shè)計(jì)的攻防實(shí)驗(yàn)網(wǎng)絡(luò)采用典型的企業(yè)服務(wù)器架構(gòu),其結(jié)構(gòu)如圖9 所示。
圖9 本文攻防實(shí)驗(yàn)網(wǎng)絡(luò)結(jié)構(gòu)Fig.9 The network structure of the proposed attack-defense experiment
該網(wǎng)絡(luò)包括外部網(wǎng)絡(luò)、DMZ 和內(nèi)部網(wǎng)絡(luò)三部分。其中,在DMZ 設(shè)置供外部訪問的Web 服務(wù)器和FTP 服務(wù)器,在內(nèi)部網(wǎng)絡(luò)設(shè)置應(yīng)用服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器并與外部網(wǎng)絡(luò)通過DMZ 隔離。攻防實(shí)驗(yàn)網(wǎng)絡(luò)設(shè)置FW1 和FW2 兩個(gè)防火墻,F(xiàn)W1 防火墻用于隔離外部網(wǎng)絡(luò)和DMZ,F(xiàn)W2 防火墻用于隔離DMZ 和內(nèi)部網(wǎng)絡(luò)并具有保護(hù)內(nèi)部網(wǎng)絡(luò)的作用,防火墻配置規(guī)則如表6 所示。
表6 防火墻配置規(guī)則Table 6 Firewall configuration rules
本文參考文獻(xiàn)[11]提出的攻防策略圖繪制方法,將同一個(gè)漏洞的條件邊綁定得到整個(gè)實(shí)驗(yàn)網(wǎng)絡(luò)的拓?fù)鋱D、漏洞連通圖和漏洞鄰接矩陣,如圖10 所示。表7 為不同主機(jī)存在的漏洞信息。
圖10 本文實(shí)驗(yàn)網(wǎng)絡(luò)的拓?fù)鋱D、漏洞連通圖和漏洞鄰接矩陣Fig.10 Topological graph,vulnerability connected graph and vulnerability adjacency matrix of the proposed experimental network
表7 不同主機(jī)的漏洞信息Table 7 Vulnerability informations of different hosts
本文以2019 年9 月15 日為實(shí)驗(yàn)日期,根據(jù)單點(diǎn)多步攻防博弈模型提出的效用量化標(biāo)準(zhǔn)進(jìn)行靜態(tài)分析,得到不同漏洞的量化評(píng)分信息如表8 所示。
表8 不同漏洞的量化評(píng)分信息Table 8 Quantified scoring informations of different vulnerabilities
根據(jù)本文攻防實(shí)驗(yàn)網(wǎng)絡(luò)規(guī)模,取目標(biāo)增益σ=1,由效用函數(shù)量化方法計(jì)算得到攻防成本以及系統(tǒng)中所存在漏洞的相應(yīng)價(jià)值,結(jié)果如表9 所示。
表9 攻防效用計(jì)算結(jié)果Table 9 Calculation results of attack-defense utility
當(dāng)前實(shí)驗(yàn)環(huán)境下攻擊方博弈過程如下:
1)攻擊方由Intruder 節(jié)點(diǎn)出發(fā),根據(jù)VAM 生成算法得到的VAM 及其對(duì)應(yīng)的VCG 如圖11 所示。
圖11 VAM 及對(duì)應(yīng)的VCGFig.11 VAM and corresponding VCG
根據(jù)VAM 探測(cè)到可滲透節(jié)點(diǎn)Web Server 和FTP Server 以及可轉(zhuǎn)移滲透邊則漏洞上博弈效用矩陣分別為:
2)除式(16)和式(17)之外,其他漏洞的博弈效用矩陣計(jì)算如下:
3)攻擊方對(duì)不同漏洞的獨(dú)立利用概率P(v)和不利用概率1-P(v)如表10 所示。
表10 攻擊方對(duì)不同漏洞的獨(dú)立利用概率和不利用概率Table 10 Independent utilization probability and non utilization probability of different vulnerabilities
各漏洞的獨(dú)立利用概率和不利用概率可在滲透的路徑生成過程中逐步計(jì)算,余下攻擊路徑的轉(zhuǎn)移概率可通過類似攻擊方博弈過程步驟1 的方法計(jì)算得到。攻擊方攻擊路徑生成的具體流程如圖12 所示,若攻擊方無法并發(fā)攻擊,則圖12 中的路徑是其攻擊概率(0.130 250)最大的滲透路徑(Path-Attack-Probability)。
圖12 攻擊路徑生成流程Fig.12 Procedure of attack path generation
由于實(shí)驗(yàn)中未出現(xiàn)不存在可轉(zhuǎn)移滲透邊產(chǎn)生博弈回溯的情況,為便于闡述算法,現(xiàn)假設(shè)在圖12 中DB Server 節(jié)點(diǎn)不存在可轉(zhuǎn)移滲透邊,則產(chǎn)生博弈回溯并重新計(jì)算滲透概率,博弈回溯過程如圖13 所示。
圖13 博弈回溯流程Fig.13 Game backtracking procedure
通過博弈回溯并根據(jù)概率可選擇新的滲透邊,因此攻擊方將重新以0.107 500的攻擊概率從節(jié)點(diǎn)Web Server利用漏洞滲透節(jié)點(diǎn)FTP Server。
由于存在博弈回溯機(jī)制,單點(diǎn)多步攻防博弈攻擊路徑生成算法可在網(wǎng)絡(luò)發(fā)生動(dòng)態(tài)變化時(shí)進(jìn)行調(diào)整,回溯機(jī)制能重構(gòu)上一步博弈過程并重新選擇下一跳節(jié)點(diǎn)。邊滲透邊探測(cè)的方式使博弈分析具有實(shí)時(shí)性,不依賴于完整網(wǎng)絡(luò)拓?fù)浜蜌v史探測(cè)信息,適用于未知拓?fù)?、漏洞和?dòng)態(tài)變化的網(wǎng)絡(luò)分析。
根據(jù)圖12 中的攻擊路徑,防御方可計(jì)算出當(dāng)前網(wǎng)絡(luò)環(huán)境下的自身?yè)p失,并以<網(wǎng)絡(luò)環(huán)境,實(shí)際損失,概率>三元組形式進(jìn)行記錄。同時(shí),防御方可采用優(yōu)化算法不斷調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)和漏洞信息形成新的網(wǎng)絡(luò)環(huán)境,同時(shí)生成攻擊路徑及其利用概率以計(jì)算實(shí)際損失,同時(shí)將預(yù)估損失(損失與概率之積)優(yōu)化至最小,從而有針對(duì)性地采取補(bǔ)救措施,形成最終的防御策略。
本文提出一種基于單點(diǎn)多步博弈模型的防御策略選取方法。利用通用漏洞評(píng)分系統(tǒng)對(duì)攻防效用進(jìn)行量化,構(gòu)建漏洞連通圖和漏洞鄰接矩陣,在此基礎(chǔ)上設(shè)計(jì)基于單點(diǎn)多步攻防博弈的最優(yōu)防御策略選取方法。實(shí)驗(yàn)結(jié)果表明,該方法可應(yīng)用于大規(guī)模網(wǎng)絡(luò)攻防博弈分析,所用單點(diǎn)多步博弈模型無需完整網(wǎng)絡(luò)拓?fù)浼皻v史探測(cè)信息,實(shí)時(shí)性更強(qiáng)且適合動(dòng)態(tài)分析。然而本文方法中模型的量化存在主觀性,未考慮路徑規(guī)劃的精度與效率均衡問題。下一步將通過大量模擬實(shí)驗(yàn)減小模型量化的主觀性,并引入啟發(fā)式與隨機(jī)式結(jié)合的算法控制路徑構(gòu)造的導(dǎo)向性,以均衡網(wǎng)絡(luò)防御路徑規(guī)劃精度與效率。