專(zhuān)利名稱(chēng):一種基于頻繁模式增長(zhǎng)算法的網(wǎng)絡(luò)攻擊路徑重構(gòu)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于頻繁模式增長(zhǎng)算法的攻擊路徑重構(gòu)技術(shù),屬于網(wǎng)絡(luò)信息安全 技術(shù)領(lǐng)域,適用于入侵檢測(cè)系統(tǒng)(IDS)和其它安全監(jiān)控系統(tǒng)。
背景技術(shù):
入侵檢測(cè)系統(tǒng)(IDS)通過(guò)檢查操作系統(tǒng)的審計(jì)數(shù)據(jù)或網(wǎng)絡(luò)數(shù)據(jù)包信息來(lái)檢測(cè)系 統(tǒng)中違背安全策略或危及系統(tǒng)安全的行為或活動(dòng),并根據(jù)預(yù)先設(shè)定的策略進(jìn)行響應(yīng)。由于 IDS提供的是大量獨(dú)立的、原始的告警事件并且其中存在著漏警與虛警,導(dǎo)致這些數(shù)據(jù)無(wú) 法直接利用。目前通常采用的方法是對(duì)低級(jí)別的告警事件進(jìn)行聚集和關(guān)聯(lián),建立高級(jí)別的 攻擊場(chǎng)景,即從大量IDS告警事件中分析出入侵者為達(dá)到入侵目的所采取的一系列攻擊步 驟,使系統(tǒng)管理者和安全響應(yīng)系統(tǒng)能更好地了解真實(shí)的攻擊行為,從而采取有效的應(yīng)對(duì)策 略。這個(gè)過(guò)程也被稱(chēng)為構(gòu)建攻擊場(chǎng)景。但是,現(xiàn)有攻擊場(chǎng)景構(gòu)造方法的一個(gè)普遍特點(diǎn)是它 們都嚴(yán)重依賴于IDS的告警事件,即關(guān)聯(lián)結(jié)果的準(zhǔn)確性受到IDS能力的限制。當(dāng)IDS出現(xiàn) 漏報(bào)或誤報(bào)現(xiàn)象時(shí),關(guān)聯(lián)告警事件將不能反映真實(shí)的攻擊場(chǎng)景,因而會(huì)對(duì)用戶產(chǎn)生誤導(dǎo);并 且由此建立的攻擊場(chǎng)景結(jié)構(gòu)異常復(fù)雜,用戶無(wú)法直接從中提取出特定的攻擊路徑。本發(fā)明涉及到的一項(xiàng)重要已有技術(shù)是攻擊路徑重構(gòu)技術(shù)。攻擊路徑是對(duì)引起系統(tǒng) 狀態(tài)變遷的攻擊序列的一種描述,體現(xiàn)了系統(tǒng)狀態(tài)和攻擊動(dòng)作之間的依賴關(guān)系。由于重構(gòu) 網(wǎng)絡(luò)攻擊路徑能夠幫助管理人員有針對(duì)性地提高網(wǎng)絡(luò)安全性,因此其已成為網(wǎng)絡(luò)安全評(píng)估 系統(tǒng)中的一項(xiàng)重要環(huán)節(jié)。目前,在攻擊場(chǎng)景的基礎(chǔ)上重構(gòu)攻擊路徑的方法有“安全告警與威脅分 析”(security alerts and Threats analysis, SATA)系統(tǒng)中使用的基于 Apriori 算法的 攻擊路徑重構(gòu)方法。該方法通過(guò)對(duì)預(yù)先劃分的時(shí)間窗口內(nèi)的告警事件集進(jìn)行挖掘,發(fā)現(xiàn)頻 繁攻擊序列,然后依照時(shí)間順序重構(gòu)攻擊路徑,從而判斷攻擊者的策略和意圖。其核心處理 流程為1.對(duì)告警事件進(jìn)行排序首先對(duì)數(shù)據(jù)庫(kù)中的各類(lèi)告警事件按照在攻擊中發(fā)生的時(shí)間先后順序進(jìn)行排序;然 后將告警事件在數(shù)據(jù)庫(kù)中排序前獲得的序列號(hào)作為主碼,再將排序后的所有告警事件映射 到它們對(duì)應(yīng)的攻擊類(lèi)型,以獲得一個(gè)簽名(signature-id),即獲得一個(gè)代表該攻擊類(lèi)型的 整型編碼;在后續(xù)的挖掘處理中用該簽名代替告警事件的字符串名稱(chēng),以節(jié)省字符串匹配 的時(shí)間。經(jīng)過(guò)上述操作,將原始告警事件數(shù)據(jù)庫(kù)中的數(shù)據(jù)轉(zhuǎn)化為全局攻擊序列。2.劃分時(shí)間片段在對(duì)告警事件進(jìn)行排序以后,定義攻擊時(shí)間窗口的時(shí)間長(zhǎng)度,并用該時(shí)間長(zhǎng)度將 全局攻擊序列化分為若干局部攻擊序列。某一時(shí)間窗口內(nèi)包含該時(shí)間范圍內(nèi)所有告警事 件。攻擊時(shí)間窗口的長(zhǎng)度根據(jù)實(shí)際情況人為確定,通常是根據(jù)專(zhuān)家意見(jiàn)所認(rèn)定的完成一次 完整攻擊所需要的時(shí)間。3.挖掘攻擊序列
4
在得到局部攻擊序列之后,將每個(gè)局部攻擊序列視為一個(gè)“事務(wù)”(transaction), 并由這些局部攻擊序列構(gòu)成一個(gè)攻擊事務(wù)數(shù)據(jù)庫(kù);然后對(duì)該數(shù)據(jù)庫(kù)應(yīng)用Apriori算法,從 攻擊事務(wù)數(shù)據(jù)庫(kù)中挖掘出頻繁攻擊序列。設(shè)I = (I1,... , U是m個(gè)不同布爾型項(xiàng)目的集合,T= U1,... ,tj是一個(gè)事務(wù) 數(shù)據(jù)庫(kù),其中、表示事務(wù)數(shù)據(jù)庫(kù)T的第j個(gè)事務(wù),它是I中一組布爾型項(xiàng)目的集合A £ I。 每一個(gè)事務(wù)都有一個(gè)唯一的標(biāo)示符TID。如果對(duì)于I中的一個(gè)子集X,有Z G ^,就說(shuō)一個(gè)事 務(wù)包含X。一條布爾型關(guān)聯(lián)規(guī)則就是一個(gè)形如“X Y"的蘊(yùn)含式,其中Z G /,ΓG /,并且
= 0 O定義1 對(duì)于項(xiàng)目集X,X的支持度Support (X)表示數(shù)據(jù)庫(kù)中包含X的事務(wù)數(shù);定義2 布爾型關(guān)聯(lián)規(guī)則“ v ’的支持率定義為Sup,Sup = SupP°rt(XuY),其
X=^Yη
中η是數(shù)據(jù)庫(kù)中的事務(wù)總數(shù)。布爾型關(guān)聯(lián)規(guī)則的挖掘問(wèn)題就是要生成所有滿足用戶給定的最小支持度(min Support)的布爾型規(guī)則,滿足最小支持度的布爾型關(guān)聯(lián)規(guī)則稱(chēng)為有意義的關(guān)聯(lián)規(guī)則,其中 最小支持度 min Support = min SupXn0上述問(wèn)題可以進(jìn)一步引申為找出事務(wù)數(shù)據(jù)庫(kù)中所有滿足用戶給定最小支持度的 項(xiàng)目集(I的非空子集),其中滿足最小支持度的項(xiàng)目集稱(chēng)為頻繁項(xiàng)目集。SATA系統(tǒng)中用到的搜索頻繁項(xiàng)目集的算法,即Apriori數(shù)據(jù)挖掘算法具體為Apriori算法的原理基于下面兩個(gè)定理定理1 如果項(xiàng)目集X是頻繁項(xiàng)目集,那么它的所有非空子集都是頻繁項(xiàng)目集。定理2 如果項(xiàng)目集X是最非頻繁項(xiàng)目集,那么它的所有超集都是非頻繁項(xiàng)目集。在這兩個(gè)定理的基礎(chǔ)上,Apriori算法采用一種廣度優(yōu)先且逐層搜索的迭代方法, 通過(guò)對(duì)數(shù)據(jù)庫(kù)的多次掃描以發(fā)現(xiàn)所有的頻繁項(xiàng)目集,每一次掃描中只考慮具有同一長(zhǎng)度的 所有項(xiàng)目集。該方法可以從歷史數(shù)據(jù)中挖掘出頻繁攻擊序列。該頻繁攻擊序列在一定程度 上反映了攻擊行為發(fā)生的規(guī)律,專(zhuān)家可以通過(guò)研究頻繁攻擊序列,對(duì)攻擊者的意圖和策略 進(jìn)行判斷。但是,該方法存在以下缺點(diǎn)1. Apriori算法會(huì)在挖掘的過(guò)程中產(chǎn)生大量候選集,嚴(yán)重消耗資源;2. Apriori算法需要反復(fù)掃描數(shù)據(jù)庫(kù)以挖掘每一個(gè)長(zhǎng)度級(jí)別的頻繁序列,時(shí)間復(fù) 雜度高;3.由于Apriori算法不適合挖掘長(zhǎng)的頻繁序列,所以SATA系統(tǒng)只能挖掘不大于 10步的攻擊序列,而對(duì)于較長(zhǎng)的攻擊序列無(wú)能為力。4.由于SATA系統(tǒng)在進(jìn)行挖掘之前,只是依照時(shí)間順序?qū)Ω婢录蛄羞M(jìn)行了簡(jiǎn) 單的排序,其挖掘?qū)ο笕匀皇菦](méi)有經(jīng)過(guò)關(guān)聯(lián)的離散告警事件,導(dǎo)致最終挖掘結(jié)果只是所有 滿足最小支持度的告警事件的簡(jiǎn)單聚集,無(wú)法直接構(gòu)成攻擊路徑,管理員需要根據(jù)經(jīng)驗(yàn)對(duì) 數(shù)據(jù)進(jìn)行再處理,由此難以保證其結(jié)果的準(zhǔn)確性。本發(fā)明還使用到頻繁模式增長(zhǎng)算法(FP-Growth算法)。該算法可分為兩部分(1) 構(gòu)建FP-樹(shù);(2)基于FP-樹(shù)的頻繁模式挖掘算法(FP-Growth)。首先,頻繁模式樹(shù)(FP-樹(shù))的結(jié)構(gòu)定義如下
a. FP-樹(shù)由樹(shù)根(標(biāo)記為null)、作為樹(shù)葉的一組項(xiàng)目前綴子樹(shù)以及一個(gè)頻繁項(xiàng)目
頭結(jié)點(diǎn)鏈表組成。b.項(xiàng)目前綴子樹(shù)中的每個(gè)節(jié)點(diǎn)包含以下域項(xiàng)目名、計(jì)數(shù)值以及節(jié)點(diǎn)鏈表。其中 項(xiàng)目名表示該節(jié)點(diǎn)指代哪個(gè)項(xiàng)目;計(jì)數(shù)值表示經(jīng)過(guò)該節(jié)點(diǎn)的通路的數(shù)量,即通路所代表的 事務(wù)數(shù)量;節(jié)點(diǎn)鏈表將FP-樹(shù)中擁有相同項(xiàng)目名的節(jié)點(diǎn)進(jìn)行鏈接,如果鏈表為null則說(shuō)明 樹(shù)中沒(méi)有該項(xiàng)目。c.頻繁項(xiàng)目頭結(jié)點(diǎn)鏈表中的每個(gè)結(jié)點(diǎn)包含兩個(gè)域項(xiàng)目名與頭指針,后者為指向 FP-樹(shù)中擁有項(xiàng)目名的第一個(gè)節(jié)點(diǎn)的指針。算法1(FP_樹(shù)構(gòu)建)輸入一個(gè)事務(wù)數(shù)據(jù)庫(kù)DB以及最小支持度閥值(用ξ表示)輸出FP_樹(shù),既DB的頻繁模式樹(shù)處理FP_樹(shù)的構(gòu)建過(guò)程如下1.對(duì)DB進(jìn)行第一次掃描,收集所有的頻繁項(xiàng)目組成的集合F,其中包含這些項(xiàng)目 的支持度。按照支持度的降序?qū)中的元素進(jìn)行排序并存入頻繁項(xiàng)目表FList。2.創(chuàng)建FP-樹(shù)的根節(jié)點(diǎn)T,并標(biāo)記為null,對(duì)DB中的每個(gè)事務(wù)Trans,循環(huán)執(zhí)行下 面的步驟3。3.對(duì)DB中的事務(wù)Trans進(jìn)行第二次掃描,選擇Trans中的頻繁項(xiàng)目,并按照FList 中的順序進(jìn)行排序。將Trans中排序后的頻繁項(xiàng)目組成表[ρ |P],其中ρ是表中的第一個(gè)元 素,P剩余的元素組成的子表。執(zhí)行步驟4調(diào)用函數(shù)insertjree ([ρ I P],Τ)。4.函數(shù)insertjree ([ρ | P], Τ)的執(zhí)行步驟如下所示如果T有子節(jié)點(diǎn)N,且 N. item_name = p. item_name,則將N的計(jì)數(shù)值加1 ;否則創(chuàng)建一個(gè)新節(jié)點(diǎn)N,將其計(jì)數(shù)值初 始化為1,并將其父節(jié)點(diǎn)指向T,同時(shí)根據(jù)項(xiàng)目名將其與頻繁項(xiàng)目頭結(jié)點(diǎn)鏈表中相應(yīng)的結(jié)點(diǎn) 進(jìn)行鏈接。如果P非空,則以遞歸形式調(diào)用insertjree (P,N)。在構(gòu)建完FP-樹(shù)之后,對(duì)其進(jìn)行挖掘。此過(guò)程可用算法2描述如下算法2 (FP-Growth 頻繁模式生成算法,在FP樹(shù)中挖掘頻繁模式)輸入數(shù)據(jù)庫(kù)DB,由算法1所產(chǎn)生的FP-樹(shù);最小支持度閥值ξ。輸出完整的頻繁模式集(頻繁項(xiàng)目集)處理調(diào)用函數(shù)EP-growth(Tree, null)EP-growth (Tree, α)如果Tree中包含一條單前綴通路,則令P表示Tree的單前綴通路;令Q表示Tree的剩余部分,且將此部分的頂點(diǎn)設(shè)為null ;對(duì)P中所有節(jié)點(diǎn)的組合β:生成模式β U α,其支持度設(shè)為β中節(jié)點(diǎn)的最小支持度;令freq_pattern_Set (P)為按照上面方法生成的頻繁模式的集合;否則,令Q 表示 Tree;對(duì)Q中的每個(gè)節(jié)點(diǎn)ai:生成模式β = ai U α,其支持度為 的支持度;構(gòu)建β的條件模式庫(kù)和β的條件FP-樹(shù)Tree0 ;
如果斤儀存類(lèi)⑦,則調(diào)用FP-Growth(Tree0,β );令freq_pattern_Set (Q)為按照上面方法生成的頻繁模式的集合;輸出freq_pattern_set (P) U freq_pattern_set (Q) U (freq_pattern_ set (P)Xfreq_pattern_set(Q));其中(1)單前綴通路FP-樹(shù)是一棵只由單前綴通路組成的FP-樹(shù),該通路從樹(shù)根延伸至 樹(shù)的第一個(gè)分支節(jié)點(diǎn),其中分支節(jié)點(diǎn)是包含至少一條子分支的節(jié)點(diǎn)。(2)令α為DB中的一個(gè)頻繁項(xiàng)目集,B為α的條件模式庫(kù),β為B中的一個(gè)項(xiàng) 目集。認(rèn)為α U β在DB中的支持度等于β在B中的支持度,且α U β在DB中是頻繁 的當(dāng)且僅當(dāng)β在B中是頻繁的。(3)對(duì)任意頻繁項(xiàng)目 ,在FP-樹(shù)的頭指針表中搜索頭結(jié)點(diǎn)為 的鏈表可以獲得 所有只包含%的所有可能的頻繁模式。在計(jì)算以%為后綴的頻繁模式時(shí),只需積累FP-樹(shù) 中標(biāo)記為%的節(jié)點(diǎn)的前綴子樹(shù),且前綴通路中的每個(gè)節(jié)點(diǎn)頻繁度計(jì)數(shù)值應(yīng)與的相同?;谏鲜鼋Y(jié)論,通過(guò)將前綴子樹(shù)中的每個(gè)節(jié)點(diǎn)的頻繁度的計(jì)數(shù)值調(diào)整為與節(jié)點(diǎn)^ 相同的計(jì)數(shù)值,節(jié)點(diǎn)%在通路P中的前綴子樹(shù)可以被復(fù)制并轉(zhuǎn)換為一個(gè)調(diào)整計(jì)數(shù)值的前綴 子樹(shù)。由被轉(zhuǎn)換的 的前綴通路的集合構(gòu)成與 一同出現(xiàn)的子模式庫(kù)。這種與 一同 出現(xiàn)的子數(shù)據(jù)庫(kù)叫做 的條件模式庫(kù),用"patterrubasela/'表示。之后可以通過(guò)創(chuàng)建一棵 子FP-樹(shù)來(lái)計(jì)算%的條件模式庫(kù)中與%關(guān)聯(lián)的所有頻繁模式,該樹(shù)稱(chēng)作%的條件FP-樹(shù), 用“FP-tree | a/’表示。后續(xù)的挖掘過(guò)程將在這棵條件FP-樹(shù)中進(jìn)行。
發(fā)明內(nèi)容
本發(fā)明的目的是針對(duì)已有技術(shù)存在的不足,提出一種基于頻繁模式增長(zhǎng)算法的攻 擊路徑重構(gòu)技術(shù)。本發(fā)明將IDS的告警事件與其他安全工具(如殺毒軟件/掃描器等)的 數(shù)據(jù)相關(guān)聯(lián),融合為補(bǔ)償性入侵證據(jù)(complementary intrusionevidence),并在此數(shù)據(jù)基 礎(chǔ)上創(chuàng)建基于貝葉斯網(wǎng)絡(luò)的攻擊場(chǎng)景;然后使用頻繁模式增長(zhǎng)算法從攻擊場(chǎng)景中挖掘出頻 繁攻擊序列;最后將挖掘出的頻繁攻擊序列進(jìn)行再關(guān)聯(lián)以重構(gòu)出攻擊路徑。本發(fā)明的目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的。本發(fā)明的一種基于頻繁模式增長(zhǎng)算法的網(wǎng)絡(luò)攻擊路徑重構(gòu)方法的整體框架設(shè)計(jì) 流程如圖1所示。其具體操作流程如下步驟一、構(gòu)建攻擊場(chǎng)景構(gòu)建攻擊場(chǎng)景(用AS表示)的具體步驟如下第1步收集告警事件(用Alert表示)與系統(tǒng)狀態(tài)(用System-State表示)。 告警事件直接使用IDS進(jìn)行收集,系統(tǒng)狀態(tài)則使用殺毒軟件或掃描器等系統(tǒng)安全工具對(duì)系 統(tǒng)進(jìn)行監(jiān)控,將發(fā)現(xiàn)的系統(tǒng)狀態(tài)(或系統(tǒng)狀態(tài)的變化)以日志形式進(jìn)行收集并處理,構(gòu)建攻 擊場(chǎng)景AS。步驟二、挖掘頻繁攻擊序列集
在步驟一中構(gòu)建攻擊場(chǎng)景AS的基礎(chǔ)上,進(jìn)行基于頻繁模式增長(zhǎng)算法的頻繁攻擊 序列(用FAP表示)集合的挖掘。步驟三、重構(gòu)攻擊路徑在步驟二的基礎(chǔ)上,依次對(duì)所有頻繁攻擊序列FAP重新進(jìn)行關(guān)聯(lián)以重構(gòu)攻擊路徑 (用APath表示),進(jìn)而得到攻擊者最可能的攻擊意圖。其具體操作步驟如下第1步將頻繁攻擊序列FAP中的元素按照時(shí)間順序進(jìn)行排序;其中,F(xiàn)AP中的元素由系統(tǒng)狀態(tài)變量System-State和告警事件變量Alert組成, 且System-State和Alert都具有時(shí)間戳time stamp屬性。第2步將告警事件Alert進(jìn)行關(guān)聯(lián);其具體化簡(jiǎn)方法為對(duì)每個(gè)告警事 Alert,如果 Bi^yfew - State e FAP,或者彐Sjwfem - State e APath, 并且該告警事件Alert的System-State與告警事件Alert的precondition中的 System-State相同,則將告警事件Alert及其precondition中的所有變量vQ,V1, v2, . . . vn作為節(jié)點(diǎn)添加到攻擊路徑APath中,合并攻擊路徑APath中重復(fù)出現(xiàn)的系統(tǒng)狀態(tài) System-State節(jié)點(diǎn),然后,將剩下的系統(tǒng)狀態(tài)System-State節(jié)點(diǎn)與告警事件Alert節(jié)點(diǎn)相 連;否則,說(shuō)明該告警事件Alert的precondition不能被滿足,放棄該Alert。然后,將告警事件Alert的postcondition中的所有元素eQ,e1 e2,. . . en作為節(jié) 點(diǎn)添加到攻擊路徑APath中,合并攻擊路徑APath中重復(fù)出現(xiàn)的系統(tǒng)狀態(tài)System-State節(jié) 點(diǎn),并將剩下的系統(tǒng)狀態(tài)System-State節(jié)點(diǎn)與告警事件Alert節(jié)點(diǎn)相連。循環(huán)執(zhí)行第2步,直到遍歷完頻繁攻擊序列FAP中的所有告警事件Alert。其中,頻繁攻擊序列FAP中的System-State以元素形式出現(xiàn),APath中的 System-State以節(jié)點(diǎn)形式出現(xiàn);Alert的precondition中的System-State以布爾型變 量形式出現(xiàn),此處用變量用Vi表示,即precondition = ν0 Λ V1 Λ . . . Λ νη(0 ^ i ^ η); Alert的postcondition中的System-State以元素形式出現(xiàn),此處用元素Gi表示,即 postcondition = { Gq J θ J ... J θη } (0 < i < η)。第3步對(duì)攻擊路徑APath中的節(jié)點(diǎn)進(jìn)行化簡(jiǎn)。對(duì)于從同一攻擊事務(wù)數(shù)據(jù)庫(kù)中挖掘出的所有頻繁攻擊序列,依次使用步驟三,以 完成對(duì)攻擊路徑的重構(gòu)。由于結(jié)合兩類(lèi)補(bǔ)償性入侵證據(jù)進(jìn)行數(shù)據(jù)挖掘,且在其后進(jìn)行了再 關(guān)聯(lián),所以能夠保證攻擊路徑的可靠性與信息的完整性,并據(jù)此準(zhǔn)確推斷出攻擊意圖。有益效果1.本發(fā)明在構(gòu)造攻擊場(chǎng)景的過(guò)程中將IDS的告警事件與其他安全工具 如殺毒軟件/掃描器等的數(shù)據(jù)相關(guān)聯(lián),融合為互補(bǔ)性入侵證據(jù)(complementary intrusionevidence),使每一步攻擊都有相應(yīng)的系統(tǒng)狀態(tài)作為攻擊效果的客觀反映。確保 在后續(xù)分析中,可以準(zhǔn)確判斷攻擊者每一步攻擊行為的目的及其整體意圖;2.本發(fā)明在構(gòu)造攻擊場(chǎng)景的基礎(chǔ)上,提出一種新的重構(gòu)攻擊路徑的方法,即利用 數(shù)據(jù)是由互補(bǔ)性入侵證據(jù)組成以及在挖掘前具有特殊屬性這兩個(gè)優(yōu)勢(shì),對(duì)挖掘后的頻繁攻 擊序列進(jìn)行再關(guān)聯(lián),由此準(zhǔn)確重構(gòu)攻擊路徑,進(jìn)而清晰判斷出可能的攻擊意圖;3.本發(fā)明在頻繁攻擊序列的挖掘過(guò)程中采用頻繁模式增長(zhǎng)算法,在提高了挖掘效 率的同時(shí)顯著減少了系統(tǒng)開(kāi)銷(xiāo)。
8
圖1為本發(fā)明方法的整體框架設(shè)計(jì)流程圖;圖2為本發(fā)明具體實(shí)施方式
中的本發(fā)明方法與SATA系統(tǒng)性能比較可視圖。
具體實(shí)施例方式下面結(jié)合附圖及具體實(shí)施方式
對(duì)本發(fā)明方法進(jìn)行詳細(xì)說(shuō)明。為了檢驗(yàn)本發(fā)明提出方法的有效性,使用基于該方法原理設(shè)計(jì)的一套應(yīng)用系統(tǒng)進(jìn) 行實(shí)驗(yàn)。實(shí)驗(yàn)硬件環(huán)境為一個(gè)預(yù)先搭建的局域網(wǎng),在其中配置三臺(tái)主機(jī),主機(jī)間由集線器相 連;軟件環(huán)境為=IDS使用snort,掃描器使用x-scan,殺毒軟件使用Kaspersky。隨機(jī)選擇 一臺(tái)主機(jī)作為攻擊者,控制其對(duì)另一臺(tái)作為被攻擊者的主機(jī)實(shí)施攻擊,殺毒軟件和掃描器 安裝在被攻擊主機(jī)上,IDS安裝在第三臺(tái)主機(jī)上。為了更加有效地模擬真實(shí)的攻擊場(chǎng)景,使用DAPRA2000數(shù)據(jù)集模擬攻擊場(chǎng)景中的 背景數(shù)據(jù)流量。實(shí)驗(yàn)開(kāi)始后,系統(tǒng)從中收集到了 267個(gè)告警事件以及相應(yīng)的代表系統(tǒng)狀態(tài) 改變的數(shù)據(jù)。將這些數(shù)據(jù)作為干擾項(xiàng),以檢測(cè)系統(tǒng)的健壯性和穩(wěn)定性。將DARPA2000數(shù)據(jù)集導(dǎo)入局域網(wǎng)的背景數(shù)據(jù)流中,攻擊者隨機(jī)選擇時(shí)間對(duì)被攻擊 主機(jī)進(jìn)行真實(shí)的入侵行為,該入侵行為可以分為探測(cè)系統(tǒng)漏洞,針對(duì)該漏洞實(shí)施攻擊,關(guān) 閉防御軟件,獲得系統(tǒng)控制權(quán),安裝后門(mén)程序等4個(gè)步驟。不斷重復(fù)上述操作,并讓該過(guò)程 持續(xù)48個(gè)小時(shí)?;谏鲜霰尘懊枋?,實(shí)驗(yàn)流程可以分為以下3個(gè)步驟步驟一、構(gòu)建攻擊場(chǎng)景系統(tǒng)從被攻擊主機(jī)和IDS中收集所有補(bǔ)償性入侵證據(jù),使用編譯好的程序和知識(shí) 庫(kù)(用于保存告警事件的precondition、postcondition信息)構(gòu)建攻擊場(chǎng)景。步驟二、挖掘頻繁攻擊序列集在步驟一中構(gòu)建攻擊場(chǎng)景AS的基礎(chǔ)上,進(jìn)行基于頻繁模式增長(zhǎng)算法的頻繁攻擊 序列集合的挖掘,其具體方法為將基于FP-樹(shù)的頻繁模式挖掘算法編譯后導(dǎo)入系統(tǒng)。使用 該算法對(duì)攻擊場(chǎng)景進(jìn)行挖掘,以找出所有的頻繁攻擊序列FAP。為了體現(xiàn)FP-Growth算法的 性能優(yōu)勢(shì),同時(shí)使用Apriori算法對(duì)攻擊場(chǎng)景進(jìn)行挖掘。這個(gè)過(guò)程反復(fù)進(jìn)行6次,其中攻擊 時(shí)間窗口開(kāi)放間隔分別設(shè)為2、4、6、8、10、12小時(shí)。其對(duì)比結(jié)果如圖2所示。圖中,橫坐標(biāo) 為攻擊時(shí)間窗口大小,單位為小時(shí);縱坐標(biāo)為系統(tǒng)運(yùn)行時(shí)間,單位為秒;圖中顯示,在攻擊 時(shí)間窗口分別設(shè)置為2、4、6、8、10、12小時(shí),使用本發(fā)明方法的系統(tǒng)運(yùn)行時(shí)間明顯小于SATA 系統(tǒng)運(yùn)行的時(shí)間。步驟三、重構(gòu)攻擊路徑在步驟二的基礎(chǔ)上,依次對(duì)所有頻繁攻擊序列FAP重新進(jìn)行關(guān)聯(lián)以重構(gòu)攻擊路徑 (用APath表示),進(jìn)而判斷攻擊者最可能的攻擊意圖。其具體操作步驟如下第1步排序?qū)AP中的元素按照時(shí)間順序進(jìn)行排序;其中,F(xiàn)AP中的元素由系統(tǒng)狀態(tài)變量System-State和告警事件變量Alert組成, 且System-State和Alert都具有時(shí)間戳time_stamp屬性。第2步關(guān)聯(lián)依次遍歷FAP中的所有Alert。對(duì)每個(gè) Alert,如果彐-State € FAP,或者彐- State e APath,與 Alert
9白勺 precondition ψ 白勺 System-State 才百胃,PJ Alert ^ ^ precondition Φ W Iif W ^ 量(用Vq,V1, v2, ...vn表示)作為節(jié)點(diǎn)添加到APath中,之后,合并APath中重復(fù)出現(xiàn)的 System-State節(jié)點(diǎn),之后,將剩下的System-State節(jié)點(diǎn)與Alert節(jié)點(diǎn)相連;否則,說(shuō)明該 Alert的precondition不能被滿足,放棄此APath ;然后,將Alert的postcondition中的所有元素(用eQ,e1 e2,. · · en表示)作為 節(jié)點(diǎn)添加到APath中,之后,合并APath中重復(fù)出現(xiàn)的System-State節(jié)點(diǎn),之后,將剩下的 System-State節(jié)點(diǎn)與Alert節(jié)點(diǎn)相連。循環(huán)執(zhí)行第2步,直到遍歷完FAP中的所有Alert。其中,頻繁攻擊序列FAP中的System-State以元素形式出現(xiàn),APath中的 System-State以節(jié)點(diǎn)形式出現(xiàn);Alert的precondition中的System-State以布爾型變 量形式出現(xiàn),此處用變量用Vi表示,即precondition = ν0 Λ V1 Λ . . . Λ νη(0 ^ i ^ η); Alert的postcondition中的System-State以元素形式出現(xiàn),此處用元素Gi表示,即 postcondition = { Gq J θ J ... J θη } (0 < i < η)。第3步化簡(jiǎn)依次遍歷APath中的所有Alert節(jié)點(diǎn)。對(duì)每個(gè)Alert,如果3e,+ e Alert.postcondition,且ei在APath中有對(duì)應(yīng)的節(jié)點(diǎn),但是 對(duì)于APath中所有其他告警事件節(jié)點(diǎn)(用Alert'表示),如果Alert'在時(shí)間戳上晚于該 Alert,艮 口 Alert' . time_stamp > Alert. time_stamp,且 Vvi e Alert'.precondition, y. Φ θ , 則從APath中刪除ei對(duì)應(yīng)的節(jié)點(diǎn)。其中,APath 中的 System—State 以節(jié)點(diǎn)形式出現(xiàn);Alert 的 precondition 中 的System-State以布爾型變量形式出現(xiàn),此處用變量用Vi表示,即precondition = ν0 Λ V1 Λ . . . Λ νη(0 ^ i ^ η) ;Alert 白勺 postcondition 巾白勺 System-State UjtMM^i 出現(xiàn),此處用兀素ej表不,艮口 postcondition = { Gq J θ"^ J ... J θη } (0 彡 i 彡 η)。循環(huán)執(zhí)行第3步,直到遍歷完FAP中的所有Alert節(jié)點(diǎn)。對(duì)于從同一攻擊事務(wù)數(shù)據(jù)庫(kù)中挖掘出的所有頻繁攻擊序列,依次使用步驟三,以 完成對(duì)攻擊路徑的重構(gòu)。由于結(jié)合兩類(lèi)補(bǔ)償性入侵證據(jù)進(jìn)行數(shù)據(jù)挖掘,且在其后進(jìn)行了再 關(guān)聯(lián),所以能夠保證攻擊路徑的可靠性與信息的完整性,并據(jù)此準(zhǔn)確推斷出攻擊意圖。
10
權(quán)利要求
一種基于頻繁模式增長(zhǎng)算法的網(wǎng)絡(luò)攻擊路徑重構(gòu)方法,其特征在于其具體操作步驟如下步驟一、構(gòu)建攻擊場(chǎng)景AS收集告警事件Alert與系統(tǒng)狀態(tài)System State;告警事件直接使用IDS進(jìn)行收集,系統(tǒng)狀態(tài)則使用殺毒軟件或掃描器等系統(tǒng)安全工具對(duì)系統(tǒng)進(jìn)行監(jiān)控,將發(fā)現(xiàn)的系統(tǒng)狀態(tài)或系統(tǒng)狀態(tài)的變化以日志形式進(jìn)行收集并處理,構(gòu)建攻擊場(chǎng)景AS;步驟二、挖掘頻繁攻擊序列FAP在步驟一中構(gòu)建攻擊場(chǎng)景AS的基礎(chǔ)上,進(jìn)行基于頻繁模式增長(zhǎng)算法的頻繁攻擊序列FAP的挖掘;步驟三、重構(gòu)攻擊路徑APath在步驟二的基礎(chǔ)上,依次對(duì)所有頻繁攻擊序列FAP重新進(jìn)行關(guān)聯(lián)以重構(gòu)攻擊路徑APath,進(jìn)而得到攻擊者最可能的攻擊意圖;第1步將頻繁攻擊序列FAP中的元素按照時(shí)間順序進(jìn)行排序;第2步將告警事件Alert進(jìn)行關(guān)聯(lián);其具體方法為對(duì)每個(gè)告警事Alert,如果 <mrow><mo>∃</mo><mi>System</mi><mo>-</mo><mi>State</mi><mo>∈</mo><mi>FAP</mi><mo>,</mo> </mrow>或者 <mrow><mo>∃</mo><mi>System</mi><mo>-</mo><mi>State</mi><mo>∈</mo><mi>APath</mi><mo>,</mo> </mrow>并且該告警事件Alert的System State與告警事件Alert的precondition中的System State相同,則將告警事件Alert及其precondition中的所有變量v0,v1,v2,...vn作為節(jié)點(diǎn)添加到攻擊路徑APath中,合并攻擊路徑APath中重復(fù)出現(xiàn)的系統(tǒng)狀態(tài)System State節(jié)點(diǎn),然后,將剩下的系統(tǒng)狀態(tài)System State節(jié)點(diǎn)與告警事件Alert節(jié)點(diǎn)相連;否則,說(shuō)明該告警事件Alert的precondition不能被滿足,放棄該Alert;然后,將告警事件Alert的postcondition中的所有元素e0,e1,e2,...en作為節(jié)點(diǎn)添加到攻擊路徑APath中,合并攻擊路徑APath中重復(fù)出現(xiàn)的系統(tǒng)狀態(tài)System State節(jié)點(diǎn),并將剩下的系統(tǒng)狀態(tài)System State節(jié)點(diǎn)與告警事件Alert節(jié)點(diǎn)相連;循環(huán)執(zhí)行第2步,直到遍歷完頻繁攻擊序列FAP中的所有告警事件Alert;第3步對(duì)攻擊路徑APath中的節(jié)點(diǎn)進(jìn)行化簡(jiǎn);對(duì)于從同一攻擊事務(wù)數(shù)據(jù)庫(kù)中挖掘出的所有頻繁攻擊序列,依次使用步驟三,以完成對(duì)攻擊路徑的重構(gòu)。
2.如權(quán)力要求1所述的一種基于頻繁模式增長(zhǎng)算法的網(wǎng)絡(luò)攻擊路徑重構(gòu)方法,其特征 在于步驟二挖掘頻繁攻擊序列集的具體步驟如下第1步根據(jù)實(shí)際環(huán)境需要,定義攻擊時(shí)間窗口 T的時(shí)間長(zhǎng)度; 第2步根據(jù)系統(tǒng)狀態(tài)變量System-State的host屬性,對(duì)整個(gè)攻擊場(chǎng)景AS進(jìn)行遍歷, 按照攻擊目標(biāo)將AS劃分為多個(gè)子場(chǎng)景空間child-AS,每個(gè)子場(chǎng)景空間child-AS針對(duì)同一 個(gè)被攻擊主機(jī);第3步使用攻擊時(shí)間窗口 T將一個(gè)child-AS劃分為多組局部攻擊序列l(wèi)ocal-ΑΡ ;遍 歷每個(gè)T中的local-AP,以同一組local-ΑΡ作為輸入數(shù)據(jù),構(gòu)建攻擊事務(wù)數(shù)據(jù)庫(kù)ATD,ATD 中的每個(gè)事務(wù)對(duì)應(yīng)一個(gè)攻擊序列AP ;第4步使用FP-Growth算法對(duì)攻擊事務(wù)數(shù)據(jù)庫(kù)ATD進(jìn)行挖掘,輸出所有頻繁攻擊序列FAP。
3.如權(quán)力要求1所述的一種基于頻繁模式增長(zhǎng)算法的網(wǎng)絡(luò)攻擊路徑重構(gòu)方法,其特征在于步驟三第3步對(duì)攻擊路徑APath中的節(jié)點(diǎn)進(jìn)行化簡(jiǎn)的方法為對(duì)每個(gè)告警事件Alert,如果% € Alert.postcondition,且ei在攻擊路徑APath中有對(duì) 應(yīng)的節(jié)點(diǎn),則對(duì)于該攻擊路徑APath中所有其他告警事件節(jié)點(diǎn)Alert',如果其他告警事件 節(jié)點(diǎn) Alert'在時(shí)間戳上晚于該 Alert,即 Alert' · time_stamp > Alert. time_stamp,且 Vvi e Alert'.precondition, Vi Φ ei,則從攻擊路徑APath中刪除ei對(duì)應(yīng)的節(jié)點(diǎn)。
全文摘要
本發(fā)明涉及一種基于頻繁模式增長(zhǎng)算法的攻擊路徑重構(gòu)技術(shù),屬于網(wǎng)絡(luò)信息安全技術(shù)領(lǐng)域,適用于入侵檢測(cè)系統(tǒng)(IDS)和其它安全監(jiān)控系統(tǒng)。本發(fā)明將IDS的告警事件與其他安全工具(如殺毒軟件/掃描器等)的數(shù)據(jù)相關(guān)聯(lián),融合為補(bǔ)償性入侵證據(jù)(complementary intrusion evidence),使每一步攻擊都有相應(yīng)的系統(tǒng)狀態(tài)作為攻擊效果的客觀反映;然后在此數(shù)據(jù)基礎(chǔ)上創(chuàng)建基于貝葉斯網(wǎng)絡(luò)的攻擊場(chǎng)景;再使用頻繁模式增長(zhǎng)算法從攻擊場(chǎng)景中挖掘出頻繁攻擊序列,提高挖掘效率的同時(shí)顯著減少了系統(tǒng)開(kāi)銷(xiāo);最后將挖掘出的頻繁攻擊序列進(jìn)行再關(guān)聯(lián)以重構(gòu)出攻擊路徑,能夠清晰判斷出可能的攻擊意圖。
文檔編號(hào)H04L12/26GK101931570SQ20091023763
公開(kāi)日2010年12月29日 申請(qǐng)日期2010年2月8日 優(yōu)先權(quán)日2010年2月8日
發(fā)明者王崑聲, 白昊, 胡昌振 申請(qǐng)人:中國(guó)航天科技集團(tuán)公司第七一○研究所;北京理工大學(xué)