吳建源
(廣東培正學院計算機科學與工程系,廣東廣州 510830)
粗糙集屬性約簡在入侵檢測系統中的應用*
吳建源
(廣東培正學院計算機科學與工程系,廣東廣州 510830)
入侵檢測系統 (I DS)是一種以攻為守的主動式防御措施,它針對網絡內部攻擊進行防御.為了實現對海量入侵檢測數據的數據挖掘,首先可對入侵檢測系統采集的海量數據進行抽樣分析,然后使用粗糙集理論的屬性約簡方法對數據進行預處理,獲得入侵檢測數據的決策規則,并判斷流經網絡的數據包的安全性,最后編程以實現數據挖掘的自動化.
粗糙集;數據挖掘;屬性約簡;入侵檢測
近年來,計算機和網絡基礎設施,特別是各種官方機構的網站,不斷受到黑客的攻擊,各種入侵事件層出不窮.一些傳統的網絡安全技術,如訪問控制機制、加密、防火墻等已不能滿足網絡安全的要求,而逐漸成熟起來的入侵檢測系統 (Intrusion Detection System,簡稱為 I DS)則為我們提供了又一重保障.數據挖掘在入侵檢測中的應用,旨在對海量的安全審計數據進行智能化處理,試圖從大量數據中提取人們感興趣的數據信息,及與安全相關的系統特征屬性,建立基于數據挖掘的入侵檢測模型,包括數據源選擇、數據預處理、算法選擇、創建數據挖掘模型、挖掘結果分析處理及其可視化等[1,2].
由于入侵檢測系統采集的數據量是巨大的,因此對采集的數據采用分等級多次抽樣的方法獲取信息系統表.粗糙集理論作為一種新的數據挖掘工具,在處理不確定性知識方面有著突出的優勢.用粗集理論的屬性約簡方法對樣本信息系統進行預處理,刪除冗余的屬性,從而得到入侵檢測數據的決策規則,進而判斷流經網絡的數據包的安全與否.
入侵檢測是在 1980年由 James Anderson在為美國空軍做的技術報告中首次提出來的[1].入侵檢測,顧名思義,是對入侵的一種檢測行為,它是通過從計算機網絡或計算機系統中的若干關鍵點收集信息并對其進行分析,從中發現網絡或系統中是否有違反安全策略的行為和遭到襲擊的跡象.作為一種安全防護工具,I DS彌補了防火墻的很多不足,甚至在很多方面可以取而代之.相對于采用封鎖、過濾等被動防御的防火墻而言,入侵檢測系統能主動地發現網絡中的非法入侵,并采取相應的措施,如記錄、報警、阻斷網絡等,防止危害的擴大.
入侵檢測實質是對基于主機或基于網絡的計算機系統的運行狀態進行監視,發現各種攻擊企圖、攻擊行為或者攻擊結果,以保證系統資源的機密性、完整性與可用性[3].從功能上,我們將入侵檢測系統劃分為四個基本部分:數據采集子系統、數據分析子系統、控制臺子系統、數據庫管理子系統(如圖 1所示).

圖1 入侵檢測功能結構示意圖
其中數據分析模塊相當于 I DS的大腦,它必須具備高度的“智慧”和“判斷能力”.所以,在設計此模塊之前,我們需要對各種網絡協議、系統漏洞、攻擊手法、可疑行為等有一個很清晰、深入的研究,然后制訂相應的安全規則庫和安全策略,再分別建立濫用檢測模型和異常檢測模型,讓機器模擬自己的分析過程,識別確知特征的攻擊和異常行為,最后將分析結果形成報警消息,發送給控制管理中心.
Rough Sets理論是由波蘭華沙理工大學 Pawlak于 1982年提出的一種數據分析理論,主要研究不完整、不確定知識和數據的表達、學習、歸納的方法[4].其主要思想是在保持分類能力不變的前提下,進行知識約簡.目前,粗糙集理論已被成功地用于機器學習、決策分析、過程控制、模式識別和數據挖掘等領域,所以在使用決策樹之前可先利用粗糙集方法對入侵檢測數據進行屬性約簡.
下面簡單介紹一下粗糙集理論中屬性約簡的思想[5,6,7].
設非空集U是我們感興趣的對象組成的有限集合,稱為論域.任意 X?U,稱為 U中的一個概念或范疇.U上的一族劃分稱為關于 U的一個知識庫,而集合上的劃分與等價關系是相互對應的.
(1)決策信息系統:是一個有序四元組 S=(U,A,V,f),其中 U={x1,x2,…,xn}是論域,A=C∪D是屬性集合,其中 C是條件屬性集合,D是決策屬性集合,是屬性值的集合,Va是屬性 a的值域,f:U×A→V是一個信息函數,對每一個 a∈A,x∈U,f(x,a)∈Va,即信息函數 f指定U中每一個對象 x的每個屬性值.
信息系統的每個屬性均決定一個等價關系,當然屬性子集也決定一個等價關系,如 P?A,則由 P決定的等價關系的等價類的集合記為U/P={[x]P|x∈U}.
(2)上近似和下近似:在信息系統 S=(U,A,V,f)中,設 P?A,X?U,X關于 P的下近似 P_(X)={x|x∈U,[x]P?X},上近似 P-(X)={x|x∈U,[x]P∩X≠Φ},POSP(X)=P_(X)也稱為 X的 P正域.
(3)屬性約簡
定義 1設 U為一個論域,P和 Q為定義在 U上的兩個等價關系簇,稱
POSP(Q)為 Q的 P正域.
定義 2設 S=(U,A,V,f)是一個信息系統,P,Q ? A,r∈ P,如果

