王 碩 湯光明 王建華 孫怡峰 寇 廣
(解放軍信息工程大學(xué) 鄭州 450001)
在當(dāng)今這個(gè)全球化的時(shí)代,網(wǎng)絡(luò)技術(shù)就像整個(gè)社會(huì)的神經(jīng),深刻影響著國(guó)際政治、經(jīng)濟(jì)、文化、社會(huì)、軍事等領(lǐng)域的發(fā)展.隨著網(wǎng)絡(luò)結(jié)構(gòu)日趨復(fù)雜、規(guī)模日漸龐大,入侵過程也向復(fù)雜性、多樣性和分布性的趨勢(shì)發(fā)展.根據(jù)國(guó)家計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心的年度網(wǎng)絡(luò)安全工作報(bào)告[1],近幾年來大部分攻擊尤其是危害大的攻擊幾乎都是復(fù)雜的多步攻擊.對(duì)于復(fù)雜的多步攻擊,攻擊者對(duì)網(wǎng)絡(luò)目標(biāo)設(shè)施的滲透破壞過程往往是漸進(jìn)的,通過執(zhí)行多個(gè)攻擊步驟實(shí)現(xiàn)最終目的,使得傳統(tǒng)的面向單個(gè)安全事件檢測(cè)的網(wǎng)絡(luò)安全設(shè)備失效.多步攻擊成為目前網(wǎng)絡(luò)攻擊主要手段之一,嚴(yán)重危害著網(wǎng)絡(luò)信息安全.攻擊場(chǎng)景構(gòu)建技術(shù)將龐雜、無序的告警流轉(zhuǎn)換為易于理解的攻擊場(chǎng)景,大大提高了告警信息的可用性,能夠?yàn)榘l(fā)現(xiàn)攻擊者的攻擊策略和預(yù)測(cè)下一步可能的攻擊行為提供依據(jù),便于管理員做出及時(shí)有效的應(yīng)急響應(yīng).因此,研究如何掌握攻擊活動(dòng)的全貌、重建攻擊場(chǎng)景是應(yīng)對(duì)多步攻擊威脅的重要手段,并逐漸成為網(wǎng)絡(luò)安全防御領(lǐng)域的研究熱點(diǎn).
攻擊場(chǎng)景構(gòu)建是對(duì)告警事件的實(shí)際分析和應(yīng)用,實(shí)現(xiàn)攻擊場(chǎng)景重建的方法為告警關(guān)聯(lián).告警關(guān)聯(lián)是將經(jīng)過告警聚合和告警確認(rèn)后的超告警與網(wǎng)絡(luò)的實(shí)際背景知識(shí)相結(jié)合,挖掘出其中存在的真正網(wǎng)絡(luò)威脅和安全事件,進(jìn)而揭示出各個(gè)安全事件背后的邏輯關(guān)聯(lián),發(fā)掘攻擊者的真正攻擊意圖.目前,基于告警關(guān)聯(lián)的攻擊場(chǎng)景構(gòu)建方法主要分為3類:1)基于機(jī)器學(xué)習(xí)的方法[2-3].構(gòu)建的攻擊場(chǎng)景雖然對(duì)專家知識(shí)依賴較少,但存在準(zhǔn)確度低、結(jié)果難以理解、計(jì)算量大和實(shí)時(shí)性差等缺陷.2)基于已知攻擊場(chǎng)景的方法[4-5].雖然準(zhǔn)確度相對(duì)較高,但是事先獲得攻擊過程和關(guān)聯(lián)規(guī)則比較困難,此外這種方法無法檢測(cè)出未知攻擊場(chǎng)景的多步攻擊行為.3)通過原子攻擊前因后果關(guān)系進(jìn)行關(guān)聯(lián)的方法[6-8].只需獲取原子攻擊的前因后果關(guān)系,不必事先知道整個(gè)攻擊過程,更加靈活,同時(shí)這種方法可以識(shí)別和檢測(cè)不同原子攻擊組合形成的新攻擊過程,因此成為目前攻擊場(chǎng)景構(gòu)建技術(shù)的研究趨勢(shì).
目前,通過原子攻擊前因后果關(guān)系進(jìn)行關(guān)聯(lián)的方法的難點(diǎn)主要體現(xiàn)在2方面:前因后果關(guān)系的獲取和關(guān)系強(qiáng)度的設(shè)定.對(duì)于定性的前因后果關(guān)系的研究相對(duì)已經(jīng)成熟,受到認(rèn)可的模型有攻擊圖[7]、攻擊樹[9]、Markov鏈[10]、Petri網(wǎng)[11]等,尤其以攻擊圖模型最為流行.而針對(duì)定量關(guān)系強(qiáng)度的設(shè)定,目前的研究還不充分,主要思路有2種:1)利用安全脆弱點(diǎn)評(píng)估系統(tǒng)(common vulnerability scoring system, CVSS)中的相關(guān)指標(biāo)設(shè)定[12];2)利用數(shù)據(jù)挖掘從告警數(shù)據(jù)中提取概率.前者僅僅是利用專家知識(shí)給出的所有網(wǎng)絡(luò)的共性度量,主觀性較強(qiáng).鑒于此,王碩等人[13]提出了依據(jù)攻擊者能力動(dòng)態(tài)調(diào)整攻擊圖中邊概率的方法,但其概率設(shè)定的原始依據(jù)仍是CVSS,并不一定適合具體的網(wǎng)絡(luò)攻防環(huán)境.隨著大數(shù)據(jù)技術(shù)的崛起,針對(duì)后者的研究相對(duì)較多.具體來講,李之堂等人[14]將告警用它對(duì)應(yīng)的攻擊類型屬性進(jìn)行替換,進(jìn)而利用概率統(tǒng)計(jì)挖掘攻擊場(chǎng)景,然而由于不同的單步攻擊可能有著同樣的攻擊類型,因此其挖掘出來的概率準(zhǔn)確度有待進(jìn)一步提高.吳慶濤等人[15]提出了一種改進(jìn)的基于因果關(guān)聯(lián)的攻擊場(chǎng)景重構(gòu)方法,該方法根據(jù)告警相關(guān)度確定可組合的關(guān)聯(lián)圖,利用網(wǎng)絡(luò)弱點(diǎn)和攻擊關(guān)系推出漏告警,使得分裂的關(guān)聯(lián)圖能夠組合起來,進(jìn)而重建完整的攻擊場(chǎng)景;然而,文中并沒有考慮誤告警的情況.馬琳茹等人[16]提出一種基于屬性層次樹的相似度隸屬函數(shù)定義方法,用模糊聚類的方法實(shí)現(xiàn)攻擊場(chǎng)景重構(gòu);然而只是將關(guān)聯(lián)圖簡(jiǎn)單地組合起來,而沒有對(duì)漏掉的攻擊進(jìn)行假設(shè)和推理.劉敬等人[17]針對(duì)傳統(tǒng)網(wǎng)絡(luò)安全事件分析方法較多依賴人工干預(yù)的問題提出了利用神經(jīng)網(wǎng)絡(luò)和遺傳算法相結(jié)合的網(wǎng)絡(luò)安全事件分析方法,具有較高的自適應(yīng)能力和自動(dòng)化程度;然而文中所定義的攻擊模式和攻擊場(chǎng)景相對(duì)簡(jiǎn)單,不便于網(wǎng)絡(luò)管理員理解.劉威歆等人[18]綜合利用圖關(guān)系和閾值限制進(jìn)行聯(lián)動(dòng)推斷和預(yù)測(cè),達(dá)到更為全面解決攻擊圖中的告警漏報(bào)和減少誤報(bào)的目的,然而由于攻擊圖節(jié)點(diǎn)之間的關(guān)聯(lián)強(qiáng)度僅僅依靠相鄰節(jié)點(diǎn)的消息強(qiáng)度和消息方向累積獲取,只能定性分析最大可能攻擊路徑而不能定量分析其攻擊成功的概率.胡亮等人[19]將智能規(guī)劃的方法應(yīng)用于多步攻擊識(shí)別的領(lǐng)域,并以此為基礎(chǔ)實(shí)現(xiàn)相應(yīng)的識(shí)別算法,但算法沒有考慮到漏報(bào)誤報(bào)情況下的求解問題.
綜上分析得出,如何從漏報(bào)誤報(bào)的告警流中構(gòu)建完整的攻擊場(chǎng)景仍然是一個(gè)極具挑戰(zhàn)性的問題.針對(duì)此問題,本文提出了基于因果知識(shí)網(wǎng)絡(luò)的攻擊場(chǎng)景構(gòu)建方法.一方面利用有向無環(huán)圖定義原子攻擊中的因果關(guān)系;另一方面利用真實(shí)告警數(shù)據(jù)挖掘出能夠定量刻畫因果關(guān)系的因果知識(shí),進(jìn)而將攻擊場(chǎng)景的構(gòu)建分為初建與重構(gòu)2步,定性與定量相結(jié)合,利用最大后驗(yàn)估計(jì)原理重構(gòu)完整的攻擊場(chǎng)景.
基于因果知識(shí)網(wǎng)絡(luò)的攻擊場(chǎng)景構(gòu)建方法的核心思想是通過構(gòu)建因果知識(shí)網(wǎng)絡(luò),并從告警數(shù)據(jù)中挖掘出合理的因果知識(shí),進(jìn)而利用因果知識(shí)網(wǎng)絡(luò)進(jìn)行攻擊場(chǎng)景的推理與構(gòu)建.模型總體框架如圖1所示:
Fig. 1 The overall framework of attack scenario construction method based on causal knowledge network圖1 基于因果知識(shí)網(wǎng)絡(luò)的攻擊場(chǎng)景構(gòu)建方法總體框架
該方法整體分為4個(gè)過程:
1) 告警映射及聚類.告警映射將告警轉(zhuǎn)換為因果知識(shí)網(wǎng)絡(luò)的節(jié)點(diǎn),用于描述因果知識(shí)網(wǎng)絡(luò)中攻擊行為發(fā)生的狀況;告警聚類將屬于同一攻擊場(chǎng)景的告警聚為一類,防止告警數(shù)據(jù)的混亂.通過告警映射及聚類將告警數(shù)據(jù)轉(zhuǎn)化為按時(shí)間排列的節(jié)點(diǎn)序列,為因果知識(shí)挖掘和攻擊場(chǎng)景構(gòu)建作準(zhǔn)備.
2) 因果知識(shí)挖掘.基于Markov鏈模型,對(duì)節(jié)點(diǎn)序列間的一步轉(zhuǎn)移概率進(jìn)行挖掘,得到初步的因果知識(shí).
3) 因果知識(shí)的顯著性檢驗(yàn).利用基于成對(duì)數(shù)據(jù)的t檢驗(yàn)方法對(duì)挖掘得到的初步因果知識(shí)進(jìn)行假設(shè)檢驗(yàn).若通過檢驗(yàn),則認(rèn)為因果知識(shí)合理;若沒有通過檢驗(yàn),則認(rèn)為因果知識(shí)不合理,需要利用擴(kuò)大告警數(shù)據(jù)集等方法進(jìn)行重新挖掘,直到通過顯著性檢驗(yàn).
4) 攻擊場(chǎng)景構(gòu)建.基于因果知識(shí)網(wǎng)絡(luò),利用最大后驗(yàn)估計(jì)原理,進(jìn)行攻擊場(chǎng)景的構(gòu)建.
為了方便表述,首先給出一些關(guān)鍵定義.
定義1. 因果知識(shí)網(wǎng)絡(luò)Gk=(G,K).其中G=(Node,E)為有向無環(huán)圖,用于表示因果關(guān)系,Node是因果知識(shí)網(wǎng)絡(luò)中所有節(jié)點(diǎn)的集合;E是連接節(jié)點(diǎn)的邊的集合,代表節(jié)點(diǎn)間即單步攻擊之間的關(guān)聯(lián)關(guān)系;K是概率知識(shí)的集合,表示由當(dāng)前節(jié)點(diǎn)狀態(tài)轉(zhuǎn)移到下一節(jié)點(diǎn)狀態(tài)的概率,用于量化攻擊節(jié)點(diǎn)之間的關(guān)聯(lián)關(guān)系.
定義2. 節(jié)點(diǎn)集Node={si|i=1,2,…}∪{vi|i=1,2,…}.節(jié)點(diǎn)集是因果知識(shí)網(wǎng)絡(luò)中狀態(tài)型節(jié)點(diǎn)s和攻擊行為節(jié)點(diǎn)v的集合.節(jié)點(diǎn)序列指節(jié)點(diǎn)集中的若干節(jié)點(diǎn)按時(shí)間順序排列而成的序列,用Nodeseq表示.
定義3. 告警ai=(timestamp,srcIP,srcPort,desIP,desPort,Alarmtype,Class)表示為七元組.其中,timestamp為告警產(chǎn)生的時(shí)間,不同網(wǎng)絡(luò)安全設(shè)備的時(shí)間要進(jìn)行統(tǒng)一校對(duì)以保證timestamp的準(zhǔn)確性;srcIP和srcPort分別為告警的源IP地址和源端口;desIP和desPort分別為告警的目的IP地址和目的端口;Alarmtype為告警的類型,分為狀態(tài)型告警和事件型告警2種.狀態(tài)型告警主要反映攻擊者擁有的攻擊資源及權(quán)限能力,由當(dāng)前網(wǎng)絡(luò)安全配置及防火墻等網(wǎng)絡(luò)安全設(shè)備獲取,狀態(tài)型告警映射為因果知識(shí)網(wǎng)絡(luò)中的狀態(tài)節(jié)點(diǎn);事件型告警主要反映攻擊者實(shí)施的攻擊行為,由入侵檢測(cè)系統(tǒng)等網(wǎng)絡(luò)安全設(shè)備獲取,事件型告警映射為因果知識(shí)網(wǎng)絡(luò)中的攻擊行為節(jié)點(diǎn).本文設(shè)定Alarmtype=1表示狀態(tài)型告警,而Alarmtype=0表示事件型告警.Class為告警的具體種類,如狀態(tài)型告警可分為擁有非法權(quán)限、非法網(wǎng)絡(luò)連接等;事件型告警可分為漏洞掃描、緩沖區(qū)攻擊、DOS攻擊等.
定義4. 告警集Alarm={ai|i=1,2,…}.告警集是由入侵檢測(cè)系統(tǒng)等網(wǎng)絡(luò)安全設(shè)備產(chǎn)生的告警集合,則時(shí)間窗T內(nèi)獲取的告警集表示為AlarmT.
告警映射是將告警映射到因果知識(shí)網(wǎng)絡(luò)中的節(jié)點(diǎn),即將告警集Alarm轉(zhuǎn)化為節(jié)點(diǎn)集Node的過程.由于timestamp反映了攻擊發(fā)生的時(shí)間;源和目的IP地址反映了攻擊發(fā)生的位置;Class反映了攻擊所用的方法,它們共同決定了一次單步攻擊行為.因此,本文利用告警的源IP、目的IP、告警類型及種類作為告警映射的條件,具體的告警映射方法為
(1)
為了區(qū)分不同時(shí)間發(fā)生的攻擊行為,將告警的timestamp作為告警映射后節(jié)點(diǎn)v或s的時(shí)間標(biāo)簽,用于標(biāo)識(shí)其發(fā)生時(shí)間.此外,當(dāng)告警映射為空時(shí),一方面可能是誤告警;另一方面可能是因果知識(shí)網(wǎng)絡(luò)的結(jié)構(gòu)不夠完整,即缺少相應(yīng)的節(jié)點(diǎn).針對(duì)這種情況要結(jié)合專家知識(shí)進(jìn)一步分析,如果確認(rèn)是誤告警則直接去除并加入知識(shí)庫(kù)便于以后的告警處理;如果確認(rèn)是因果知識(shí)網(wǎng)絡(luò)結(jié)構(gòu)不夠完整,則將其更新,這種利用專家知識(shí)解決告警異常的方法一定程度上能夠識(shí)別新的攻擊行為,是有效且必要的輔助手段.
通過告警映射,將告警轉(zhuǎn)換為因果知識(shí)網(wǎng)絡(luò)的節(jié)點(diǎn),更利于因果知識(shí)的獲取和攻擊場(chǎng)景的構(gòu)建.然而,由于大量的告警事件中反映的不止1個(gè)攻擊場(chǎng)景,如果對(duì)告警事件不加處理而直接進(jìn)行關(guān)聯(lián),必將導(dǎo)致構(gòu)建的攻擊場(chǎng)景混亂.為了解決此問題,首先對(duì)告警進(jìn)行聚類,使得同一攻擊場(chǎng)景的告警聚為1類,不同攻擊場(chǎng)景的告警彼此分開,然后再進(jìn)行因果知識(shí)的挖掘和攻擊場(chǎng)景的構(gòu)建.
針對(duì)海量的告警事件,告警聚類依據(jù)屬于同一攻擊場(chǎng)景的告警的性質(zhì)將告警事件聚為若干類,一方面利于因果知識(shí)的挖掘和攻擊場(chǎng)景的構(gòu)建;另一方面有利于告警關(guān)聯(lián)的并行處理,提高效率.針對(duì)此問題,梅海彬等人[20]通過定義告警相似度(考慮到時(shí)間、IP相似性)進(jìn)行聚類;馮學(xué)偉等人[21]則認(rèn)為由同一攻擊活動(dòng)觸發(fā)的因果告警事件,彼此在地址分布上總是具有關(guān)聯(lián)性,故他通過地址相關(guān)性進(jìn)行告警聚類.本文借助因果知識(shí)網(wǎng)絡(luò),設(shè)計(jì)了告警聚類的3個(gè)原則:
1)考慮到攻擊行為的連貫性,規(guī)定了相鄰攻擊步驟或狀態(tài)轉(zhuǎn)移產(chǎn)生的告警間隔必須在一定的時(shí)間窗內(nèi);
2)考慮到因果知識(shí)網(wǎng)絡(luò)中父節(jié)點(diǎn)早于子節(jié)點(diǎn)發(fā)生,規(guī)定告警間時(shí)序關(guān)系與其映射到因果知識(shí)網(wǎng)絡(luò)中的節(jié)點(diǎn)之間邏輯因果關(guān)系一致;
3)考慮到攻擊行為的關(guān)聯(lián)性,規(guī)定告警映射后的節(jié)點(diǎn)符合圖距離限制.
其中,原則3中因果知識(shí)網(wǎng)絡(luò)中節(jié)點(diǎn)的圖距離定義如圖2所示.圖2中d用于表示節(jié)點(diǎn)之間的圖距離,如d(v2,v1)=2表示節(jié)點(diǎn)v2到節(jié)點(diǎn)v1的圖距離為2.
Fig. 2 Definition of distance between nodes in a causal knowledge network圖2 因果知識(shí)網(wǎng)絡(luò)上的節(jié)點(diǎn)之間距離的定義
具體地,告警聚類的3個(gè)原則形式化表示為:
1) |timestamp(ai)-timestamp(aj)| 2) (timestamp(ai)-timestamp(aj))×d(map(ai),map(aj))<0; 3) |d(map(ai),map(aj))| 其中,ai和aj表示2個(gè)不同的告警,Win為時(shí)間限制,L為圖距離限制,當(dāng)它們同時(shí)滿足這3個(gè)原則時(shí),可將這2個(gè)告警聚為1類,據(jù)此,可將大量的告警事件聚為若干類.通過聚類將告警映射形成的節(jié)點(diǎn)集Node轉(zhuǎn)化為節(jié)點(diǎn)序列集,即Node→{Nodeseqi|i=1,2,…},進(jìn)而為因果知識(shí)挖掘和攻擊場(chǎng)景構(gòu)建作準(zhǔn)備. 在物理學(xué)中,很多確定性現(xiàn)象遵從演變?cè)瓌t:由時(shí)刻t0系統(tǒng)或過程所處的狀態(tài),可以決定系統(tǒng)或過程在時(shí)刻t>t0所處的狀態(tài),而無需借助于以前系統(tǒng)所處狀態(tài)的歷史信息.這種性質(zhì)稱為Markov性或無后效性: p(xi+1|xi,xi-1,…,x1)=p(xi+1|xi). (2) 其中,p表示概率;xi表示系統(tǒng)當(dāng)前所處的狀態(tài),而xi+1表示系統(tǒng)下一時(shí)刻所處的狀態(tài). 在攻擊建模的研究中,Ammann等人[22]首先提出攻擊者不會(huì)為了獲取已有權(quán)限而發(fā)動(dòng)攻擊的觀點(diǎn),得到相關(guān)學(xué)者的認(rèn)可.由于攻擊過程中攻擊者獲得的攻擊資源為增量增長(zhǎng)的,則依據(jù)Ammann等人[22]的觀點(diǎn),攻擊者下一步的攻擊行為只與當(dāng)前擁有的攻擊資源有關(guān),而無需借助于攻擊者以前的攻擊行為.因此,本文將攻擊者實(shí)施的多步攻擊行為視為符合Markov鏈性質(zhì)的離散隨機(jī)過程,進(jìn)而利用Markov鏈模型進(jìn)行因果知識(shí)挖掘.結(jié)合本文的因果知識(shí)網(wǎng)絡(luò)模型,利用節(jié)點(diǎn)之間的一步轉(zhuǎn)移概率矩陣來表示Markov鏈模型,即因果知識(shí). 定義6. 因果知識(shí)K={K1,K2,K3,K4}.由于本文提出的因果知識(shí)網(wǎng)絡(luò)由2種不同性質(zhì)的節(jié)點(diǎn)組成,則共有4個(gè)不同的一步轉(zhuǎn)移矩陣,分別用K1,K2,K3,K4表示.設(shè)因果知識(shí)網(wǎng)絡(luò)中的狀態(tài)節(jié)點(diǎn)s的個(gè)數(shù)為m個(gè),攻擊行為節(jié)點(diǎn)v的個(gè)數(shù)為n個(gè),則K1為m×n的矩陣,其每一個(gè)元素表示從狀態(tài)節(jié)點(diǎn)到攻擊行為節(jié)點(diǎn)(s→v)的一步轉(zhuǎn)移概率;則K2為n×m的矩陣,其每一個(gè)元素表示從攻擊行為節(jié)點(diǎn)到狀態(tài)節(jié)點(diǎn)(v→s)的一步轉(zhuǎn)移概率;則K3為m×m的矩陣,其每一個(gè)元素表示從狀態(tài)節(jié)點(diǎn)到狀態(tài)節(jié)點(diǎn)(s→s)的一步轉(zhuǎn)移概率;則K4為n×n的矩陣,其每一個(gè)元素表示從攻擊行為節(jié)點(diǎn)到攻擊行為節(jié)點(diǎn)(v→v)的一步轉(zhuǎn)移概率.K1,K2,K3,K4共同構(gòu)成了因果知識(shí)網(wǎng)絡(luò)的因果知識(shí). 設(shè)由告警映射及聚類得到的節(jié)點(diǎn)序列集為{Nodeseqi|i=1,2,…},則基于Markov鏈模型的因果知識(shí)挖掘方法通過對(duì){Nodeseqi|i=1,2,…}中各個(gè)節(jié)點(diǎn)序列中的一步轉(zhuǎn)移節(jié)點(diǎn)關(guān)系提取并計(jì)數(shù),再依據(jù)Markov鏈所有轉(zhuǎn)移概率之和為1的要求進(jìn)行標(biāo)準(zhǔn)化,進(jìn)而得到一步轉(zhuǎn)移概率矩陣.以節(jié)點(diǎn)序列s1→s2→v1→s3→v2→v3→s4→v4→s5為例,則滿足s→v一步轉(zhuǎn)移節(jié)點(diǎn)關(guān)系的是s2→v1,s3→v2,s3→v3,s4→v4;滿足v→s一步轉(zhuǎn)移節(jié)點(diǎn)關(guān)系的是v1→s3,v3→s4,v4→s5;滿足s→s一步轉(zhuǎn)移節(jié)點(diǎn)關(guān)系的是s1→s2,s2→s3,s3→s4,s4→s5;滿足v→v一步轉(zhuǎn)移節(jié)點(diǎn)關(guān)系的是v1→v2,v2→v3,v3→v4.對(duì){Nodeseqi|i=1,2,…}中各個(gè)節(jié)點(diǎn)序列進(jìn)行同樣的節(jié)點(diǎn)關(guān)系提取并計(jì)數(shù),進(jìn)而根據(jù)所有轉(zhuǎn)移概率之和為1的要求進(jìn)行標(biāo)準(zhǔn)化,從而得到一步轉(zhuǎn)移概率矩陣K1,K2,K3,K4: 滿足: 又由因果知識(shí)網(wǎng)絡(luò)結(jié)構(gòu)得出2個(gè)修改原則: 1) 對(duì)于沒有父節(jié)點(diǎn)的節(jié)點(diǎn),其他所有節(jié)點(diǎn)到此節(jié)點(diǎn)的一步轉(zhuǎn)移概率為0; 2) 對(duì)于沒有子節(jié)點(diǎn)的節(jié)點(diǎn),此節(jié)點(diǎn)到其他所有節(jié)點(diǎn)的一步轉(zhuǎn)移概率為0. 根據(jù)以上2個(gè)修正原則,對(duì)K1,K2,K3,K4中的相關(guān)節(jié)點(diǎn)概率進(jìn)行置0操作,即得到初步的因果知識(shí). 因果知識(shí)是利用因果知識(shí)網(wǎng)絡(luò)進(jìn)行定量推理的依據(jù),因此因果知識(shí)的合理度直接影響了攻擊場(chǎng)景構(gòu)建的準(zhǔn)確度.為保證挖掘得到的因果知識(shí)準(zhǔn)確合理,本文提出了基于成對(duì)數(shù)據(jù)t檢驗(yàn)的方法對(duì)2.2節(jié)得到的初步的因果知識(shí)進(jìn)行顯著性檢驗(yàn),只有通過顯著性檢驗(yàn)的因果知識(shí)才能作為后續(xù)攻擊場(chǎng)景構(gòu)建的依據(jù). 2.3.1 顯著性檢驗(yàn)理論依據(jù) (3) (4) K3和K4是由告警挖掘得到的滿足s→v和v→ 證畢. 如圖3所示因果知識(shí)網(wǎng)絡(luò),則與其節(jié)點(diǎn)序列完全匹配的告警產(chǎn)生的節(jié)點(diǎn)序列集為s1→v1→s2→v2→s3→v3→s4和s1→v4→s4. Fig. 3 An example of causal knowledge network圖3 因果知識(shí)網(wǎng)絡(luò)1 則由告警產(chǎn)生的節(jié)點(diǎn)序列集挖掘計(jì)算得到的因果知識(shí)轉(zhuǎn)移矩陣為 則: 2.3.2 顯著性檢驗(yàn)具體方法 具體的顯著性檢驗(yàn)過程如下: H0:μD=0, (5) 本文提出的基于因果知識(shí)網(wǎng)絡(luò)的攻擊場(chǎng)景構(gòu)建方法,依據(jù)因果知識(shí)網(wǎng)絡(luò),將實(shí)時(shí)的攻擊場(chǎng)景構(gòu)建分為初建和重構(gòu)2步. 2.4.1 攻擊場(chǎng)景初建 2.4.2 攻擊場(chǎng)景重構(gòu) Step2. 結(jié)合因果知識(shí)網(wǎng)絡(luò)和貝葉斯推理方法,賦予每一下備選攻擊序列的先驗(yàn)概率P(h); 特別地,步驟2和步驟3中的攻擊序列的先驗(yàn)概率以及攻擊序列與節(jié)點(diǎn)序列的似然度計(jì)算方法如下: 1) 攻擊序列的先驗(yàn)概率計(jì)算方法 (6) 其中一步轉(zhuǎn)移概率由2.2節(jié)和2.3節(jié)挖掘得到的因果知識(shí)K提供. 2) 攻擊序列與節(jié)點(diǎn)序列間的似然度計(jì)算方法 攻擊序列與節(jié)點(diǎn)序列間的似然度本質(zhì)是指特定攻擊場(chǎng)景下產(chǎn)生此告警的可能性,借助本文的因果知識(shí)網(wǎng)絡(luò),攻擊場(chǎng)景可用因果知識(shí)網(wǎng)絡(luò)中的攻擊序列表示,而告警則可轉(zhuǎn)化為節(jié)點(diǎn)序列,于是兩者間的似然度可用序列間差異來表示.為了進(jìn)一步量化似然度,本文引出序列長(zhǎng)度和序列間距2個(gè)定義. 定義7. 序列長(zhǎng)度L.用于表征因果知識(shí)網(wǎng)絡(luò)中的攻擊序列的長(zhǎng)度,用攻擊序列中節(jié)點(diǎn)的總數(shù)量度量.如圖4所示的因果知識(shí)網(wǎng)絡(luò)中,攻擊序列s1→v2→s3→v6→s6→v10→s9的序列長(zhǎng)度L=7. Fig. 4 Another example of causal knowledge network圖4 因果知識(shí)網(wǎng)絡(luò)示例2 不妨設(shè)P(Nodeseq|Attackseq)為攻擊序列Attackseq與節(jié)點(diǎn)序列Nodeseq的似然,則得出以下定理. 定理2. 假設(shè)P(Nodeseq|Attackseq)與D(Nodeseq,Attackseq)成反比,即攻擊序列與節(jié)點(diǎn)序列間距越大,二者似然度越小,反之越大.則能夠得出: (7) 證明. 由網(wǎng)絡(luò)攻擊實(shí)際知,當(dāng)Nodeseq=?時(shí),實(shí)際意義為當(dāng)發(fā)生多步攻擊活動(dòng)Attackseq時(shí),獲取的告警集為空,由目前的網(wǎng)絡(luò)安全設(shè)備效率來講,這種情況的可能性很小,即P(?|Attackseq)=0;當(dāng)Nodeseq=Attackseq時(shí),實(shí)際意義為當(dāng)發(fā)生多步攻擊活動(dòng)Attackseq時(shí),獲取了每一步攻擊活動(dòng)的告警,發(fā)生這種情況的可能性很大,即P(Nodeseq|Attackseq)=1.由此可知,當(dāng)Nodeseq=?時(shí),D(Nodeseq,Attackseq)=L(Attackseq),P(?|Attackseq)=0;當(dāng)Nodeseq=Attackseq,D(Nodeseq,Attackseq)=0,P(Attackseq|Attackseq)=1.又由于P(Nodeseq|Attackseq)與D(Nodeseq,Attackseq)成反比,由2點(diǎn)式直線方程可知: (8) 化簡(jiǎn)得: (9) 證畢. P(Nodeseq|Attackseq)與D(Nodeseq,Attackseq)的關(guān)系如圖5所示: Fig. 5 The relationship between P(Nodeseq|Attackseq) and D(Nodeseq,Attackseq)圖5 P(Nodeseq|Attackseq)與D(Nodeseq,Attackseq)的關(guān)系 由定理2,依據(jù)候選攻擊序列與節(jié)點(diǎn)序列的序列間距以及攻擊序列的長(zhǎng)度即可計(jì)算出攻擊序列與節(jié)點(diǎn)序列的似然度. 目前,能夠用于攻擊場(chǎng)景構(gòu)建的公開數(shù)據(jù)集較少.1998年美國(guó)國(guó)防部為了加強(qiáng)網(wǎng)絡(luò)安全技術(shù),實(shí)施了DARPA項(xiàng)目,此項(xiàng)目生成的數(shù)據(jù)集成為目前公認(rèn)的可用于攻擊場(chǎng)景構(gòu)建的數(shù)據(jù)集.DARPA實(shí)施了2個(gè)攻擊過程:LLDOS1.0和LLDOS2.0.由于LLDOS1.0和LLDOS2.0這2個(gè)攻擊場(chǎng)景的攻擊目標(biāo)一致,都是對(duì)目標(biāo)主機(jī)131.84.1.31實(shí)施DDOS攻擊,且它們的攻擊過程基本相似,均是利用Sadmind漏洞實(shí)施的DDOS攻擊過程.而區(qū)別在于LLDOS2.0比LLDOS1.0更難被檢測(cè),其中的一些攻擊過程與正常的網(wǎng)絡(luò)行為相似,檢測(cè)系統(tǒng)并沒有產(chǎn)生相應(yīng)的告警,相當(dāng)于“漏報(bào)”的情況.而由于官方公布的數(shù)據(jù)集中沒有明確指出目標(biāo)網(wǎng)絡(luò)的漏洞知識(shí),鑒于此,依據(jù)大量學(xué)者[23-24]的研究,再加上對(duì)LLDOS1.0攻擊過程中產(chǎn)生告警的分析,構(gòu)建此網(wǎng)絡(luò)的因果知識(shí)網(wǎng)絡(luò),在此基礎(chǔ)上利用因果知識(shí)網(wǎng)絡(luò)對(duì)LLDOS2.0的攻擊場(chǎng)景進(jìn)行構(gòu)建.深入分析知,網(wǎng)絡(luò)中的漏洞信息、攻擊方法和告警類型對(duì)應(yīng)關(guān)系如表1所示.構(gòu)建的LLDOS因果關(guān)系網(wǎng)絡(luò)如圖6所示. Table 1 Corresponding Relation of Vulnerability Information, Attack Method and Alarm Type in the Network表1 網(wǎng)絡(luò)中的漏洞信息、攻擊方法和告警類型的對(duì)應(yīng)關(guān)系 由于LLDOS每一步利用的原子攻擊均比較簡(jiǎn)單,其前提條件和后果均可由所利用的攻擊手段得出,例如IPSweep攻擊的前提條件為源主機(jī)能夠訪問目標(biāo)主機(jī),且目標(biāo)主機(jī)存在ICMP Incorrectly Configured漏洞,攻擊的后果則為探測(cè)到目標(biāo)主機(jī)的信息;Sadmind Exploit攻擊的前提條件為具有目標(biāo)主機(jī)的普通權(quán)限,且目標(biāo)主機(jī)存在Sadmind Buffer Overflow漏洞,攻擊的后果則為獲得目標(biāo)主機(jī)的ROOT權(quán)限.因此,為了便于描述,不再具體給出每一個(gè)原子攻擊的前提后果條件.具體地,因果關(guān)系網(wǎng)絡(luò)中原子攻擊行為節(jié)點(diǎn)對(duì)應(yīng)的攻擊手段如表2所示;因果關(guān)系網(wǎng)絡(luò)中狀態(tài)節(jié)點(diǎn)對(duì)應(yīng)的IP地址如表3所示.LLDOS1.0的攻擊場(chǎng)景如圖7所示,深色節(jié)點(diǎn)表現(xiàn)了整個(gè)攻擊過程. Table2TheAttackMeansCorrespondingAtomicAttackBehaviorNode 表2 原子攻擊行為節(jié)點(diǎn)對(duì)應(yīng)的攻擊手段 Fig. 6 Causal relationship network of LLDOS圖6 LLDOS因果關(guān)系網(wǎng)絡(luò) Table 3 The IP Address Corresponding to the Status Node 通過分析LLDOS2.0中告警,推理的LLDOS2.0的攻擊場(chǎng)景如圖8所示.圖8中黑色實(shí)心小圓表示此節(jié)點(diǎn)檢測(cè)到了告警,由于LLDOS2.0的攻擊手段比LLDOS1.0隱蔽,使得攻擊過程中存在告警漏報(bào)現(xiàn)象.結(jié)合因果關(guān)系網(wǎng)絡(luò),可知對(duì)應(yīng)v5,s5,v16,s14的告警出現(xiàn)漏報(bào),整個(gè)攻擊過程如圖8中深色節(jié)點(diǎn)所展現(xiàn).攻擊者先采用正常的DNS Query,查詢到DNS服務(wù)器172.16.115.20,并利用該主機(jī)中Sadmind漏洞獲得ROOT權(quán)限,再以該主機(jī)為跳板控制主機(jī)172.16.112.50,最后通過172.16.115.20和172.16.112.50對(duì)目標(biāo)主機(jī)實(shí)施DDOS攻擊. 由上述實(shí)驗(yàn)可知,盡管官方公布的數(shù)據(jù)中不含歷史告警庫(kù),無法從中挖掘出因果知識(shí),但是依據(jù)本文方法構(gòu)建出因果關(guān)系網(wǎng)絡(luò),并在此基礎(chǔ)上利用定性的告警映射關(guān)聯(lián),能夠構(gòu)建出LLDOS2.0的攻擊場(chǎng)景. 為了進(jìn)一步驗(yàn)證本文方法的有效性,搭建了一個(gè)實(shí)際網(wǎng)絡(luò)環(huán)境來進(jìn)行測(cè)試.實(shí)驗(yàn)環(huán)境拓?fù)淙鐖D9所示. Fig. 7 Attack Scenario of LLDOS1.0圖7 LLDOS1.0的攻擊場(chǎng)景 Fig. 8 Attack Scenario of LLDOS2.0圖8 LLDOS2.0的攻擊場(chǎng)景 外網(wǎng)用戶可通過Internet訪問本網(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ù)器和Email服務(wù)器.子網(wǎng)1由3臺(tái)主機(jī)構(gòu)成.子網(wǎng)2由1臺(tái)工作站和1臺(tái)文件服務(wù)器組成.子網(wǎng)3包括1臺(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ǎng)1中的主機(jī)1、子網(wǎng)2中的文件服務(wù)器和子網(wǎng)3中的數(shù)據(jù)庫(kù)服務(wù)器.子網(wǎng)1中的主機(jī)1能夠訪問子網(wǎng)2和子網(wǎng)3中的所有機(jī)器,主機(jī)3只能訪問主機(jī)1和數(shù)據(jù)庫(kù)服務(wù)器,主機(jī)2只能訪問主機(jī)3.子網(wǎng)2中的工作站1和子網(wǎng)3中的工作站2能訪問數(shù)據(jù)服務(wù)器和文件服務(wù)器.通過Nessus脆弱點(diǎn)掃描器對(duì)網(wǎng)絡(luò)各網(wǎng)絡(luò)段進(jìn)行掃描,得到各主機(jī)中漏洞信息如表4所示.依據(jù)漏洞信息和CVSS分析得出的攻擊行為信息如表5所示. 根據(jù)圖9和表5,確定因果知識(shí)網(wǎng)絡(luò)基本結(jié)構(gòu)如圖10所示,從初始狀態(tài)s1到目標(biāo)狀態(tài)s9共有6條不同的攻擊路徑,分別是path1:s1→v1→s2→v5→s8→v13→s9;path2:s1→v1→s2→v3→s4→v6→s6→v11→s8→v13→s9;path3:s1→v1→s2→v4→s5→v7→s6→v11→s8→v13→s9;path4:s1→v1→s2→v4→s5→v8→s7→v12→s8→v13→s9;path5:s1→v1→s2→v4→s5→v10→s8→v13→s9;path6:s1→v2→s3→v1→s2→v4→s5→v9→s9. Fig. 9 Experimental network topology圖9 實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)鋱D Table 4 The Information of Hosts and Vulnerabilities 表4 各主機(jī)信息及其所含漏洞信息 Table 5 The Information of Attack Behaviors表5 攻擊行為信息 Fig. 10 The causal knowledge network structure of experiment圖10 實(shí)驗(yàn)得出的因果知識(shí)網(wǎng)絡(luò)結(jié)構(gòu) 依據(jù)此網(wǎng)絡(luò)產(chǎn)生的告警集,利用本文提出的因果知識(shí)挖掘方法得到的通過顯著性檢驗(yàn)(取顯著性水平α=0.05)的因果知識(shí)為K={K1,K2,K3,K4},具體地: 實(shí)驗(yàn)?zāi)M了3個(gè)不同的攻擊場(chǎng)景,用于驗(yàn)證告警冗余及缺失時(shí)攻擊場(chǎng)景構(gòu)建的準(zhǔn)確性.具體實(shí)驗(yàn)結(jié)果如表6所示. 實(shí)驗(yàn)1對(duì)于告警缺失的情況進(jìn)行了模擬,模擬的攻擊序列為s1→v1→s2→v3→s4→v6→s6→v11→s8→v13→s9,而由告警映射形成的節(jié)點(diǎn)序列為s1→v1→v3→s4→v6→v11→v13→s9,即缺失了狀態(tài)節(jié)點(diǎn)s2,s6,s8.結(jié)合因果知識(shí)網(wǎng)絡(luò)選取了2個(gè)候選的攻擊序列:s1→v1→s2→v3→s4→v6→s6→v11→s8→v13→s9和s1→v1→s2→v4→s5→v7→s6→v11→s8→v13→s9.依據(jù)本文提出的基于最大后驗(yàn)假設(shè)估計(jì)的攻擊場(chǎng)景定量重構(gòu)方法,計(jì)算得出前者的概率為0.845×0.572×(11-3)11=0.351 52,后者的概率為0.845×0.144×0.238×(11-5)11=0.015 796,取二者概率最大的攻擊序列,即可得出重構(gòu)后的攻擊序列為s1→v1→s2→v3→s4→v6→s6→v11→s8→v13→s9,與模擬的攻擊序列一致,故攻擊場(chǎng)景構(gòu)建成功.實(shí)驗(yàn)2模擬了告警冗余的情況,模擬的攻擊序列為s1→v1→s2→v5→s8→v13→s9,而由告警映射形成的節(jié)點(diǎn)序列為s1→v2→s2→v5→v3→s8→v13→s9,即v3為冗余的告警.結(jié)合因果知識(shí)網(wǎng)絡(luò)選取了2個(gè)候選的攻擊序列:s5→v8→s7→v12→s8→v13→s9和s1→v1→s2→v3→s4→v6→s6→v11→s8→v13→s9.同樣方法計(jì)算得出前者的概率為0.845×0.284×(7-1)7=0.205 7,后者的概率為0.845×0.572×(11-7)11=0.175 76,取二者概率最大的攻擊序列,即可得出重構(gòu)后的攻擊序列為s5→v8→s7→v12→s8→v13→s9,與模擬的攻擊序列一致,故攻擊場(chǎng)景構(gòu)建成功.實(shí)驗(yàn)3模擬了告警冗余和告警缺失這種混合情況,模擬的攻擊序列為s1→v1→s2→v4→s5→v8→s7→v12→s8→v13→s9,而由告警映射形成的節(jié)點(diǎn)序列為s1→v1→s2→s5→v9→v8→s8→v13→s9,即缺失了告警v4、s7和v12,而v9為冗余的告警,依據(jù)因果知識(shí)網(wǎng)絡(luò),選取了3個(gè)候選的攻擊序列:s1→v1→s2→v4→s5→v8→s7→v12→s8→v13→s9,s1→v1→s2→v4→s5→v7→s6→v11→s8→v13→s9,s1→v1→s2→v4→s5→v2→s3→v9→s9.計(jì)算得出三者的概率分別為:0.845×0.144×0.301×(11-4)11=0.205 7=0.023 3,0.845×0.144×0.238×(11-7)11=0.010 5,0.845×0144×0.155×0.175×(9-4)9=0.001 8,取3者概率最大的攻擊序列,即可得出重構(gòu)后的攻擊序列為s1→v1→s2→v4→s5→v8→s7→v12→s8→v13→s9,與模擬的攻擊序列一致,故攻擊場(chǎng)景構(gòu)建成功. Table 6 Experimental Results of Three Different Simulated Attackseq表6 不同模擬攻擊序列下的實(shí)驗(yàn)結(jié)果 此外,與陳小軍等人[12]的結(jié)果相比,在他們的第2個(gè)實(shí)驗(yàn)中,由于觀測(cè)事件o6的置信度為1,而觀測(cè)事件o7和o9的置信度小于1,因此應(yīng)用本文的方法可將文中求最可能的攻擊路徑的問題轉(zhuǎn)化為已知節(jié)點(diǎn)序列v7→v9的條件下求最有可能的攻擊場(chǎng)景.由于攻擊目標(biāo)狀態(tài)節(jié)點(diǎn)為s5,則候選的攻擊序列為s0→v6→s6→v7→s7→v8→s8→v9→s4→v5→s5和s0→v10→s7→v8→s8→v9→s4→v5→s5.計(jì)算可得前者的概率為0.8×1×0.8×1×0.5×1×0.9×1×(11-8)11=0.0785,后者的概率為0.8×1×0.8×1×0.5×1×0.9×1×(9-8)9=0.032,取二者概率最大的攻擊序列,故應(yīng)用本文方法構(gòu)建的攻擊場(chǎng)景為s0→v6→s6→v7→s7→v8→s8→v9→s4→v5→s5,與原文中結(jié)果保持一致,而由于陳小軍的方法計(jì)算的是累積概率,導(dǎo)致其概率計(jì)算結(jié)果相對(duì)較大. 綜上,本實(shí)驗(yàn)驗(yàn)證了本文提出的基于因果知識(shí)網(wǎng)絡(luò)的攻擊場(chǎng)景構(gòu)建方法適用于解決告警缺失及冗余條件下攻擊場(chǎng)景的構(gòu)建問題. 目前,以高級(jí)持續(xù)性威脅(advanced persistent threat, APT)攻擊為代表的多步攻擊行為給網(wǎng)絡(luò)安全造成了極大的威脅.攻擊場(chǎng)景構(gòu)建能夠通過告警數(shù)據(jù)重現(xiàn)攻擊者的攻擊過程,為攻擊行為分析及預(yù)測(cè)提供了重要依據(jù),是應(yīng)對(duì)多步攻擊威脅和實(shí)施網(wǎng)絡(luò)安全主動(dòng)防御的重要手段.然而,在當(dāng)前有關(guān)攻擊場(chǎng)景構(gòu)建的研究中,普遍缺乏對(duì)告警缺失及冗余的考慮,導(dǎo)致攻擊場(chǎng)景構(gòu)建不完整、不準(zhǔn)確.針對(duì)此問題,本文提出了基于因果知識(shí)網(wǎng)絡(luò)的攻擊場(chǎng)景構(gòu)建方法.首先選給出了因果知識(shí)網(wǎng)絡(luò)的相關(guān)定義,并設(shè)計(jì)了獲取因果知識(shí)網(wǎng)絡(luò)的方法;然后在因果知識(shí)網(wǎng)絡(luò)的基礎(chǔ)上,利用概率推理分2步重構(gòu)攻擊場(chǎng)景.實(shí)驗(yàn)結(jié)果表明,該方法能利用專家知識(shí)和數(shù)據(jù)挖掘相結(jié)合的優(yōu)勢(shì),能夠提高攻擊場(chǎng)景構(gòu)建的準(zhǔn)確度,為網(wǎng)絡(luò)管理員理解當(dāng)前攻擊行為態(tài)勢(shì)提供了重要依據(jù).未來的工作包括考慮目標(biāo)網(wǎng)絡(luò)存在零日漏洞條件下攻擊場(chǎng)景的重構(gòu)問題.2.2 因果知識(shí)挖掘
2.3 因果知識(shí)的顯著性檢驗(yàn)
H1:μD≠0.2.4 攻擊場(chǎng)景構(gòu)建
3 實(shí)驗(yàn)與分析
3.1 基于公開數(shù)據(jù)集的實(shí)驗(yàn)分析
3.2 真實(shí)網(wǎng)絡(luò)環(huán)境中的實(shí)驗(yàn)分析
4 結(jié)束語(yǔ)