王 輝,張 娟,趙 雅,劉 琨,馮文峰
(河南理工大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,河南 焦作 454000)
E-mail:1497222781@qq.com
隨著計算機網(wǎng)絡(luò)的快速發(fā)展,網(wǎng)絡(luò)攻擊發(fā)生地越來越頻繁,導(dǎo)致網(wǎng)絡(luò)安全問題也越來越嚴(yán)重.網(wǎng)絡(luò)攻擊之所以不斷發(fā)生,最主要的原因在于計算機系統(tǒng)中存在漏洞[1],例如比較有名的 “WannaCry勒索病毒”攻擊事件就是利用windows不同版本存在的漏洞實施攻擊,給國家、企業(yè)、個人帶來了不同程度的經(jīng)濟損失[2].中國信息安全中心公布的數(shù)據(jù)表明,截止到2017年,網(wǎng)絡(luò)中又新增了15,955個軟硬件漏洞,漏洞數(shù)量的增多又進而加劇了網(wǎng)絡(luò)安全隱患[3].網(wǎng)絡(luò)安全風(fēng)險評估作為主動防御技術(shù)之一,它可以幫助網(wǎng)絡(luò)管理員發(fā)現(xiàn)潛在的網(wǎng)絡(luò)漏洞和威脅,從而降低網(wǎng)絡(luò)風(fēng)險.
近年來,國內(nèi)外學(xué)者對網(wǎng)絡(luò)安全風(fēng)險評估進行了研究,并提出了一些基于不同觀點的評估方法.吳泓潤等[4]設(shè)計了基于攻擊代價的網(wǎng)絡(luò)攻擊選擇模型,通過對攻擊代價分析,找出成功概率較大的網(wǎng)絡(luò)攻擊,并給出相應(yīng)的防護措施,降低了網(wǎng)絡(luò)安全風(fēng)險,但該方法忽略了實際應(yīng)用中攻擊者還會考慮攻擊收益.FuxiongSun等[5]將馬爾可夫鏈和攻擊圖結(jié)合對網(wǎng)絡(luò)進行風(fēng)險評估時,提出根據(jù)漏洞信息是否發(fā)布,是否有對應(yīng)的攻擊方法和攻擊工具量化原子攻擊成功概率,并在此基礎(chǔ)上計算節(jié)點風(fēng)險值;胡浩等[6]提出將攻擊圖轉(zhuǎn)換為吸收馬爾可夫鏈,使用CVSS漏洞評分標(biāo)準(zhǔn)量化馬爾可夫鏈中節(jié)點狀態(tài)轉(zhuǎn)移概率,進而計算各節(jié)點的概率;上述的方法具有一定的可行性,但在計算節(jié)點概率時,忽略了攻擊者是智能的決策體,還會考慮攻擊代價和攻擊收益.同時文獻[4-6]由于沒有考慮網(wǎng)絡(luò)中檢測到的攻擊事件對節(jié)點概率的影響,只能靜態(tài)地評估網(wǎng)絡(luò)風(fēng)險,無法動態(tài)評估.
Xie等[7]利用貝葉斯網(wǎng)絡(luò)分析網(wǎng)絡(luò)安全時,對攻擊事件加以考慮,但該方法沒有進一步對觀察到攻擊事件的節(jié)點進行后驗概率的計算.Poolsappasit等[8]將貝葉斯網(wǎng)絡(luò)中觀察到的節(jié)點狀態(tài)作為攻擊證據(jù),進而計算網(wǎng)絡(luò)中節(jié)點后驗概率,從而動態(tài)評估網(wǎng)絡(luò)風(fēng)險,給網(wǎng)絡(luò)管理員實時地掌握網(wǎng)絡(luò)安全狀況提供了便利.
陳小軍等[9]利用觀察到的攻擊事件去對某步攻擊發(fā)生的概率進行推導(dǎo),但推導(dǎo)過程中只討論了某節(jié)點觀察到的攻擊事件對該節(jié)點后驗概率的影響,忽略了與該節(jié)點有關(guān)聯(lián)的其它節(jié)點的后驗概率會受該節(jié)點后驗概率的影響; Gao Ni等[10]通過貝葉斯攻擊圖對網(wǎng)絡(luò)進行風(fēng)險評估時全面考慮了攻擊事件對相關(guān)節(jié)點后驗概率的影響,但在計算節(jié)點概率時,沒有進一步分析攻擊代價和攻擊收益對概率的影響.馬春光等[11]利用貝葉斯攻擊圖對網(wǎng)絡(luò)進行動態(tài)評估時,從攻擊壓力、未知威脅等方面對節(jié)點概率進行了量化,提高了評估結(jié)果的準(zhǔn)確性,但在計算節(jié)點概率時忽略了節(jié)點間關(guān)系為“或”的狀況.隨著網(wǎng)絡(luò)中的資源節(jié)點增加時,陳小軍、Gao Ni、馬春光利用貝葉斯推理計算后驗概率時的時間復(fù)雜度可能會呈指數(shù)級增長,不利于及時評估網(wǎng)絡(luò)風(fēng)險.
基于上述分析,本文做了如下工作:
(a)對攻擊代價和攻擊收益分析,引入攻擊效能變量,并結(jié)合漏洞利用成功率給出原子攻擊成功概率的公式,由此進一步計算節(jié)點概率,從而對網(wǎng)絡(luò)風(fēng)險進行靜態(tài)評估;
(b)給出節(jié)點刪除次序算法(NDO_Alg)確定消元順序,將貝葉斯攻擊圖轉(zhuǎn)換為相應(yīng)的團樹,然后結(jié)合檢測到的攻擊事件,利用團樹傳播算法計算后驗概率,對網(wǎng)絡(luò)風(fēng)險進行動態(tài)評估.
攻擊圖能清晰地描述網(wǎng)絡(luò)中各個脆弱性之間的潛在關(guān)聯(lián),為網(wǎng)絡(luò)風(fēng)險評估提供了便利[12].使用攻擊圖進行風(fēng)險評估時,由于攻擊行為的不確定性,增加了網(wǎng)絡(luò)安全風(fēng)險評估的難度和影響了風(fēng)險評估的準(zhǔn)確性,而貝葉斯網(wǎng)絡(luò)在解決關(guān)聯(lián)性和不確定性導(dǎo)致的問題方面有較大優(yōu)勢[13,14].因此本文通過將貝葉斯和攻擊圖結(jié)合,構(gòu)造貝葉斯攻擊圖對目標(biāo)網(wǎng)絡(luò)建模.
定義1.(貝葉斯攻擊圖)BSNAG={S,E,P,F(xiàn),Ppre,O,Ppos}是有向無環(huán)圖,各參數(shù)定義如下:
a)S={si|si∈Sb∪Sm∪St,i=1,2,…,N}表示資源狀態(tài)節(jié)點集合.其中,si具有伯努利隨機變量的性質(zhì),si=0表示資源未被攻擊者占有,si=1表示資源被攻擊者占有.
Sb={sj∈S|?si∈S,si∈Pa(sj)}為初始的資源狀態(tài)節(jié)點集合,Pa(sj)為sj的父節(jié)點集合;Sm={sj∈S|?si,sk∈S,si∈Pa(sj)∧sj∈Pa(sk)}為中間資源狀態(tài)節(jié)點集合;St={si∈S|?sj∈S,si∈Pa(sj)}為目標(biāo)資源狀態(tài)節(jié)點集合.
b)E={ei→j|i=1,2,…,N,j=1,2,…,N}表示資源狀態(tài)節(jié)點間的有向邊集合也是原子攻擊集合.E?S×S,若?si,sj∈S,si∈Pa(sj),則有ei→j=
c)P={P(ei→j)|i=1,2,…,N,j=1,2,…,N}表示原子攻擊成功概率集合.?P(ei→j)∈P為有向邊E上的權(quán)值;
d)F={And,Or}表示父節(jié)點間的依賴關(guān)系集合.?si∈Sm∪St,?fi∈F表示si父節(jié)點間的依賴關(guān)系;
e)Ppre表示資源狀態(tài)節(jié)點的先驗概率;
f)O={oi→j|i=1,2,…,N,j=1,2,…,N}表示檢測到的攻擊證據(jù)集合.其中,攻擊證據(jù)oi→j表示入侵檢測系統(tǒng)檢測到原子攻擊ei→j;
g)Ppos表示資源狀態(tài)節(jié)點的后驗概率,即結(jié)合檢測到的攻擊證據(jù),動態(tài)更新后的資源狀態(tài)節(jié)點概率;
原子攻擊的發(fā)生與網(wǎng)絡(luò)中存在的資源(安全缺陷)有關(guān),多數(shù)學(xué)者對原子攻擊成功概率量化時,通常用漏洞自身利用成功概率表示,往往忽略攻擊者是理智的決策體,在對網(wǎng)絡(luò)中的某漏洞實施攻擊時,不僅會考慮漏洞利用成功概率,還會考慮攻擊此漏洞獲取的收益和付出的成本,因此本文利用上述三個指標(biāo)計算原子攻擊成功概率.
漏洞利用成功概率可以用CVSS評分系統(tǒng)中基礎(chǔ)(Base)評估部分的攻擊矢量(Attack Vector,AV),攻擊復(fù)雜度(Attack Complexity,AC),身份認(rèn)證(Authentication,AU)三個指標(biāo)衡量[15],指標(biāo)對應(yīng)的屬性評分標(biāo)準(zhǔn)如表1所示.
表1 屬性評分標(biāo)準(zhǔn)Tabel 1 Attribute scoring standard
根據(jù)CVSS評分系統(tǒng),漏洞vi的利用成功概率量化公式:
P0(vi)=2×AV×AC×AU
(1)
定義2.原子攻擊收益(AttackProfit,AProfit):是指攻擊者實施一次原子攻擊時,獲取的利益.本文用資源損失量化原子攻擊收益.
定義3.資源損失(Resource Loss,RL):表示某資源受到原子攻擊后遭受的損失,本文借鑒文獻[16]量化資源損失的思想,從攻擊威脅度、資源重要性、資源安全屬性三方面對資源損失進行描述.
定義4.攻擊威脅度(Attack Threat,AT):表示攻擊者實施的攻擊對目標(biāo)資源造成的危害程度.攻擊威脅度量化如表2所示.
表2 攻擊威脅度量化Tabel 2 Attack threat metrics
通常用CVSS評分系統(tǒng)中的保密性(Confidentiality,C)、完整性(Integrity,I)、可用性(Availability,A)三個指標(biāo)表示資源的安全屬性.不同攻擊對安全屬性中的三個指標(biāo)造成的危害不同,用(Lc,Li,La)表示對三個指標(biāo)的不同偏重,且Lc+Li+La=1,例如(0,1,0)表示針對安全屬性的完整性實施攻擊.
定義5.資源重要性(Resource Importance,RI):表示目標(biāo)節(jié)點在網(wǎng)絡(luò)中的重要程度,用high、mid、low三個等級表示,本文給出了典型資源的重要性量化標(biāo)準(zhǔn),如表3所示.
表3 資源重要性量化標(biāo)準(zhǔn)Tabel 3 Resource importance quantification standard
資源重要性對安全屬性的三個指標(biāo)有不同的偏重(Rc,Ri,Ra),且Rc+Ri+Ra=1,偏重量化標(biāo)準(zhǔn)如表4所示.
表4 安全屬性偏重量化標(biāo)準(zhǔn)Tabel 4 Safety attribute partial weighting standard
結(jié)合攻擊威脅度,資源重要性和安全屬性的分析,給出資源損失的計算公式:
RL(ei→j)=AT×RI×(Li×Ri+Lc×Rc+La×Ra)
(2)
由定義2可知,原子攻擊收益AProfit(ei→j)為:
AProfit(ei→j)=RL(ei→j)
(3)
定義6.原子攻擊成本(Attack Cost,ACost):表示攻擊者進行一次原子攻擊時,需要付出的代價,原子攻擊成本由操作成本和風(fēng)險成本兩方面構(gòu)成.
文獻[17]給出了原子攻擊ei→j的操作成本的計算公式:
Cost(ei→j)operation=α×Cost(meta-operations)
+β×Cost(sequence)
(4)
其中,Cost(meta-operations)表示元操作成本,Cost(sequence)表示操作序列成本.
在實施攻擊的過程中,攻擊者除了付出操作成本外,還需承擔(dān)風(fēng)險成本,風(fēng)險成本由風(fēng)險系數(shù)、攻擊者擁有的攻擊經(jīng)驗共同決定.風(fēng)險系數(shù)θ表示攻擊者發(fā)動攻擊的過程中被網(wǎng)絡(luò)安全員發(fā)現(xiàn)的可能性.目標(biāo)節(jié)點在網(wǎng)絡(luò)中的關(guān)鍵性M(vj)對θ有影響,目標(biāo)節(jié)點在網(wǎng)絡(luò)中越關(guān)鍵,攻擊者對該目標(biāo)節(jié)點發(fā)動攻擊的可能性越大,相應(yīng)地該攻擊行為被管理員發(fā)現(xiàn)的可能性也越大.
通常目標(biāo)節(jié)點被攻陷后給網(wǎng)絡(luò)帶來的影響越大,認(rèn)為該目標(biāo)節(jié)點在網(wǎng)絡(luò)中所處的位置越關(guān)鍵.利用CVSS[18]評分標(biāo)準(zhǔn)計算目標(biāo)節(jié)點的影響性:
lmpact(vj)=10.41*[1-(1-I)*(1-A)*(1-C)]
(5)
由公式(5)進一步給出計算目標(biāo)節(jié)點對應(yīng)的關(guān)鍵性,公式如下:
(6)
其中,N表示網(wǎng)絡(luò)中的目標(biāo)節(jié)點個數(shù).
攻擊者實施攻擊的復(fù)雜度δ(ei→j)對θ也有影響,攻擊對應(yīng)的復(fù)雜度越大,攻擊者越容易攻陷目標(biāo)節(jié)點,相應(yīng)地該攻擊行為被檢測到的可能性也越大,攻擊復(fù)雜度的量化[5]如表5所示.
表5 攻擊復(fù)雜度量化標(biāo)準(zhǔn)Tabel 5 Attack complex metrics
基于上述分析,風(fēng)險系數(shù)θ的公式如下所示:
θ(ei→j)=M(vj)×δ(ei→j)
(7)
攻擊者是理智的決策體,隨著攻擊者對某一目標(biāo)節(jié)點攻擊次數(shù)的增加,攻擊者的攻擊經(jīng)驗會相應(yīng)增加,攻擊者再對該目標(biāo)節(jié)點實施攻擊時,付出的成本會相應(yīng)減少.
結(jié)合風(fēng)險系數(shù)和攻擊經(jīng)驗的分析,給出原子攻擊ei→j的風(fēng)險成本公式:
Cost(ei→j)risk=η(ei→j)n-1×θ(ei→j)
(8)
其中,n為攻擊者對某一目標(biāo)節(jié)點實施攻擊的次數(shù),η(ei→j)的具體取值由專家經(jīng)驗根據(jù)網(wǎng)絡(luò)實際場景給出.
結(jié)合操作成本和風(fēng)險成本的分析,本文給出原子攻擊成本的計算公式:
ACost(ei→j)=γ×Cost(ei→j)risk+λ×Cost(ei→j)operation
(9)
其中,γ,λ分別為風(fēng)險成本、操作成本對應(yīng)的權(quán)重,且γ+λ=1.
定義7.原子攻擊效能(Attack Efficacy,AE):表示攻擊者對原子攻擊的認(rèn)可度,認(rèn)可度越高,攻擊者越傾向于實施此攻擊.
攻擊者實施攻擊前會評判攻擊付出的代價和獲取的收益,根據(jù)代價收益比判斷攻擊效能.比值越高,表明代價越大或收益越小,對應(yīng)的攻擊效能越低;反之對應(yīng)的攻擊效能越高.
根據(jù)公式(3)和公式(9),實施原子攻擊的代價收益比ε(ei→j)為:
(10)
依據(jù)上述分析,結(jié)合公式(10),給出攻擊者對原子攻擊ei→j的認(rèn)可度,即攻擊效能AE(ei→j)為:
(11)
若ε(ei→j)≥1,說明攻擊代價大于等于攻擊收益,攻擊者無利可獲,攻擊效能為0;若0<ε(ei→j)<1,說明攻擊代價小于攻擊收益,攻擊者有利可獲,攻擊效能為1-ε(ei→j);若ε(ei→j)=0,說明攻擊代價為0,攻擊效能為1.
原子攻擊成功概率表示攻擊者實施攻擊,成功攻陷目標(biāo)節(jié)點的可能性.在漏洞利用成功概率相同時,攻擊者往往傾向于對攻擊代價小,攻擊收益高也即攻擊效能高的漏洞發(fā)動攻擊,故攻擊效能與原子攻擊成功概率正相關(guān).
假設(shè)BSNAG中的資源狀態(tài)節(jié)點si轉(zhuǎn)移到狀態(tài)節(jié)點sj,需要攻擊者對網(wǎng)絡(luò)中某漏洞vj實施攻擊ei→j,則原子攻擊ei→j成功的概率:
P(ei→j)=P0(vi)×AE(ei→j)
(12)
其中,AE(ei→j)為原子攻擊效能;P0(vj)為漏洞vj的利用成功概率.
靜態(tài)風(fēng)險評估可以發(fā)現(xiàn)目標(biāo)網(wǎng)絡(luò)中存在的潛在危險,幫助網(wǎng)絡(luò)安全員了解網(wǎng)絡(luò)狀況.貝葉斯攻擊圖中,一般根據(jù)先驗概率對節(jié)點風(fēng)險進行靜態(tài)評估.某節(jié)點的先驗概率為該節(jié)點及其父節(jié)點的局部條件概率的聯(lián)合概率,因此,為了計算節(jié)點先驗概率,需先計算出節(jié)點局部條件概率.
局部條件概率反映某資源狀態(tài)節(jié)點可能會遭受的風(fēng)險.?sj∈Sm∪St,sj的局部條件概率與其父節(jié)點Pa(sj)到該節(jié)點的原子攻擊有關(guān),貝葉斯攻擊圖中父節(jié)點間存在兩種依賴關(guān)系:{And,Or},狀態(tài)節(jié)點sj的局部條件概率的計算公式如下:
1)父節(jié)點間依賴關(guān)系fj=And時:
(13)
2)父節(jié)點間依賴關(guān)系fj=Or時:
(14)
?sj∈Sm∪St,由局部條件概率公式進一步計算sj的先驗概率:
(15)
若?sj∈Sb,sj的先驗概率根據(jù)專家經(jīng)驗賦值.
網(wǎng)絡(luò)中攻擊事件的發(fā)生、漏洞補丁的更新、安全條件的改變都會影響資源狀態(tài)節(jié)點的概率,為了能動態(tài)評估網(wǎng)絡(luò)風(fēng)險,需要計算狀態(tài)節(jié)點的后驗概率,多數(shù)研究學(xué)者在風(fēng)險評估時一般根據(jù)貝葉斯推理計算節(jié)點后驗概率.但隨著資源狀態(tài)節(jié)點的增加,利用貝葉斯推理計算后驗概率時,時間復(fù)雜度可能會以指數(shù)級的速度增長,不能及時地評估網(wǎng)絡(luò)狀況.
團樹傳播算法在計算后驗概率時,能降低時間復(fù)雜度.團樹傳播算法的首要步驟是將貝葉斯攻擊圖轉(zhuǎn)換為團樹,轉(zhuǎn)換過程由構(gòu)造端正圖、三角化以及構(gòu)造團樹三部分組成,其中,貝葉斯攻擊圖對應(yīng)的端正圖三角化,實質(zhì)是端正圖中節(jié)點的消元過程,也是生成團樹的過程[19].端正圖轉(zhuǎn)換為團樹比較常用的兩種消元算法是最小缺邊搜索算法和最大勢搜索算法,最小缺邊搜索算法的消元順序通常優(yōu)于最大勢搜索算法的消元順序[20],而消元順序的優(yōu)劣與消元成本有關(guān),對于消元成本的量化詳見文獻[21].本文從消元成本的角度出發(fā),提出了新的消元算法:刪除節(jié)點次序算法.
5.2.1 刪除節(jié)點次序算法
貝葉斯攻擊圖及其對應(yīng)的端正圖中,節(jié)點間的連接構(gòu)成了邊.邊的數(shù)量越少,說明節(jié)點間的連接越少,圖對應(yīng)的復(fù)雜度越小,在進行概率推理時計算復(fù)雜度也越小,相應(yīng)的消元成本也越小.因此本文根據(jù)圖的復(fù)雜度大小提出了刪除節(jié)點次序算法,其中圖的復(fù)雜度用邊的數(shù)量衡量,具體步驟如下:
(a)刪除端正圖中的節(jié)點時,也會刪除與該節(jié)點有關(guān)的邊,刪除的邊數(shù)量越多,剩余端正圖的邊數(shù)就越少,對應(yīng)的復(fù)雜度就會越低.用DE表示刪除邊的數(shù)量,與端正圖的復(fù)雜度成負相關(guān).
(b)刪除端正圖中的節(jié)點后,為了使該節(jié)點的全部鄰節(jié)點在一個團中,可能會在鄰節(jié)點間增加部分邊.剩余端正圖的邊數(shù)會增加,對應(yīng)的復(fù)雜度也會增加.用AE表示增加的邊數(shù),與端正圖的復(fù)雜度成正相關(guān).
(c)由(a)、(b)分析可知,刪除的邊數(shù)DE和增加的邊數(shù)AE,會影響剩余端正圖的復(fù)雜度IC,因此復(fù)雜度可以用IC=AE/DE量化.本文根據(jù)刪除節(jié)點后,剩余端正圖的復(fù)雜度大小,確定端正圖中的節(jié)點刪除次序.刪除某節(jié)點時,其對應(yīng)的剩余端正圖的復(fù)雜度,相比于其它節(jié)點對應(yīng)的剩余端正圖的復(fù)雜度較小時,優(yōu)先刪除此節(jié)點.以此類推,從而確定刪除節(jié)點的次序.
綜合上述分析,本文提出了刪除節(jié)點次序算法DNO_Alg,DNO_Alg算法的具體步驟如下:
輸入:貝葉斯攻擊圖BSNAG對應(yīng)的端正圖
輸出:節(jié)點刪除次序
1.初始化隊列Q,用來存儲節(jié)點刪除次序
2.判斷節(jié)點數(shù)目是否大于3,若是,執(zhí)行步驟3;否則,執(zhí)行步驟5
3.計算出每個節(jié)點對應(yīng)的復(fù)雜度IC=AE/DE
4.找出最小復(fù)雜度IC對應(yīng)的節(jié)點,并將該節(jié)點存入隊列Q且從圖中刪除該節(jié)點,節(jié)點數(shù)遞減,執(zhí)行步驟2
5.輸出節(jié)點刪除次序隊列Q,算法終止
DNO_Alg算法和最小缺邊搜索算法的共同之處:在計算某節(jié)點刪除、增加的邊數(shù)時,都需要對該節(jié)點的全部鄰節(jié)點進行搜索.故DNO_Alg算法和最小缺邊搜索算法的時間復(fù)雜度相似.
5.2.2 團樹傳播算法
在用本文提出的DNO_Alg算法確定節(jié)點刪除次序后,借鑒文獻[19]中的轉(zhuǎn)換過程,得到BSNAG模型對應(yīng)的團樹Tb,然后使用團樹傳播算法計算后驗概率.團樹傳播算法的具體步驟:
輸入:貝葉斯攻擊圖BSNAG以及對應(yīng)的團樹Tb,檢測到的攻擊證據(jù)集合O
輸出:每個狀態(tài)節(jié)點的后驗概率
1.利用BSNAG初始化Tb,即將與狀態(tài)節(jié)點有關(guān)的原
子攻擊成功概率以及先驗概率存入Tb,由此得到各個團的的概率分布;
2.在團樹Tb中,將攻擊證據(jù)對應(yīng)的狀態(tài)節(jié)點后驗風(fēng)險概率設(shè)為1;
3.找出攻擊證據(jù)對應(yīng)的狀態(tài)節(jié)點所在的一個團Tp,將該團作為樞紐進行概率推理;
//信息收集與分發(fā)
4.for(與Tp相鄰的團Tc)
5.調(diào)用信息收集函數(shù)CollectMessage(Tp,Tc);
6.調(diào)用信息分發(fā)函數(shù)DistributeMessage(Tp,Tc),并將分發(fā)的信息存儲在團Tc對應(yīng)的信息存儲函數(shù)中;
7.endfor(4)
//計算BSNAG中狀態(tài)節(jié)點的后驗概率
8. for(BSNAG中每一個非證據(jù)變量si)
9.找出一個含有si的團Ts;
10.將初始化的概率分布和信息存儲函數(shù)相結(jié)合,得到攻擊證據(jù)下的團Ts的概率分布h(Ts);
12.returnPpos(si);
13.endfor(8)
為了驗證該評估模型的可行性,搭建了一個小型仿真網(wǎng)絡(luò)環(huán)境,其網(wǎng)絡(luò)拓撲結(jié)構(gòu)如圖1所示.
圖1中防火墻1將網(wǎng)絡(luò)劃分成兩部分:外部網(wǎng)絡(luò)、內(nèi)部網(wǎng)絡(luò),其中,內(nèi)部網(wǎng)絡(luò)由DMZ,子網(wǎng)1,子網(wǎng)2三部分組成.防火墻1的安全策略:不能直接訪問子網(wǎng)1,子網(wǎng)2,但允許攻擊者訪問DMZ區(qū)域中主機H0上的web服務(wù)和H1上的ftp服務(wù).DMZ、子網(wǎng)1、子網(wǎng)2之間的通信規(guī)則:DMZ中的H0可以訪問H2;H1可以訪問子網(wǎng)1中的H3和子網(wǎng)2中的Mail服務(wù)器; H2、H3可以訪問子網(wǎng)1中的H4,H4可以訪問子網(wǎng)2中的數(shù)據(jù)庫服務(wù)器和Mail服務(wù)器.子網(wǎng)2中的服務(wù)器設(shè)備之間不能相互訪問.
圖1 網(wǎng)絡(luò)拓撲結(jié)構(gòu)圖Fig.1 Network topology diagram
本文對網(wǎng)絡(luò)不同區(qū)域中的主機使用Nessus進行漏洞節(jié)點掃描,對檢測到的漏洞節(jié)點信息進行匯總,如表6所示.
表6 漏洞信息表Table 6 Vulnerability information table
根據(jù)實驗網(wǎng)絡(luò)的拓撲結(jié)構(gòu)、漏洞節(jié)點情況,得到貝葉斯攻擊圖BSNAG,并利用DAO_Alg算法確定消元順序,由此將BSNAG模型轉(zhuǎn)換為相應(yīng)的團樹,BSNAG模型及其對應(yīng)的團樹,如圖2所示.
圖2 BSNAG模型及其對應(yīng)的團樹Fig.2 BSNAG model and group tree
其中,DAO_Alg算法確定的消元順序,如表7所示.
表7 消元順序表Table 7 Elimination sequence table
使用第4節(jié)和5.1節(jié)中的量化公式,并結(jié)合專家經(jīng)驗對原子操作成本及其權(quán)重分別賦值0.3、0.2,計算圖2中考慮攻擊效能的節(jié)點先驗概率Ppre,同時計算出不考慮攻擊效能的先驗概率P1;利用入侵檢測系統(tǒng)snort檢測到節(jié)點s7對應(yīng)的原子攻擊e5→7,使用5.2節(jié)中的團樹傳播算法計算節(jié)點后驗概率Ppos,計算結(jié)果如表8所示.
表8 節(jié)點概率表Table 8 Node probability table
根據(jù)表8,繪制考慮攻擊效能的先驗概率和不考慮攻擊效能的先驗概率對比圖,如圖3所示.
對圖3中的先驗概率分別從縱向和橫向兩個角度進行分析:
①從縱向角度可知:相同的節(jié)點在考慮攻擊效能時的概率小于或等于不考慮攻擊效能的節(jié)點概率.根據(jù)本文第4節(jié)可知,攻擊效能和漏洞利用成功概率的乘積為節(jié)點對應(yīng)的原子攻擊成功概率,因為攻擊效能的取值為0~1,所以考慮攻擊效能后,節(jié)點對應(yīng)的原子攻擊成功概率小于或等于節(jié)點對應(yīng)的漏洞利用成功率;對于未考慮攻擊效能的節(jié)點,節(jié)點對應(yīng)的原子攻擊成功概率直接為漏洞利用成功率,大于或等于考慮攻擊效能的原子攻擊成功概率.而先驗概率是基于原子攻擊成功概率求得的,故本文考慮攻擊效能的先驗概率小于或等于不考慮攻擊效能的先驗概率.引入攻擊效能的前提是假設(shè)攻擊者是趨利的、理性的,在考慮攻擊效能后,節(jié)點對應(yīng)的風(fēng)險值減少,表明攻擊者在對網(wǎng)絡(luò)發(fā)動攻擊時會根據(jù)攻擊效能的取值,有選擇地對節(jié)點發(fā)動攻擊.
②從橫向角度可知:節(jié)點間先驗概率的相對大小會因為引入的攻擊效能發(fā)生改變.從圖3中可以看出,與不考慮攻擊效能相比,考慮攻擊效能后,相鄰節(jié)點s4和s5,節(jié)點s6和s7,節(jié)點s8和s9的先驗概率的相對大小發(fā)生了改變.這是因為攻擊效能由攻擊代價和攻擊收益共同決定,攻擊者會根據(jù)付出的代價和獲取的收益有選擇地攻擊節(jié)點.
利用文獻[9]中的最大概率攻擊路徑選擇算法得到?jīng)]有引入攻擊效能時,攻擊者攻擊目標(biāo)節(jié)點s8、s9時最可能選擇的路徑分別為{s2,s4,s6,s8}、{s2,s4,s6,s9};而引入攻擊效能后,攻擊者攻擊目標(biāo)節(jié)點s8、s9時最可能選擇的路徑分別為{s2,s4,s6,s8}、{s2,s5,s7,s9}.經(jīng)過對比分析:加入攻擊效能后,攻擊者對目標(biāo)節(jié)點s9的評估結(jié)果發(fā)生了變化,更符合攻擊者在實際情況下會選擇的攻擊路徑.
從表8中還可以得到:在檢測到攻擊證據(jù)o5→7后,所有節(jié)點的后驗概率Ppos均大于其對應(yīng)的先驗概率Ppre.節(jié)點s7及其對應(yīng)的父節(jié)點s5,子節(jié)點s9,兄弟節(jié)點s6的后驗概率Ppos增加幅度分別為0.8337、0.1063、0.0959、0.0884,概率變化較大,說明節(jié)點風(fēng)險值受攻擊事件的影響較大;表中其它節(jié)點的后驗概率Ppos增加幅度均小于0.07,概率變化較小,說明節(jié)點風(fēng)險值受攻擊事件的影響較小.因此,當(dāng)檢測到攻擊證據(jù)o5→7后,選擇對受影響較大的節(jié)點給予防護,即對節(jié)點s5,s6,s7,s9給予保護措施來降低節(jié)點風(fēng)險.
從上述分析可知,靜態(tài)和動態(tài)評估相結(jié)合,可以實時根據(jù)網(wǎng)絡(luò)情況有針對性的防護網(wǎng)絡(luò)中的節(jié)點.
為了驗證團樹傳播算法在計算節(jié)點后驗概率的時間復(fù)雜度優(yōu)于貝葉斯推理,本文增加節(jié)點數(shù),進行了多次試驗,時間復(fù)雜度對比如圖4所示.
由圖4可知,當(dāng)網(wǎng)絡(luò)中的節(jié)點增多時,相比于使用貝葉斯推理計算后驗概率時,使用團樹傳播算法能降低時間復(fù)雜度.
同時為了驗證本文提出的DNO_Alg算法的消元效果,和最小缺邊搜索算法在消元成本方面做了對比分析.本文在做實驗時,利用指定的節(jié)點數(shù)N和邊數(shù)E構(gòu)造隨機圖,并用構(gòu)造的隨機圖表示端正圖,其中,隨機圖的構(gòu)造過程為:1.確定節(jié)點數(shù)N和邊數(shù)E;2.隨機生成兩個不同的且在0~N之間的數(shù)g,h;3.用線把g,h對應(yīng)的節(jié)點連接起來,由此生成隨機圖的一條無向邊;4.重復(fù)步驟2-3直到構(gòu)造的隨機圖中有E條邊.在實驗時,通過對節(jié)點數(shù)N和邊數(shù)E進行設(shè)置,構(gòu)造不同規(guī)模的隨機圖.
為了驗證DNO_Alg算法的可行性,本文指定節(jié)點數(shù)N=100和邊數(shù)E=200,構(gòu)造了100個不同的隨機圖.然后在這100個隨機圖上執(zhí)行最小缺邊搜索算法和DNO_Alg算法,比較100個隨機圖中最小缺邊搜索算法和DNO_Alg算法對應(yīng)的消元成本低的次數(shù).改變邊數(shù)E的取值為300,400,…,2000,重復(fù)上述步驟,實驗結(jié)果如圖5所示.改變節(jié)點數(shù)N=200,邊數(shù)E分別取400,500,…,2000,實驗結(jié)果如圖6所示.
從圖5,圖6可以看出,DNO_Alg算法在降低消元成本方面相比于最小缺邊算法有一定的優(yōu)勢,隨著節(jié)點數(shù)的增多時,DNO_Alg算法的優(yōu)勢更加明顯,更適應(yīng)于大規(guī)模網(wǎng)絡(luò).
網(wǎng)絡(luò)安全風(fēng)險評估一直是國內(nèi)外比較關(guān)注的熱點,本文對網(wǎng)絡(luò)安全進行風(fēng)險評估時,在前人的基礎(chǔ)上,提出了一種新型貝葉斯模型的網(wǎng)絡(luò)風(fēng)險評估方法.首先,依據(jù)當(dāng)前的網(wǎng)絡(luò)攻擊者是理智的,將由原子攻擊代價和原子攻擊收益量化的攻擊效能和漏洞利用成功概率相融合,計算原子攻擊成功概率,進一步計算節(jié)點先驗風(fēng)險概率對網(wǎng)絡(luò)進行靜態(tài)評估;其次,提出節(jié)點刪除次序算法NDO_Alg,將貝葉斯模型轉(zhuǎn)換為團樹.最后,利用團樹傳播算法計算后驗風(fēng)險概率對網(wǎng)絡(luò)進行動態(tài)評估.實驗結(jié)果驗證了本文所提模型不僅能提高網(wǎng)絡(luò)風(fēng)險評估結(jié)果的準(zhǔn)確性,還能降低計算后驗風(fēng)險概率的時間復(fù)雜度.后續(xù)研究重心將進一步考慮防御措施對評估的影響以及再進一步降低計算后驗概率的時間復(fù)雜度.