摘 要: 分析了數(shù)據(jù)挖掘技術(shù)在入侵檢測中的應(yīng)用,并分析了數(shù)據(jù)挖掘用于入侵檢測時的優(yōu)點和需要改進的地方。
關(guān)鍵詞: 入侵檢測;數(shù)據(jù)挖掘;網(wǎng)絡(luò)安全
1 入侵檢測
1.1 入侵檢測概述
入侵檢測就是檢測入侵行為,并采取相應(yīng)的防護措施。入侵檢測技術(shù)分為誤用檢測(misuse detection)和異常檢測(anomaly detection)[1]。
誤用檢測是將入侵者活動用一種模式來表示,入侵檢測系統(tǒng)的目標(biāo)是檢測主體活動是否符合這些模式。在目前的商業(yè)產(chǎn)品中誤用檢測最通常的形式是將每一個攻擊事件的模式定義為一個獨立的特征,從而建立入侵特征庫。它可以將已有的入侵方法檢查出來,但對新的入侵方法無能為力。其設(shè)計難點在于如何使設(shè)計模式既能夠表達“入侵”現(xiàn)象又不會將正常的活動包含進來[2]。
異常檢測是假設(shè)入侵者活動異常于正常主體的活動。根據(jù)這一理念建立主體正常(normal)“模式”,將當(dāng)前主體的活動狀況與這些“模式”相比較,當(dāng)違反其規(guī)律時,認為該活動可能是“入侵”行為。異常檢測首先要收集一段時期正常操作活動的歷史數(shù)據(jù),建立代表用戶主機或網(wǎng)絡(luò)連接的正常行為的輪廓,即正常模式。異常檢測的難題在于如何建立這種正常“模式”以及如何設(shè)計算法,從而不把正常的操作作為“入侵”或忽略真正的“入侵”行為。
本文介紹了數(shù)據(jù)挖掘技術(shù)在入侵檢測中的應(yīng)用,從大量的審計數(shù)據(jù)中提取入侵或正常的行為模式,將這些模式應(yīng)用于誤用檢測和異常檢測。
1.2 入侵檢測的內(nèi)容
入侵檢測主要包括以下內(nèi)容:檢測并分析用戶和系統(tǒng)的活動;檢查系統(tǒng)配置和漏洞;評估系統(tǒng)關(guān)鍵資源和數(shù)據(jù)文件的完整性;識別已知的攻擊行為;統(tǒng)計分析日常行為;操作系統(tǒng)日志管理,識別違反安全策略的用戶活動[3]。
1.3 入侵檢測的機制[4]
(1)模式匹配。模式匹配就是將收集到的信息與已知的網(wǎng)絡(luò)入侵進行比較,發(fā)現(xiàn)違背安全策略的入侵行為。這種檢測方法只需收集相關(guān)的數(shù)據(jù)集合就能進行判斷,減少了系統(tǒng)占用,其技術(shù)已相當(dāng)成熟,檢測準(zhǔn)確率和效率也相當(dāng)高。但是,該技術(shù)需要不斷進行升級以對付不斷出現(xiàn)的攻擊手法,并且不能檢測未知攻擊手段。
(2)異常檢測。異常檢測首先給系統(tǒng)對象(用戶、文件、目錄和設(shè)備等)創(chuàng)建一個統(tǒng)計描述,包括統(tǒng)計正常使用時的測量屬性,如訪問次數(shù)、操作失敗次數(shù)和延時等。測量屬性的平均值被用來與網(wǎng)絡(luò)系統(tǒng)的行為進行比較,當(dāng)觀察值在正常值范圍之外時,入侵檢測系統(tǒng)就會判斷有入侵發(fā)生。異常檢測的優(yōu)點是可以檢測到未知入侵和復(fù)雜的入侵,缺點是誤報、漏報率高。
(3)協(xié)議分析。協(xié)議分析是在傳統(tǒng)模式匹配技術(shù)基礎(chǔ)之上發(fā)展起來的一種新的入侵檢測技術(shù)。它充分利用了網(wǎng)絡(luò)協(xié)議的高度有序性,并結(jié)合了高速數(shù)據(jù)包捕捉、協(xié)議分析和命令解析,來快速檢測某個攻擊特征是否存在,這種技術(shù)正逐漸進入成熟應(yīng)用階段。協(xié)議分析大大減少了計算量,即使在高負載的高速網(wǎng)絡(luò)上,也能逐個分析所有的數(shù)據(jù)包。
2 數(shù)據(jù)挖掘概述
2.1 數(shù)據(jù)挖掘的方法
數(shù)據(jù)挖掘通常又被稱作數(shù)據(jù)庫中的知識發(fā)現(xiàn)(KDD),是一個用來從大型數(shù)據(jù)庫中提取出有價值知識的過程[5]。
將數(shù)據(jù)挖掘技術(shù)應(yīng)用到入侵檢測之中的目的就是為了從大量審計數(shù)據(jù)中挖掘出隱含在其中的用戶感興趣的有價值信息,而后再將所得到的知識以一種可理解的方式(規(guī)則、模式等)表示出來,最后使用得到的知識去檢測是否有入侵發(fā)生[6]。
數(shù)據(jù)挖掘的目標(biāo)是從數(shù)據(jù)庫中發(fā)現(xiàn)隱含的、有意義的知識,按其功能可分為以下幾類:
(1)關(guān)聯(lián)分析
關(guān)聯(lián)分析能尋找數(shù)據(jù)庫中大量數(shù)據(jù)的相關(guān)聯(lián)系,常用的2種技術(shù)為關(guān)聯(lián)規(guī)則和序列模式。關(guān)聯(lián)規(guī)則是發(fā)現(xiàn)一個事物與其他事物間的相互關(guān)聯(lián)性或相互依賴性,可用于如分析客戶在超市買牙刷的同時又買牙膏的可能性;序列模式分析將重點放在分析數(shù)據(jù)之間的前后因果關(guān)系,如買了電腦的顧客則會在3個月內(nèi)買殺毒軟件。
(2)聚類
輸入的數(shù)據(jù)并無任何類型標(biāo)記,聚類就是按一定的規(guī)則將數(shù)據(jù)劃分為合理的集合,即將對象分組為多個類或簇,使得在同一個簇中的對象之間具有較高的相似度,而在不同簇中的對象差別很大。
(3)自動預(yù)測趨勢和行為
數(shù)據(jù)挖掘自動在大型數(shù)據(jù)庫中進行分類和預(yù)測,尋找預(yù)測性信息,自動地提出描述重要數(shù)據(jù)類的模型或預(yù)測未來的數(shù)據(jù)趨勢。
(4)概念描述
概念描述就是對某類對象的內(nèi)涵進行描述并概括出這類對象的有關(guān)特征。對于數(shù)據(jù)庫中龐雜的數(shù)據(jù),人們期望以簡潔的描述形式來描述匯集的數(shù)據(jù)集。
(5)偏差檢測
偏差包括很多潛在的知識,如分類中的反常實例、不滿足規(guī)則的特例、觀測結(jié)果與模型預(yù)測值的偏差、量值隨時間的變化等。
2.2 數(shù)據(jù)挖掘的過程
把數(shù)據(jù)挖掘引入到入侵檢測的優(yōu)越之處在于可以從大量的網(wǎng)絡(luò)數(shù)據(jù)以及主機的日志數(shù)據(jù)中提取出人們需要的、事先未知的知識和規(guī)律??梢詫⑷肭謾z測看作是一個數(shù)據(jù)的分析過程,對大量的安全數(shù)據(jù)應(yīng)用特定的數(shù)據(jù)挖掘算法,以達到建立一個具有自適應(yīng)性以及良好的擴展性能的入侵檢測系統(tǒng)[2]。
應(yīng)用到入侵檢測上的數(shù)據(jù)挖掘算法主要集中在關(guān)聯(lián)、序列、分類和聚類這四個基本模型之上[6]。
3 數(shù)據(jù)挖掘在入侵檢測中的應(yīng)用
3.1 數(shù)據(jù)挖掘技術(shù)在入侵檢測中的應(yīng)用
(1)關(guān)聯(lián)規(guī)則挖掘的應(yīng)用
關(guān)聯(lián)規(guī)則是數(shù)據(jù)挖掘技術(shù)中最為廣泛應(yīng)用的技術(shù)之一,也是最早用于入侵檢測的技術(shù)。最早運用這種技術(shù)是作為一種工具去產(chǎn)生關(guān)于網(wǎng)絡(luò)流(包括報文和連接)的報告。發(fā)現(xiàn)關(guān)聯(lián)規(guī)則問題就是發(fā)現(xiàn)所有支持度和可信度均超過規(guī)定閾值的關(guān)聯(lián)規(guī)則,這個發(fā)現(xiàn)過程分為兩步:第一步識別所有的頻繁項目集即所有支持度不低于用戶規(guī)定的最小支持度閾值的項目集;第二步是從第一步得到的頻繁集中構(gòu)造可信度不低于用戶規(guī)定的最小可信度閾值的規(guī)則。應(yīng)用在網(wǎng)絡(luò)流量分析上,將一次連接看作是一個事務(wù)T,將采集到的很多連接記錄組成事務(wù)數(shù)據(jù)庫D,每個事務(wù)T由duration、service、src-host、dst-host、dst-bytes、flag共7項組成,事務(wù)的唯一標(biāo)識符為time,其中service為服務(wù)(或目的的端口),src-host為源主機,dst-host為目的主機,dst-bytes為源主機發(fā)出的數(shù)據(jù)包大小,flag為標(biāo)記。下面列舉一個關(guān)聯(lián)規(guī)則:10,90,srchost=202.38.214.188,dsthos=202.66.30.7,service=WWW。規(guī)則的含義為:在所有的網(wǎng)絡(luò)流量中有10%的連接符合源主機IP為202.38.214.188,目的主機的IP為202.66.30.7的情況下,連接訪問的服務(wù)有90%的可能為WWW服務(wù)[4]。
(2)序列模式分析的應(yīng)用
序列模式用于發(fā)現(xiàn)如“在某一段時間內(nèi),客戶購買商品A,接著購買商品B,而后購買商品C,即序列A→B→C出頻度較高”之類的知識。由于網(wǎng)絡(luò)攻擊與時間變量緊密相關(guān),因此序列模式分析在關(guān)聯(lián)分析基礎(chǔ)上進一步分析攻擊行為時間相關(guān)性。Lee利用關(guān)聯(lián)分析的數(shù)據(jù)結(jié)構(gòu)和庫函數(shù)實現(xiàn)序列模式分析。其序列模式的形式化描述為:已知事件數(shù)據(jù)庫D,其中每次交易T與時間戳關(guān)聯(lián),交易按照區(qū)間[t1,t2]順序從時間t1開始到t2結(jié)束。對于D中項目集X,如果某區(qū)間包含X,而其子區(qū)間不包含X時,稱此區(qū)間為X的最小出現(xiàn)區(qū)間。X的支持度定義為包括X的最小出現(xiàn)區(qū)間數(shù)目占D中記錄數(shù)目比例。其規(guī)則表示為X,Y→Z,[conficence,sup-port,window],式中X,Y,Z為D中項目集,規(guī)則支持度為sup-port(X∪Y∪Z),置信度為support(X∪Y∪Z)/support(X∪Y),每個出現(xiàn)的寬度必須小于窗口值??紤]到網(wǎng)絡(luò)或操作系統(tǒng)中審計數(shù)據(jù)流的特性,將入侵事件序列考慮為單序列,X、Y、Z滿足偏序關(guān)系[5]。
(3)聚類分析的應(yīng)用
聚類分析是識別數(shù)據(jù)對象的內(nèi)在規(guī)則,將對象分組以構(gòu)成相似對象類,并導(dǎo)出數(shù)據(jù)分布規(guī)律。分類與聚類的區(qū)別在于分類是將分類規(guī)則應(yīng)用于數(shù)據(jù)對象;而聚類是發(fā)現(xiàn)隱含于混雜數(shù)據(jù)對象的分類規(guī)則。Portnoy提出基于聚類分析的入侵檢測算法,無監(jiān)督異常檢測算法,通過對未標(biāo)識數(shù)據(jù)進行訓(xùn)練檢測入侵。算法設(shè)計基于兩個假設(shè):第一正常行為記錄數(shù)目遠大于入侵行為記錄數(shù)目;第二入侵行為本質(zhì)上與正常行為不同。算法基本思想在于入侵模式與正常模式本質(zhì)上不同,則它們將出現(xiàn)在正常模式范疇之外,因此能夠被檢測出來。算法將數(shù)據(jù)實例進行正規(guī)化處理轉(zhuǎn)換為標(biāo)準(zhǔn)形式,采用標(biāo)準(zhǔn)歐幾里德度量,使用改進單鏈法聚類,經(jīng)過標(biāo)識,通過分類以檢測入侵行為,但該算法不適用于惡意攻擊和拒絕服務(wù)攻擊的檢測[7]。
(4)分類分析的應(yīng)用
數(shù)據(jù)分類分為2個過程:(1)選擇一個數(shù)據(jù)集,訓(xùn)練數(shù)據(jù)集的每個元組(訓(xùn)練樣本)的類標(biāo)號已知,例如,在入侵檢測中可以根據(jù)黑客入侵行為的危害程度將類標(biāo)號賦值為:正常、弱入侵、一般入侵、強入侵。建立一個模型,通過分析由屬性描述的訓(xùn)練數(shù)據(jù)庫元組來構(gòu)造模型。由于提供了每個訓(xùn)練樣本的類標(biāo)號,所以該步也稱作為有指導(dǎo)的學(xué)習(xí)過程。通常,學(xué)習(xí)模型用分類規(guī)則、判定樹或數(shù)學(xué)公式的形式表示。(2)對模型進行分類。首先評估模型(分類規(guī)則)的預(yù)測準(zhǔn)確率,對于每個測試樣本,將已知的類標(biāo)號與該樣本的類預(yù)測標(biāo)號進行比較,模型在給定測試集上的準(zhǔn)確率是被模型分類的測試樣本的百分比。如果模型的準(zhǔn)確率可以被接受,就可用它來對類標(biāo)號未知的數(shù)據(jù)元組或?qū)ο筮M行分類[8]。
3.2 數(shù)據(jù)挖掘技術(shù)用于入侵檢測的優(yōu)點
(1)自適應(yīng)性好
傳統(tǒng)入侵檢測系統(tǒng)規(guī)則庫的建立需要一個特別的專家小組根據(jù)現(xiàn)有的攻擊發(fā)現(xiàn)其特征并開發(fā)出它的檢測工具。然而當(dāng)一種攻擊是復(fù)雜的或者是跨越時間很長時,要一個系統(tǒng)總能很快地跟蹤入侵技術(shù)的發(fā)展是不可能的。而且針對每一種新的攻擊去更換系統(tǒng)的代價是很大的。由于應(yīng)用數(shù)據(jù)挖掘技術(shù)的異常檢測不基于信號匹配模式,并不就每一個特別的信號進行檢測,所以不存在上述問題,因而表現(xiàn)出一定程度的實時性。例如一個改進的遠程呼叫程序可能很容易迷惑基于信號匹配的系統(tǒng),但是如果采用異常檢測的話,它就很容易被檢測出來,因為系統(tǒng)會發(fā)現(xiàn)以前從未有來自這個地址的RPC連接。
(2)誤警率低
現(xiàn)有的系統(tǒng)過度依賴于單純的信號匹配,它發(fā)出的警報可能遠遠多于實際的情況,在某種正常的工作中如果包含(這是很有可能的)這種信號的話,就必然產(chǎn)生誤警。采用數(shù)據(jù)挖掘的系統(tǒng)可以從警報發(fā)生的序列發(fā)現(xiàn)某種規(guī)律從而濾出那些正常行為產(chǎn)生的信號。數(shù)據(jù)挖掘方法還可以有效地剔除重復(fù)的攻擊數(shù)據(jù),因而具有較低的誤警率。
(3)漏報率低
當(dāng)一種新的以前從未出現(xiàn)過的攻擊方式出現(xiàn)時,或者當(dāng)一種攻擊改變它的某些方式時,傳統(tǒng)的系統(tǒng)很有可能就不會產(chǎn)生反應(yīng)。應(yīng)用數(shù)據(jù)挖掘技術(shù)的系統(tǒng)就可以很快地發(fā)現(xiàn)新的攻擊,在很大程度上減少了漏報的可能[3]。
(4)減輕數(shù)據(jù)過載
對于傳統(tǒng)的入侵檢測系統(tǒng),另外一個需要考慮的問題是不在于能否準(zhǔn)確有效地檢測出來自各方面的攻擊,而是需要多少的數(shù)據(jù)才能準(zhǔn)確地發(fā)現(xiàn)一個攻擊?,F(xiàn)在網(wǎng)絡(luò)上的數(shù)據(jù)流量越來越大,如果一個大的公司的整個網(wǎng)絡(luò)需要一個入侵檢測系統(tǒng)的話,它的網(wǎng)絡(luò)流量及每天產(chǎn)生的各種網(wǎng)絡(luò)記錄是非常龐大的。應(yīng)用數(shù)據(jù)挖掘技術(shù)可以很好地解決這個問題,現(xiàn)有的數(shù)據(jù)挖掘算法通過發(fā)掘數(shù)據(jù)之間的關(guān)系,可以提供各個不同側(cè)面的數(shù)據(jù)特征,特別是可以將以前的結(jié)果和最新的數(shù)據(jù)加以綜合,這樣可以大大減少不必要的數(shù)據(jù)[9]。
3.3 需要改進的地方
數(shù)據(jù)挖掘用于入侵檢測也還有很多需要改進的地方。比如:(1)把整個工作的過程自動化,即從審計數(shù)據(jù)中自動建立可以直接應(yīng)用的入侵檢測系統(tǒng)。這就需要對從審計數(shù)據(jù)中挖掘到的數(shù)據(jù)建立一種有效的編碼機制,把挖掘到的模式轉(zhuǎn)換成數(shù)字形式,以一種更加直觀的方式比較正常模式和攻擊模式,自動產(chǎn)生攻擊模式。(2)提高系統(tǒng)的整體性能、準(zhǔn)確率及實時性和可用性,將科研成果應(yīng)用到實際環(huán)境中。(3)數(shù)據(jù)挖掘結(jié)果的可視化。把數(shù)據(jù)挖掘得到的結(jié)果用圖形表示出來,可以更好地分析數(shù)據(jù)中隱藏的信息。(4)把入侵檢測系統(tǒng)與網(wǎng)絡(luò)管理系統(tǒng)結(jié)合起來。許多網(wǎng)絡(luò)異常行為通過網(wǎng)絡(luò)管理系統(tǒng)就可以過濾掉,在檢測到入侵時,入侵檢測系統(tǒng)可以與網(wǎng)絡(luò)管理系統(tǒng)進行通信,并采取及時的措施,如切斷連接、把受攻擊主機的服務(wù)重定向等[8-11]。
參考文獻
[1] 劉勇國,李學(xué)明.基于數(shù)據(jù)挖掘的入侵檢測[J].重慶大學(xué)學(xué)報,2002,25(10):128-131,135.
[2] 唐正軍.網(wǎng)絡(luò)入侵檢測系統(tǒng)的設(shè)計與實現(xiàn)[M].北京:電子工業(yè)出版社,2002.
[3] 戴英俠,連一峰,王航,等.系統(tǒng)安全與入侵檢測[M].北京:清華大學(xué)出版社,2002:99-137.
[4] 茅潔,蔣雄文.基于數(shù)據(jù)挖掘的入侵檢測技術(shù)[J].現(xiàn)代電子技術(shù),2004,27(6):25-27.
[5] 張銀奎,廖麗,宋俊,等.?dāng)?shù)據(jù)挖掘原理[M].北京:機械工業(yè)出版社,2003:93-105.
[6] 李志波,李遠清,胡剛.基于數(shù)據(jù)挖掘的入侵檢測系統(tǒng)[J].工業(yè)工程,2003,6(3):36-39.
[7] 向繼,高能,荊繼武.聚類算法在網(wǎng)絡(luò)入侵檢測中的應(yīng)用[J].計算機工程,2003,29(16):1-3.
[8] 劉莘,張永平,萬艷麗.決策樹算法在入侵檢測中的應(yīng)用分析及改進[J].計算機工程與設(shè)計,2006,27(19):3641-3643.
[9] 張翰帆.基于數(shù)據(jù)挖掘的入侵檢測系統(tǒng)[D].南京工業(yè)大學(xué),2004.
[10] 譚勇,榮秋生.一個基于SLIQ的分類算法的實現(xiàn)[J].計算機工程,2003,29(18):98-100.
[11] 薛靖,陳海.?dāng)?shù)據(jù)挖掘技術(shù)在入侵檢測系統(tǒng)中的實現(xiàn).微計算機信息,2009,25(24).