則稱 r為 P中 Q不必要的;否則 r為 P中 Q必要的.不必要屬性在信息系統中是多余的.若將它從系統中去掉,不會改變系統分類能力.
定義 3設 S=(U,A,V,f)是一個信息系統,P,Q?A,如果每個 r∈P都是 Q必要的,則稱 P為Q獨立的;否則,稱 P為 Q依賴的.
對于相依賴的屬性集合來說,其中必包含有多余的屬性,可以對其約簡.
定義 4設 S=(U,A,V,f)是一個信息系統,P,Q?A,P中所有Q必要的屬性構成的集合稱為P的 Q核,簡稱相對核,記為 coreQ(P).
定義 5設 S=(U,A,V,f)是一個信息系統,P,Q?A,K?P,如果滿足:
POSK(Q)=POSP(Q),而且 K是 Q獨立的,則稱 K是 P的一個 Q約簡,P的Q約簡也稱為相對約簡.
相對約簡一般不唯一,而且相對核是所有相對約簡的交集.相對核的概念有兩方面的意義:首先它可以作為所有約簡的計算基礎,因為核包含在所有的約簡之中,并且計算可以直接進行;其次當知識化簡時它是不能消去的知識特征的集合.
現在我們利用上述介紹的粗糙集理論以及決策樹 I D3算法對入侵檢測系統采集的檢測數據進行歸納學習.
(1)入侵檢測數據的采集:入侵檢測數據采集模塊是實現整個入侵檢測系統高效工作的基石,為整個系統提供數據來源.因此,在設計整個入侵檢測系統時,必須保證網絡數據截獲模塊工作穩定可靠,為整個入侵檢測模塊穩定可靠地提供數據.現在比較流行的有兩種方法,一種網絡數據截獲方法,是在 BPF(Berkeley Packet Fliter)模型的基礎上,利用一些流行的函數庫進行開發;另外一種是在W indows的驅動程序的基礎上進行的開發.
在UN IX或Linux系統中,一般采用由美國洛倫茲伯克利國家實驗室所編寫的專用于數據包捕獲功能的 API函數庫 Libpcap來實現.Libpcap實質上是一個系統獨立的 API函數接口,用于用戶層次的數據截獲工作,可在相關網站下載到.
具體地說,入侵檢測數據的采集主要基于兩大類:一種基于標志 (signature-based),另一種基于異常情況(anomaly-based)[3].對于基于標識的檢測技術來說,首先要定義違背安全策略的事件的特征,如網絡數據包的某些頭信息,主要判別這類特征是否在所收集到的數據中出現,此方法非常類似殺毒軟件.而基于異常的檢測技術則是先定義一組系統“正常”情況的數值,如 CPU利用率、內存利用率、文件校驗等 (這類數據可以人為定義,也可以通過觀察系統、并用統計的辦法得出),然后將系統運行時的數值與所定義的“正常”情況比較,得出是否有被攻擊的跡象,這種檢測方式的核心在于如何定義所謂的“正常”情況.
根據上述檢測的方法,需要對諸如數據包頭信息、CPU利用率等 10來個屬性進行數據采集,得到如下面表 1的入侵數據信息系統,該信息系統模擬網絡環境獲得 9個星期的 TCP元數據,這些數據的基礎是正常的網絡數據,其余的為多種入侵數據.
(2)由于信息系統數據量非常大,為了便于學習,首先要進行抽樣分析,可依次取 1/10000,1/5000,1/1000,1/100,1/10的數據量進行多次抽樣,對每次的樣本進行實驗.
(3)對樣本信息系統,采用下文介紹的粗糙集屬性約簡軟件對它進行約簡,獲得該樣本的分類決策規則.
(4)利用這些規則,判斷出哪些是正常的網絡數據包,哪些是惡意的入侵行為.
基于粗糙集方法的入侵檢測系統是一種基于數據挖掘的入侵檢測系統.該系統主要由數據采集、數據挖掘、模式匹配和智能決策等 4個模塊組成(如圖 2所示).
數據采集模塊從數據源,如系統日志、網絡數據包等,獲取原始數據,同時該模塊還對原始數據進行一些必要的處理,如可能需要對數據投影,處理連續屬性,對不完整的數據進行補充等.這部分為進一步的數據分析和約簡作準備[8].
數據挖掘模塊首先利用粗糙集理論中的屬性約簡算法對數據采集模塊提交的數據進行預處理,去除冗余屬性,再運用決策樹 I D3算法對預處理得到的審計數據進行整理、歸納分析,找到可用于入侵檢測的模式與知識,即生成安全規則,然后提交給模式匹配模塊進行入侵分析,做出最終判斷,最后由決策模塊給出應對措施.

