《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技术 > 业界动态 > 模式识别方法在入侵检测中的应用

模式识别方法在入侵检测中的应用

2008-07-17
作者:姜 楠

??? 摘 要: 將模式識別方法應(yīng)用到入侵檢測" title="入侵檢測">入侵檢測領(lǐng)域,用以區(qū)分正常和異常的用戶或主機行為。采用KDD99作為實驗數(shù)據(jù)集,通過計算信息增益,從原始數(shù)據(jù)中選取對分類結(jié)果影響較大的特征屬性;再分別選取兩種帶監(jiān)督的模式識別方法支持向量機" title="支持向量機">支持向量機(SVM)和多層神經(jīng)網(wǎng)絡(luò)(MNN)以及兩種不帶監(jiān)督的聚類" title="聚類">聚類方法Single-Linkage和 K-Means進行實驗。實驗結(jié)果表明,上述方法在入侵檢測領(lǐng)域中具有很好的應(yīng)用前景。
??? 關(guān)鍵詞: 模式識別? 入侵檢測? 支持向量機? 聚類

?

??? 入侵監(jiān)測系統(tǒng)在信息安全領(lǐng)域具有重要的應(yīng)用價值。入侵檢測系統(tǒng)需要以較高的檢測率和較低的誤報率區(qū)分正常和異常的用戶或主機行為。從某種意義上講,入侵檢測問題可以看作是一個分類問題,因此筆者將模式識別中的分類和聚類方法應(yīng)用到入侵檢測領(lǐng)域。并且在應(yīng)用中基于以下三個直觀假設(shè): (1)正常和異常行為具有較大差異;(2)屬于同一種類型的異常行為有較大的相似性; (3)某種特定的異常行為在不同的環(huán)境中可能通過修改參數(shù)而產(chǎn)生很大變化。同時選取模式識別中兩種帶監(jiān)督的分類方法:支持向量機(SVM)和多層神經(jīng)網(wǎng)絡(luò)(MNN),訓(xùn)練它們識別正常行為和異常行為以及識別每種不同的異常行為。由于在實際的應(yīng)用中,通常沒有標(biāo)識好的訓(xùn)練數(shù)據(jù),不能直接使用帶監(jiān)督的方法,因此選取兩種不帶監(jiān)督的聚類方法:Single-Linkage和K-Means[1],作為帶監(jiān)督方法的有效補充。
1 實驗數(shù)據(jù)
??? 本文采用MIT Lincoln實驗室在仿真環(huán)境下獲取的KDD99[2]數(shù)據(jù)集,記錄9個星期內(nèi)的原始網(wǎng)絡(luò)數(shù)據(jù)包,并轉(zhuǎn)化為大約7百萬條記錄。每條記錄包含42個字段,其中第1到第41字段為特征屬性。特征屬性描述網(wǎng)絡(luò)會話(session)信息,包括:連接時間、端口、源地址、目的地址等。第42字段為標(biāo)記字段。每條記錄都被標(biāo)記為正?;蛘呤且韵滤姆N特定類型的異常行為之一:(1)DoS——拒絕服務(wù)攻擊;(2)R2L——非授權(quán)遠程訪問;(3)U2R——非授權(quán)使用本地超級用戶特權(quán);(4)probing——掃描攻擊。
??? 在實驗中,加入了兩種新的標(biāo)記取代原始標(biāo)記。(1)二元標(biāo)記(L2):如果一條記錄是異常行為,標(biāo)記為1;如果一條記錄是正常行為,標(biāo)記為-1。(2)異常行為類型標(biāo)記(L5):根據(jù)異常行為類型標(biāo)記數(shù)據(jù)集(正常:-1,probeing:1,DoS:2,U2R:3,R2L:4)。
2 特征屬性的選取
??? 由于記錄中有些特征屬性與分類結(jié)果無關(guān),在分類過程中采用這些特征屬性將增加時間復(fù)雜度,同時很可能降低檢測率。因此,為獲得更高效的分類和聚類,利用信息增益的方法,選取對分類結(jié)果影響較大的特征屬性。具體方法如下:
??? (1) 計算具有N個不同值的標(biāo)記字段X的熵:
??? ?

