摘要:對入侵檢測系統(tǒng)產(chǎn)生的報(bào)警信息進(jìn)行二次分析已經(jīng)成為改善入侵檢測系統(tǒng)檢測性能的一個(gè)重要的、實(shí)際可行的手段。在對入侵檢測系統(tǒng)報(bào)警信息進(jìn)行分析的基礎(chǔ)上,提出了全面對報(bào)警信息進(jìn)行根源分析和關(guān)聯(lián)分析的框架,并給出了具體實(shí)現(xiàn)方法。實(shí)驗(yàn)結(jié)果證實(shí)了該方法的有效性。
關(guān)鍵詞:入侵檢測; 檢測率; 根源分析; 關(guān)聯(lián)分析
中圖法分類號:TP393.08文獻(xiàn)標(biāo)識碼:A
文章編號:1001-3695(2007)01-0161-03
入侵檢測[1,2]是當(dāng)前網(wǎng)絡(luò)安全研究的一個(gè)熱點(diǎn)和難點(diǎn)問題,提高入侵檢測的檢測率是眾多研究者共同追求的目標(biāo)。目前的入侵檢測系統(tǒng)(Intrusion Detection System, IDS)一般采用誤用檢測方法和異常檢測方法[1,2],但這兩種方法均具有不可克服的缺點(diǎn):誤用檢測方法誤報(bào)警多,異常檢測方法漏報(bào)警多。在實(shí)際中,這兩種方法互為補(bǔ)充。隨著網(wǎng)絡(luò)安全問題的日益嚴(yán)峻,大量的研究工作者投入到了入侵檢測的研究工作中,但由于入侵行為的不可判定性,目前還沒有一種實(shí)用、有效的方法能完全解決入侵檢測誤報(bào)警和漏報(bào)警問題。
針對主機(jī)數(shù)據(jù)源和網(wǎng)絡(luò)數(shù)據(jù)源的誤用檢測方法和異常檢測方法均具有一定的局限性,許多研究者[3]轉(zhuǎn)而對IDS產(chǎn)生的報(bào)警信息進(jìn)行分析,試圖解決IDS的誤報(bào)警和漏報(bào)警問題,以提高報(bào)警信息的理解力。但是,這些方法仍然具有一定的局限性,如分析深度不夠、分析不夠全面和系統(tǒng)難以配置等。
本文提出一種根據(jù)IDS報(bào)警信息特征進(jìn)行全面分析的方法:對系統(tǒng)原因產(chǎn)生的報(bào)警信息進(jìn)行根源分析,對入侵行為產(chǎn)生的報(bào)警信息進(jìn)行關(guān)聯(lián)分析,該方法克服了以上方法的不足。
1IDS報(bào)警信息入侵檢測的原理性探索
1.1IDS報(bào)警信息分析
由于當(dāng)前IDS系統(tǒng)的缺陷,導(dǎo)致實(shí)際網(wǎng)絡(luò)中配置的IDS每天產(chǎn)生的報(bào)警信息成千上萬,人力根本無法處理。我們通過對大量IDS報(bào)警信息進(jìn)行分析,認(rèn)為IDS報(bào)警信息的產(chǎn)生來自兩個(gè)方面:①由于系統(tǒng)狀態(tài)與報(bào)警規(guī)則匹配,盡管該狀態(tài)是系統(tǒng)正常狀態(tài);②IDS發(fā)現(xiàn)了入侵者的入侵行為。針對這些報(bào)警信息,我們總結(jié)了如下六個(gè)特征:
①大量的報(bào)警信息為誤報(bào)警信息。據(jù)統(tǒng)計(jì),其中大約有99%的誤報(bào)警信息。
②大量的報(bào)警信息由少數(shù)幾個(gè)報(bào)警根源產(chǎn)生。也就是說,大量的報(bào)警信息為重復(fù)報(bào)警信息,由同一個(gè)系統(tǒng)根源產(chǎn)生。
③屬于同一個(gè)報(bào)警根源產(chǎn)生的報(bào)警信息有一定的報(bào)警模式。也就是說,這些報(bào)警信息經(jīng)過處理,可用一個(gè)模式表達(dá)。
④報(bào)警信息根源暴露在大報(bào)警組中,泛化的報(bào)警可模型化報(bào)警組。也就是說,從大量的報(bào)警信息可分析產(chǎn)生報(bào)警信息的根源,同時(shí)可以采用泛化的報(bào)警信息表示這些大量的報(bào)警信息,但不影響對報(bào)警信息的理解。
⑤消除報(bào)警根源或過濾報(bào)警信息可大大減少報(bào)警信息量。
⑥屬于一次完整攻擊所產(chǎn)生的報(bào)警信息之間具有一定的因果關(guān)系。這是由于攻擊一般是一次有計(jì)劃的活動,該活動具有一定的目的性,所采取的行動一般經(jīng)歷踩點(diǎn)、掃描、查點(diǎn)、滲透、提升權(quán)限、偷竊、消除痕跡和安裝后門八大步驟,這些步驟之間是串聯(lián)關(guān)系,即入侵是否可行是有一定前提的,只有前提滿足,入侵行為才可能發(fā)生。
1.2IDS報(bào)警信息入侵檢測方法探索
IDS報(bào)警信息中,大量的報(bào)警信息僅由少數(shù)幾個(gè)報(bào)警根源產(chǎn)生,這些報(bào)警根源可識別和消除;由入侵過程產(chǎn)生的報(bào)警信息可因果關(guān)聯(lián)。因此,對報(bào)警信息我們可以采取如下兩個(gè)步驟:
①對報(bào)警信息進(jìn)行根源分析,去掉大部分誤報(bào)警、重復(fù)報(bào)警信息,減少報(bào)警信息量;
②對報(bào)警信息進(jìn)行因果關(guān)聯(lián)分析,識別入侵場景,增強(qiáng)對報(bào)警信息的理解。
其中步驟②進(jìn)行因果關(guān)聯(lián)分析簡單,只需要掌握入侵的前提和結(jié)果,方法的關(guān)鍵是識別報(bào)警信息的根源。
我們知道,數(shù)據(jù)挖掘(Data Mining)[4]是從大量不完全、有噪聲、模糊、隨機(jī)的數(shù)據(jù)中,提取隱含在其中、人們事先不知道、但又是潛在有用的信息和知識的過程。數(shù)據(jù)挖掘的發(fā)現(xiàn)工具和方法,常用的有分類、聚類、模式識別、可視化、決策樹、遺傳算法和不確定性處理等,這些方法在入侵檢測中已經(jīng)得到了廣泛的應(yīng)用。例如,Manganaris等人[5]采用數(shù)據(jù)挖掘技術(shù)對入侵檢測系統(tǒng)產(chǎn)生的報(bào)警信息進(jìn)行分析處理,構(gòu)建兩級異常檢測系統(tǒng),丟棄正常報(bào)警數(shù)據(jù),從而減輕管理員處理報(bào)警信息的負(fù)擔(dān);Clifton等人[6]采用數(shù)據(jù)挖掘技術(shù),從歷史報(bào)警數(shù)據(jù)庫中挖掘場景規(guī)則,然后根據(jù)這些場景規(guī)則構(gòu)建入侵報(bào)警信息的過濾規(guī)則,根據(jù)這些過濾規(guī)則,可以自動丟棄明顯是誤報(bào)警的信息,但是,Clifton等人幾乎沒有給出任何實(shí)驗(yàn)以證實(shí)其方法的有效性。
聚類(Clustering)[4]是一種數(shù)據(jù)挖掘方法,它將數(shù)據(jù)對象分組為多個(gè)類或簇(Cluster),在同一個(gè)簇中的對象之間具有較大的相似性,而不同簇中的對象差別較大。我們考慮采用聚類算法來發(fā)現(xiàn)報(bào)警信息的根源。
2IDS報(bào)警信息入侵檢測研究框架
圖1表示本文的研究框架。在一個(gè)系統(tǒng)環(huán)境中,為實(shí)現(xiàn)對網(wǎng)絡(luò)基礎(chǔ)設(shè)施、主機(jī)的保護(hù),部署了一些安全設(shè)備(指IDS),這些設(shè)備產(chǎn)生了大量的報(bào)警信息,這些報(bào)警信息存儲在數(shù)據(jù)庫中。
圖1基于IDS報(bào)警信息源的入侵檢測研究框架
(1)根源分析。首先把報(bào)警數(shù)據(jù)庫中的報(bào)警信息按時(shí)間單位分為一個(gè)個(gè)表,對每個(gè)表的報(bào)警信息進(jìn)行聚類分析,以找到合適的聚類簇,然后用合適的泛化報(bào)警描述聚類簇,分析人員根據(jù)泛化報(bào)警分析聚類根源,寫出報(bào)警過濾規(guī)則,這些過濾規(guī)則用于報(bào)警數(shù)據(jù)庫過濾報(bào)警信息。
(2)對過濾的報(bào)警信息進(jìn)行因果關(guān)聯(lián)分析。首先需要建立攻擊知識庫,根據(jù)攻擊知識庫,對報(bào)警信息進(jìn)行處理;然后進(jìn)行因果關(guān)聯(lián)分析,給出攻擊場景。
3具體實(shí)現(xiàn)
3.1根源分析實(shí)現(xiàn)
根源分析的核心是找到合適的聚類算法,該聚類算法能夠盡量發(fā)現(xiàn)各個(gè)IDS報(bào)警表中大的聚類簇,聚類簇中的報(bào)警信息由同一個(gè)報(bào)警根源產(chǎn)生,這些報(bào)警信息,可以用泛化報(bào)警描述。同時(shí),由于IDS報(bào)警信息是由數(shù)值屬性、時(shí)間屬性、文本屬性和類別屬性等組成,需要該聚類算法滿足處理多種數(shù)據(jù)類型的能力;報(bào)警信息中存在大量的噪音數(shù)據(jù),需要算法具有容忍噪音數(shù)據(jù)的能力;報(bào)警信息數(shù)據(jù)量大,需要算法能夠處理規(guī)模數(shù)據(jù)的能力。對現(xiàn)有的聚類算法分析發(fā)現(xiàn),并不存在一個(gè)現(xiàn)有的算法滿足聚類分析的需要。
考慮到報(bào)警信息屬性多種多樣,且對一個(gè)確定的安全環(huán)境,我們知道屬性取值之間的從屬關(guān)系,因此采用泛化結(jié)構(gòu)來刻畫報(bào)警信息之間的距離。但時(shí)間屬性有可能希望抓住的是時(shí)間信息,可以區(qū)別周末和工作日,區(qū)別上旬和下旬,而數(shù)值屬性、文本屬性的泛化不能主觀臆斷,需要采取一定的算法。
泛化結(jié)構(gòu)是一個(gè)單根有向圖,它可以描述屬性值是怎樣組織為更泛化的屬性值。例如,某泛化結(jié)構(gòu)可以表示主機(jī)Wsq是Web服務(wù)器,同時(shí)主機(jī)Lxf也是Web服務(wù)器。這樣,Wsq和Lxf的屬性值可以用Web服務(wù)器泛化,這樣就可以認(rèn)為它們相似。
類別屬性、時(shí)間屬性的泛化很直觀,我們分別進(jìn)行處理:
對時(shí)間屬性的多個(gè)泛化結(jié)構(gòu)分別各自泛化;
對于數(shù)值屬性,采用聚類算法發(fā)現(xiàn)其泛化結(jié)構(gòu);
對于文本屬性的泛化主要是分離字符串的語義信息,采用Teiresias算法找到滿足用戶定義的最小長度和最小頻率的子串,這些子串代替原來的字符串。
經(jīng)典屬性泛化算法是采用泛化結(jié)構(gòu)來描述屬性值之間的相似性,我們將該算法應(yīng)用到報(bào)警信息聚類中發(fā)現(xiàn),直接應(yīng)用該算法對報(bào)警信息進(jìn)行處理不能達(dá)到滿意的分析效果,出現(xiàn)了過泛化問題。
為了找到表中最大的報(bào)警聚類簇,我們限定一個(gè)最小聚類簇報(bào)警信息條數(shù)min_size,在實(shí)際應(yīng)用中,該值一般取為報(bào)警信息表大小的十分之一。
需要算法滿足容忍噪聲的能力,也就是說,需要考慮選擇滿足什么條件的屬性是合適的。我們在試驗(yàn)過程中發(fā)現(xiàn),在報(bào)警信息的所有屬性中,選擇屬性值統(tǒng)計(jì)計(jì)數(shù)值最小的屬性先泛化能夠抑制報(bào)警信息中的噪音數(shù)據(jù)的影響。
同時(shí),在處理過程中,一旦發(fā)現(xiàn)報(bào)警信息統(tǒng)計(jì)數(shù)超過預(yù)定義的min_size,則可以直接輸出,并把它們從報(bào)警表中刪除,同時(shí)恢復(fù)原來的報(bào)警信息屬性值,這樣可以及時(shí)終止過泛化。
具體算法如下:
輸入:表L,樹型泛化結(jié)構(gòu)Gi;
輸出:用戶定義尺寸的報(bào)警聚類簇;
算法:
初始化表L中所有報(bào)警信息屬性值a[count]:=1;
提示用戶輸入值min_size值;
如果∑a∈La[count]≥min_size
{如果存在報(bào)警信息a,a′相同,令a[count]:=a[count]+a′[count],從表中刪除a′;
如果a∈L:a[count]≥min_size,則
{輸出報(bào)警信息a,并令報(bào)警集合表L:=L\{a};
用原來未泛化的報(bào)警信息代替a′;
提示用戶輸入新的min_size值;
}
否則{選擇屬性值統(tǒng)計(jì)計(jì)數(shù)值最小的屬性Ai;
對表L中的所有報(bào)警信息a,a[Ai]賦值為其在Gi中的父節(jié)點(diǎn)值;
}
}
發(fā)現(xiàn)了報(bào)警聚類簇,其泛化報(bào)警也就知道了,根據(jù)泛化報(bào)警,可以直接寫出過濾規(guī)則,同時(shí)簡化和加深了報(bào)警簇的理解。
3.2因果關(guān)聯(lián)分析實(shí)現(xiàn)
對報(bào)警信息進(jìn)行因果關(guān)聯(lián)分析方法簡單,其關(guān)鍵、難點(diǎn)和工作量在于攻擊知識庫(攻擊的前提和后果)的建立,也就是需要掌握全面的攻擊手段,這不是本文所討論的范圍。下面主要討論在已知攻擊前提和后果的情況下怎樣實(shí)現(xiàn)報(bào)警信息之間的關(guān)聯(lián)。
報(bào)警信息一般由入侵事件發(fā)生的時(shí)間、源IP、目標(biāo)IP、源端口、目標(biāo)端口、事件報(bào)警類型以及文本描述信息組成。其中事件報(bào)警類型是對報(bào)警事件類型的粗略描述,不同報(bào)警類型隱含說明了系統(tǒng)存在的不同安全漏洞和事件所帶來的后果,也就是說報(bào)警類型體現(xiàn)了報(bào)警事件發(fā)生的前提和后果。因此,根據(jù)不同報(bào)警信息的報(bào)警類型,可以判斷這些報(bào)警信息之間是否存在因果聯(lián)系,即它們是否屬于一次特定的攻擊場景。下面給出報(bào)警類型的形式定義。
定義1報(bào)警類型:報(bào)警類型T是一個(gè)三元組(fact, prere ̄quisite, consequence)。其中fact表示攻擊所產(chǎn)生報(bào)警信息特征名稱的集合;prerequisite是邏輯表達(dá)式,表示產(chǎn)生報(bào)警信息的攻擊行為所要滿足的前提條件,其自由變量都包含在fact中;consequence是邏輯表達(dá)式集合,表示攻擊行為所引起的可能結(jié)果,其每個(gè)表達(dá)式中的自由變量都包含在fact中。
我們在試驗(yàn)中采用謂詞描述攻擊前提和結(jié)果,它可以方便地實(shí)現(xiàn)對報(bào)警類型的描述,如對報(bào)警類型IPSweep(發(fā)現(xiàn)特定網(wǎng)絡(luò)當(dāng)前主機(jī)的攻擊),表示為
IPSweep=(fact, prerequisite, consequence)
其中,fact= {IP};prerequisite=Φ;consequence = {ExistHost(IP)}。
要實(shí)現(xiàn)關(guān)聯(lián),需要把報(bào)警類型實(shí)例化,即報(bào)警類型是把報(bào)警信息生成報(bào)警類型實(shí)例的基礎(chǔ)。下面給出報(bào)警類型實(shí)例的形式定義。
定義2報(bào)警類型實(shí)例:報(bào)警類型實(shí)例h是對應(yīng)報(bào)警類型T中fact有限元組的集合,其中每個(gè)元組受時(shí)間間隔〔begintime,endtime〕約束。同時(shí)隱含著T的prerequisite和consequence邏輯表達(dá)式中自由變量取值為真。
例如,類型為IPSweep的一個(gè)實(shí)例hIPSweep包含如下元組:
同時(shí)隱含著表達(dá)式:
有了報(bào)警類型實(shí)例,就可以對報(bào)警信息進(jìn)行場景關(guān)聯(lián)。下面給出場景關(guān)聯(lián)報(bào)警信息的形式定義。
定義3場景關(guān)聯(lián)報(bào)警信息:它是這樣兩個(gè)或多個(gè)報(bào)警信息,由同一個(gè)攻擊場景產(chǎn)生,產(chǎn)生前一個(gè)報(bào)警信息的行為是產(chǎn)生后一個(gè)報(bào)警信息行為的前提。
實(shí)際上,如果對每個(gè)報(bào)警信息前提和結(jié)果進(jìn)行匹配及關(guān)聯(lián),代價(jià)會非常昂貴,對于n條報(bào)警,有n2對關(guān)聯(lián)空間。我們的試驗(yàn)是在一定約束條件下進(jìn)行實(shí)際的關(guān)聯(lián),一般僅考慮在時(shí)間上不超過既定時(shí)間間隔閾值T的報(bào)警信息,當(dāng)然,T的選擇靠經(jīng)驗(yàn),如3s,如果過短,則可能漏掉關(guān)聯(lián);但如果過長,又會增加關(guān)聯(lián)成本。實(shí)際判斷h1與h2相關(guān)是基于:設(shè)h1.consequence表示為C(h1),h2.prerequisite表示為P(h2),如果存在p∈P(h2) 和 CC(h1),對于c∈C,如果滿足c.endtime<p.begintime,則C中邏輯公式蘊(yùn)涵著p,即h1與h2相關(guān)。
3.3實(shí)驗(yàn)結(jié)果
我們在兩種IDS產(chǎn)品全年產(chǎn)生的報(bào)警信息數(shù)據(jù)上進(jìn)行試驗(yàn),實(shí)驗(yàn)結(jié)果表明:報(bào)警信息表的聚類時(shí)間一般在1min~2min,少數(shù)超過9min,可以很快識別系統(tǒng)產(chǎn)生的報(bào)警根源;平均每個(gè)報(bào)警表最多產(chǎn)生18個(gè)聚類簇,分析員手工處理聚類簇可行;通過過濾,IDS平均信息減少量為70%,大大降低了報(bào)警信息量及后處理負(fù)擔(dān);進(jìn)行關(guān)聯(lián)分析,可以把攻擊場景完整地再現(xiàn)出來,幫助安全分析員分析安全事件以及發(fā)現(xiàn)系統(tǒng)漏洞。
4結(jié)束語
對入侵檢測系統(tǒng)產(chǎn)生的報(bào)警信息進(jìn)行二次分析已經(jīng)成為改善入侵檢測系統(tǒng)檢測性能的一個(gè)重要的、實(shí)際可行的手段。本文在對報(bào)警信息進(jìn)行分析的基礎(chǔ)上,采用離線分析思想,提出并實(shí)現(xiàn)了采用聚類方法進(jìn)行報(bào)警根源分析以過濾報(bào)警信息或消除報(bào)警根源,采用報(bào)警信息因果關(guān)聯(lián)分析方法分析、還原入侵場景。方法具有如下優(yōu)點(diǎn):直觀且容易使用;分析全面,能發(fā)現(xiàn)系統(tǒng)產(chǎn)生的報(bào)警信息和以入侵為中心的報(bào)警信息;離線分析方法以及處理自由文本提高了分析的準(zhǔn)確性。
參考文獻(xiàn):
[1]Denning D E. An Intrusion Detection Model[J]. IEEE Trans. on Software Engineering, 1987,13(2):222232.
[2]卿斯?jié)h,蔣建春,馬恒太,等.入侵檢測技術(shù)研究綜述[J].通信學(xué)報(bào), 20-04,25(7):1929.
[3]劉雪飛,馬恒太,張秉權(quán),等. NIDS報(bào)警信息關(guān)聯(lián)分析進(jìn)展研究[J]. 計(jì)算機(jī)科學(xué), 20-04,31(12):6164.
[4]Han Jiawei. 數(shù)據(jù)挖掘概念與技術(shù)[M].北京:機(jī)械工業(yè)出版社,2001.
[5]Stefanos Manganaris, et al.A Data Mining Analysis of RTID Alarms[J]. Computer Networks, 2000,34(4):571577.
[6]Chris Clifton, Gary Gengo. Developing Custom Intrusion Detection Filters Using Data Mining[C]. Los Angeles: 2000 Military Communications International Symposium, 2000.
作者簡介:
劉雪飛(1975),女,湖南人,博士,主要研究方向?yàn)樾畔踩?、?shù)據(jù)挖掘;王申強(qiáng)(1975),男,河北人,中級工程師,碩士,主要研究方向?yàn)殡娏ο到y(tǒng)網(wǎng)絡(luò)安全;吳伯橋(1979),男,湖南人,助教,學(xué)士,主要研究方向?yàn)樾畔踩获R恒太(1970),男,山東人,副研究員,博士,主要研究方向?yàn)榇笮途W(wǎng)絡(luò)安全、并行計(jì)算;文偉平(1976),男,湖南人,博士,主要研究方向?yàn)樾畔踩?/p>
注:本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文