茹鑫鑫, 高曉光, 王陽(yáng)陽(yáng)
(西北工業(yè)大學(xué)電子信息學(xué)院, 陜西 西安 710129)
貝葉斯網(wǎng)絡(luò)(Bayesian network,BN)[1]已經(jīng)成為表示和處理不確定信息的有效工具,一個(gè)完整的BN包括一個(gè)有向無(wú)環(huán)圖(directed acyclic graph,DAG)和對(duì)應(yīng)的條件概率表(conditional probability table,CPT),分別從定性和定量角度表示出節(jié)點(diǎn)之間的依賴關(guān)系。目前BN已經(jīng)在故障診斷[2]、基因分析[3]等領(lǐng)域有了廣泛應(yīng)用。
通常BN的結(jié)構(gòu)[4-6]和參數(shù)[7-10]都是從數(shù)據(jù)中學(xué)習(xí)得來(lái),當(dāng)數(shù)據(jù)充足時(shí),K2[11]是常用的結(jié)構(gòu)學(xué)習(xí)算法,最大似然估計(jì)(maximum likelihood estimation,MLE)算法[12]是常用的參數(shù)學(xué)習(xí)算法。當(dāng)訓(xùn)練樣本量難以滿足學(xué)習(xí)需求時(shí),僅利用K2算法和MLE算法會(huì)造成學(xué)習(xí)結(jié)果過(guò)擬合,無(wú)法得到精確的結(jié)構(gòu)和參數(shù)。對(duì)于該問(wèn)題,在結(jié)構(gòu)學(xué)習(xí)中,專家可以直接給出節(jié)點(diǎn)間的定性關(guān)系,但在參數(shù)學(xué)習(xí)中,專家難以給出準(zhǔn)確的參數(shù)值。目前,相關(guān)研究主要通過(guò)基于約束的方法、數(shù)據(jù)擴(kuò)展以及兩者混合的方法來(lái)解決這一問(wèn)題?;诩s束的方法主要有兩種:凸優(yōu)化(convex optimization,CO)[13-14]和定性最大后驗(yàn)(qualitative maximum a poste-rior,QMAP)估計(jì)[15-18]。CO將參數(shù)學(xué)習(xí)問(wèn)題轉(zhuǎn)化為在約束空間內(nèi)尋找目標(biāo)函數(shù)最優(yōu)解。約束MLE(constrained MLE,CMLE)是將MLE與約束條件相結(jié)合來(lái)構(gòu)建CO優(yōu)化模型。QMAP首先利用蒙特卡羅方法生成滿足約束條件的先驗(yàn)參數(shù),再構(gòu)建超參進(jìn)行最大后驗(yàn)(maximum a posterior,MAP)估計(jì)?;跀?shù)據(jù)擴(kuò)展的方法力求通過(guò)增加樣本量來(lái)解決數(shù)據(jù)不足的問(wèn)題。文獻(xiàn)[19]使用遷移學(xué)習(xí)來(lái)增加數(shù)據(jù)量,當(dāng)目標(biāo)網(wǎng)絡(luò)和源網(wǎng)絡(luò)具有相同的結(jié)構(gòu)時(shí),直接遷移數(shù)據(jù)進(jìn)行參數(shù)學(xué)習(xí)。文獻(xiàn)[20]用額外的數(shù)據(jù)源解決了節(jié)點(diǎn)樣本完全缺失的參數(shù)學(xué)習(xí)問(wèn)題,通過(guò)元分析法結(jié)合多源樣本來(lái)學(xué)習(xí)參數(shù)。文獻(xiàn)[21]認(rèn)為在多樣本條件下,低質(zhì)量樣本在參數(shù)學(xué)習(xí)中不應(yīng)與高質(zhì)量樣本擁有相同的權(quán)重,通過(guò)使用馬氏距離對(duì)樣本進(jìn)行評(píng)分加權(quán)學(xué)習(xí)。對(duì)于約束與數(shù)據(jù)擴(kuò)展混合的方法,文獻(xiàn)[22-23]通過(guò)不等式約束判斷備選源域的樣本是否可以被遷移,通過(guò)范圍約束確定備選源域在遷移學(xué)習(xí)中的權(quán)重,從而提高樣本遷移準(zhǔn)確度。文獻(xiàn)[24]提出了一種基于約束的參數(shù)擴(kuò)展方法,通過(guò)自助法擴(kuò)展數(shù)據(jù)產(chǎn)生滿足約束條件的參數(shù)進(jìn)行學(xué)習(xí)。
盡管約束在參數(shù)學(xué)習(xí)中已經(jīng)得到了廣泛應(yīng)用,但如何平衡約束干預(yù)學(xué)習(xí)過(guò)程的過(guò)擬合和欠擬合仍然是一個(gè)亟待解決的問(wèn)題。在小樣本量下,如果參數(shù)學(xué)習(xí)完全依靠數(shù)據(jù),就會(huì)出現(xiàn)因樣本不足而造成的參數(shù)學(xué)習(xí)結(jié)果過(guò)擬合問(wèn)題。對(duì)于基于約束的MAP方法,不論其約束形式和先驗(yàn)參數(shù)量化方式有何不同,都需要構(gòu)建Dirichlet超參來(lái)實(shí)現(xiàn)參數(shù)學(xué)習(xí)。當(dāng)約束的干預(yù)效能較低時(shí),即選取的超參值較小,難以消除學(xué)習(xí)結(jié)果的過(guò)擬合。當(dāng)約束干預(yù)過(guò)強(qiáng)時(shí),即選取的超參值過(guò)大,學(xué)習(xí)結(jié)果會(huì)完全偏向約束,造成學(xué)習(xí)結(jié)果欠擬合。假設(shè)專家對(duì)一個(gè)約束條件有90%的把握,而對(duì)另一個(gè)約束條件只有60%的把握,如果這兩個(gè)約束在學(xué)習(xí)過(guò)程中有相同的超參值也是不合適的。因此,如何讓約束在學(xué)習(xí)過(guò)程中發(fā)揮適當(dāng)角色,關(guān)鍵是構(gòu)建合適的超參。
本文核心思想是對(duì)于同一約束,專家把握度(隸屬度)越大對(duì)應(yīng)的超參值應(yīng)該越大;對(duì)于同一約束,給定學(xué)習(xí)樣本為100所對(duì)應(yīng)的超參應(yīng)大于給定學(xué)習(xí)樣本量為300的超參,即給定的樣本量越大,對(duì)應(yīng)的超參應(yīng)該越小。
綜上,本文提出基于模糊先驗(yàn)約束的BN參數(shù)學(xué)習(xí)算法,通過(guò)將隸屬度引入到超參的構(gòu)建過(guò)程中,解決小樣本下參數(shù)學(xué)習(xí)的過(guò)擬合問(wèn)題。同時(shí),引入樣本量邊界來(lái)避免因外界過(guò)度干預(yù)而造成參數(shù)學(xué)習(xí)結(jié)果的欠擬合問(wèn)題。此外,將本文所提算法應(yīng)用到網(wǎng)絡(luò)安全評(píng)估中,以漏洞評(píng)分作為先驗(yàn)信息,結(jié)合遷移學(xué)習(xí)思想,利用漏洞編號(hào)進(jìn)行遷移學(xué)習(xí)。
BN結(jié)構(gòu)描述節(jié)點(diǎn)間的定性關(guān)系,參數(shù)表達(dá)節(jié)點(diǎn)的概率分布。因此,BN是由一個(gè)DAG和對(duì)應(yīng)的CPT組成的。BN可以定義為G(V,E),其中,V1,V2,…,Vn∈V是網(wǎng)絡(luò)中的節(jié)點(diǎn)集合,E是邊集合。給定任意節(jié)點(diǎn)Vi的父節(jié)點(diǎn)集合Πi,Vi獨(dú)立于其非子孫節(jié)點(diǎn)。當(dāng)訓(xùn)練數(shù)據(jù)充足時(shí),MLE是常用的參數(shù)學(xué)習(xí)方法,其目標(biāo)函數(shù)[17]可以表示為
(1)
式中:θ為整個(gè)BN的參數(shù);θijk表示網(wǎng)絡(luò)中節(jié)點(diǎn)Vi的父節(jié)點(diǎn)Πi為第j個(gè)組合時(shí),i取值為k的參數(shù),即P(Vi=k|Πi=j);ri為節(jié)點(diǎn)的狀態(tài)數(shù),為父qi節(jié)點(diǎn)Πi組合數(shù);Nijk代表數(shù)據(jù)集D中網(wǎng)絡(luò)中節(jié)點(diǎn)Vi的父節(jié)點(diǎn)Πi為第j個(gè)組合時(shí)的統(tǒng)計(jì)樣本量;c為一個(gè)常量。最大化式(1)之后,θijk的MLE可以表示為
(2)
當(dāng)學(xué)習(xí)樣本量不足時(shí),使用MLE容易造成學(xué)習(xí)結(jié)果過(guò)擬合,無(wú)法得到準(zhǔn)確的參數(shù)。為解決此問(wèn)題,通常將先驗(yàn)信息融入到參數(shù)學(xué)習(xí)中來(lái)提高學(xué)習(xí)精度。此時(shí),參數(shù)學(xué)習(xí)問(wèn)題便轉(zhuǎn)化為融合先驗(yàn)信息后的MAP問(wèn)題[13],如下所示:
(3)
式中:αijk為節(jié)點(diǎn)Vi的父節(jié)點(diǎn)Πi為第j個(gè)組合狀態(tài)時(shí),i取值為k的超參,αijk為Dirichlet分布。超參可以消除過(guò)擬合的原因在于αijk作為虛擬樣本量進(jìn)行參數(shù)學(xué)習(xí),最大化式(3)后,可以得到θijk的MAP估計(jì)如下所示:
(4)
式中:αij為節(jié)點(diǎn)Vi的父節(jié)點(diǎn)Πi為第j個(gè)組合狀態(tài)時(shí)的超參權(quán)值。
專家可以依據(jù)在專業(yè)領(lǐng)域中的理論和經(jīng)驗(yàn)積累,對(duì)BN參數(shù)做出一些約束判斷,這些判斷可以轉(zhuǎn)換為參數(shù)學(xué)習(xí)過(guò)程中的約束條件。常用的約束形式如下。
(1) 范圍約束
定義一個(gè)參數(shù)范圍約束空間如下所示:
0≤α≤θijk≤β≤1
(5)
式中:α和β是約束范圍的邊界。
(2) 不等式約束
定義兩個(gè)參數(shù)之間的大小關(guān)系如下所示:
θijk<θij*k*
(6)
式中:θij*k*為與θijk存在不等關(guān)系的參數(shù)。
(3) 近似相等約束
定義兩個(gè)參數(shù)的近似相等關(guān)系如下所示:
|θijk-θijk*|≤δ
(7)
式中:δ為置信區(qū)間。
(4) 公理約束
定義參數(shù)最基本的概率性質(zhì),即歸一化和非負(fù)性如下所示:
(8)
基于約束的MAP方法是在給定訓(xùn)練樣本之后,利用約束來(lái)對(duì)學(xué)習(xí)過(guò)程進(jìn)行干預(yù)。不論約束形式和先驗(yàn)參數(shù)量化方式有何不同,最終都需要構(gòu)建超參來(lái)進(jìn)行學(xué)習(xí)。如果完全依賴約束,此時(shí)式(3)可以寫為
(9)
(10)
(11)
圖1 超參隸屬度分布圖Fig.1 Hyperparameter membership distribution chart
(12)
式中:Ω為參數(shù)約束集合。當(dāng)同分布中,ri比較大時(shí),式(12)難以求解,因此可以將MAP改寫來(lái)求解,如下所示:
(13)
(14)
(15)
(16)
(17)
綜上,本文提出的模糊MAP(fuzzy MAP, FMAP)估計(jì)的計(jì)算方法為
(18)
由于約束難以完全覆蓋BN中每一個(gè)參數(shù),當(dāng)無(wú)約束時(shí),平滑先驗(yàn)和貝葉斯狄利克雷似然等價(jià)一致聯(lián)合分布(Bayesian Dirichlet with likelihood equivalence and a uniform joint distribution,BDeu)是常用的先驗(yàn)分布,解決了由樣本不足造成的參數(shù)結(jié)果為0的問(wèn)題,一定程度上提高了參數(shù)學(xué)習(xí)的精度。無(wú)約束下MAP計(jì)算方法如下所示:
(19)
式中:當(dāng)λ=1時(shí),為平滑先驗(yàn);當(dāng)λ=(riqi)-1時(shí),為BDeu先驗(yàn),本文選擇λ=1。
綜上,本文提出的FMAP估計(jì)方法如算法1所示。
算法1FMAP輸入 約束Ω,訓(xùn)練數(shù)據(jù)D輸出 參數(shù) θ1. For each Vi of BN2. For each j of Πi3. For each k of ri4. If θijkis not constrained∥如果不存在約束5. θijk←式(19);∥θMAPijk為最終參數(shù)6. Else7. θMLEijk←式(2);∥θMLEijk為最終參數(shù)8. If θMLEijk∈Ω∥如果θMLEijk符合約束9. θijk←θMLEijk;∥θMLEijk為最終參數(shù)10. Else11. θpriorijk←Ω;∥約束量化出先驗(yàn)參數(shù)θpriorijk12. αCij=1;13. While (θijk?Ω)∥交叉驗(yàn)證求式(14)中 αCMINij14. αCMINij=+1;15. θijk=Nijk+ αCMINijθpriorijkNij+ αCMINij;16. End While17. αFij←式(16);18. For each k of ri∥參數(shù)歸一化19. θijk←式(18);∥θFMAPijk為最終參數(shù)20. End For21. End If22. End If23. End For24. End For25. End For
實(shí)驗(yàn)代碼基于BNT工具進(jìn)行實(shí)現(xiàn),運(yùn)行在Matlab 2020上,實(shí)驗(yàn)硬件配置為CPU AMD 5950X和RAM 32G。實(shí)驗(yàn)選取6個(gè)不同規(guī)模的標(biāo)準(zhǔn)BN,通過(guò)對(duì)比不同算法來(lái)驗(yàn)證FMAP的有效性。標(biāo)準(zhǔn)BN[26]信息如表1所示,根據(jù)參數(shù)數(shù)量可將實(shí)驗(yàn)標(biāo)準(zhǔn)網(wǎng)絡(luò)分為小、中、大。
表1 標(biāo)準(zhǔn)BN信息
標(biāo)準(zhǔn)BN的結(jié)構(gòu)和網(wǎng)絡(luò)參數(shù)是已知的,訓(xùn)練數(shù)據(jù)是由BNT[27]工具箱提供的“sample_bnet”函數(shù)根據(jù)標(biāo)準(zhǔn)BN產(chǎn)生。進(jìn)行對(duì)比實(shí)驗(yàn)算法如下:
(1) MLE:純數(shù)據(jù)驅(qū)動(dòng)的學(xué)習(xí)方法,不融合任何先驗(yàn)信息;
(2) MAP:融合先驗(yàn)的參數(shù)學(xué)習(xí)方法,使用平滑先驗(yàn),即αijk=1;
(3) CMLE:結(jié)合約束與CO的方法;
本文實(shí)驗(yàn)通過(guò)相對(duì)熵又稱KL(Kullback-Leibler)散度[28]來(lái)評(píng)價(jià)標(biāo)準(zhǔn)網(wǎng)絡(luò)參數(shù)和學(xué)習(xí)結(jié)果之間的誤差,KL值越低說(shuō)明學(xué)習(xí)結(jié)果精度越高,KL計(jì)算方法如下所示:
(20)
圖2展示了Cancer網(wǎng)絡(luò)的結(jié)構(gòu)和每個(gè)節(jié)點(diǎn)對(duì)應(yīng)的CPT表。依據(jù)約束構(gòu)建原則和圖2中節(jié)點(diǎn)的CPT表,構(gòu)建出表2中Cancer網(wǎng)絡(luò)的正常約束,即η=0,本文實(shí)驗(yàn)中的其他BN約束的構(gòu)建方式與Cancer相同。
圖2 Cancer網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù)Fig.2 Cancer network structure and parameters
表2 Cancer網(wǎng)絡(luò)約束
本文主要研究的是小樣本下參數(shù)學(xué)習(xí)精度問(wèn)題,為此實(shí)驗(yàn)樣本量設(shè)置為100、300、500。通常小樣本下參數(shù)學(xué)習(xí)研究的訓(xùn)練樣本量設(shè)置為50到500,對(duì)于小型網(wǎng)絡(luò),500樣本量依然被認(rèn)為是不充足的。而Cancer 和Earthquake 參數(shù)個(gè)數(shù)都為10,1 000樣本量已經(jīng)相對(duì)充足,在文獻(xiàn)[5]中對(duì)于大型網(wǎng)絡(luò),認(rèn)為10 000為相對(duì)充足的樣本量。因此,對(duì)式(17)中的M,小型網(wǎng)絡(luò)設(shè)置為M=1 000,中型網(wǎng)絡(luò)為M=5 000,大型網(wǎng)絡(luò)為M=10 000。為得到更加穩(wěn)定準(zhǔn)確的實(shí)驗(yàn)結(jié)果,每個(gè)學(xué)習(xí)案例重復(fù)學(xué)習(xí)20次。每次都重新生成訓(xùn)練數(shù)據(jù),20次實(shí)驗(yàn)的方差也將在結(jié)果中顯示。對(duì)于每個(gè)學(xué)習(xí)案例,性能表現(xiàn)最好的算法結(jié)果在表格中加粗表示。
本部分實(shí)驗(yàn)主要驗(yàn)證在正確約束環(huán)境下,即所有約束η=0,FMAP算法是否可以有效提高參數(shù)學(xué)習(xí)的精度。學(xué)習(xí)結(jié)果如表3~表5所示。
表3 100樣本量KL對(duì)比
表4 300樣本量KL對(duì)比
表5 500樣本量KL對(duì)比
通過(guò)表3~表5結(jié)果可以發(fā)現(xiàn),在正確約束實(shí)驗(yàn)中,FMAP的精度表現(xiàn)最好。增加先驗(yàn)的MAP與純數(shù)據(jù)學(xué)習(xí)的MLE相比,在3個(gè)樣本量下精度分別提高了54.3%、35.45%、10.42%。MLE雖然有不錯(cuò)的收斂性,隨著訓(xùn)練樣本量的增加與MAP的差距逐漸減少。但在小樣本量下,由于容易出現(xiàn)一些參數(shù)沒(méi)有學(xué)習(xí)樣本的情況,導(dǎo)致參數(shù)結(jié)果為0,而MAP引入平滑先驗(yàn),有效地解決了這一問(wèn)題。結(jié)合約束的CMLE與MLE相比,在3個(gè)樣本量下精度分別提高了81.06%、78.60%、69.70%。同樣,結(jié)合約束的QMAP與MAP相比,在3個(gè)樣本量下精度分別提高了65.7%、72.3%、76.3%。由此可以看出,加入先驗(yàn)和結(jié)合約束可以提高參數(shù)學(xué)習(xí)的精度。QMAP與CMLE相比,在3個(gè)樣本量下精度分別提高了17.77%、16.57%、29.90%。構(gòu)建模糊超參的FMAP與固定超參權(quán)值的QMAP相比,在3個(gè)樣本量下精度分別提高了21.01%、37.47%、38.40%。
實(shí)際應(yīng)用中,通常會(huì)有噪音的存在,這將挑戰(zhàn)算法的魯棒性。本文部分實(shí)驗(yàn),將在約束中混入20%的一般噪音約束(η=0.2)和10%的極端噪音約束(η=0.4)來(lái)進(jìn)行學(xué)習(xí),以驗(yàn)證算法的魯棒性。本部分實(shí)驗(yàn),只針對(duì)基于約束的算法進(jìn)行對(duì)比。
通過(guò)表6~表8可以發(fā)現(xiàn)在噪音約束下,QMAP與CMLE相比精度分別提高了75.5%、67.18%、50.46%;FMAP與QMAP相比精度分別提高了27.1%、39.36%、46.79%。因此,在噪音約束環(huán)境中,FMAP依然有杰出的精度表現(xiàn)。通過(guò)與正確約束中的3個(gè)算法的學(xué)習(xí)效果比較發(fā)現(xiàn),CMLE受噪音約束影響最嚴(yán)重,QMAP次之,FMAP受到的影響最小。造成這一結(jié)果的原因是,CMLE是以約束為導(dǎo)向,構(gòu)造目標(biāo)函數(shù)來(lái)學(xué)習(xí),對(duì)約束的依賴性極強(qiáng)。因此CMLE容易受到約束質(zhì)量的影響,而CMLE本身并沒(méi)有相關(guān)的設(shè)計(jì)來(lái)應(yīng)對(duì)這一問(wèn)題。對(duì)于QMAP超參權(quán)值使用節(jié)點(diǎn)狀態(tài)的勢(shì),設(shè)置相對(duì)固定,既不能在正確約束中發(fā)揮足夠的干預(yù)效果,也不會(huì)過(guò)分受到噪音約束影響。而本文提出的FMAP通過(guò)引入模糊理論,提高了約束使用的精準(zhǔn)度和可解釋性,為超參的構(gòu)建提供了更加靈活的方法。
表6 噪音約束下100樣本量結(jié)果對(duì)比
續(xù)表6
表7 噪音約束下300樣本量結(jié)果對(duì)比
表8 噪音約束下500樣本量結(jié)果
續(xù)表8
精度和時(shí)間是檢驗(yàn)算法常用的指標(biāo),上文對(duì)算法的有效性和魯棒性進(jìn)行了驗(yàn)證,本部分將對(duì)算法運(yùn)行時(shí)間進(jìn)行分析。為節(jié)省篇幅,本文只展示最有代表性的最小樣本量和最大樣本量的結(jié)果,如表9和表10所示。通過(guò)表9和表10可以看出,對(duì)學(xué)習(xí)過(guò)程不做任何干預(yù)的MLE運(yùn)行時(shí)間最優(yōu),本文提出的FMAP算法排在第4位,消耗時(shí)間最多的算法是CMLE。CMLE更多的時(shí)間消耗在構(gòu)建CO和求解上,QMAP在先驗(yàn)參數(shù)的量化過(guò)程中消耗了一定的時(shí)間,FMAP需要更多的時(shí)間來(lái)處理交叉驗(yàn)證和模糊超參求解。而本文是解決小樣本下的參數(shù)學(xué)習(xí)問(wèn)題,在實(shí)驗(yàn)樣本為500時(shí),即使對(duì)于最大的標(biāo)準(zhǔn)網(wǎng)絡(luò)Andes的算法運(yùn)行時(shí)間,FMAP也僅為2.38 s,運(yùn)行時(shí)間雖然為MLE的1.98倍,但也是僅多消耗了1.18 s,比QMAP多消耗了0.77 s。對(duì)于小樣本下參數(shù)學(xué)習(xí)這一特殊的問(wèn)題,多數(shù)算法的運(yùn)行時(shí)間都在可接受范圍之內(nèi),因此FMAP所多消耗的時(shí)間是可以接受的。
表9 100樣本量下各算法運(yùn)行時(shí)間
表10 500樣本量下各算法運(yùn)行時(shí)間
BN在網(wǎng)絡(luò)安全領(lǐng)域中的應(yīng)用,主要是結(jié)合攻擊圖模型,進(jìn)行網(wǎng)絡(luò)安全預(yù)測(cè)評(píng)估。但由于待評(píng)估目標(biāo)網(wǎng)絡(luò)中歷史數(shù)據(jù)獲取困難,網(wǎng)絡(luò)參數(shù)基本依靠專家經(jīng)驗(yàn)來(lái)得到。參數(shù)主觀性強(qiáng),導(dǎo)致之后評(píng)估結(jié)果的客觀性不足,如何獲取更加客觀準(zhǔn)確的參數(shù)是目前網(wǎng)絡(luò)安全評(píng)估領(lǐng)域所要解決的問(wèn)題之一[29-31]。網(wǎng)絡(luò)攻擊主要通過(guò)漏洞來(lái)進(jìn)行,但各種因素導(dǎo)致網(wǎng)絡(luò)漏洞無(wú)法完全修復(fù),從而為攻擊的發(fā)生提供條件。網(wǎng)絡(luò)的拓?fù)鋱D可以認(rèn)為是確定的BN結(jié)構(gòu),網(wǎng)絡(luò)中的漏洞為BN中的節(jié)點(diǎn),節(jié)點(diǎn)間的因果關(guān)系由物理連接所確定。
遷移學(xué)習(xí)[23]是將已得到的知識(shí),應(yīng)用到新的問(wèn)題上,核心是找到已有知識(shí)和新問(wèn)題之間的相似性。遷移學(xué)習(xí)可以分為基于樣本的遷移、基于特征的遷移、基于模型的遷移,以及基于關(guān)系的遷移。本文使用的是樣本遷移,將相同漏洞的數(shù)據(jù)遷移進(jìn)行學(xué)習(xí)。BN攻擊圖中只考慮遷移樣本和節(jié)點(diǎn)參數(shù)為Πi=1的情況,對(duì)于網(wǎng)絡(luò)攻擊圖而言,Πi的特殊之處為任意父節(jié)點(diǎn)為1即可,即Πi節(jié)點(diǎn)狀態(tài)或關(guān)系為1,并不考慮Πi=0的情況,即Πi所有節(jié)點(diǎn)狀態(tài)與關(guān)系為0。若Hi為網(wǎng)絡(luò)中的節(jié)點(diǎn),對(duì)于P(Hi=0|Πi=1)和P(Hi=1|Πi=1)兩者符合概率的公理約束,對(duì)節(jié)點(diǎn)的危險(xiǎn)性預(yù)測(cè)僅對(duì)P(Hi=1|Πi=1)進(jìn)行分析即可。
通常攻擊者為達(dá)到攻擊目的,一般需要通過(guò)對(duì)多個(gè)漏洞的連續(xù)利用,用已占有資源節(jié)點(diǎn)作為跳板,去占有其他資源,直到完成攻擊目的形成攻擊路徑。因此,路徑可達(dá)概率通常作為路徑評(píng)估的標(biāo)準(zhǔn),路徑可達(dá)概率θPath計(jì)算方法如下所示:
θPath=P(H1)×P(H2|Π2)×…×P(Hi|Πi)×…×P(Hn|Πn)
(21)
由于網(wǎng)絡(luò)安全領(lǐng)域缺乏驗(yàn)證數(shù)據(jù)集,因此為了驗(yàn)證本文所提的安全評(píng)估方法,本文構(gòu)建以歸一化通用漏洞評(píng)分系統(tǒng)(common vulnerability scoring system, CVSS)[32]的評(píng)分為BN參數(shù)的仿真平臺(tái),來(lái)進(jìn)行閉環(huán)驗(yàn)證。CVSS是權(quán)威的漏洞嚴(yán)重性評(píng)估系統(tǒng),作為行業(yè)公開(kāi)的評(píng)分標(biāo)準(zhǔn),為網(wǎng)絡(luò)安全評(píng)估的量化提供了一個(gè)開(kāi)放的計(jì)算框架。CVSS將漏洞被利用的嚴(yán)重程度歸于一個(gè)[0,10]數(shù)值區(qū)間,分值越高說(shuō)明漏洞的危險(xiǎn)程度越大。圖3是一個(gè)BN攻擊圖,圖中除H1和H17之外,每個(gè)節(jié)點(diǎn)代表網(wǎng)絡(luò)中的漏洞,H1為攻擊者的攻擊發(fā)起節(jié)點(diǎn),H17為攻擊者最終要到達(dá)的目標(biāo)節(jié)點(diǎn)。表11為圖3中除初始節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)外,節(jié)點(diǎn)的漏洞信息表。表11中包括通用漏洞披露(common vulnerabilities & exposures, CVE) 標(biāo)號(hào)、CVSS評(píng)分歸一化近似約束。假設(shè)漏洞對(duì)于攻擊者為可用狀態(tài)時(shí)標(biāo)記為1,不可用為0。P(H6=1|Π6=1)表示節(jié)點(diǎn)H6被“攻占”成功的概率,其中Π6=1表示節(jié)點(diǎn)H6的前序節(jié)點(diǎn)已經(jīng)被“占領(lǐng)”,即H2或H3關(guān)系為1。
圖3 BN攻擊圖Fig.3 BN attack diagram
表11 漏洞信息及約束
通過(guò)FMAP算法分別進(jìn)行4個(gè)樣本量下的學(xué)習(xí),P(Hi=1|Πi=1)結(jié)果如表12和表13所示。
表12 節(jié)點(diǎn)H2~H9參數(shù)學(xué)習(xí)結(jié)果
表13 節(jié)點(diǎn)H10~H16參數(shù)學(xué)習(xí)結(jié)果
由于網(wǎng)絡(luò)中漏洞很多,在有限時(shí)間內(nèi),安全管理員難以完全處理每一個(gè)漏洞。因此,如果能有效地預(yù)測(cè)出高危節(jié)點(diǎn),即P(Hi=1|Πi=1)最大的節(jié)點(diǎn),將會(huì)為網(wǎng)絡(luò)安全管理員提供有益的幫助。本文將各樣本量下的P(Hi=1|Πi=1)學(xué)習(xí)結(jié)果進(jìn)行排序,并和CVSS評(píng)分的前10節(jié)點(diǎn)對(duì)比,來(lái)驗(yàn)證學(xué)習(xí)結(jié)果的有效性。由表12和表13可以看出,在樣本量為30時(shí),預(yù)測(cè)正確率為90%,其他樣本量下為100%。
路徑可達(dá)概率是網(wǎng)絡(luò)攻擊預(yù)測(cè)重要參考指標(biāo),本文假設(shè)H17為網(wǎng)絡(luò)中目標(biāo)節(jié)點(diǎn),攻擊者可選擇通過(guò)網(wǎng)絡(luò)中不同的路徑進(jìn)行攻擊從而到達(dá)目標(biāo)節(jié)點(diǎn),實(shí)現(xiàn)攻擊目的。圖4所示為9條路徑分別在不同樣本量下參數(shù)計(jì)算出的路徑可達(dá)概率。可以看出,4個(gè)樣本量評(píng)估出得分最高的5條路徑結(jié)果和CVSS一致,在30樣本量下的預(yù)測(cè)成功率為80%,而其他的樣本量下完全一致,同時(shí)隨著樣本量的提高,評(píng)估結(jié)果和CVSS更加相近。
圖4 網(wǎng)絡(luò)路徑可達(dá)概率Fig.4 Network path accessibility probability
本文提出一種基于模糊先驗(yàn)約束的BN參數(shù)學(xué)習(xí)方法,來(lái)解決小樣本下BN參數(shù)學(xué)習(xí)問(wèn)題。將隸屬度函數(shù)和實(shí)際樣本量引入到構(gòu)造超參的構(gòu)建中,從而平衡參數(shù)學(xué)習(xí)過(guò)程中的過(guò)擬合與欠擬合問(wèn)題。實(shí)驗(yàn)證明,本文算法可以有效地提高參數(shù)學(xué)習(xí)結(jié)果的精度,并擁有杰出的魯棒性。同時(shí),將本文方法引入到網(wǎng)絡(luò)安全評(píng)估中,將CVSS評(píng)分作為專家先驗(yàn),利用漏洞編號(hào)遷移樣本進(jìn)行參數(shù)學(xué)習(xí)。本文算法雖然可以有效地提高小樣本下參數(shù)學(xué)習(xí)的精度,但本文提出的模糊超參構(gòu)建過(guò)程相對(duì)復(fù)雜,需要消耗更多的時(shí)間。