??? (2) 計算標(biāo)記字段X對每個特征屬性Yj的條件熵:
???

??? (3) 計算X對每個Yj的信息增益:
???

??? 較大的G(X|Yj)值,表示Yj對分類的貢獻較大。實驗中采取保守估計,設(shè)定信息增益的閾值為0.2,即選取信息增益大于0.2的特征屬性用于實驗。最終,針對L2標(biāo)記,共選取了10個特征屬性;而針對L5標(biāo)記,選取了12個特征屬性。
3 帶監(jiān)督的方法
??? 在所有帶監(jiān)督的模式識別方法中,選取具有廣泛應(yīng)用的支持向量機和多層神經(jīng)網(wǎng)絡(luò)方法,訓(xùn)練它們識別正常行為和異常行為以及識別不同類型的異常行為。
3.1 支持向量機(SVM)
??? 作為較優(yōu)秀的線性分類器" title="分類器">分類器之一,支持向量機的重要特性是分類器只與支持向量的數(shù)目相關(guān),這些支持向量有助于分析和了解最有效劃分的不同類別的特征屬性的值。與此同時,支持向量機還支持核函數(shù)(kernel),在不增加計算量的前提下將原特征屬性空間投影到高維空間,使其可以應(yīng)對非線性可分的數(shù)據(jù)集。
??? 在實驗中,采用LIBSVM函數(shù)庫[3]構(gòu)建支持向量機分類器,并分別對加入L2標(biāo)記和加入L5標(biāo)記的數(shù)據(jù)集進行實驗。實驗數(shù)據(jù)選取原始41個特征屬性和縮減后的10個特征屬性或者12個特征屬性,停止閾值為0.01。因為支持向量機只能區(qū)分兩個數(shù)據(jù)類,故將加入L5標(biāo)記的數(shù)據(jù)集按照異常行為類型分成4個子數(shù)據(jù)集進行測試,每個數(shù)據(jù)集包含惟一一種異常行為以及所有的正常數(shù)據(jù)。結(jié)果如表1所示,其中#SV代表支持向量的數(shù)目。

??????????????????????????
??? 可見,通過信息增益方法選取特征屬性的操作在提高訓(xùn)練效率的同時還有效地提高了分類準(zhǔn)確率。針對掃描(probing)以及U2R攻擊,支持向量機能夠達到90%的分類率,而DoS和R2L攻擊也有接近80%的分類率。此外,通過分析支持向量,能夠總結(jié)出區(qū)分各種異常行為的最有效特征屬性。從f2(協(xié)議類型)特征屬性可以發(fā)現(xiàn),掃描攻擊傾向于使用ICMP協(xié)議;從f3(服務(wù)類型)特征屬性可以發(fā)現(xiàn),掃描攻擊經(jīng)常訪問eco I(ping)服務(wù);從f6(目的字節(jié))特征屬性可以發(fā)現(xiàn),探測攻擊傳輸較少的字節(jié)數(shù);從f12(登陸)特征屬性可以發(fā)現(xiàn),U2R和R2L攻擊發(fā)生在登陸之后;從f24(srv數(shù)目)特征屬性可以發(fā)現(xiàn),被探測攻擊的服務(wù)器傾向于初始化更多的連接數(shù)。
3.2? 多層神經(jīng)網(wǎng)絡(luò)
??? 一個多層的神經(jīng)網(wǎng)絡(luò)由一定數(shù)目的節(jié)點組成,所有節(jié)點被分成輸入層、輸出層和若干個隱藏層。不同層中的節(jié)點通過不同權(quán)重的鏈接關(guān)聯(lián)起來。實驗中,將選取的特征屬性的值作為輸入,通過基于梯度下降的反向傳播算法迭代計算權(quán)重值,直至達到規(guī)定的迭代次數(shù)" title="迭代次數(shù)">迭代次數(shù)。
??? 實驗中,使用原始41個特征屬性的數(shù)據(jù)進行實驗。對加入L2標(biāo)記的數(shù)據(jù)集,統(tǒng)計不同隱藏節(jié)點數(shù)目的神經(jīng)網(wǎng)絡(luò)的分類率。對加入L5標(biāo)記的數(shù)據(jù)集,統(tǒng)計10個隱藏節(jié)點的神經(jīng)網(wǎng)絡(luò)給出的分類結(jié)果。具體參數(shù)設(shè)置如下:輸入節(jié)點數(shù)41,輸出節(jié)點數(shù)2或5, 迭代次數(shù)1000。分類結(jié)果如表2所示。當(dāng)隱藏節(jié)點數(shù)目為8時可以達到較優(yōu)的分類率,繼續(xù)增加隱藏節(jié)點的數(shù)目不會進一步優(yōu)化分類結(jié)果。

