摘要:入侵檢測系統的大部分報警事件之間都存在某種聯系,通過對這些報警信息的關聯分析,對解決目前入侵檢測系統所存在的誤報、漏報、重復報警、報警信息層次低等問題,具有重要的意義。該文基于因果關聯方法,建立了一個入侵檢測系統關聯分析模型,該模型的關聯分析過程分為聚合和關聯分析,可以對不同入侵檢測系統產生的報警信息進行關聯分析。
關鍵詞:入侵檢測;報警聚合;關聯分析;因果關聯;漏報關聯
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)24-6965-04
The Research and Design of IDS Dlerts Information Based on Correlation Analysis
XIAO Mang, CHENG Cong-cong
(College of Information Engineering, Nanchang University, Nanchang 330031,China)
Abstract: The alert events detected by Intrusion Detection System are usually interrelated in certain respects. Through correlating of these alerts,it could be very helpful in solving many problems exit in current Intrusion Detection Systems,such as,high 1 positive ratio and 1 negative ratio,too many repeated and primitive alerts,etc.This paper present an alert correlation model,the alert correlation process include aggregation and correlation,which can correlation alerts produced by multiple heterogeneous intrusion detection systems.
Key words: intrusion detection; alerts aggregation; Alerts correlation; causality correlation; False negatives correlation
入侵檢測[1]系統不但可以檢測來自于外網的攻擊,也可以發現來自于內網的“非法”活動,它彌補了防火墻等其他安全技術手段的不足。盡管經過了20多年的發展,但入侵檢測系統仍然處于發展階段,還存在很多需要完善的地方。人侵檢測系統中用于分析檢測的信息主要來源于系統主機的日志記錄、網絡數據包、系統針對應用程序的日志數據以及其他人侵檢測系統或系統監控的報警信息。由于數據來源和格式多樣化、操作系統的日益復雜和網絡數據流量的急劇增加,導致了審計數據劇增和數據分析任務繁重。對于現有IDS報警信息的主要問題集中于以下三點:
1) 入侵檢測的誤報率偏高,大量的重復報警。很多IDS 一天能夠發出上千條虛假報警信息,對某主機的一次掃描也會產生幾十上百的重復報警,讓網絡管理人員目不暇接,無所適從。
2) 報警信息非常瑣碎。
3) 對于報警信息的分析和理解比較困難。
目前IDS主要采用誤用檢側和異常檢測兩種方法,它們都不可避免地會產生漏報警和大量誤報警,重復報警多,可讀性差,管理員很難從中真正了解當前系統的安全狀況。關聯分析技術能夠大大減少報警的數量、降低入侵檢測誤報警率和適當減少入侵檢測漏報率,所以在入侵檢測系統中引人報警關聯分析功能具有重要的實際義。該文設計并實現了一個高效的報警信息聚合與關聯系統,用于報警信息的融合。實驗表明,該系統有效減少了報警數量,降低了誤報率,達到了很好的實際應用效果。
1 入侵檢測關聯系統模型
該文提出的報警事件關聯系統模型如圖1所示。該模型主要包括聯合五個組件報警信息的預處理、聚合、關聯分析、漏報關聯和攻擊響應。
1.1 知識庫
攻擊者的一次入侵通常需要通過一系列的攻擊行為來完成,這些行為是相對獨立的,同時又是相互關聯的,前面的行為所產生的結果,成為后面行為執行的必需條件。美國北卡羅萊納州大學的Peng Ning及其工作小組提出了一種基于因果關系的報警信息關聯方法[2]。
1.1.1 超報警類和超報警關聯
這種方法提出了一個超報警類的概念,用來表示一種報警類型的先決條件及結果。
定義1:超報警類T是一個三元組(fact, prerequisite,consequence)。其中fact是一系列的屬性名,每一個屬性關聯到一個閾值,介紹了在報警中(或檢測攻擊時)已知或已獲得的所有信息;先決條件prerequisite是一系列謂詞邏輯連接,描述了攻擊要成功所必須具備的條件,它的變量都存在于fact 中;結果 consequence 是一系列謂詞邏輯連接,描述了攻擊成功后所獲得的信息,它的變量也存在于fact中。
給定了一個超報警類,則可以定義超報警類的實例。定義如下:
定義2:給定一種超報警類T =(fact, prerequisite,consequence),一個T類型的超報警實例,h 是一個關于fact的有限元組的集合,其中每一個元組通過時間戳[begin_time,end_time]來關聯,超報警類型暗示其先決條件必須為真,其在每個三元組的結果中的邏輯公式可能為真。
定義3:給定一個超報警類 T = (fact, prerequisite,consequence),其先決條件集表示為P(T),結果集表示為C(T) ,在先決條件集或者結果集中表示了所有謂詞,它們的變量由h 元組中的相應屬性值來替換。
定義4:對于兩個超報警h1和h2,如果存在p∈P(h2),并且c?哿C(h1),對于所有的c∈C,c.end_time < p.begin_time,并且在C中的謂詞都蘊含p,則h1是為h2 做準備的警報。這種準備關系的確定有利于發現超報警類間的因果關系。很明顯,如果攻擊h1產生的結果對于攻擊h2的進行提供了很大的方便,則h1是為h2做準備的。
1.1.2 漏報關聯規則
通過研究及大量實驗表明,基于因果關系的關聯分析型入侵檢測系統在降低誤報率方面成績卓越,然而對于警報漏報方面的處理卻顯得束手無策。這主要是算法本身的問題,系統依賴于IDS的警報信息,如果IDS發生漏報,丟掉了攻擊序列中的關鍵警報信息,而現有關聯算法又不具有檢測漏報的功能,那么系統將無法進行關聯,這將導致自被IDS漏報警報之后的整個攻擊序列將全部被漏報,其后果是非常嚴重的。
根據Kendall[4]對攻擊的分類,對各種攻擊類型的分析,得到以下兩個關聯規則。
定義5:警報h1和警報h2直接關聯,如果滿足下述條件:h1.consequence = h2.prerequisite并且符合關聯限制條件。
定義6:警報h1和警報h2間接關聯,如果滿足下列條件:
1) 警報h1通過關聯規則R,和警報類型T直接關聯;
2) 對于任何i∈[1,n-1],警報類型Ti和警報類型Ti+1通過關聯規則Ri直接關聯;
3) 警報類型Tn通過關聯規則Rn與警報h2直接關聯。
1.1.3 知識庫的設計
警報關聯分析法主要是根據警報中存在的因果關聯性而關聯瞥報的,而警報之間的因果 關聯性土要是需要從知識庫中獲得。知識庫中定義了警報分析中需要用到的警報之間的因果 關聯關系。知識庫的設計需要深入的了解攻擊的分類和攻擊的整個攻擊過程,只有這樣,才能夠準確的定義攻擊知識,精確的分析出警報之間的關聯性。
如果知識庫中的知識量很大,則可以選擇用數據庫存儲。由于,我們這里的知識庫量小,為了方便起見,選擇用文件存儲。由于XML文件的通用性、易用性、靈活性,而且具有查找數據速度快的特點,知識庫采用XML格式描述,并且采用DTD描述XML知識庫文件。
根據各種攻擊類型的特點,知識庫采用兩種文件定義格式,一種定義用來記錄HyperAlert類型的知識信息,一種定義用來描述HyperAlert類型中的謂詞邏輯(predicates)之間隱含的關聯關系。由于第一種格式定義了HyperAlert類型之間的直接關聯性,而第一種定義了謂詞邏輯之間的隱含的間接關聯關系。所以,為了警報關聯分析的方便,必須使用第二種格式的定義,在第一種格式的定義中增加HyperAlert類型之間的間接關聯性。因此,需要增加定義在第一種格式中HyperAlert類型的consequence域的數量。
1.2 報警信息的預處理
由于不同的入侵檢測系統在報警信息的格式上缺乏統一標準。在對報警進行聚合與關聯前,必須將各種不同的安全設備自己的報警數據格式轉換成關聯系統的標準格式(如IDMEF格式),同時完成攻擊分類等項目內容的統一映射。目前IDS領域被廣泛認可的信息交換格式是IDMEF 數據格式,格式化后的告警數據被送至預處理模塊,并對各特征域值的有效性進行檢查,參數不足的報警信息視為非法報警信息,如無目標地址和端口信息的報警信息不具有分析意義的報警,應該被過濾。
1.3 聚合
將某一IDS內部針對同一安全事件產生的大量相同或相似報警合并成一個超報警,也可以通過對多個不同類型IDS或其他不同來源報警信息進行聚合,使不同來源的報警相互補充、相互印證,有利于真正理解攻擊的實質。
采用基于相似度的關聯方法[5],首先,從經過預處理的報警信息中提取特征(源IP、源端口、目的IP、目的端口、時間等),計算報警信息同類特征之間的相似度,相似度的值在0到1之間(1表示完全匹配)。對于不同的屬性值,設定不同的相似度計算函數,新的報警信息會與已存在的所有報警的相應屬性值進行比較,計算它們之間的相似度,報警之間的相似度定義為不同的屬性相似度的平均值。其次,對僅報警時間不同,且時間小于設定的閾值,其他特征都相同,此類攻擊可認為是來源于同一IDS 的重復報警,這種關系在報警信息中大量存在。對僅攻擊目的、報警類型相同,其他特征都不同,且攻擊時間小于設定的閾值,此類攻擊可認為是多個攻擊源對同一攻擊目標的分布式攻擊。對其它的新報警與已存在報警相似度最大并超過設定閾值的報警融合為一個報警,若不超過設定閾值則作為一個新的報警。最后,對聚合后的報警通過手工分析與智能算法輔助對不同的特征總結出經驗知識,并以此更新定義的特征和閾值。聚合過程如圖2所示。
對于時間閾值的設定,經觀察發現不同類型的攻擊通常具有不同的時間特性,一次持續性攻擊具有連續性,并且由于這種攻擊通常都是由攻擊工具自動完成,因此攻擊進行的速度比較穩定。則在報警聚合規則中針對不同的攻擊事件給出不同的時間間隔閾值,并當原始報警序列滿足攻擊類型特征和對應的空間特征才進行聚合。
1.4 關聯分析
此操作是在報警聚合基礎上,根據知識庫中定義的關聯規則對超警報進行關聯。由于IDS檢測出的大都是單一事件觸發的報警信息,對于多步的序列攻擊往往缺乏關聯與分析。而且,現實網絡環境中入侵一般不是孤立的,前一步攻擊是為下一個攻擊做鋪墊的,在一個有多個攻擊動作組成的入侵過程中,一個攻擊的后果就是下一個攻擊前因。
該文采用了基于規則的推理技術和因果關系關聯方法所設計出的報警關聯模塊以尋找攻擊步驟的“因果關系”為入口,在大量離散的單個的警報中挖掘出具有時序性和邏輯性的若干警報,并將其定義為同一攻擊策略的不同步驟或不同階段,目標是重建攻擊過程,將邏輯相關的攻擊動作聯系起來,從而掌握攻擊的整體情況,深層發掘報警間的聯系。
HyperAlert關聯分析的一個主要問題就是分析的效率問題,本文從下面兩個方面來提高關聯分析的速度。
1) 增加關聯的邊界值
由于HyperAlert關聯分析的目的是對于產生的每個HyperAlert實例,能夠分析出是否有其它的HyperAlert實例為它的產生做準備,即是它的先決條件。因此,需要把每一個HyperAlert實例與其它實例進行比較。如果有n個HyperAlert,則需要比較n*n次,則分析費用會很大,分析效率必然會很低。
因此,為了提高效率,我們定義產生時間很接近的HyperAlert會存在關聯關系,時間間隔比較遠的HyperAlert則不存在關聯關系。我們定義一個時間間隔值T,如果兩個HyperAlert之間的時間間隔在T之內,則會對它們做關聯處理。但需要特別注意的是:T的值應該適中。
如果偏大,則關聯分析的效率低;如果偏小,則不容易發現警報的這種關聯性。
2) 關聯分析轉化為查找分析
雖然使用時間間隔值來提高HyperAlert關聯分析的速度是一個方面,然而,它不能解決所有效率問題。針對HyperAlert數據類型的特征,可以通過把HyperAlert的因果關聯分析轉換為查找分析來提高分析效率。
因為在知識庫的建立時,己經把所有HyperAlert類型之間的直接的、間接的因果關聯關系加入了知識庫,所以借助知識庫也就可以關聯所有的具有直接、間接關系的HyperAlert實例。只要比較先產生的HyperAlert的consequence與后產生的HyperAlert的prerequisite是否具有相同的謂詞邏輯, (先與后是指被比較consequence的HyperAlert實例的end_time值要小于被比較prerequisite的HyperAlert實例的begin_ime的值),則可以斷定這兩種HyperAlert實例是否具有因果關聯關系。
我們定義IDS的警報是按照產生時間的先后而報告和傳輸的,也就是可以認為產生的HyperAlert是按照時間升序而排列的。所以,我們在關聯分析時不需要考慮HyperAlert的時間先后問題。
1.5 漏報關聯
對一個警報進行關聯分析時,如果通過直接關聯沒有找到與之相關聯的警報,則進行漏報關聯分析。算法描述如下:
Alert是警報集合,實例化的警報存放于預處理單元,Prereqset和conseqset兩個表位于警報預處理單元,分別用于存放實例化警報的前提條件和結果,alert.Pre表示警報alert的前提條件,alert.con表示警報alert的結果,alert.type表示警報alert的攻擊類型:T是用戶定義的關聯時間間隔限制,alert.begin_time表示警報alert的開始時間,alert.end_time表示警報alert的結束時間,x、Y是攻擊類型集合,Prereq和Conseq兩個表位于知識庫中,分別用于存放各種攻擊類型的前提條件和結果。
(1) 警報實例集合alert={alertl,alert2…alerti…alertn};
(2) for 所有警報實例alerti∈alert do begin
(3) alerti.pre為alerti的不帶參數的前提的狀態描述;
(4) 警報類型集合Y={y∈AlertType|y.con= alerti.Pre};
(5) if y≠Φ then
(6) for 所有警報類型y∈Y do begin
(7) 警報實例集合 alertl={alertj∈L|alertj.type=y ∧0 (8) if alert1≠Φ then insert into table correlated alerts Values (alertj, alerti); (9) else begin 搜索知識庫中prereq表,找到符合prereq.type的記錄的 predicate 屬性; (10) 警類型集合X={x∈AlertType|x.con=y.pre}; (11) If X ≠Φ then (12) for 所有警報類型x∈X do begin (13) 警報實例集合 alert2={alertk∈L|alertk.type=x ∧0 (14) if alert2≠Φ then Insert into table recorrelated alerts values(alertj,y,alerti); (15) end (16) end (17) end (18) end 本算法目前只針對攻擊序列中一步攻擊被漏報的情況,根據警報之間因果關聯性的分析,可擴展到攻擊序列中的連續兩步或幾步被漏報的情況。由于現實中這種情況比較少見,同時運算量比較大。因此,還有待進一步深入研究。 該文采用一個三元組對一個攻擊抽象類T來描述,即T=(F,P,C),F為一組屬性名的集合;P為攻擊成功發生所需的前提條件集合,記為P(T);C為攻擊發生后可能產生的結果集合,記為C(T)。上述前提條件和結果可以是單個原子謂詞,也可以是若干原子謂詞的邏輯連接。原子謂詞是基于英語的語義表示的,謂詞中的參數變量來自集合F。例如: 定義一個RPC攻擊抽象類: R_Overflow({DestIP,DestPort,SrcIP,SrcPort},VulnerableRPCService(DestIP,DestPort)AND GainOSInfo(DestIP),GainRootAccess(DestIP)).根據上述謂詞描述思想定對所有已知攻擊建模。同時謂詞通過報告和控制層可以不斷更新,以反映未知攻擊或已經發現的尚未加入的前提條件和后果,所有這些保存在關聯規則庫中。 該文實現的關聯算法在Ning Peng提出的因果關聯方法上做了一定的改進,加入了時間規則約束,將要關聯的報警信息的前因后果發生間隔時間約束在一定的時間內,通過本系統試驗發現時間窗口設置為18小時,可以使關聯成功率達到90%。 1.6 攻擊響應 在關聯分析的基礎上,判斷攻擊行為的嚴重性,然后按照攻擊處理的規則來響應具體的攻擊行為。如活躍攻擊源分析報告、易受攻擊目標分析報告、各時間段攻擊量報告等,這些報告使管理員能關注網絡中的威脅事件和薄弱環節并結合生成的攻擊場景關聯圖,對整個保護的網絡系統進行風險評估與決策。 2 實驗分析 為了驗證所設計系統的性能,本文對報警信息聚合與關聯系統進行了相關測試。報警數據來源為DARPA 2000年的入侵檢測數據集。在測試時,經過報警聚合與關聯系統處理后報警量變化統計,可以明顯看出經過聚合,報警數量大大減少了,減少的重復報警和誤報警約占報警總數的81%,而挖掘出經過聚合后的關聯報警數約占聚合報警數的33%。通過實驗說明本系統可以有效地減少重復報警和誤報警,對關聯多步攻擊也有一定的成效。 3 結論 該文介紹了入侵檢測報警信息關聯系統模型,對各個模塊的基本技術進行了分析,關聯分析技術能夠大大減少報警的數量、降低入侵檢測誤報警率,由于系統設計中聚合與關聯都在一定程度上依賴于先驗知識,因此,如何詳細建立完善的因果關聯規則庫還待進一步的研究。 參考文獻: [1] DENNING D. Intrusion-Detection model[J].IEEE Trans on Software Engineering,1987,13(2). [2] P.Ning,Y. Cui Constructing Atack Scenarios through Correlation of Intrusion A1erts[J].Technical Report TR-2002-4,North Carolina State University,Department of Computer science,2002:1-10. [3] 李雪瑩,劉寶旭.對入侵檢測警報關聯分析的研究與實踐[J].計算機工程與應用,2003. [4] K.Kendall.A Database of ComPuter Attacks for the Evaluation of Intrusion Detection System.Massachusets Institute of Technology[C].Department of Electrical Engingeer and Computer Science,1999:99-124 [5] Valdes A,Skinner K. Probabilistic Alert Correlation[C].Proc. of the 4th Intenrational Symposium on Recent Advances in Intrusion Detection,2001:54-68. [6] P.Ning,D.Xu,C.G.Healey and R.S.Amant.Building Attack Scenarios through Integration of Complementary Alert Correlation Methods[J].Network and Distributed System Security Symposium Conference Proceedings,2004. [7] K.Kendall.A Database of ComPuter Attacks for the Evaluation of Intrusion Detection System.Massachusets Institute of Technology[C].Department of Electrical Engingeer and Computer Science,1999:99-124 [8] Valdes A,Skinner K.Probabilistic Alert Correlation[C].Proc. of the 4th Intenrational Symposium on Recent Advances in Intrusion Detection,2001:54-68.