專利名稱:基于隱馬爾可夫模型的網(wǎng)絡(luò)入侵場景構(gòu)建方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于隱馬爾可夫模型的網(wǎng)絡(luò)攻擊場景構(gòu)建方法,包括報警 數(shù)據(jù)的預(yù)處理、報警數(shù)據(jù)的關(guān)聯(lián)分析和入侵場景構(gòu)建三個完整的階段。
通過對入侵報警進行關(guān)聯(lián)分析,進而構(gòu)建入侵場景是入侵檢測技術(shù)發(fā)展的 一個新方向,從2000年左右開始在入侵檢測技術(shù)領(lǐng)域受到關(guān)注。目前已提出了 大量的分析方法,主要可以分為報警聚類方法和關(guān)聯(lián)分析方法,其中關(guān)聯(lián)分析 方法又可以分為基于攻擊規(guī)劃庫的報警關(guān)聯(lián)方法和基于攻擊行為建模的報警關(guān) 聯(lián)方法兩類。
報警聚類(clustering )方法屬于最初級的關(guān)聯(lián)分析,通過報警屬性值之間的 相似性對報警進行聚類,使得屬于同一聚類的報警具有相同的特性,然后選擇 一個抽象的"元報警"事件作為該聚類的代表元。在已有技術(shù)中,《通信學報》 2005年4期提供了一種BPCRISM模型,按照報警信息各個屬性的數(shù)據(jù)類型將其 分為布爾型、枚舉型和數(shù)值型,通過計算歐氏距離得到屬性之間的差異度。計
算報警fl/e^和"/e 的上述三個屬性的差異度公式為
f 一—) =(Wn|detec,r—_detec—|2 +
其中det e"乃/we 、 src戶oW和AWoW分別對應(yīng)于原始報警的時間戳、源端口 號和目的端口號。wde^^、 H^^,和V^^^分別為各屬性在差異度計算中的權(quán)
重,由專家經(jīng)驗給出。
此類方法存在的問題是
不能夠完全揭示出相關(guān)報警之間的因果關(guān)系,無法對報警反映的高層攻擊 策略給出清晰的解釋,也無法預(yù)測攻擊者的目的和可能的后續(xù)攻擊。
基于攻擊規(guī)劃庫的報警關(guān)聯(lián)分析方法在擁有一個完整的已知攻擊規(guī)劃庫的 基礎(chǔ)上,通過一系列關(guān)聯(lián)分析技術(shù)來識別報警流中包含的與攻擊規(guī)劃庫中的攻
擊規(guī)劃相一致的攻擊場景實例。在己有技術(shù)中,《計算^l學報》2006年8期提 供了一種"基于擴展目標規(guī)劃圖的網(wǎng)絡(luò)攻擊規(guī)劃識別算法",通過引入觀察節(jié)點 以區(qū)分規(guī)劃者以及識別者對動作的觀察,將動作節(jié)點分化為由具體動作層和抽
背景技術(shù):
象動作層組成的層次結(jié)構(gòu),并根據(jù)抽象攻擊模式在抽象攻擊層面上維護與安全
狀態(tài)節(jié)點相關(guān)的前提和后果條件,形成擴展目標規(guī)劃圖(ExtendedGoalGraph, EGG)模型,并進一步提出基于擴展目標規(guī)劃圖的攻擊規(guī)劃識別算法。其擴展 目標規(guī)劃圖示例如圖l所示。 此類方法存在的主要問題是
基于攻擊規(guī)劃庫的報警關(guān)聯(lián)方法是基于封閉世界假說,需要一個完整的攻 擊規(guī)劃庫作為支撐基礎(chǔ),但在實際環(huán)境中,由于攻擊動作的多樣性和攻擊過程 的隨意性以及新的攻擊工具和技術(shù)的不斷出現(xiàn),使得構(gòu)建一個完善的攻擊規(guī)劃 庫極為困難。此外,由于存在并行的攻擊場景,上述的各種方法對每個攻擊場 景維護中間的狀態(tài),從而導(dǎo)致其存儲代價和計算代價都非常龐大。上述兩個缺 陷使得基于攻擊場景庫的報警關(guān)聯(lián)方法難以在實際中得到廣泛的有效應(yīng)用。
基于攻擊行為建模的報警關(guān)聯(lián)方法的思想,借鑒于人工智能領(lǐng)域自動規(guī)劃 問題中對動作的經(jīng)典描述模型——STRIPS(STanford Research Institute-Problem Solver)模型,通過對攻擊動作的前提條件和造成的后果進行描述,構(gòu)建攻擊模 型,如果一個攻擊動作的后果使得另一攻擊動作的前提條件得到滿足,則認為 這兩個攻擊動作之間存在因果關(guān)系。基于攻擊行為建模的報警關(guān)聯(lián)算法就利用 這些因果關(guān)系將觀察到的報警進行連接,構(gòu)造出整個攻擊場景。其中具有代表 性的分析方法為Peng Ning等在The 9th ACM Conf on Computer & Communications Security 提出的 "Constructing Attack Scenarios through
Correlation oflntrusionAlerts",該方法被用于實現(xiàn)他們的TIAA系統(tǒng)。利用該
方法定義Sadmind Buffer Overflow攻擊的前提和結(jié)果如下
P(/ ^minrfSOF) = {£^對//0對(152.1.19.5),£^對//0對(152丄19.7),
In era6/e&m/ min d(l 52.1.19,5), In era歸W min《152. U 9.7)} ,脇;) = {Ga,w/ cK)"ccess(l 52.1.19.5), Gmwi oo"cc一l 52.1.19.7)}
此類方法存在的主要問題是
對所有可能的單個攻擊行為進行精確描述是極其復(fù)雜的任務(wù)。此外,精確 性同時也限制了規(guī)則的靈活性,面對未知攻擊,識別能力不足。
發(fā)明內(nèi)容
本發(fā)明的目的在于避免已有技術(shù)中存在的無法識別攻擊意圖、過分依賴知 識庫和處理過程復(fù)雜等問題而提供一種基于隱馬爾可夫模型的入侵報警關(guān)聯(lián)分 析方法,重構(gòu)入侵場景。該方法實現(xiàn)了對入侵報警進行預(yù)處理、分析以及場景 重構(gòu)的完整過程。
為實現(xiàn)上述目的,本發(fā)明技術(shù)方案的步驟如下一種網(wǎng)絡(luò)入侵場景構(gòu)建方法,其步驟如下
1.1、 入侵報警數(shù)據(jù)預(yù)處理
利用改進的報警聚合方法對原始報警數(shù)據(jù)進行預(yù)處理首先計算原始報警 數(shù)據(jù)的報警時間、報警名、端口號和IP地址等屬性之間的差異度,而后通過加 權(quán)求和的方法得到原始報警之間的整體差異度,按照報警數(shù)據(jù)的整體差異度對 原始報警數(shù)據(jù)進行聚類分析,得到超報警;
1.2、 報警關(guān)聯(lián)
1.21、 描述網(wǎng)絡(luò)攻擊的隱馬爾可夫模型
將預(yù)處理階段得到的超報警序列作為隱馬爾可夫模型的觀察值;將攻擊本
體中定義的抽象攻擊作為隱馬爾可夫模型的隱藏狀態(tài);
1.22、 利用改進的Viterbi算法進行關(guān)聯(lián)分析,得到代表抽象入侵場景的狀 態(tài)轉(zhuǎn)移序列;
1.3、 通過回溯處理構(gòu)建入侵場景
對這些狀態(tài)轉(zhuǎn)移序列按時序和邏輯約束條件進行回溯處理得到入侵場景。 原始報警數(shù)據(jù)各屬性值差異度的具體計算方法如下
2.3、 報警時間
用時間窗r來表示可以聚合的報警間最大的時間間隔,即只有當公式-
滿足時,才可以將兩條報警信息進行聚合;
2.4、 報警名與端口號
定義如下公式計算報警名之間的差異-
1, 〃/e々打fl附e # a/eW .""7we
《鵬=〗
0, a/er( .wa膨=a/er。.""膨
當兩條報警信息的報警名相同時,其差異度為0,不相同時為l; 按照報警名的差異度計算方法分別定義報警"/e^和端口號之間的差
異度計算公式為
1, a/e/*/; ./ oW # a/e .戶W 0, a/抓i./w/" = a/eW,_poW
《。"
2.3、 IP地址IP地址差異度計算方法如下
<formula>formula see original document page 9</formula> ="22 V"13 ="23 V H * "24
2.4、 原始報警整體差異度的計算方法為
<formula>formula see original document page 9</formula>
其中""/n表示參與計算的屬性個數(shù);
2.5、 利用原始報警的整體差異度和給定的閾值r,通過報警聚合,將包 含大量報警的原始報警序列〈"/外,"/^2,-,^ 〉,轉(zhuǎn)換為規(guī)模較小的超報警
序列〈//>per一a/eA,//yper—a/eW2,…,i7yper一〉,其中wSw,閾值r和超
報警的語義描述存儲在關(guān)聯(lián)知識庫中。
改進的Viterbi算法模型參數(shù)存儲在關(guān)聯(lián)知識庫中,
輸入超報警序列(9-〈/fy/ er—cr/e^,/^/ er—flf/e《,…,/^; er—cr/e《〉,狀態(tài)轉(zhuǎn)移 概率矩陣J,觀察值概率分布矩陣S,初始概率分布向量戶,關(guān)聯(lián)閾值r,觀 察值數(shù)量《(即超報警序列包含的超報警數(shù)),狀態(tài)數(shù)N;
輸出狀態(tài)轉(zhuǎn)移序列的集合&={&^^^};
改進的Viterbi算法
Stepl:將第一個超報警添加到棧Stack中;
Step2:判斷Stack是否為空,如果為空轉(zhuǎn)到Stepll;
Step3:將Stack棧頂元素出棧,附值給Ob,并執(zhí)行以下操作
Delta(l)(i) = Pi(i)Bi(Ob), Phi(l)(i) =0, l<=i〈=N; Step4:判斷Max(Deltal(i))〈T, 1《i《N是否成立,如果成立,
將0b之后的超報警入桟,轉(zhuǎn)到St印2; Step5:執(zhí)行以下操作Ob = next(Ob),
Delta (t) (j) = Max [Delta (k-l) (i)A(i, j)]b(j) (Ob), 1<
Step6:判斷Max[Delta(k) (j)] < T, l<=j<=N,是否成立,如果不成立,轉(zhuǎn)
到St印8;
Step7:判斷Stack是否為空,如果為空,將Ob入棧,轉(zhuǎn)到Step5,
不為空則直接轉(zhuǎn)到Step5; Step8:執(zhí)行以下操作
Phi(k) (j) = argMax [Delta(k-1) (i)A(i, j)], 1 〈= i <= N, 1 <= j <= N; Step9:判斷是否最后的超報警,如果不是,轉(zhuǎn)到Step5執(zhí)行; Stepl0:執(zhí)行以下操作
Scenario(K) = argMax[Delta(K)(i)], l<=i<= N Sceanrio(k):Phi(k+l) (Scenario (k+l), k = K-1,…,1 將Scenario添加到Sc中,轉(zhuǎn)到St印2執(zhí)行; Stepll:終止。
回溯處理的過程如下
4.1、 還原超報警序列
對于狀態(tài)轉(zhuǎn)移序列集Sc = {Sceww/o,.}中的任一狀態(tài)序列Scemw/o,.,用該序
列中的狀態(tài)所對應(yīng)的超報警替換相應(yīng)狀態(tài),得到與該狀態(tài)對應(yīng)的超報警序列;
4.5、 去除冗余超報警
對于每一個超報警序列〈i/j/per — a/e^ , //j^er—"/eW2 ,…,/fyper—a/erf欲〉,如 果存在超報警7/;^2/^afe^,其5*—w,和^p—恥Z (組成超報警的原始報警源
IP集合和目的IP集合),都與位于其前面的超報警的w》_ W和卻—W無關(guān)(即
不存在相同的IP),則從序列中刪除該超報警;
4.6、 還原原始報警序列
對于每一個超報警序列,將其中的超報警替換為滿足時間約束關(guān)系的原始 報警,得到原始報警序列;
4.7、 報警序列重組
經(jīng)過4.1~4.3步驟的處理,可以得到由原始報警序列組成的原始報警序列 集,記為a/ert _ & =—See"wq },其中a/eW _ Scewa〃Oi為原始報警序列
〈a/抓^/抓2,…,a/e 〉,對原始報警序列,按照如下規(guī)則進行重組-如果存在報警序歹!j or/eW —SceAwr/7'^ 禾口 a/ert—,且 a/ew — Sce"""o,. (A) , 1 S w與a/eW — (1)滿足依賴關(guān)系,則將
"/ert — Sce加力o,.和"/ert — feern^^.組成新的報警序列,新的報警序列可能包含
若干個并列的分支;
如果存在報警序歹ij a/eW_Scenar,o,.和a/eW —Sce"an^., 且
a/eW—Sce朋"'c^ (")與fl/W—Scewar/o,. (t) , a/eW—Sce朋〃-0,. (& + 1), 1^<"滿
足并列關(guān)系或選擇關(guān)系,則將"/eW—Sce"arA和fl/eW—Scemh^.組成新的報警
序列,新的報警序列可能包含若干個并列的分支;
狀態(tài)轉(zhuǎn)移序列經(jīng)過以上四個步驟的處理后,將得到描述網(wǎng)絡(luò)攻擊過程的入 侵場景。
本發(fā)明與已有技術(shù)相比具有以下特點
一、 本發(fā)明改進了基于屬性差異度的報警聚類方法。傳統(tǒng)的聚類方法僅僅 考慮了報警屬性的數(shù)值特征,忽略了部分屬性所反映出的網(wǎng)絡(luò)攻擊意義,因此 導(dǎo)致聚類結(jié)果與實際攻擊過程存在較大的偏差。為得到理想的分析結(jié)果,本發(fā) 明對原始報警數(shù)據(jù)的各種屬性進行了細致的分析,在此基礎(chǔ)上重新定義各種屬 性差異度的計算方法。通過對MIT Lincoln實驗室在2000年作IDS評測時獲得 的數(shù)據(jù)集LLDDOS1.0的內(nèi)網(wǎng)數(shù)據(jù)進行實驗,按照新的計算方法得出的差異度 更加準確的反映了原始報警信息之間的差異。實驗結(jié)果如圖5所示。對實驗結(jié) 果進行分析發(fā)現(xiàn),傳統(tǒng)算法對二,三階段報警聚合出現(xiàn)錯誤的原因是相應(yīng)原始 報警的端口號數(shù)值出現(xiàn)了較大的躍遷。如對于第二階段被錯誤聚合的報警,目 的端口號由前一報警的111變?yōu)?2774,所引起的端口號差異達到0.49839,從 而導(dǎo)致了聚合結(jié)果出現(xiàn)錯誤。而本發(fā)明的改進聚合方法從根本上解決了這一問 題。由于改進的聚合方法可以有效地對原始報警數(shù)據(jù)進行聚合與壓縮,因此, 本發(fā)明將該方法用于報警數(shù)據(jù)的預(yù)處理。
二、 本發(fā)明利用網(wǎng)絡(luò)攻防領(lǐng)域的攻擊本體以及隱馬爾可夫模型對網(wǎng)絡(luò)攻擊 進行抽象描述,解決了對復(fù)雜網(wǎng)絡(luò)攻擊進行數(shù)學建模的問題。由于引入了攻擊 本體,可以在滿足合理性與完備性的前提下對網(wǎng)絡(luò)攻擊進行合理的抽象。解決 了傳統(tǒng)關(guān)聯(lián)分析方法在構(gòu)建知識庫時需要對大量具體攻擊細節(jié)詳細描述的問 題。本發(fā)明將攻擊本體中定義的抽象攻擊類型作為隱馬爾可夫模型的狀態(tài)節(jié)點, 將預(yù)處理階段得到的超報警作為隱馬爾可夫模型的觀察節(jié)點,利用隱馬爾可夫 模型對網(wǎng)絡(luò)攻擊過程進行建模,充分利用了隱馬爾可夫模型描述的系統(tǒng)的統(tǒng)計特性與網(wǎng)絡(luò)攻擊過程相似的特點。進而將報警數(shù)據(jù)的關(guān)聯(lián)分析問題轉(zhuǎn)變?yōu)殡[馬
爾可夫模型的解碼問題,使得問題的求解變得簡單清晰。
三、本發(fā)明利用改進的Viterbi算法實現(xiàn)關(guān)聯(lián)分析。由于在利用經(jīng)典的 Viterbi算法求解的問題中,所有的觀察值是由一個過程產(chǎn)生的,如圖6所示。 而對于網(wǎng)絡(luò)攻擊數(shù)據(jù),由于網(wǎng)絡(luò)應(yīng)用的并發(fā)性和網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,其觀察值 序列可能是由若干個不同的過程產(chǎn)生的,并且,觀察值之間可能存在交叉現(xiàn)象, 如圖7所示。因此,對經(jīng)典的Viterbi算法進行一定的改進,以適應(yīng)網(wǎng)絡(luò)報警關(guān) 聯(lián)分析問題。
利用改進的Viterbi算法對MIT Lincoln實驗室在2000年作IDS評測時獲得 的數(shù)據(jù)集LLDDOSl,O的內(nèi)網(wǎng)數(shù)據(jù)進行分析,而后對分析結(jié)果進行回溯處理, 最終得到的入侵場景如圖8所示。由圖8所示的入侵場景可知,利用本發(fā)明的 方法重構(gòu)得到的入侵場景與MIT Lincoln實驗室的測試過程一致。重構(gòu)場景中 的任一攻擊都包含在測試過程中。模型從原始的報警序列中只關(guān)聯(lián)到一個完整 的入侵場景,滿足確定性與惟一性的要求。因此,本方明的方法,在克服傳統(tǒng) 方法缺點的同時得到了理想的結(jié)果。
圖l、擴展目標規(guī)劃圖示例。
圖2、本發(fā)明的整體處理流程圖。
圖3、網(wǎng)絡(luò)攻擊本體示意圖。
圖4、改進的Viterbi算法的流程圖。
圖5、傳統(tǒng)聚合算法和改進聚合算法的聚合對比結(jié)果。
圖6、經(jīng)典Viterbi算法適用的觀察值序列示例。
圖7、網(wǎng)絡(luò)攻擊觀察值序列示例。
圖8、改進Viterbi算法分析得到的入侵場景。
圖9、描述網(wǎng)絡(luò)攻擊的隱馬爾可夫模型。
具體實施例方式
本發(fā)明主要包括入侵報警數(shù)據(jù)的預(yù)處理、報警數(shù)據(jù)的關(guān)聯(lián)分析和入侵場景
構(gòu)建三個主要步驟,如圖2所示。具體分述如下 一、報警預(yù)處理
本發(fā)明采用報警聚合的方式對原始報警進行預(yù)處理。
為了實現(xiàn)報警聚合,需要從IDS產(chǎn)生的報警信息中提取關(guān)鍵屬性,組成原
始報警。通過計算原始報警間的差異度,實現(xiàn)同類報警的聚合,得到超報警。 由于原始報警各個屬性值之間差別較大,分別具有不同的數(shù)據(jù)類型,在確定報
12警信息間的差異時所起的作用也不相同。因此,對各個屬性應(yīng)采用不同的差異 度計算方法。在得到各個屬性之間的差異度后,我們通過加權(quán)求和的方法得到 原始報警之間的差異度。
各屬性值差異度的具體計算方法如下
1) 報警時間考慮到攻擊者為達到某一特定目的的一次攻擊行為通常發(fā)
生在一個較近的時間段內(nèi),用時間窗r來表示可以聚合的報警間最大的時間間
隔,即只有當公式
滿足時,才可以將兩條報警信息進行聚合。
以上公式表明,時間屬性是決定報警信息是否可以聚合的先決條件,只有 時間差在一定范圍內(nèi)的報警信息才可以進行聚合。而在報警信息整體差異度的 計算中,將不再對時間屬性的數(shù)值差異進行計算。
2) 報警名與端口號報警名給出了不同報警的語義信息,其數(shù)據(jù)類型為 枚舉型。由于不同的報警名之間不存在相關(guān)性,無法從不同的報警名稱推導(dǎo)出 不同的報警間是否存在一定的聯(lián)系。因此,定義如下公式計算報警名之間的差 異
《雌=
以上公式表明,當兩條報警信息的報警名相同時,其差異度為0,不相同 時為1。
考慮到端口號的標識作用與報警名相同,按照報警名的差異度計算方法分 別定義報警"/eW,和"/e 端口號之間的差異度計算公式為
《"=
1, a/eWj ./ or/ # a/e .戶W
3) IP地址IP地址作為網(wǎng)絡(luò)接口的唯一標識,具有和端口號相似的作用。 但是,不能簡單的將IP地址當作枚舉型變量計算其差異,因為不同的IP地址 反映了其所在網(wǎng)絡(luò)的不同結(jié)構(gòu)。IP地址差異度計算方法如下
對于任意兩個IP地址/尸1("11."12."13."14)和/尸2(>721."22."23."24),差異度為"U ="21 V"12 ^22
w =rt21 vw12 =w22 vw13 #"23
"11 — W21 V "12 = W22 V= "23 V W" # "24 化=/尸2
以上公式考慮到了不同IP地址的物理位置特性,能夠較好的表示不同IP 地址之間的差異。
在得到了各個屬性值的差異度之后,原始報警整體差異度的計算方法為 ,,=《諫+《 "+《《
')' M扁
其中m/m表示參與計算的屬性個數(shù)。
利用原始報警的整體差異度和給定的閾值r,通過報警聚合,可以將包含
大量報警的原始報警序列〈"/抓^/W2,…,fl/eW"〉,進一步轉(zhuǎn)換為規(guī)模較小的超 報警序列〈i/j^e/"一a/eW!,/fy/ er一a/eW2,…,i7;v; er—fl/er/m〉,其中加S w 。這樣可
極大地減輕關(guān)聯(lián)分析的工作量,閾值r和超報警的語義描述將由專家經(jīng)驗給出,
并存儲在關(guān)聯(lián)知識庫中。
二、報警關(guān)聯(lián)
i、攻擊本體描述網(wǎng)絡(luò)攻擊類型
本發(fā)明通過對網(wǎng)絡(luò)攻擊進行整體描述,在一個更高的抽象層次上對網(wǎng)絡(luò)攻 擊構(gòu)建隱馬爾可夫模型。對抽象的網(wǎng)絡(luò)攻擊進行建模,可以解決需要構(gòu)建大量 隱馬爾可夫模型和需要大量訓練樣本的問題。但是,為了保證抽象模型不影響 關(guān)聯(lián)效果,必須對網(wǎng)絡(luò)攻擊進行合理的抽象描述,該抽象描述應(yīng)該是完備的, 即組成該抽象描述的一組抽象攻擊應(yīng)該能夠代表所有的實際網(wǎng)絡(luò)攻擊。攻擊本 體的定義很好的滿足這一要求。
本發(fā)明的網(wǎng)絡(luò)攻擊本體定義如圖3所示。攻擊本體中各葉節(jié)點的含義如下.-
Probe:探測。確定網(wǎng)絡(luò)中的活動主機,如IP Sweep攻擊;
Scam掃描。確定網(wǎng)絡(luò)中的漏洞,如Port Scan攻擊;
PrhilegeEscalation:權(quán)限提升。使入侵者獲得更高的權(quán)限,如BOF攻擊;
Dos/DDos:拒絕服務(wù)。阻止正常的網(wǎng)絡(luò)服務(wù);
Unauthorized Access:非授權(quán)的訪問。對受害主機進行非法訪問,如未授 權(quán)的telnet login;
Data:未授權(quán)的數(shù)據(jù)操作。對受害主機數(shù)據(jù)進行非法操作,如對數(shù)據(jù)進行
在/'
1
3/4 2/4
0篡改、刪除、創(chuàng)建等。
實際的網(wǎng)絡(luò)攻擊行為,在網(wǎng)絡(luò)攻擊本體中作為上述節(jié)點的葉節(jié)點。上述網(wǎng) 絡(luò)攻擊本體的定義滿足完備性要求,并且從攻擊的行為和目的兩個角度對網(wǎng)絡(luò)
攻擊進行了合理的抽象。因此,本發(fā)明將上述攻擊本體定義中的葉節(jié)點作為隱 馬爾可夫模型的狀態(tài)。
需要指出的是,預(yù)處理階段獲得的超報警是對實際網(wǎng)絡(luò)攻擊的第一層抽象 描述,攻擊本體中的葉節(jié)點是第二層抽象描述。因此,超報警應(yīng)該表示為攻擊 本體第三層節(jié)點的子孫節(jié)點。
2、 描述網(wǎng)絡(luò)攻擊的隱馬爾可夫模型
實際的網(wǎng)絡(luò)攻擊過程與隱馬爾可夫模型所表示的系統(tǒng)具有很大的相似性, 如圖9所示。通常攻擊者為達到一定的目的,會采用多種攻擊方式和多個攻擊 步驟。這些攻擊行為按照攻擊者意圖的不斷轉(zhuǎn)移形成一個完整的攻擊過程,以 實現(xiàn)攻擊者的最終目標。對于防御者,可以通過IDS等防護系統(tǒng)直接獲得攻擊 者采取的具體攻擊行為,但并不能直接獲得攻擊者的攻擊意圖。因此,可以將 IDS的報警序列作為隱馬爾可夫模型的觀察值序列,將攻擊者的攻擊意圖作為 隱馬爾可夫模型隱藏的狀態(tài)。
通過以上說明可知,利用隱馬爾可夫模型可以對網(wǎng)絡(luò)攻擊過程進行精確的 建模。在本發(fā)明的模型中,將預(yù)處理階段得到的超報警序列作為隱馬爾可夫模 型的觀察值;將攻擊本體中定義的抽象攻擊定義為隱馬爾可夫模型的隱藏狀態(tài)。 按照這一假設(shè),對報警序列進行關(guān)聯(lián)分析的問題轉(zhuǎn)變?yōu)榍蠼庀率鰡栴}
對于給定的隱馬爾可夫模型A-CiAp),已知觀察值序列
0 = {91,02,'",0,,"'07_},求狀態(tài)序列15 = { 1,52,"'^,,'" }使得下式取得最大值
p(雄')p(s)= k h )fl尸fc h—,)木k)
其中j、 S、 p隱馬爾可夫模型的參數(shù),具體如下
狀態(tài)轉(zhuǎn)移概率矩陣。^-W, -尸^+1=^化=^);
s:觀察值概率分布。B-fe^》,6,(A)-尸(v,-^k-A);
f.初始概率分布。/ =^,}, &=尸(仏=^)。
該問題屬于隱馬爾可夫模型應(yīng)用中的解碼問題,可以用Viterbi算法進行求解。
3、 利用改進的Viterbi算法進行關(guān)聯(lián)分析
15為了應(yīng)用隱馬爾可夫模型進行關(guān)聯(lián)分析,首先要確定隱馬爾可夫模型的參 數(shù)。模型參數(shù)可以通過樣本訓練確定,但是,這需要有大量有效的訓練樣本, 限制了算法的應(yīng)用。在發(fā)明的模型中,模型參數(shù)直接由領(lǐng)域?qū)<业膶<医?jīng)驗給 出,并將參數(shù)存儲在關(guān)聯(lián)知識庫中,供關(guān)聯(lián)算法使用??紤]到在實際應(yīng)用中, 特定時間內(nèi)獲得的報警序列可能包含多個攻擊過程,這些攻擊過程之間可能相 互重疊,因此發(fā)明采用遞歸算法對報警序列進行關(guān)聯(lián)分析。
此外,由于在利用經(jīng)典的Viterbi算法求解的問題中,所有的觀察值是由一 個過程產(chǎn)生的,如圖6所示。
而對于網(wǎng)絡(luò)攻擊數(shù)據(jù),由于網(wǎng)絡(luò)應(yīng)用的并發(fā)性和網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜性,其觀 察值序列可能是由若干個不同的過程產(chǎn)生的,并且,觀察值之間可能存在交叉 現(xiàn)象。如圖7所示。
因此,需要對經(jīng)典的Viterbi算法進行一定的改進,以適應(yīng)網(wǎng)絡(luò)報警關(guān)聯(lián)分 析問題。改進算法的輸入和輸出如下
輸入超報警序列O = 〈7fy/7er — a/ew,, /fy/ er _ cr/ert2,…,ify/ e/" — a/ert 〉,狀
態(tài)轉(zhuǎn)移概率矩陣^ ,觀察值概率分布矩陣s ,初始概率分布向量,關(guān)聯(lián)閾值r ,
觀察值數(shù)量f (即超報警序列包含的超報警數(shù)); 輸出狀態(tài)轉(zhuǎn)移序列的集合& = (Sce朋noj;
具體的關(guān)聯(lián)算法流程如圖4所示。
通過該關(guān)聯(lián)算法可以得到所有與輸入序列相關(guān)的狀態(tài)轉(zhuǎn)移序列。這些狀態(tài) 轉(zhuǎn)移序列可以看作由抽象攻擊組成的入侵場景。但是這些入侵場景并不滿足確 定性和惟一性。為了得到由原始攻擊組成的辦足上述性質(zhì)的入侵場景,還需要 對得到的狀態(tài)轉(zhuǎn)移序列集進行回溯處理。
4、通過回溯處理構(gòu)建入侵場景
經(jīng)過關(guān)聯(lián)分析,得到的是代表抽象入侵場景的狀態(tài)轉(zhuǎn)移序列,這些狀態(tài)轉(zhuǎn) 移序列包含一定的冗余信息。由原始報警組成的入侵場景中,原始報警間應(yīng)該 滿足以下約束關(guān)系-
1) 時序約束對于任意兩個原始報警a/ew。 a/e ,如果/>,成立,則a/ew,.
與fl/er。的時間屬性滿足a/eWJ/we S a/e 力me o
2) 邏輯約束任意相鄰的原始報警a/e^和"/w。.之間,必滿足如下三種關(guān)
系[7]之一。
*依賴關(guān)系如果y》成立,則a/e《所代表的攻擊是"/e;^.所代
16表的攻擊實施的前提條件; *并列關(guān)系a/e《和fl/e .所代表的攻擊全部成功,才是另一單
步攻擊成功實施的前提,并列關(guān)系具有傳遞性;
*選擇關(guān)系^^'和"^ 所代表的攻擊中任意一個成功,即為 另一個單步攻擊創(chuàng)造了前提,選擇關(guān)系具有傳遞性。 因此,需要按照以上約束關(guān)系對這些狀態(tài)轉(zhuǎn)移序列依次進行如下處理
1. 還原超報警序列
對于狀態(tài)轉(zhuǎn)移序列集&= (Sce朋rZoJ中的任一狀態(tài)序列&ewmv^ ,用該序
列中的狀態(tài)所對應(yīng)的超報警替換相應(yīng)狀態(tài),從而得到與該狀態(tài)對應(yīng)的超報警序 列。
2. 去除冗余超報警
對于每一個超報警序列鄉(xiāng)戸—a/一,砂戸—fl/ert2,...,//,r — fl/eWm〉,如 果存在超報警i/^peA^a/e/Y,,其w》—s^和c^ —犯f (組成超報警的原始報警源
IP集合和目的IP集合)都與位于其前面的超報警的^p一化,和c/^一sw無關(guān)(即
不存在相同的IP),則從序列中刪除該超報警。
3. 還原原始報警序列
對于每一個超報警序列,將其中的超報警替換為滿足時間約束關(guān)系的原始 報警,得到原始報警序列。
4. 報警序列重組
經(jīng)過以上三個步驟的處理,可以得到由原始報警序列組成的原始報警序列 集,記為a/eW—& = ^/ert—&e a/70i},其中a/erf—Scenano,為原始報警序列
〈a/e ,a/ert2,…^/ert"〉。對原始報警序列,按照如下規(guī)則進行重組
如果存在報警序列fl/ew—Scewaho,和a/eW—Scewa/v ,且
"/eW—Scera〃Oi (炎),1 S * S w與a/eW—Sce"ar/t^ (1)滿足依賴關(guān)系,貝U將
feenano,.和組成新的報警序列。新的報警序列可能包含
若干個并列的分支。
如果存在報警序列of/eW Sce"ahq禾fl fl/eW Sce"ar,'o,, 且
a/er/ —&^"〃》 與a/ert —Scew"—(A) , a/eW —Scew",(A: + 1) , 1《A: < w滿足并列關(guān)系或選擇關(guān)系,則將"/eW—Scewa;^和a/eW—Sce朋ho^組成新的報警
序列。新的報警序列可能包含若干個并列的分支。
狀態(tài)轉(zhuǎn)移序列經(jīng)過以上四個步驟的處理后,將得到滿足確定性和惟一性要 求的入侵場景。
權(quán)利要求
1、一種基于隱馬爾可夫模型的網(wǎng)絡(luò)入侵場景構(gòu)建方法,其步驟如下1.1、入侵報警數(shù)據(jù)預(yù)處理利用改進的報警聚合方法對原始報警數(shù)據(jù)進行預(yù)處理首先計算原始報警數(shù)據(jù)的報警時間、報警名、端口號和IP地址屬性之間的差異度,而后通過加權(quán)求和的方法得到原始報警之間的整體差異度,按照報警數(shù)據(jù)的整體差異度對原始報警數(shù)據(jù)進行聚類分析,得到超報警;1.2、報警關(guān)聯(lián)1.21、描述網(wǎng)絡(luò)攻擊的隱馬爾可夫模型將預(yù)處理階段得到的超報警序列作為隱馬爾可夫模型的觀察值;將攻擊本體中定義的抽象攻擊作為隱馬爾可夫模型的隱藏狀態(tài);1.22、利用改進的Viterbi算法進行關(guān)聯(lián)分析,得到代表抽象入侵場景的狀態(tài)轉(zhuǎn)移序列;1.3、通過回溯處理構(gòu)建入侵場景對這些狀態(tài)轉(zhuǎn)移序列按時序和邏輯約束條件進行回溯處理得到入侵場景。
2、 根據(jù)權(quán)利要求1所述的基于隱馬爾可夫模型的網(wǎng)絡(luò)入侵場景構(gòu)建方法,其特征是原始報警數(shù)據(jù)各屬性值差異度的具體計算方法如下-2.1、 報警時間用時間窗r來表示可以聚合的報警間最大的時間間隔,即只有當公式Iflt/erti力附e - a/eWj .">ne| < r滿足時,才可以將兩條報警信息進行聚合;2.2、 報警名與端口號 定義如下公式計算報警名之間的差異<formula>formula see original document page 2</formula>當兩條報警信息的報警名相同時,其差異度為0,不相同時為l;按照報警名的差異度計算方法分別定義報警"/eW,和"/eW,端口號之間的差異度計算公式為血r'=〗2.3、 IP地址IP地址差異度計算方法如下對于任意兩個IP地址/尸1("11."12."13."14)和/尸2("21."22."23."24),差異度為"11"11 =M21 V "12如22 "U ="21 V"12 ="22 V"U #"23 WU =M21 VW12 =W22 V/J13 =/ 23 V !4 5* 242.4、 原始報警整體差異度的計算方法為w歸其中表示參與計算的屬性個數(shù);2.5、 利用原始報警的整體差異度和給定的閥值r,通過報警聚合,將包含大量報警的原始報警序列〈"/ert^/e^,…,^rg,轉(zhuǎn)換為規(guī)模較小的超報警序列 〈ify; er—a/eW!,/fy/7^—a/eW2,".,/f3^w —a/e"附〉,其中附S",閾值T和超報警的語義描述存儲在關(guān)聯(lián)知識庫中。
3、根據(jù)權(quán)利要求1所述的基于隱馬爾可夫模型的網(wǎng)絡(luò)入侵場景構(gòu)建方法, 其特征是改進的Viterbi算法模型參數(shù)存儲在關(guān)聯(lián)知識庫中,輸入超報警序列C^〈/fy戸/ia/eM,/fy/7e/"—a/e《,…,/fy; e/"—cr/e《〉,狀態(tài)轉(zhuǎn)移概率矩陣J,觀察值概率分布矩陣5,初始概率分布向量p,關(guān)聯(lián)閾值r,觀察值數(shù)量K (即超報警序列包含的超報警數(shù)),狀態(tài)數(shù)N; 輸出狀態(tài)轉(zhuǎn)移序列的集合&={&^"/^,};改進的Viterbi算法Stepl,將第一個超報警添加到棧Stack中;Step2:判斷Stack是否為空,如果為空轉(zhuǎn)到Stepll;Step3:將Stack棧頂元素出棧,附值給0b,并執(zhí)行以下操作Delta(l)(i) = Pi (i)Bi (Ob), Phi (1) (i) 二 0, K=i<=N; Step4:判斷Max(Deltal(i))〈T, 1〈-K-N是否成立,如果成立,將Ob之后的超報警入棧,轉(zhuǎn)到St印2; Step5:執(zhí)行以下操作Ob = next(Ob),Delta(t) (j) = Max [Delta (k-1) (i)A(i, j)]b(j) (Ob), l〈=j<=N;Step6:判斷Max[Delta(k)(j)] < T, l<=j〈=N,是否成立,如果不成立,轉(zhuǎn) 至lJSt印8;Step7:判斷Stack是否為空,如果為空,將Ob入棧,轉(zhuǎn)到Step5,不為空則直接轉(zhuǎn)到Step5; Step8:執(zhí)行以下操作Phi(k)(j) = argMax[Delta(k-l)(i)A(i, j)], 1 〈= i <= N, 1 <= j 〈= N; Step9:判斷是否最后的超報警,如果不是,轉(zhuǎn)到Step5執(zhí)行; SteplO:執(zhí)行以下操作Scenario(K) = argMax[Delta(K) (i)] , K=i<= N Sceanrio(k)=Phi(k+l) (Scenario (k+l), k = K-1,…,1 將Scenario添加到Sc中,轉(zhuǎn)到St印2執(zhí)行; Stepll:終止。
4、根據(jù)權(quán)利要求1所述的基于隱馬爾可夫模型的網(wǎng)絡(luò)入侵場景構(gòu)建方法,其特征是回溯處理的過程如下4.1、 還原超報警序列對于狀態(tài)轉(zhuǎn)移序列集&= (Sce朋n'oJ中的任一狀態(tài)序列&e""r—,用該序列中的狀態(tài)所對應(yīng)的超報警替換相應(yīng)狀態(tài),得到與該狀態(tài)對應(yīng)的超報警序列;4.2、 去除冗余超報警對于每一個超報警序列〈7fypw — a/e巧,//^7er—a/eW2,...,/fy/7er—a/eW報〉,如 果存在超報警/^per—a/ert,,其《- —sw和^p一化/ (組成超報警的原始報警源 IP集合和目的IP集合),都與位于其前面的超報警的砵—w和rf*—W無關(guān)(即不存在相同的IP),則從序列中刪除該超報警;4.3、 還原原始報警序列對于每一個超報警序列,將其中的超報警替換為滿足時間約束關(guān)系的原始報 警,得到原始報警序列;4.4、 報警序列重組經(jīng)過4.1~4.3步驟的處理,可以得到由原始報警序列組成的原始報警序列集, 記為a/err—= ^ /eW — Sce""no,}, 其中a/ert — Sce"or;q為原始報警序列〈"/ert,,"/e/^,…,a/ert"〉,對原始報警序列,按照如下規(guī)則進行重組如果存在報警序列a/eW —&e ar/o,.和a/eW—, 且a/ew—&e"fln<^(A) , 1《A:《w與a/eW — (1)滿足依賴關(guān)系,則將flferf—&^"^/^和^^^一&£"^^.組成新的報警序列,新的報警序列可能包含若 干個并列的分支;如果存在報警序列a/er,—Sce朋/7《.和a/ert—Scena/vo,., 且 a/抓一 Scewa".Oy (w)與a/eW—Scewa,, a/eW 一 (A: +1) , 1 " < w滿足并列關(guān)系或選擇關(guān)系,則將a/ert—Scenaho,和"/erf—Sce朋r/ 組成新的報警序列,新的報警序列可能包含若干個并列的分支;狀態(tài)轉(zhuǎn)移序列經(jīng)過以上四個步驟的處理后,將得到描述網(wǎng)絡(luò)攻擊過程的入侵 場景。
全文摘要
本發(fā)明涉及一種基于隱馬爾可夫模型的網(wǎng)絡(luò)入侵場景構(gòu)建方法,它主要包括入侵報警數(shù)據(jù)的預(yù)處理、報警數(shù)據(jù)的關(guān)聯(lián)分析和入侵場景構(gòu)建。其中報警數(shù)據(jù)預(yù)處理的目的在于聚合冗余報警,壓縮報警數(shù)據(jù)集,消除大量重復(fù)報警的影響,為報警數(shù)據(jù)關(guān)聯(lián)分析做好充分的準備。本發(fā)明用攻擊本體和隱馬爾可夫模型對網(wǎng)絡(luò)攻擊行為進行建模,保證模型對網(wǎng)絡(luò)攻擊類型的描述和攻擊過程的描述滿足合理性和完備性要求。同時,將報警數(shù)據(jù)的關(guān)聯(lián)分析問題轉(zhuǎn)變?yōu)殡[馬爾可夫模型的解碼問題,用改進的Viterbi算法對問題進行求解,分析結(jié)果準確度高。對于關(guān)聯(lián)分析結(jié)果,按照一定的約束條件進行回溯處理,構(gòu)建符合實際網(wǎng)絡(luò)攻擊過程的入侵場景。
文檔編號H04L9/00GK101494535SQ20091002138
公開日2009年7月29日 申請日期2009年3月5日 優(yōu)先權(quán)日2009年3月5日
發(fā)明者琢 王, 范九倫 申請人:范九倫