?????????????????????????
4 不帶監(jiān)督的方法
??? 通過實驗可以看出,帶監(jiān)督的方法可以通過訓(xùn)練達到較高的檢測率。然而,在實際應(yīng)用過程中,目前沒有可靠的方法來獲取正確標(biāo)識的訓(xùn)練數(shù)據(jù)。因此在實驗中同時選取了不帶監(jiān)督的模式識別方法中的兩種聚類算法,Single-Linkage和K-Means。
??? 在現(xiàn)實網(wǎng)絡(luò)環(huán)境中,正常數(shù)據(jù)的數(shù)量通常遠遠大于異常數(shù)據(jù)的數(shù)量,而且二者之間通常有比較大的距離。因此通過聚類算法將正常數(shù)據(jù)分成幾個大的類,同時將所有無法劃分到這幾個大類的數(shù)據(jù)認(rèn)定為異常,從而區(qū)分出正常行為和異常行為。
4.1 數(shù)據(jù)過濾
??? 在KDD99訓(xùn)練數(shù)據(jù)集中,異常數(shù)據(jù)數(shù)目超過了正常數(shù)據(jù),為了滿足前提假設(shè),需要過濾掉一部分異常數(shù)據(jù),使得最終的數(shù)據(jù)集有超過98%的正常數(shù)據(jù),而異常數(shù)據(jù)量小于2%。
4.2 數(shù)據(jù)標(biāo)準(zhǔn)化
??? 由于沒有足夠可靠的先驗知識來確定特征屬性的相對重要程度,所以全部的特征屬性都被同等考慮。然而,如果對于不同特征屬性使用相同權(quán)重,則那些取值較大的特征屬性會過分影響聚類的過程,大數(shù)量級的特征屬性將占統(tǒng)治地位,而小數(shù)量級的特征屬性在整個分類過程中的作用將被忽略。因此實驗中將每個特征屬性按如下方法進行標(biāo)準(zhǔn)化:
??? (1) 計算每個特征屬性的均值和標(biāo)準(zhǔn)差:
???? ?

式中,vector[j]是每條記錄的第j個特征屬性。
??? (2)將每條記錄中連續(xù)的特征屬性值j進行如下轉(zhuǎn)換:
???


??? 對于離散的特征屬性,如果兩條記錄對于該離散特征屬性具有相同的取值,則它們之間的距離為0,否則為1。
4.3 Single-Linkage
??? Single-Linkage算法以標(biāo)準(zhǔn)化后的數(shù)據(jù)集和常量參數(shù)W(類半徑)為輸入,計算輸出聚類結(jié)果。它初始化的類集合為空集。對于每條記錄,如果類集合為空,則將此記錄作為一個類中心填入類集合中,否則計算它與現(xiàn)存每個類中心的距離,選出最短的距離。如果這個距離小于一個指定的參數(shù)常量W,則將此記錄歸于距離最小的類,否則增加一個新的類并將該記錄作為類中心。
??? 假設(shè)98%的數(shù)據(jù)都是正常數(shù)據(jù),設(shè)置了一個閾值N。任何包含大于總記錄數(shù)據(jù)量N%的類都被認(rèn)為是正常類(實驗中選取N=7)。這里應(yīng)用入侵檢測領(lǐng)域常用的ROC曲線描述檢測結(jié)果。
??? 改變參數(shù)W的取值,ROC曲線如圖1所示。結(jié)果表明,在誤報率小于20%的前提下,Single-Linkage算法的檢測率超過50%。

