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