王碩,湯光明,寇廣,2,宋海濤
(1. 解放軍信息工程大學(xué),河南 鄭州 450001;2. 信息保障技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100072)
基于因果知識(shí)網(wǎng)絡(luò)的攻擊路徑預(yù)測(cè)方法
王碩1,湯光明1,寇廣1,2,宋海濤1
(1. 解放軍信息工程大學(xué),河南 鄭州 450001;2. 信息保障技術(shù)重點(diǎn)實(shí)驗(yàn)室,北京 100072)
針對(duì)現(xiàn)有攻擊路徑預(yù)測(cè)方法無(wú)法準(zhǔn)確反映攻擊者攻擊能力對(duì)后續(xù)攻擊路徑的影響,提出了基于因果知識(shí)網(wǎng)絡(luò)的攻擊路徑預(yù)測(cè)方法。借助因果知識(shí)網(wǎng)絡(luò),首先通過(guò)告警映射識(shí)別已發(fā)生的攻擊行為;然后分析推斷攻擊者能力等級(jí),進(jìn)而根據(jù)攻擊者能力等級(jí)動(dòng)態(tài)調(diào)整概率知識(shí)分布;最后利用改進(jìn)的Dijkstra算法計(jì)算出最有可能的攻擊路徑。實(shí)驗(yàn)結(jié)果表明,該方法符合網(wǎng)絡(luò)對(duì)抗實(shí)際環(huán)境,且能提高攻擊路徑預(yù)測(cè)的準(zhǔn)確度。
攻擊路徑預(yù)測(cè);因果知識(shí)網(wǎng)絡(luò);攻擊者能力;概率知識(shí)分布;Dijkstra算法
隨著網(wǎng)絡(luò)攻擊技術(shù)的不斷發(fā)展,多步性成為目前網(wǎng)絡(luò)攻擊行為的主要特點(diǎn)之一。攻擊行為的多步性是指攻擊者利用目標(biāo)網(wǎng)絡(luò)中的一些漏洞,通過(guò)實(shí)施蓄意的多步驟攻擊行為來(lái)達(dá)到最終的攻擊目的。具有多步性的攻擊行為簡(jiǎn)稱為多步攻擊,它給政府、企業(yè)乃至個(gè)人帶來(lái)了巨大的威脅,如Zeus僵尸網(wǎng)絡(luò)通過(guò)掃描探測(cè)、溢出攻擊、感染目標(biāo)主機(jī)、病毒傳播和竊取用戶信息這 5個(gè)攻擊步驟使數(shù)以萬(wàn)計(jì)的網(wǎng)民遭受了無(wú)法挽回的經(jīng)濟(jì)損失[1]。目前,威脅極大的APT攻擊也屬多步攻擊范疇。多步攻擊威脅受到廣泛的關(guān)注,防護(hù)多步攻擊刻不容緩。攻擊路徑預(yù)測(cè)旨在通過(guò)告警關(guān)聯(lián)技術(shù)分析已發(fā)生的攻擊行為,揭示其中隱藏的相關(guān)邏輯,構(gòu)建攻擊場(chǎng)景,進(jìn)而推測(cè)攻擊者后續(xù)的攻擊步驟,為網(wǎng)絡(luò)安全主動(dòng)防御提供重要依據(jù),成為目前應(yīng)對(duì)多步攻擊威脅的重要手段之一。
攻擊路徑預(yù)測(cè)的關(guān)鍵分為2個(gè)部分:1) 理解當(dāng)前已發(fā)生的攻擊行為;2) 預(yù)測(cè)攻擊者未來(lái)可能實(shí)施的攻擊步驟。目前,針對(duì)第一部分的研究主要是通過(guò)關(guān)聯(lián)告警構(gòu)建攻擊場(chǎng)景。具體而言,分為數(shù)據(jù)挖掘、事先構(gòu)建攻擊過(guò)程和因果關(guān)聯(lián)。數(shù)據(jù)挖掘的方法主要是通過(guò)機(jī)器學(xué)習(xí)算法發(fā)現(xiàn)告警中隱藏的攻擊行為模式,形成過(guò)濾或關(guān)聯(lián)規(guī)則,在此基礎(chǔ)上進(jìn)行攻擊場(chǎng)景構(gòu)建,如Qin等[2]的時(shí)間序列模型和梅海彬等[3]利用告警間相似度函數(shù)來(lái)構(gòu)建攻擊活動(dòng)序列集的方法。此種方法依賴專家知識(shí)較少,但是存在準(zhǔn)確度低、結(jié)果難以理解等缺陷。事先構(gòu)建攻擊過(guò)程的方法則大多通過(guò)專家知識(shí)來(lái)得到各種攻擊過(guò)程模板,然后將新的告警同這些攻擊過(guò)程模板相匹配,進(jìn)行實(shí)時(shí)關(guān)聯(lián)[4]。這種方法的難點(diǎn)是如何獲得用于描述攻擊過(guò)程的關(guān)聯(lián)規(guī)則,此外,這種方法無(wú)法檢測(cè)出未知攻擊行為。因果關(guān)聯(lián)的方法是利用各個(gè)攻擊步驟之間的因果邏輯關(guān)系,通過(guò)制定因果關(guān)聯(lián)規(guī)則來(lái)構(gòu)建攻擊場(chǎng)景。此方法成為目前攻擊場(chǎng)景構(gòu)建的主流方法,具有代表性的是 Jajodia等[5]的攻擊圖模型和Yu等[6]的隱彩色Petri網(wǎng)絡(luò)。前者通過(guò)有向圖描述不同攻擊步驟之間依賴關(guān)系,結(jié)合目標(biāo)網(wǎng)絡(luò)進(jìn)行告警關(guān)聯(lián)。而后者將資源狀態(tài)、攻擊行為及攻擊證據(jù)作為彩色 Petri網(wǎng)絡(luò)的不同類型節(jié)點(diǎn),并將其互相關(guān)聯(lián)以完成攻擊預(yù)測(cè)。針對(duì)第二部分的研究主要是在第一部分的基礎(chǔ)上,設(shè)計(jì)相應(yīng)的推理規(guī)則以實(shí)現(xiàn)對(duì)后續(xù)攻擊路徑的預(yù)測(cè)。Wang等[7]根據(jù)通用漏洞評(píng)分系統(tǒng)(CVSS, common vulnerability scoring system)對(duì)漏洞復(fù)雜度的評(píng)分,賦予攻擊圖以概率屬性,并定義累積概率來(lái)計(jì)算整個(gè)網(wǎng)絡(luò)的安全屬性。然而該方法忽略了漏報(bào)、誤報(bào)等不確定事件對(duì)概率的影響。在Wang等的基礎(chǔ)上,蘇婷婷等[8]將攻擊圖直觀地表示為屬性鄰接矩陣,并通過(guò)矩陣算法計(jì)算攻擊成功的概率。陳小軍等[9]則利用累積概率計(jì)算目標(biāo)攻擊節(jié)點(diǎn)的最大可達(dá)概率,有效推斷攻擊意圖和計(jì)算攻擊路徑。呂慧穎等[10]深入分析了網(wǎng)絡(luò)對(duì)抗的時(shí)空特性,利用威脅狀態(tài)轉(zhuǎn)移圖挖掘威脅事件的時(shí)空關(guān)聯(lián)關(guān)系,實(shí)時(shí)識(shí)別威脅狀態(tài)、預(yù)測(cè)攻擊路徑。然而,由于網(wǎng)絡(luò)攻防過(guò)程的動(dòng)態(tài)性和不確定性,導(dǎo)致攻擊圖節(jié)點(diǎn)概率不能客觀反映攻防雙方對(duì)抗?fàn)顟B(tài),從而影響攻擊路徑預(yù)測(cè)的準(zhǔn)確性。針對(duì)此問(wèn)題,Xie等[11]首先深入分析了攻擊圖中的3種不確定性,即攻擊圖結(jié)構(gòu)的不確定性、攻擊行為發(fā)生的不確定性以及觸發(fā)告警的不確定性,并考慮了它們對(duì)攻擊路徑預(yù)測(cè)的影響。張少俊等[12]提出了一個(gè)在滿足觀測(cè)事件偏序條件下,利用貝葉斯推理計(jì)算攻擊圖節(jié)點(diǎn)的置信度方法,用于提高不確定性處理的準(zhǔn)確度。Abraham等[13]通過(guò)引入漏洞生命周期來(lái)實(shí)現(xiàn)時(shí)變的攻擊路徑預(yù)測(cè)。Fredj[14]則提出利用攻擊行為的危害大小來(lái)區(qū)分不同的攻擊者。馮學(xué)偉等[15]通過(guò)構(gòu)建馬爾可夫鏈模型,利用告警流挖掘不同攻擊類型之間的轉(zhuǎn)移概率,一定程度上解決了人工設(shè)定概率帶來(lái)的主觀性缺陷。然而,目前的研究通常是靜態(tài)的分析,不能根據(jù)攻擊行為和防御措施及時(shí)調(diào)整相關(guān)概率的生成,不能反映攻擊者攻擊能力的不同對(duì)后續(xù)攻擊路徑的影響,影響了攻擊路徑預(yù)測(cè)的準(zhǔn)確性。
基于以上分析,本文充分考慮了網(wǎng)絡(luò)攻防實(shí)戰(zhàn)環(huán)境,提出了基于因果知識(shí)網(wǎng)絡(luò)的攻擊路徑預(yù)測(cè)方法。借助因果知識(shí)網(wǎng)絡(luò),綜合利用圖關(guān)系進(jìn)行告警映射,實(shí)時(shí)檢測(cè)已發(fā)生的攻擊行為。在此基礎(chǔ)上,推斷攻擊者能力等級(jí),進(jìn)而根據(jù)攻擊者能力等級(jí)自適應(yīng)地調(diào)整攻擊行為發(fā)生及成功的概率,最終利用改進(jìn)的Dijkstra算法計(jì)算得出攻擊者最有可能的后續(xù)攻擊路徑。
定義1因果知識(shí)網(wǎng)絡(luò)(CKN, causal knowledge net),CKN=(N,E,Δ)。CKN 為有向無(wú)環(huán)圖。
3)Δ為概率知識(shí)分布,。其中,Δ1是依附于有向邊 E1上的概率知識(shí),Δ1(ij)表示在狀態(tài)si下可能發(fā)生后續(xù)攻擊aj的概率。Δ2是依附于有向邊 E2上的概率知識(shí),Δ2(ij)表示在攻擊行為 ai發(fā)生后達(dá)到下一狀態(tài)sj的概率。Δ3是依附于有向邊E3上的概率知識(shí),Δ3(i)表示狀態(tài)型告警 asi出現(xiàn)時(shí)能證明狀態(tài) si為 true的概率。Δ4是依附于有向邊E4上的概率知識(shí),Δ4(i)表示事件型告警 aei出現(xiàn)時(shí)能證明攻擊行為ai發(fā)生的概率。
本模型通過(guò)概率知識(shí)分布來(lái)推理實(shí)時(shí)的攻擊行為和預(yù)測(cè)后續(xù)攻擊路徑。對(duì)于攻擊行為節(jié)點(diǎn),Δ4的推理優(yōu)先級(jí)高于Δ1,即當(dāng)事件型告警出現(xiàn)時(shí),可以不用考慮其前置條件是否滿足,即可推斷該攻擊行為可能發(fā)生了;否則,通過(guò)已經(jīng)滿足的狀態(tài)條件來(lái)推斷攻擊行為發(fā)生的可能性。對(duì)于狀態(tài)節(jié)點(diǎn)來(lái)說(shuō),Δ3的推理優(yōu)先級(jí)高于Δ2,即狀態(tài)型告警出現(xiàn)時(shí),可以確定該狀態(tài)為true,同時(shí)證明相應(yīng)攻擊已經(jīng)發(fā)生且成功;否則,通過(guò)攻擊行為發(fā)生和成功的概率來(lái)推斷相應(yīng)狀態(tài)為true的可能性。
因果知識(shí)網(wǎng)絡(luò)的構(gòu)建分為2個(gè)部分:網(wǎng)絡(luò)基本結(jié)構(gòu)的確定和概率知識(shí)分布Δ的生成。本文的網(wǎng)絡(luò)基本結(jié)構(gòu)假定利用專家知識(shí)庫(kù)確定,而重點(diǎn)研究概率知識(shí)分布Δ的生成。
由 2.1 節(jié)知Δ=(Δ1,Δ2,Δ3,Δ4)。
1)Δ3為利用狀態(tài)型告警推斷相應(yīng)狀態(tài)為true的概率,由IDS的特性知,此概率常置為1,即狀態(tài)型告警的出現(xiàn)能完全證明相應(yīng)的狀態(tài)為true。
2)Δ4為利用事件型告警推斷攻擊行為發(fā)生的概率,由于IDS對(duì)攻擊行為的檢測(cè)存在誤差,此概率分3種情況進(jìn)行修正。
①正常情況
正常情況的形式化描述為:aei∈AET且Pre(ai)=true。由于IDS告警不能完全證明攻擊行為已經(jīng)發(fā)生,為了客觀描述這種不確定性,結(jié)合貝葉斯定理,給出了事件型告警出現(xiàn)時(shí)推斷攻擊行為發(fā)生的概率,如式(1)所示。
其中,o(ai)為IDS設(shè)備對(duì)ai的漏報(bào)率;d(ai)為IDS設(shè)備對(duì)ai的檢測(cè)率,m(ai)為IDS設(shè)備對(duì)ai的誤報(bào)率,一般與IDS的性能有關(guān);P(ai)為攻擊行為ai的先驗(yàn)概率。
②誤報(bào)情況
誤報(bào)情況的形式化描述為:aei∈AET且Pre(ai)=false,即攻擊的前置條件不滿足卻檢測(cè)到告警。處理方法為直接去除。
③漏報(bào)情況
漏報(bào)情況的形式化描述為:asi∈AST且 Pre(si)=false,即攻擊行為已經(jīng)發(fā)生且成功,但沒(méi)有產(chǎn)生告警。Pre(si)中的元素之間為“或”的關(guān)系,即只要一個(gè)攻擊行為節(jié)點(diǎn)為真就使Pre(si)=true。處理方法為根據(jù)因果知識(shí)網(wǎng)絡(luò)以一定的概率補(bǔ)全。假如狀態(tài)節(jié)點(diǎn) si為假,但沒(méi)有產(chǎn)生對(duì)應(yīng)的事件型告警,以Pre(si)包括 2個(gè)攻擊行為節(jié)點(diǎn)為例介紹補(bǔ)全方法。首先添加ai和aj,然后,由貝葉斯定理知
P(ai|asi)+P(aj|asj)=1,則ai和aj這2個(gè)攻擊行為發(fā)生的概率為
其中,d(ai)和 d(aj)分別為 IDS設(shè)備對(duì)攻擊行為 ai和aj的檢測(cè)率。
3)Δ1表示前置條件滿足時(shí)后續(xù)攻擊行為發(fā)生的概率,Δ2則是攻擊行為發(fā)生時(shí)后續(xù)狀態(tài)為true的概率,即攻擊行為成功的概率。Δ1和Δ2是緊密聯(lián)系的,在攻擊路徑推理中往往是一起考慮的,即用它們的乘積Δ1×Δ2表示攻擊行為發(fā)生且成功的概率,記Δ12=Δ1×Δ2。目前確定Δ12的方法主要是依據(jù)攻擊行為復(fù)雜度來(lái)估計(jì)。然而在網(wǎng)絡(luò)攻防實(shí)戰(zhàn)中,Δ12不僅與攻擊行為復(fù)雜度有關(guān),還與攻擊者能力有關(guān)。具有不同攻擊能力的攻擊者對(duì)同一漏洞攻擊成功的可能性必然不同。鑒于此,本文綜合考慮攻擊者能力等級(jí)和攻擊行為復(fù)雜度這2個(gè)方面,提出一種更加合理的Δ12確定方法,符合網(wǎng)絡(luò)對(duì)抗實(shí)戰(zhàn)的實(shí)際。
定義3攻擊者能力等級(jí)Cap = {low, mid, high},從網(wǎng)絡(luò)對(duì)抗實(shí)戰(zhàn)中抽象出來(lái)用于刻畫(huà)不同攻擊者攻擊能力高低的變量。本文將攻擊者能力等級(jí)分為低(low)、中(mid)、高(high)3個(gè)等級(jí)。于是,攻擊行為 ai發(fā)生且成功的概率Δ12(ai)可由式(6)確定。
其中,Cpx(ai)為ai的攻擊行為復(fù)雜度,Cap(attacker)為攻擊者能力等級(jí)。攻擊行為發(fā)生且成功的概率的確定依據(jù)如表1所示。
表1攻擊行為發(fā)生且成功的概率Δ12(ai)的確定依據(jù)
攻擊路徑預(yù)測(cè)是通過(guò)分析已發(fā)生的攻擊行為,借助因果知識(shí)網(wǎng)絡(luò),利用概率知識(shí)進(jìn)行推理預(yù)測(cè)的過(guò)程。本文首先通過(guò)告警映射識(shí)別已發(fā)生的攻擊行為,即實(shí)時(shí)攻擊跡,然后根據(jù)攻擊跡動(dòng)態(tài)推斷攻擊者能力等級(jí),進(jìn)而自適應(yīng)地調(diào)整概率知識(shí)分布,最后利用概率推理確定最有可能的后續(xù)攻擊路徑。
定義4告警跡Alarm=(AS,AE),其中,AS為狀態(tài)型告警集合,AE為事件型告警集合。特別地,T時(shí)刻的狀態(tài)型告警集合為 AST={asi|i=1,2,…},T時(shí)刻的事件型告警集合為,則T時(shí)刻的告警跡表示為
告警跡是通過(guò)融合多源IDS的告警并進(jìn)行漏報(bào)誤報(bào)處理后的告警集合,攻擊跡則反映了攻擊者已完成的攻擊行為,一方面作為推斷攻擊者能力等級(jí)的依據(jù),另一方面是預(yù)測(cè)攻擊者后續(xù)攻擊路徑的基礎(chǔ)。實(shí)時(shí)攻擊跡獲取的本質(zhì)是在 CKN的基礎(chǔ)上建立由實(shí)時(shí)告警跡AlarmT到實(shí)時(shí)攻擊跡AttackT的映射,具體如算法1所示。
算法1實(shí)時(shí)攻擊跡識(shí)別方法
輸入因果知識(shí)網(wǎng)絡(luò) CKN=(N,E,Δ),T時(shí)刻告警跡,判定攻擊行為發(fā)生的閾值ε;
6) end for
7) for(每一個(gè) aei∈AET)
10) end for
11) return AttackT;
算法1在獲取T時(shí)刻的攻擊跡時(shí),為了避免重復(fù)計(jì)算,初始化AttackT為AttackT?1,很好地繼承了前一時(shí)刻的計(jì)算結(jié)果,提高了算法的運(yùn)算效率。第3)行是通過(guò)狀態(tài)型告警生成 ST;第 4)行生成攻擊發(fā)生且成功地攻擊行為集合 A″;第 7)行~第 9)行生成攻擊發(fā)生但失敗的攻擊行為集合 A′。算法復(fù)雜度為O(as_num·ST_num+ae_num·A_num)。
定義6攻擊行為結(jié)果Res∈{Lsuc, Lfail, Msuc, Mfail,Hsuc, Hfail}。其中,Lsuc表示攻擊者成功實(shí)施一次攻擊行為復(fù)雜度為low的攻擊,Mfail表示攻擊者失敗實(shí)施一次攻擊行為復(fù)雜度為mid的攻擊,以此類推。
攻擊行為結(jié)果是對(duì)實(shí)時(shí)攻擊跡的抽象,能夠直觀反映攻擊者實(shí)際的攻擊狀況,從而為推斷攻擊者能力等級(jí)提供依據(jù)。攻擊行為結(jié)果確定方法如式(7)所示。
由于網(wǎng)絡(luò)攻防的實(shí)時(shí)動(dòng)態(tài)變化,攻擊者能力等級(jí)與攻防雙方的對(duì)抗活動(dòng)緊密相關(guān),且具有客觀相對(duì)性,故攻擊者所處不同能力等級(jí)的先驗(yàn)概率相等。由貝葉斯定理得出以下結(jié)論。
定理 1由同一攻擊行為結(jié)果推斷出的攻擊者能力等級(jí)的概率分布正比于攻擊者實(shí)施此攻擊成功或失敗的概率分布。
證明設(shè)同一攻擊行為結(jié)果Res(ai),則由Res(ai)所推斷的攻擊者能力等級(jí)的概率為 P(Cap(attacker)|Res(ai)),攻擊成功的概率為f(Cpx(ai),Cap(attacker)),攻擊失敗的概率為1?f(Cpx(ai),Cap (attacker))。由貝葉斯定理知
又由于攻擊者所處的不同能力等級(jí)的先驗(yàn)概率P(Cap(attacker)相等,故
而當(dāng)Res∈{Lsuc, Msuc, Hsuc}時(shí),
于是,
同理,當(dāng)Res∈{Lfail, Mfail, Hfail}時(shí),
又有
綜上得證。
由定理1能夠計(jì)算得出由不同攻擊行為結(jié)果推斷攻擊者能力等級(jí)的概率分布,計(jì)算結(jié)果如表2所示。
表2不同攻擊行為結(jié)果推斷攻擊者能力等級(jí)的概率分布
攻擊路徑實(shí)時(shí)預(yù)測(cè)的形式化表述為:已知因果知識(shí)網(wǎng)絡(luò)CKN=(N,E,Δ)、T時(shí)刻的攻擊跡AttackT、T時(shí)刻的攻擊者能力等級(jí)CapT和攻擊目標(biāo)S[y],求攻擊者從目前狀態(tài)到達(dá)目標(biāo)S[y]一條攻擊路徑,使攻擊成功的概率最大。
為了解決該問(wèn)題,首先定義概率鄰接矩陣和特殊攻擊行為節(jié)點(diǎn)列表,然后給出攻擊路徑實(shí)時(shí)預(yù)測(cè)算法,求達(dá)目標(biāo)S[y]的最大可能攻擊路徑及其攻擊成功的概率。
定義7概率鄰接矩陣G。 設(shè)CKN有n個(gè)狀態(tài)型節(jié)點(diǎn),則G是一個(gè)n×n的矩陣, gij表示從狀態(tài)型節(jié)點(diǎn)i到狀態(tài)型節(jié)點(diǎn)j的攻擊行為,如果Post(i)∩Pre(j)=?,即表示沒(méi)有攻擊行為節(jié)點(diǎn)使?fàn)顟B(tài)由 i轉(zhuǎn)移到j(luò),則gij=0;如果Post(i)∩Pre(j)= aij,即存在攻擊行為aij能使?fàn)顟B(tài)由i轉(zhuǎn)移到j(luò),則gij=Δ12(aij)。在概率鄰接矩陣中忽略特殊攻擊行為節(jié)點(diǎn)。
定義 8特殊攻擊行為節(jié)點(diǎn)列表 L。對(duì)于特殊攻擊行為節(jié)點(diǎn) ai,用三元組 L(ai)=(Pre(ai),Post(ai),Δ12(ai))表示。其中,Pre(ai)表示其前置條件,即不少于 2個(gè)的狀態(tài)節(jié)點(diǎn);Post(ai)表示其后置條件;Δ12(ai)表示攻擊行為 ai發(fā)生且成功的概率。如圖 1中的 a11為特殊攻擊行為節(jié)點(diǎn),則其三元組記為(S5∪S6,S9,Δ12(a11))。
圖1因果知識(shí)網(wǎng)絡(luò)結(jié)構(gòu)
圖1表示一個(gè)因果知識(shí)網(wǎng)絡(luò)結(jié)構(gòu),其中,圓表示狀態(tài)節(jié)點(diǎn),正方形表示攻擊行為節(jié)點(diǎn)。設(shè)a1、a3、a6攻擊行為復(fù)雜度為 low;a2、a4、a5、a7、a8、a9、a10、a13攻擊行為復(fù)雜度為 mid;a11、a12攻擊行為復(fù)雜度為high。對(duì)于一個(gè)攻擊能力等級(jí)為mid的攻擊者而言,特殊攻擊行為節(jié)點(diǎn)列表為(S5∪S6,S9,0.3),概率鄰接矩陣如圖2所示。
圖2概率鄰接矩陣
經(jīng)典的Dijkstra算法常用于計(jì)算有向圖中一個(gè)頂點(diǎn)到其他所有頂點(diǎn)的最短路徑。攻擊路徑預(yù)測(cè)算法的本質(zhì)同Dijkstra算法類似,只是由于特殊攻擊行為節(jié)點(diǎn)的存在,使常規(guī)的鄰接矩陣無(wú)法完整表示攻擊信息,且攻擊路徑預(yù)測(cè)算法只需計(jì)算目標(biāo)節(jié)點(diǎn)與攻擊跡中集合S的最短攻擊路徑。因此,本文在Dijkstra算法的基礎(chǔ)上,首先利用概率鄰接矩陣求可能的攻擊路徑預(yù)測(cè)結(jié)果,然后結(jié)合特殊攻擊行為節(jié)點(diǎn)列表進(jìn)行修正來(lái)實(shí)現(xiàn)對(duì)攻擊路徑的實(shí)時(shí)預(yù)測(cè)。具體算法如下。
算法2攻擊路徑實(shí)時(shí)預(yù)測(cè)算法
輸入概率鄰接矩陣G,特殊攻擊行為節(jié)點(diǎn)列表L,攻擊目標(biāo)S[y],T時(shí)刻的攻擊跡AttackT;
輸出最大可能攻擊路徑 Path及攻擊成功的概率MaxProb。
1) (Path,MaxProb)= ProbPath[S[y]];
2) if (存在特殊攻擊行為節(jié)點(diǎn) ai在路徑ProbPath[S[y]].Path中)
3) Prob(ai)=Δ12(ai) ΠProbPath(S[i].MaxProb)其中,S[i]∈Pre(ai);
4) if (Prob(ai)>ProbPath[Post(ai)].MaxProb);
5) Path=(PathPath[L.Post(ai)])∪each Path[S[i]];
6) MaxProb = MaxProb / ProbPath [Post(ai)].MaxProb·Prob(ai); //更新路徑及概率
7) return Path and MaxProb;
求解可能攻擊路徑函數(shù)ProbPath的定義如下。
1) ProbPath (S[x])
2) Path=null; MaxProb=0; add S[x]to Path0;
3) for (int i=x?1; i>0; i??)
4)float MaxProb0=0; int u=x;
5)for (int j=1; j<n; ++j)
6)if(S[j]?Path0amp;amp; Prob[j]>0)
7)u=j; MaxProb0= Prob[j];
8)end for
9)add S[u]to Path0;//將節(jié)點(diǎn)加入路徑中
10) for (int j=1; j<n; j++)
11)if (S[j]?Path0amp;amp; G[j][u]>0)
12)if (Prob[u]G[j][u]>Prob[j])
13)Prob[j]=Prob[u]G[j][u];
14)end for
15)if (S[u]∈AttackT)
16)Path =Path0; MaxProb =MaxProb0;
17) end for
18) return (Path, MaxProb); //返回有效路徑及其攻擊成功的概率
算法2借鑒了Dijkstra算法在求有向圖中單源最短路徑的有效性,設(shè)計(jì)了ProbPath函數(shù)來(lái)計(jì)算概率鄰接矩陣中源到點(diǎn)集之間的最短路徑。整個(gè)算法主要分為2步。
1) 算法2第1)行調(diào)用ProbPath函數(shù),依據(jù)概率鄰接矩陣求得已知攻擊跡AttackT到攻擊目標(biāo)S[y]的可能路徑,然而由于特殊攻擊行為節(jié)點(diǎn)的存在,使算法2第1)行中獲得的路徑可能并不準(zhǔn)確。
2) 算法2第2)~7)行根據(jù)特殊攻擊行為節(jié)點(diǎn)列表,判斷第1)行中獲取的攻擊路徑中是否包含特殊攻擊行為節(jié)點(diǎn),若存在,則將此路徑變換為含有特殊攻擊行為節(jié)點(diǎn)的路徑,并通過(guò)比較二者攻擊成功的概率大小進(jìn)行選擇,最終確定最大可能攻擊路徑Path和其攻擊成功的概率MaxProb。
本算法與Dijkstra算法復(fù)雜度相同,都為O(n2),即為因果知識(shí)網(wǎng)絡(luò)中狀態(tài)節(jié)點(diǎn)個(gè)數(shù)的平方。
為了驗(yàn)證本文方法的有效性,搭建了一個(gè)實(shí)際網(wǎng)絡(luò)環(huán)境來(lái)進(jìn)行測(cè)試。實(shí)驗(yàn)環(huán)境拓?fù)淙鐖D3所示。
外網(wǎng)用戶可通過(guò)Internet訪問(wèn)本網(wǎng)絡(luò)。實(shí)驗(yàn)網(wǎng)絡(luò)分為4個(gè)區(qū)域,分別是DMZ區(qū)、子網(wǎng)1、子網(wǎng)2和子網(wǎng)3。DMZ區(qū)包含Web服務(wù)器和E-mail服務(wù)器。子網(wǎng)1由2臺(tái)主機(jī)構(gòu)成。子網(wǎng)2由一臺(tái)工作站和文件服務(wù)器組成。子網(wǎng)3包括一臺(tái)工作站和數(shù)據(jù)庫(kù)服務(wù)器。各區(qū)域的IDS負(fù)責(zé)檢測(cè)各區(qū)域中的異常行為并產(chǎn)生告警。網(wǎng)絡(luò)可達(dá)性設(shè)為:DMZ區(qū)由防火墻1保護(hù)并連接Internet,且只能訪問(wèn)子網(wǎng)1中的主機(jī)1、子網(wǎng)2中的文件服務(wù)器和子網(wǎng)3中的數(shù)據(jù)庫(kù)服務(wù)器;子網(wǎng)1中的主機(jī)1能夠訪問(wèn)子網(wǎng)2和3中的所有機(jī)器,主機(jī)3只能訪問(wèn)主機(jī)1和數(shù)據(jù)庫(kù)服務(wù)器,主機(jī)2只能訪問(wèn)主機(jī)3;子網(wǎng)2中的工作站1和子網(wǎng)3中的工作站 2能訪問(wèn)數(shù)據(jù)服務(wù)器和文件服務(wù)器。通過(guò)Nessus脆弱點(diǎn)掃描器對(duì)網(wǎng)絡(luò)各網(wǎng)絡(luò)段進(jìn)行掃描,得到各主機(jī)中漏洞信息如表3所示。依據(jù)漏洞信息和CVSS分析得出的攻擊行為信息如表4所示。
4.2.1 計(jì)算過(guò)程及分析
圖3實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)?/p>
根據(jù)圖3和表4,確定因果知識(shí)網(wǎng)絡(luò)基本結(jié)構(gòu)。假定攻擊目標(biāo)是獲取主機(jī)3的root權(quán)限,設(shè)計(jì)了3個(gè)實(shí)驗(yàn)進(jìn)行驗(yàn)證,實(shí)驗(yàn)結(jié)果如表5所示。具體推理過(guò)程如圖4所示。圖5則展示了實(shí)驗(yàn)中各個(gè)狀態(tài)節(jié)點(diǎn)攻擊成功概率變化情況。
為了不失一般性,假定實(shí)驗(yàn)1中沒(méi)有觀測(cè)到任何事件,即AlarmT=null。由算法2知,共有6條攻擊路徑能夠?qū)崿F(xiàn)攻擊目標(biāo),分別為 path1∶ s1→a1→s2→a5→s8→a13→s9、path2∶ s1→a1→s2→a3→s4→a6→s6→a11→s8→a13→s9、 path3∶ s1→a1→s2→a4→s5→a7→s6→a11→s8→a13→s9、 path4∶ s1→a1→s2→a4→s5→a8→s7→a12→s8→a13→s9、 path5∶ s1→a1→s2→a4→s5→a10→s8→a13→s9和 path6∶ s1→a2→s3→a1→s2→a4→s5→a9→s9。對(duì)于攻擊能力等級(jí)為L(zhǎng)ow的攻擊者的最有可能攻擊路徑為 path5,攻擊成功率為0.023;對(duì)于攻擊能力等級(jí)為mid的攻擊者的最有可能攻擊路徑同樣為 path5,但攻擊成功率提高到0.123;對(duì)于攻擊能力等級(jí)為high的攻擊者最有可能攻擊路徑為path4s,攻擊成功率為0.459。對(duì)于實(shí)驗(yàn)2,T時(shí)刻觀測(cè)到的告警為AlarmT=(as2,ae2, ae5),由算法1得出攻擊者的攻擊跡描述為攻擊者成功發(fā)動(dòng)攻擊行為 a1使攻擊狀態(tài)達(dá)到 s2,但發(fā)動(dòng)攻擊 a2時(shí)遭遇了失敗,這個(gè)概率達(dá)到0.95。由算法2推斷攻擊者的攻擊能力等級(jí)為mid,由算法3能得出攻擊者最有可能的后續(xù)攻擊路徑為:s2→a4→s5→ a10→s8→a13→s9,攻擊成功的概率為 0.175。對(duì)于實(shí)驗(yàn) 3,T時(shí)刻觀測(cè)到的告警為AlarmT=(as2,as5,ae1, ae4,ae10),由算法1得出攻擊者的攻擊跡描述為:攻擊者成功實(shí)施攻擊行為 a1和 a4使攻擊狀態(tài)達(dá)到 s5,但發(fā)動(dòng)攻擊 a10時(shí)遭遇了失敗,這個(gè)概率達(dá)到 0.95。由算法2推斷攻擊者的攻擊能力等級(jí)為high,由算法3能得出攻擊者最有可能的后續(xù)攻擊路徑為:s5→a8→s7→a12→s8→ a13→s9,攻擊成功的概率為0.567。對(duì)于本文提出的模型而言,隨著時(shí)間的不斷推進(jìn),攻擊者暴露的攻擊行為越多,攻擊跡越完整,對(duì)攻擊者能力的推斷越合理,后續(xù)攻擊路徑的預(yù)測(cè)也就更準(zhǔn)確。
表3各主機(jī)信息及其所含漏洞信息
表4攻擊行為節(jié)點(diǎn)的信息
表5實(shí)驗(yàn)結(jié)果
圖4不同告警跡條件下攻擊路徑推斷過(guò)程示意
圖5實(shí)驗(yàn)中各個(gè)狀態(tài)節(jié)點(diǎn)攻擊成功概率
4.2.2 測(cè)試結(jié)果的比較與分析
利用網(wǎng)絡(luò)安全專業(yè)的 50名學(xué)員作為攻擊者,分別就圖3所示的網(wǎng)絡(luò)進(jìn)行攻擊測(cè)試實(shí)驗(yàn),事先給定攻擊者該網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、漏洞信息及因果知識(shí)網(wǎng)絡(luò)結(jié)構(gòu)。每名攻擊者均嘗試因果知識(shí)網(wǎng)絡(luò)中的 6條攻擊路徑,總共形成300個(gè)攻擊跡。本文算法計(jì)算結(jié)果與攻擊測(cè)試實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果對(duì)比如表6所示。
表6本文算法計(jì)算結(jié)果與攻擊測(cè)試實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果對(duì)比
依據(jù) 50名攻擊者的攻擊跡,利用本文的攻擊者能力等級(jí)推斷算法能夠?qū)⑦@些攻擊者分類3類:攻擊者能力等級(jí)為low的學(xué)員9人、攻擊者能力等級(jí)為mid的學(xué)員37人和攻擊者能力等級(jí)為high的學(xué)員4人。表6每一組結(jié)果由2個(gè)數(shù)字構(gòu)成:前者表示利用本文算法得出的不同能力等級(jí)的攻擊者利用不同攻擊路徑的攻擊成功概率;后者帶下劃線,表示由攻擊測(cè)試實(shí)驗(yàn)統(tǒng)計(jì)得出的實(shí)際攻擊成功概率,如0表示9名能力等級(jí)low的攻擊者中沒(méi)有1名能夠攻擊成功表示37名能力等級(jí)為mid的攻擊者中有4名攻擊成功,實(shí)際攻擊成功概率為。由表6的統(tǒng)計(jì)結(jié)果對(duì)比分析得出以下結(jié)論。
1) 不同能力等級(jí)的攻擊者之間攻擊成功概率有著較大差別,故本文通過(guò)區(qū)分攻擊者能力進(jìn)行細(xì)粒度的攻擊路徑預(yù)測(cè)方法有重要意義。
2) 由于攻擊者數(shù)目等客觀條件約束的影響,本文算法計(jì)算的結(jié)果與攻擊測(cè)試實(shí)驗(yàn)統(tǒng)計(jì)結(jié)果有一定的差異,但本文算法計(jì)算結(jié)果能夠較為準(zhǔn)確地反映實(shí)際的攻擊成功概率,能夠從攻擊者角度有效預(yù)測(cè)攻擊路徑,為網(wǎng)絡(luò)安全漏洞修復(fù)及實(shí)時(shí)防護(hù)提供依據(jù)。
此外,本文與文獻(xiàn)[9]和文獻(xiàn)[10]的算法進(jìn)行了比較。一方面利用文獻(xiàn)[9]的方法計(jì)算本文因果知識(shí)網(wǎng)絡(luò)中最有可能攻擊路徑為 path2,攻擊成功的概率為 0.256,明顯大于實(shí)際攻擊成功概率;另一方面依據(jù)文獻(xiàn)[9]的攻擊圖,在沒(méi)有任何監(jiān)測(cè)事件時(shí),本文算法得出無(wú)論攻擊者能力處于哪個(gè)等級(jí),最大可能攻擊路徑都為:s0→a10→s7→a8→s8→a9→s9→a5→s5,結(jié)果與文獻(xiàn)[9]的算法一致,然而文獻(xiàn)[9]的算法中所定義的累積概率是指達(dá)到當(dāng)前攻擊狀態(tài)或發(fā)生當(dāng)前攻擊行為的整個(gè)可能性,即累加所有可能攻擊路徑的概率之和,這與攻擊者往往選擇一條確定的攻擊路徑這一實(shí)際不符,造成最終計(jì)算的攻擊成功概率往往偏高,而本文采用的改進(jìn)Dijkstra算法,通過(guò)比較每一條可能攻擊路徑的概率確定最有可能攻擊路徑,得到的攻擊成功概率相對(duì)準(zhǔn)確合理。
文獻(xiàn)[10]利用威脅狀態(tài)轉(zhuǎn)移圖進(jìn)行實(shí)時(shí)威脅狀態(tài)識(shí)別時(shí),在推斷出目前的威脅狀態(tài)后,進(jìn)一步推斷6條可能的后續(xù)路徑,而利用本文的算法,根據(jù)攻擊者已完成的威脅,推斷此攻擊者的攻擊能力等級(jí)為 high,進(jìn)而推斷最有可能的攻擊路徑為s0→a1→s1→a5→s3→a6→s7→a3→s8→a8→s10和 s0→a1→s1→a5→s3→a6→s7→a7→s8→a8→s10,攻擊成功概率為0.49。橫向比較來(lái)看,本文的方法優(yōu)勢(shì)在于能夠根據(jù)攻擊者能力等級(jí)自適應(yīng)地調(diào)整相關(guān)概率知識(shí),符合網(wǎng)絡(luò)對(duì)抗實(shí)際,更具合理性。
由于網(wǎng)絡(luò)攻防的動(dòng)態(tài)性和復(fù)雜性,攻擊路徑預(yù)測(cè)具有不確定性。針對(duì)現(xiàn)有攻擊路徑預(yù)測(cè)方法無(wú)法準(zhǔn)確反映攻擊者攻擊能力對(duì)后續(xù)攻擊路徑影響這一問(wèn)題,本文提出一種基于因果知識(shí)網(wǎng)絡(luò)的攻擊路徑預(yù)測(cè)方法。該方法利用因果知識(shí)網(wǎng)絡(luò)模型對(duì)攻擊行為建模,網(wǎng)絡(luò)結(jié)構(gòu)定性反映了攻擊步驟之間的因果關(guān)系,概率知識(shí)分布則定量反映了因果知識(shí)網(wǎng)絡(luò)中的不確定性。首先將告警跡映射到因果知識(shí)網(wǎng)絡(luò)以識(shí)別攻擊跡;然后通過(guò)分析實(shí)時(shí)攻擊跡推斷攻擊者能力等級(jí),進(jìn)而根據(jù)攻擊者能力等級(jí)自適應(yīng)調(diào)整概率知識(shí)分布;最后利用概率知識(shí)推理攻擊者最有可能的攻擊路徑。實(shí)驗(yàn)結(jié)果表明該方法能夠提高攻擊路徑預(yù)測(cè)的準(zhǔn)確度,有效減少告警數(shù)量,為網(wǎng)絡(luò)管理員及時(shí)實(shí)施防御策略提供了重要依據(jù)。下一步工作包括因果知識(shí)網(wǎng)絡(luò)結(jié)構(gòu)的生成研究和實(shí)現(xiàn)算法的并行化。
[1]SHAH C. Zeus crime ware toolkit[EB/OL]. http://blogs.mcafee.com/mcafeelabs/zeus-crimeware-toolkit.
[2]QIN X, LEE W. Statistical causality of INFOSEC alert data[C]// Recent Advances in Intrusion Detection 2003. Berlin, 2003: 73-93.
[3]梅海彬, 龔儉, 張明華. 基于警報(bào)序列聚類的多步攻擊模式發(fā)現(xiàn)研究[J]. 通信學(xué)報(bào), 2011, 32 (5): 63-69.MEI H B, GONG J, ZHANG M H. Research on discovering multi-step attack patterns based on clustering IDS alert sequences[J].Journal on Communications, 2011, 32(5): 63-69.
[4]VALEUR F, VIGNA G, KRUEGEL C, et al. A comprehensive approach to intrusion detection alert correlation[J]. IEEE Trans. Dependable and Secure Computing, 2004, 1(3): 146-169.
[5]JAJODIA S, NOEL S, KALAPA P, et al. Cauldron: mission-centric cyber situational awareness with defense in depth[C]//The Military Communications Conference. Baltimore, 2011: 1339-1344.
[6]YU D, FRINCKE D. Improving the quality of alerts and predicting intruder’s next goal with hidden colored petri-net[J]. Computer Networks, 2007,51(3): 632-654.
[7]WANG L, ISLAM T, LONG T, et al. An attack graph-based probabilistic security metric[C]//Data and Applications Security XXII. Berlin Heidelberg, 2008: 283-296.
[8]蘇婷婷, 潘曉中, 肖海燕. 基于屬性鄰接矩陣的攻擊圖表示方法研究[J]. 電子與信息學(xué)報(bào), 2012, 34(7): 1744-1747.SU T T, PAN X Z, XIAO H Y. Research on attack graph based on at-tributes adjacncy matrix[J]. Journal of Electronics amp; Information Technology, 2012, 34(7): 1744-1747.
[9]陳小軍, 方濱興, 譚慶豐. 基于概率攻擊圖的內(nèi)部攻擊意圖推斷算法研究[J]. 計(jì)算機(jī)學(xué)報(bào), 2014, 37(1): 62-72.CHEN X J, FANG B X, TAN Q F. Inferring attack intent of malicious insider based on probabilistic attack graph model[J]. Chinese Journal of Computers, 2014, 37(1): 62-72.
[10]呂慧穎, 彭武, 王瑞梅. 基于時(shí)空關(guān)聯(lián)分析的網(wǎng)絡(luò)實(shí)時(shí)威脅識(shí)別與評(píng)估[J]. 計(jì)算機(jī)研究與發(fā)展, 2014, 51(5): 1039-1049.LV H Y, PENG W, WANG R M. A real-time network threat recognition and assessment method based on association analysis of time and space[J]. Journal of Computer Research and Development, 2014, 51(5):1039-1049.
[11]XIE P, LI J H, OU X M, et al. Using Bayesian networks for cyber security analysis[C]//The 40th IEEE/IFIP International Conference on Dependable Systems and Networks(DSN). Chicago, 2010: 211-220.
[12]張少俊, 李建華, 宋珊珊. 貝葉斯推理在攻擊圖節(jié)點(diǎn)置信度計(jì)算中的應(yīng)用[J]. 軟件學(xué)報(bào), 2010, 21(9): 2376-2386.ZHANG S J , LI J H, SONG S S. Using Bayesian inference for computing attack graph node beliefs[J]. Journal of Software, 2010, 21(9):2376-2386.
[13]ABRAHAM S, NAIR S. A predictive framework for cyber security analytics using attack graphs[J]. International Journal of Computer Networks amp; Communications, 2015, 7(1): 1-17.
[14]FREDJ O B. A realistic graph-based alert correlation system[J]. Security and Communication Network, 2015, 8(15): 2477-2493.
[15]馮學(xué)偉, 王東霞, 黃敏桓. 一種基于馬爾可夫性質(zhì)的因果知識(shí)挖掘方法[J]. 計(jì)算機(jī)研究與發(fā)展, 2014, 51(11): 2493-2504.FENG X W, WANG D X, HANG M H. A mining approach for causal knowledge in alert correlating based on the Markov property[J]. Journal of Computer Research and Development, 2014, 51(11):2493-2504.
Attack path prediction method based on causal knowledge net
WANG Shuo1, TANG Guang-ming1, KOU Guang1,2, SONG Hai-tao1
(1. PLA Information Engineering University, Zhengzhou 450001, China;
2. Science and Technology on Information Assurance Laboratory, Beijing 100072, China)
The existing attack path prediction methods can not accurately reflect the variation of the following attack path caused by the capability of the attacker. Accordingly an attack path prediction method based on causal knowledge net was presented. The proposed method detected the current attack actions by mapping the alarm sets to the causal knowledge net. By analyzing the attack actions, the capability grade of the attacker was inferred, according to which adjust the probability knowledge distribution dynamically. With the improved Dijkstra algorithm, the most possible attack path was computed. The experiments results indicate that the proposed method is suitable for a real network confrontation environment. Besides, the method can enhance the accuracy of attack path prediction.
attack path prediction, causal knowledge net, attacker capability, probability knowledge distribution, Dijkstra algorithm
s:The National Natural Science Foundation of China(No.61303074), Foundation of Science and Technology on Information Assurance Laboratory (No.KJ-14-106)
TP393.8
A
10.11959/j.issn.1000-436x.2016210
2016-02-22;
2016-08-18
國(guó)家自然科學(xué)基金資助項(xiàng)目(No.61303074);信息保障技術(shù)重點(diǎn)實(shí)驗(yàn)室開(kāi)放基金資助項(xiàng)目(No.KJ-14-106)
王碩(1991-),男,河南南陽(yáng)人,解放軍信息工程大學(xué)碩士生,主要研究方向?yàn)榫W(wǎng)絡(luò)安全。
湯光明(1963-),女,湖南常德人,解放軍信息工程大學(xué)教授,博士生導(dǎo)師,主要研究方向?yàn)榫W(wǎng)絡(luò)信息安全和體系對(duì)抗。
寇廣(1983-),男,河南許昌人,解放軍信息工程大學(xué)講師,主要研究方向?yàn)榫W(wǎng)絡(luò)安全態(tài)勢(shì)感知、大數(shù)據(jù)和云計(jì)算安全。
宋海濤(1990-),男,山東煙臺(tái)人,解放軍信息工程大學(xué)博士生,主要研究方向?yàn)榫W(wǎng)絡(luò)安全。