?????????????????????????????
4.4 K-Means
??? K-Means算法根據(jù)輸入?yún)?shù)k,將含有n條記錄的數(shù)據(jù)集分配到k個類中,使得同一類中的記錄具有較高的相似性。其中,每個類由該類中所有記錄的平均值(類中心)進行標(biāo)識。算法首先隨機選取k條記錄,每條記錄代表一個初始類。對其余的記錄,則按照它們同k個類中心的距離進行聚類,選取最近的作為該記錄的分類。然后根據(jù)現(xiàn)有的聚類更新各個類的中心,再根據(jù)新的類中心進行下一次聚類,直到聚類結(jié)果穩(wěn)定。

??? 實驗中,對不同參數(shù)k和初始的類中心進行測試。首先固定參數(shù)k,采用不同的隨機記錄進行初始化,得到的結(jié)果最終無較大差異。因此選取前k條記錄作為初始的類中心。通過改變k的取值,得到如圖2所示的ROC曲線。
?????????????????????????????

??? 從圖1和圖2可見,聚類算法在檢測率高時誤報率也較高,但由于其時間復(fù)雜度相對較低,可以將其應(yīng)用于數(shù)據(jù)預(yù)處理。方法如下:通過設(shè)置不同的閾值提高檢測率,當(dāng)檢測率達到90%時,誤報率在60%左右(見圖1和圖2)。此時聚類算法檢測出來的異常數(shù)據(jù)集,保留了原始數(shù)據(jù)集中超過90%的異常數(shù)據(jù),同時過濾掉了大約一半的原始數(shù)據(jù)集中的正常數(shù)據(jù),從而得到了一個可以應(yīng)用帶監(jiān)督的方法進行進一步檢測的小數(shù)據(jù)集。而且由于異常數(shù)據(jù)在原始數(shù)據(jù)集中占的比例很小,通過上述預(yù)處理方法得到的數(shù)據(jù)集的數(shù)據(jù)量約為沒處理之前的一半。
??? 本文利用模式識別中帶監(jiān)督的支持向量機和神經(jīng)網(wǎng)絡(luò)方法以及不帶監(jiān)督的Single-Linkage和K-Means方法分析網(wǎng)絡(luò)數(shù)據(jù)記錄,進行入侵檢測。實驗證明,利用信息增益的方法,只選取對分類結(jié)果影響較大的特征屬性進行實驗,不會降低檢測的準(zhǔn)確度;同時兩種帶監(jiān)督的方法具有很高的檢測率,可以直接用于檢測入侵行為,而兩種不帶監(jiān)督的方法檢測率相對較低,且當(dāng)檢測率高時誤報率也高。但是,由于這些聚類方法的時間復(fù)雜度都相對較低,因此可以將其應(yīng)用于對原始數(shù)據(jù)的預(yù)處理,在不對檢測結(jié)果產(chǎn)生過大影響的基礎(chǔ)上,過濾掉大量的正常數(shù)據(jù),得到一個相對較小但基本上包含了所有原有入侵的數(shù)據(jù)集,能夠大大壓縮下一步檢測的輸入數(shù)據(jù)量。對于過濾后的數(shù)據(jù),采用支持向量機或者多層神經(jīng)網(wǎng)絡(luò)分類器進行檢測,能夠達到更高的檢測效率。
參考文獻
[1] MACQUEEN J B. Some methods for classification and?analysis of multivariate observations. Proceedings of 5-th?Berkeley Symposium on Mathematical Statistics and Probability. Berkeley: University of California Press,1967:281-297.
[2] UCI Knowledge Discovery in Databases Archive.http://kdd.ics.uci.edu /databases/kddcup99/kddcup99.html,1999
[3] CHANG Chih Chung, LIN Chih Jen. LIBSVM——A?library for support vector machines.http://www.csie.ntu.
?edu.tw/~cjlin/libsvm/, 2007.
[4] BISHOP C M. Neural networks for pattern recognition[M]. Oxford:Oxford University Press,1996.
?

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。

相關(guān)內(nèi)容