吳建源
(廣東培正學(xué)院計(jì)算機(jī)科學(xué)與工程系,廣東廣州 510830)
粗糙集屬性約簡(jiǎn)在入侵檢測(cè)系統(tǒng)中的應(yīng)用*
吳建源
(廣東培正學(xué)院計(jì)算機(jī)科學(xué)與工程系,廣東廣州 510830)
入侵檢測(cè)系統(tǒng) (I DS)是一種以攻為守的主動(dòng)式防御措施,它針對(duì)網(wǎng)絡(luò)內(nèi)部攻擊進(jìn)行防御.為了實(shí)現(xiàn)對(duì)海量入侵檢測(cè)數(shù)據(jù)的數(shù)據(jù)挖掘,首先可對(duì)入侵檢測(cè)系統(tǒng)采集的海量數(shù)據(jù)進(jìn)行抽樣分析,然后使用粗糙集理論的屬性約簡(jiǎn)方法對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,獲得入侵檢測(cè)數(shù)據(jù)的決策規(guī)則,并判斷流經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)包的安全性,最后編程以實(shí)現(xiàn)數(shù)據(jù)挖掘的自動(dòng)化.
粗糙集;數(shù)據(jù)挖掘;屬性約簡(jiǎn);入侵檢測(cè)
近年來(lái),計(jì)算機(jī)和網(wǎng)絡(luò)基礎(chǔ)設(shè)施,特別是各種官方機(jī)構(gòu)的網(wǎng)站,不斷受到黑客的攻擊,各種入侵事件層出不窮.一些傳統(tǒng)的網(wǎng)絡(luò)安全技術(shù),如訪問(wèn)控制機(jī)制、加密、防火墻等已不能滿足網(wǎng)絡(luò)安全的要求,而逐漸成熟起來(lái)的入侵檢測(cè)系統(tǒng) (Intrusion Detection System,簡(jiǎn)稱為 I DS)則為我們提供了又一重保障.數(shù)據(jù)挖掘在入侵檢測(cè)中的應(yīng)用,旨在對(duì)海量的安全審計(jì)數(shù)據(jù)進(jìn)行智能化處理,試圖從大量數(shù)據(jù)中提取人們感興趣的數(shù)據(jù)信息,及與安全相關(guān)的系統(tǒng)特征屬性,建立基于數(shù)據(jù)挖掘的入侵檢測(cè)模型,包括數(shù)據(jù)源選擇、數(shù)據(jù)預(yù)處理、算法選擇、創(chuàng)建數(shù)據(jù)挖掘模型、挖掘結(jié)果分析處理及其可視化等[1,2].
由于入侵檢測(cè)系統(tǒng)采集的數(shù)據(jù)量是巨大的,因此對(duì)采集的數(shù)據(jù)采用分等級(jí)多次抽樣的方法獲取信息系統(tǒng)表.粗糙集理論作為一種新的數(shù)據(jù)挖掘工具,在處理不確定性知識(shí)方面有著突出的優(yōu)勢(shì).用粗集理論的屬性約簡(jiǎn)方法對(duì)樣本信息系統(tǒng)進(jìn)行預(yù)處理,刪除冗余的屬性,從而得到入侵檢測(cè)數(shù)據(jù)的決策規(guī)則,進(jìn)而判斷流經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)包的安全與否.
入侵檢測(cè)是在 1980年由 James Anderson在為美國(guó)空軍做的技術(shù)報(bào)告中首次提出來(lái)的[1].入侵檢測(cè),顧名思義,是對(duì)入侵的一種檢測(cè)行為,它是通過(guò)從計(jì)算機(jī)網(wǎng)絡(luò)或計(jì)算機(jī)系統(tǒng)中的若干關(guān)鍵點(diǎn)收集信息并對(duì)其進(jìn)行分析,從中發(fā)現(xiàn)網(wǎng)絡(luò)或系統(tǒng)中是否有違反安全策略的行為和遭到襲擊的跡象.作為一種安全防護(hù)工具,I DS彌補(bǔ)了防火墻的很多不足,甚至在很多方面可以取而代之.相對(duì)于采用封鎖、過(guò)濾等被動(dòng)防御的防火墻而言,入侵檢測(cè)系統(tǒng)能主動(dòng)地發(fā)現(xiàn)網(wǎng)絡(luò)中的非法入侵,并采取相應(yīng)的措施,如記錄、報(bào)警、阻斷網(wǎng)絡(luò)等,防止危害的擴(kuò)大.
入侵檢測(cè)實(shí)質(zhì)是對(duì)基于主機(jī)或基于網(wǎng)絡(luò)的計(jì)算機(jī)系統(tǒng)的運(yùn)行狀態(tài)進(jìn)行監(jiān)視,發(fā)現(xiàn)各種攻擊企圖、攻擊行為或者攻擊結(jié)果,以保證系統(tǒng)資源的機(jī)密性、完整性與可用性[3].從功能上,我們將入侵檢測(cè)系統(tǒng)劃分為四個(gè)基本部分:數(shù)據(jù)采集子系統(tǒng)、數(shù)據(jù)分析子系統(tǒng)、控制臺(tái)子系統(tǒng)、數(shù)據(jù)庫(kù)管理子系統(tǒng)(如圖 1所示).
圖1 入侵檢測(cè)功能結(jié)構(gòu)示意圖
其中數(shù)據(jù)分析模塊相當(dāng)于 I DS的大腦,它必須具備高度的“智慧”和“判斷能力”.所以,在設(shè)計(jì)此模塊之前,我們需要對(duì)各種網(wǎng)絡(luò)協(xié)議、系統(tǒng)漏洞、攻擊手法、可疑行為等有一個(gè)很清晰、深入的研究,然后制訂相應(yīng)的安全規(guī)則庫(kù)和安全策略,再分別建立濫用檢測(cè)模型和異常檢測(cè)模型,讓機(jī)器模擬自己的分析過(guò)程,識(shí)別確知特征的攻擊和異常行為,最后將分析結(jié)果形成報(bào)警消息,發(fā)送給控制管理中心.
Rough Sets理論是由波蘭華沙理工大學(xué) Pawlak于 1982年提出的一種數(shù)據(jù)分析理論,主要研究不完整、不確定知識(shí)和數(shù)據(jù)的表達(dá)、學(xué)習(xí)、歸納的方法[4].其主要思想是在保持分類能力不變的前提下,進(jìn)行知識(shí)約簡(jiǎn).目前,粗糙集理論已被成功地用于機(jī)器學(xué)習(xí)、決策分析、過(guò)程控制、模式識(shí)別和數(shù)據(jù)挖掘等領(lǐng)域,所以在使用決策樹(shù)之前可先利用粗糙集方法對(duì)入侵檢測(cè)數(shù)據(jù)進(jìn)行屬性約簡(jiǎn).
下面簡(jiǎn)單介紹一下粗糙集理論中屬性約簡(jiǎn)的思想[5,6,7].
設(shè)非空集U是我們感興趣的對(duì)象組成的有限集合,稱為論域.任意 X?U,稱為 U中的一個(gè)概念或范疇.U上的一族劃分稱為關(guān)于 U的一個(gè)知識(shí)庫(kù),而集合上的劃分與等價(jià)關(guān)系是相互對(duì)應(yīng)的.
(1)決策信息系統(tǒng):是一個(gè)有序四元組 S=(U,A,V,f),其中 U={x1,x2,…,xn}是論域,A=C∪D是屬性集合,其中 C是條件屬性集合,D是決策屬性集合,是屬性值的集合,Va是屬性 a的值域,f:U×A→V是一個(gè)信息函數(shù),對(duì)每一個(gè) a∈A,x∈U,f(x,a)∈Va,即信息函數(shù) f指定U中每一個(gè)對(duì)象 x的每個(gè)屬性值.
信息系統(tǒng)的每個(gè)屬性均決定一個(gè)等價(jià)關(guān)系,當(dāng)然屬性子集也決定一個(gè)等價(jià)關(guān)系,如 P?A,則由 P決定的等價(jià)關(guān)系的等價(jià)類的集合記為U/P={[x]P|x∈U}.
(2)上近似和下近似:在信息系統(tǒng) S=(U,A,V,f)中,設(shè) P?A,X?U,X關(guān)于 P的下近似 P_(X)={x|x∈U,[x]P?X},上近似 P-(X)={x|x∈U,[x]P∩X≠Φ},POSP(X)=P_(X)也稱為 X的 P正域.
(3)屬性約簡(jiǎn)
定義 1設(shè) U為一個(gè)論域,P和 Q為定義在 U上的兩個(gè)等價(jià)關(guān)系簇,稱
POSP(Q)為 Q的 P正域.
定義 2設(shè) S=(U,A,V,f)是一個(gè)信息系統(tǒng),P,Q ? A,r∈ P,如果
則稱 r為 P中 Q不必要的;否則 r為 P中 Q必要的.不必要屬性在信息系統(tǒng)中是多余的.若將它從系統(tǒng)中去掉,不會(huì)改變系統(tǒng)分類能力.
定義 3設(shè) S=(U,A,V,f)是一個(gè)信息系統(tǒng),P,Q?A,如果每個(gè) r∈P都是 Q必要的,則稱 P為Q獨(dú)立的;否則,稱 P為 Q依賴的.
對(duì)于相依賴的屬性集合來(lái)說(shuō),其中必包含有多余的屬性,可以對(duì)其約簡(jiǎn).
定義 4設(shè) S=(U,A,V,f)是一個(gè)信息系統(tǒng),P,Q?A,P中所有Q必要的屬性構(gòu)成的集合稱為P的 Q核,簡(jiǎn)稱相對(duì)核,記為 coreQ(P).
定義 5設(shè) S=(U,A,V,f)是一個(gè)信息系統(tǒng),P,Q?A,K?P,如果滿足:
POSK(Q)=POSP(Q),而且 K是 Q獨(dú)立的,則稱 K是 P的一個(gè) Q約簡(jiǎn),P的Q約簡(jiǎn)也稱為相對(duì)約簡(jiǎn).
相對(duì)約簡(jiǎn)一般不唯一,而且相對(duì)核是所有相對(duì)約簡(jiǎn)的交集.相對(duì)核的概念有兩方面的意義:首先它可以作為所有約簡(jiǎn)的計(jì)算基礎(chǔ),因?yàn)楹税谒械募s簡(jiǎn)之中,并且計(jì)算可以直接進(jìn)行;其次當(dāng)知識(shí)化簡(jiǎn)時(shí)它是不能消去的知識(shí)特征的集合.
現(xiàn)在我們利用上述介紹的粗糙集理論以及決策樹(shù) I D3算法對(duì)入侵檢測(cè)系統(tǒng)采集的檢測(cè)數(shù)據(jù)進(jìn)行歸納學(xué)習(xí).
(1)入侵檢測(cè)數(shù)據(jù)的采集:入侵檢測(cè)數(shù)據(jù)采集模塊是實(shí)現(xiàn)整個(gè)入侵檢測(cè)系統(tǒng)高效工作的基石,為整個(gè)系統(tǒng)提供數(shù)據(jù)來(lái)源.因此,在設(shè)計(jì)整個(gè)入侵檢測(cè)系統(tǒng)時(shí),必須保證網(wǎng)絡(luò)數(shù)據(jù)截獲模塊工作穩(wěn)定可靠,為整個(gè)入侵檢測(cè)模塊穩(wěn)定可靠地提供數(shù)據(jù).現(xiàn)在比較流行的有兩種方法,一種網(wǎng)絡(luò)數(shù)據(jù)截獲方法,是在 BPF(Berkeley Packet Fliter)模型的基礎(chǔ)上,利用一些流行的函數(shù)庫(kù)進(jìn)行開(kāi)發(fā);另外一種是在W indows的驅(qū)動(dòng)程序的基礎(chǔ)上進(jìn)行的開(kāi)發(fā).
在UN IX或Linux系統(tǒng)中,一般采用由美國(guó)洛倫茲伯克利國(guó)家實(shí)驗(yàn)室所編寫的專用于數(shù)據(jù)包捕獲功能的 API函數(shù)庫(kù) Libpcap來(lái)實(shí)現(xiàn).Libpcap實(shí)質(zhì)上是一個(gè)系統(tǒng)獨(dú)立的 API函數(shù)接口,用于用戶層次的數(shù)據(jù)截獲工作,可在相關(guān)網(wǎng)站下載到.
具體地說(shuō),入侵檢測(cè)數(shù)據(jù)的采集主要基于兩大類:一種基于標(biāo)志 (signature-based),另一種基于異常情況(anomaly-based)[3].對(duì)于基于標(biāo)識(shí)的檢測(cè)技術(shù)來(lái)說(shuō),首先要定義違背安全策略的事件的特征,如網(wǎng)絡(luò)數(shù)據(jù)包的某些頭信息,主要判別這類特征是否在所收集到的數(shù)據(jù)中出現(xiàn),此方法非常類似殺毒軟件.而基于異常的檢測(cè)技術(shù)則是先定義一組系統(tǒng)“正常”情況的數(shù)值,如 CPU利用率、內(nèi)存利用率、文件校驗(yàn)等 (這類數(shù)據(jù)可以人為定義,也可以通過(guò)觀察系統(tǒng)、并用統(tǒng)計(jì)的辦法得出),然后將系統(tǒng)運(yùn)行時(shí)的數(shù)值與所定義的“正常”情況比較,得出是否有被攻擊的跡象,這種檢測(cè)方式的核心在于如何定義所謂的“正?!鼻闆r.
根據(jù)上述檢測(cè)的方法,需要對(duì)諸如數(shù)據(jù)包頭信息、CPU利用率等 10來(lái)個(gè)屬性進(jìn)行數(shù)據(jù)采集,得到如下面表 1的入侵?jǐn)?shù)據(jù)信息系統(tǒng),該信息系統(tǒng)模擬網(wǎng)絡(luò)環(huán)境獲得 9個(gè)星期的 TCP元數(shù)據(jù),這些數(shù)據(jù)的基礎(chǔ)是正常的網(wǎng)絡(luò)數(shù)據(jù),其余的為多種入侵?jǐn)?shù)據(jù).
(2)由于信息系統(tǒng)數(shù)據(jù)量非常大,為了便于學(xué)習(xí),首先要進(jìn)行抽樣分析,可依次取 1/10000,1/5000,1/1000,1/100,1/10的數(shù)據(jù)量進(jìn)行多次抽樣,對(duì)每次的樣本進(jìn)行實(shí)驗(yàn).
(3)對(duì)樣本信息系統(tǒng),采用下文介紹的粗糙集屬性約簡(jiǎn)軟件對(duì)它進(jìn)行約簡(jiǎn),獲得該樣本的分類決策規(guī)則.
(4)利用這些規(guī)則,判斷出哪些是正常的網(wǎng)絡(luò)數(shù)據(jù)包,哪些是惡意的入侵行為.
基于粗糙集方法的入侵檢測(cè)系統(tǒng)是一種基于數(shù)據(jù)挖掘的入侵檢測(cè)系統(tǒng).該系統(tǒng)主要由數(shù)據(jù)采集、數(shù)據(jù)挖掘、模式匹配和智能決策等 4個(gè)模塊組成(如圖 2所示).
數(shù)據(jù)采集模塊從數(shù)據(jù)源,如系統(tǒng)日志、網(wǎng)絡(luò)數(shù)據(jù)包等,獲取原始數(shù)據(jù),同時(shí)該模塊還對(duì)原始數(shù)據(jù)進(jìn)行一些必要的處理,如可能需要對(duì)數(shù)據(jù)投影,處理連續(xù)屬性,對(duì)不完整的數(shù)據(jù)進(jìn)行補(bǔ)充等.這部分為進(jìn)一步的數(shù)據(jù)分析和約簡(jiǎn)作準(zhǔn)備[8].
數(shù)據(jù)挖掘模塊首先利用粗糙集理論中的屬性約簡(jiǎn)算法對(duì)數(shù)據(jù)采集模塊提交的數(shù)據(jù)進(jìn)行預(yù)處理,去除冗余屬性,再運(yùn)用決策樹(shù) I D3算法對(duì)預(yù)處理得到的審計(jì)數(shù)據(jù)進(jìn)行整理、歸納分析,找到可用于入侵檢測(cè)的模式與知識(shí),即生成安全規(guī)則,然后提交給模式匹配模塊進(jìn)行入侵分析,做出最終判斷,最后由決策模塊給出應(yīng)對(duì)措施.
圖2 基于粗集方法的入侵檢測(cè)系統(tǒng)模塊結(jié)構(gòu)圖
在數(shù)據(jù)挖掘模塊中,可以選擇基于可辨識(shí)矩陣的一般算法、基于可辨識(shí)矩陣的改進(jìn)算法和啟發(fā)式屬性算法等三種不同的屬性約簡(jiǎn)方法進(jìn)行約簡(jiǎn),以去除原始數(shù)據(jù)中的冗余屬性,減少規(guī)則生成時(shí)的數(shù)據(jù)量,提高規(guī)則的簡(jiǎn)潔度.對(duì)于屬性約簡(jiǎn)后的數(shù)據(jù),運(yùn)用決策樹(shù) I D3算法進(jìn)行規(guī)則提取,得到相應(yīng)的網(wǎng)絡(luò)安全規(guī)則.規(guī)則顯示程序負(fù)責(zé)為用戶顯示當(dāng)前數(shù)據(jù)生成的安全規(guī)則.由于數(shù)據(jù)具有不確定和存在噪音等特點(diǎn),可能存在相互沖突的規(guī)則,可能需要對(duì)規(guī)則進(jìn)行檢查以去除潛在的不一致性,因此程序還為用戶提供對(duì)相關(guān)規(guī)則進(jìn)行檢查修改的功能.對(duì)規(guī)則集的一致性等檢查完畢后,就可以把該規(guī)則集加入到相應(yīng)的規(guī)則庫(kù) (知識(shí)庫(kù)),作為對(duì)用戶行為特征分析判定的依據(jù).
軟件基于W indows2000 Professional操作系統(tǒng),編程平臺(tái)為MicrosoftVisual C++6.0,后臺(tái)數(shù)據(jù)庫(kù)采用SQL Server 2000.
3.2.1 數(shù)據(jù)庫(kù)接口
W indows常見(jiàn)數(shù)據(jù)庫(kù)接口有:ODBC(開(kāi)放數(shù)據(jù)庫(kù)互連 )、DAO(數(shù)據(jù)訪問(wèn)對(duì)象 )、OLE DB(對(duì)象鏈接嵌入數(shù)據(jù)庫(kù)).
OLE DB屬于底層的數(shù)據(jù)庫(kù)編程接口,與傳統(tǒng)的數(shù)據(jù)庫(kù)接口相比,有更好的健壯性和靈活性,能夠與非關(guān)系數(shù)據(jù)源進(jìn)行通信,它作為數(shù)據(jù)庫(kù)與應(yīng)用程序的中間層,允許應(yīng)用程序以相同接口訪問(wèn)不同類型的數(shù)據(jù)源.當(dāng)客戶程序?qū)?shù)據(jù)庫(kù)進(jìn)行操作時(shí),只需要對(duì) OLE接口發(fā)出指令,數(shù)據(jù)服務(wù)器從數(shù)據(jù)源取得所要查詢的數(shù)據(jù),以表格的形式提供給接口,再由客戶程序?qū)?shù)據(jù)從接口取出并使用.在這些操作中,客戶和服務(wù)器都不必知道對(duì)方的具體應(yīng)用,而只需對(duì)接口進(jìn)行操作,簡(jiǎn)化了程序設(shè)計(jì),提高了對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)速度.
因此,本軟件采用 OLE DB作為應(yīng)用程序與數(shù)據(jù)庫(kù)之間的接口.
3.2.2 功能簡(jiǎn)介
本軟件主要用來(lái)處理信息系統(tǒng)和決策表,可以從不同的數(shù)據(jù)源中獲取數(shù)據(jù)集合,并輸入到后臺(tái)SQL Server 2000數(shù)據(jù)庫(kù)中,使之適用于本系統(tǒng)的操作.通過(guò)“測(cè)試連接”連接到所要處理的數(shù)據(jù)庫(kù),然后點(diǎn)“屬性約簡(jiǎn)”進(jìn)行啟發(fā)式屬性約簡(jiǎn),再點(diǎn)“規(guī)則生成”進(jìn)行歸納學(xué)習(xí),從而獲得決策表的規(guī)則,其界面如圖 3所示.
圖3 基于粗集和決策樹(shù)的數(shù)據(jù)挖掘軟件界面
入侵檢測(cè)系統(tǒng)作為一種積極主動(dòng)的安全防護(hù)技術(shù),提供了對(duì)內(nèi)部攻擊、外部攻擊和誤操作的實(shí)時(shí)保護(hù),在網(wǎng)絡(luò)系統(tǒng)受到危害之前響應(yīng)和攔截入侵,為網(wǎng)絡(luò)安全構(gòu)建立體縱深、多層次的防御做出了貢獻(xiàn).基于粗糙集的數(shù)據(jù)挖掘方法應(yīng)用于入侵檢測(cè)中,能夠提高入侵檢測(cè)的有效性,并且對(duì)于海量的主機(jī)和網(wǎng)絡(luò)審計(jì)數(shù)據(jù)來(lái)說(shuō),入侵檢測(cè)的誤報(bào)率隨著數(shù)據(jù)量的增大而明顯減小,因此相比其他數(shù)據(jù)挖掘方法來(lái)說(shuō),更具有客觀性和實(shí)用性.
[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].北京:機(jī)械工業(yè)出版社,2000.
[3]韓東海,等.入侵檢測(cè)系統(tǒng)實(shí)例剖析[M].北京:清華大學(xué)出版社,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].北京:科學(xué)出版社,2001.
[7]王國(guó)胤.Rough集理論與知識(shí)獲取[M].西安:西安交通大學(xué)出版社,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-),男,福建泉州人,廣東培正學(xué)院計(jì)算機(jī)科學(xué)與工程系助教,碩士.研究方向:數(shù)據(jù)挖掘.
(責(zé)任編校:簡(jiǎn)子)