圖2 基于粗集方法的入侵檢測系統模塊結構圖
在數據挖掘模塊中,可以選擇基于可辨識矩陣的一般算法、基于可辨識矩陣的改進算法和啟發式屬性算法等三種不同的屬性約簡方法進行約簡,以去除原始數據中的冗余屬性,減少規則生成時的數據量,提高規則的簡潔度.對于屬性約簡后的數據,運用決策樹 I D3算法進行規則提取,得到相應的網絡安全規則.規則顯示程序負責為用戶顯示當前數據生成的安全規則.由于數據具有不確定和存在噪音等特點,可能存在相互沖突的規則,可能需要對規則進行檢查以去除潛在的不一致性,因此程序還為用戶提供對相關規則進行檢查修改的功能.對規則集的一致性等檢查完畢后,就可以把該規則集加入到相應的規則庫 (知識庫),作為對用戶行為特征分析判定的依據.
軟件基于W indows2000 Professional操作系統,編程平臺為MicrosoftVisual C++6.0,后臺數據庫采用SQL Server 2000.
3.2.1 數據庫接口
W indows常見數據庫接口有:ODBC(開放數據庫互連 )、DAO(數據訪問對象 )、OLE DB(對象鏈接嵌入數據庫).
OLE DB屬于底層的數據庫編程接口,與傳統的數據庫接口相比,有更好的健壯性和靈活性,能夠與非關系數據源進行通信,它作為數據庫與應用程序的中間層,允許應用程序以相同接口訪問不同類型的數據源.當客戶程序對數據庫進行操作時,只需要對 OLE接口發出指令,數據服務器從數據源取得所要查詢的數據,以表格的形式提供給接口,再由客戶程序將數據從接口取出并使用.在這些操作中,客戶和服務器都不必知道對方的具體應用,而只需對接口進行操作,簡化了程序設計,提高了對數據庫的訪問速度.
因此,本軟件采用 OLE DB作為應用程序與數據庫之間的接口.
3.2.2 功能簡介
本軟件主要用來處理信息系統和決策表,可以從不同的數據源中獲取數據集合,并輸入到后臺SQL Server 2000數據庫中,使之適用于本系統的操作.通過“測試連接”連接到所要處理的數據庫,然后點“屬性約簡”進行啟發式屬性約簡,再點“規則生成”進行歸納學習,從而獲得決策表的規則,其界面如圖 3所示.

圖3 基于粗集和決策樹的數據挖掘軟件界面
入侵檢測系統作為一種積極主動的安全防護技術,提供了對內部攻擊、外部攻擊和誤操作的實時保護,在網絡系統受到危害之前響應和攔截入侵,為網絡安全構建立體縱深、多層次的防御做出了貢獻.基于粗糙集的數據挖掘方法應用于入侵檢測中,能夠提高入侵檢測的有效性,并且對于海量的主機和網絡審計數據來說,入侵檢測的誤報率隨著數據量的增大而明顯減小,因此相比其他數據挖掘方法來說,更具有客觀性和實用性.
[1]D.E.Denning.An Intrusion Detection Model[J].IEEE Transactions on Software Engineering,1987,12(13):222-232.
[2]Han Jiawei,et al.Data Mining:Concepts and Techniques[M].北京:機械工業出版社,2000.
[3]韓東海,等.入侵檢測系統實例剖析[M].北京:清華大學出版社,2002.
[4]Pawlak Z.Rough set approach to knowledge-based decision support[J]. European Journal of Operational Research,1997,99(23):48-57.
[5]Quinlan J R. Induction of decision trees[J].Machine Learning,1986,1(1):81-106.
[6]張文修,等.粗糙集理論與方法 [M].北京:科學出版社,2001.
[7]王國胤.Rough集理論與知識獲取[M].西安:西安交通大學出版社,2001.
[8]UCI KDD Archive.KDD CUP 1999 data set[EB/OL].http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.ht ml,1999.
TP271+.82
A
1008-4681(2010)02-0047-03
2010-03-09;
2010-03-25
吳建源 (1978-),男,福建泉州人,廣東培正學院計算機科學與工程系助教,碩士.研究方向:數據挖掘.
(責任編校:簡子)