陳洪泉
(海軍大連艦艇學院,大連116018)
計算機網(wǎng)絡(luò)安全已經(jīng)越來越多地被人關(guān)注,作為網(wǎng)絡(luò)安全的一個重要組成部分,入侵檢測[1]受到越來越多的重視。目前的入侵檢測模型可以分為2類:誤用檢測和異常檢測,誤用檢測通過識別入侵特征來檢測入侵,如參考文獻[2]、[3]、[4]。誤用檢測能夠較為準確地檢測出已知模式的入侵,但在檢測未知入侵方面則無能為力。而異常檢測則基于對正常數(shù)據(jù)的建模,通過實際數(shù)據(jù)對正常輪廓的偏離來識別異常,它能檢測出未知入侵,但不能準確識別出是何種入侵,且具有一定的誤報率,異常檢測例子為參考文獻[5]和[6]。入侵識別需要綜合異常檢測和誤用檢測的優(yōu)點,通過異常檢測來確定檢測樣本是否為異常數(shù)據(jù),并通過誤用檢測技術(shù)來識別出該樣本對應(yīng)的入侵類別。
目前,基于機器學習和數(shù)據(jù)挖掘的入侵識別方法成為研究的熱點,其中較為關(guān)鍵的一步是特征的選取,特征選取的方法主要集中在特征選擇和特征提取。目前公開的文獻主要集中在單獨利用特征選擇方法或特征提取方法來進行入侵識別,并沒有對基于2種特征選取方法的識別效果進行比較分析。本文利用同樣的訓練樣本集和檢驗樣本集對基于信息增益特征選擇的識別方法和基于主成分分析(PCA)特征提取的識別方法的識別效果進行比較分析,為入侵識別的進一步研究提供借鑒。
信息熵是信息不純度的最佳評估方法,信息增益則是指信息熵的有效減少量。設(shè)特征A具有v個不同值{a1,a2,…,av},訓練樣本被劃分為n類,S為訓練集中樣本的總數(shù),可以用特征A把樣本S分成v 個子集{S1,S2,…,Sv}。其中,Sj包含S 中的這樣一些樣本,它們在A上具有值aj。設(shè)Sij是子集Sj中類為Ci(i=1,2,…,n)的記錄個數(shù)。那么,這時根據(jù)A劃分成子集的熵或期望信息為:
熵值越小,子集劃分的純度越高。對于給定的子集Sj,有:
在A上將獲得的信息增益是:
主成分分析方法能夠較好地處理高維數(shù)據(jù),使得低維數(shù)據(jù)能夠在平方和最小的意義下描述高維原始數(shù)據(jù),它利用輸入樣本點空間的主成分元素,歸納和提取其中的結(jié)構(gòu)信息,從而最終實現(xiàn)降維。給定樣本x1,x2,…,xn,每個樣本為m 維向量,則數(shù)據(jù)集合可以表示為矩陣Xn×m:
通過計算樣本協(xié)方差矩陣C的特征值和特征向量,依次選擇最大特征值對應(yīng)的k個特征向量,就可以得到m×k的矩陣U,其列為k個特征向量,原始數(shù)據(jù)就可以通過公式:
向k維特征子空間投影得到,從而達到了降維的目的。
使用50近鄰的KNN算法來以離群點檢測的方式進行入侵識別。識別的基本步驟為:
(1)特征生成,將待識別數(shù)據(jù)通過IG特征選擇或PCA轉(zhuǎn)換到新的數(shù)據(jù)表示空間。
(2)異常檢測,用KNN方法判斷該樣本是否為normal類數(shù)據(jù),區(qū)分其正?;虍惓P?。
(3)誤用檢測,對于非normal類的樣本,通過KNN方法判斷其是否為具體的各種入侵樣式,此為具體的識別階段。
注意在基于PCA的識別方法中,在判斷其是否為各類數(shù)據(jù)時,待檢測樣本需要分別向相關(guān)類的特征空間進行投影。
本文采用MIT林肯實驗室的KDD99數(shù)據(jù)集進行測試,此數(shù)據(jù)集為入侵檢測的標準數(shù)據(jù)集,已經(jīng)被廣泛地應(yīng)用到入侵檢測方法的評估中。數(shù)據(jù)包括41個特征,其中34個為數(shù)值特征,7個為符號特征。
為計算簡便,在特征選擇中,選擇了信息增益不為零的特征作為新的特征集合;在PCA特征提取中,選擇了大于零的特征值對應(yīng)的特征向量作為新的特征空間。在KDD99的訓練樣本集中抽取出normal類數(shù)據(jù)1 000條、ipsweep類數(shù)據(jù)300條、portsweep類數(shù)據(jù)300條、satan類數(shù)據(jù)300條、smurf類數(shù)據(jù)800條、back類數(shù)據(jù)500條來作為訓練用數(shù)據(jù)樣本。測試數(shù)據(jù)集共4 172條,其中包括normal類1 000條、back類500條、ipsweep類306條、portsweep類354條、satan類500條、smurf類1 000條、neptune類500條、teardrop類12條。在選定新的特征空間后,使用weka工具對檢驗樣本進行入侵識別后的接收機操作特征(ROC)曲線繪制見圖1~圖6。
從實驗結(jié)果可以看出,基于信息增益的特征選擇方法在入侵識別方面較之PCA方法具有明顯的優(yōu)勢,且由于其計算量大大低于基于PCA的識別方法,因此更適合于對KDD99數(shù)據(jù)集合的入侵識別。在試驗中也發(fā)現(xiàn),PCA在閾值較小時即可達到較高的檢測率,但同時具有較高的虛警率,其對各類數(shù)據(jù)的區(qū)分性并不好,該識別結(jié)果同文獻[7]中得到的結(jié)果并不十分符合,值得進一步研究。
圖1 Normal類樣本識別ROC曲線
圖2 back類樣本識別ROC曲線
圖3 ipsweep類樣本識別ROC曲線
圖4 portsweep類樣本識別ROC曲線
總而言之,通過分析比較發(fā)現(xiàn):基于信息增益的特征選擇方法在檢測率和虛警率方面有較好的表現(xiàn),較之直接使用PCA特征提取的入侵識別方法在KDD99的各類數(shù)據(jù)之間具有更好的區(qū)分性能,在各類入侵的檢測識別中,均能夠達到檢測率96%以上且虛警率保持在0.5%以下的較好效果,下一步的主要工作是利用多種入侵識別方法進一步比較特征選擇和提取在KDD99數(shù)據(jù)集上的識別性能。
圖5 satan類樣本識別ROC曲線
圖6 smurf類樣本識別ROC曲線
[1]Denning D E.An intrusion detection model[J].IEEE Transaction on Software Engineering,1987,13(2):222-232.
[2]Kumar S,Spafford E H.A Software architecture to support misuse intrusion detection[A].Proceedings of The 18th National Information Security Conference[C],1995:194-204.
[3]Ilgun K,Kemmerer R A,Porras P A.State transition analysis:a rule-based intrusion detection approach[J].IEEE Transactions on Software Engineering,1995,21(3):181-199.
[4]Caswell Beale J.Snort 2.1Intrusion Detection[M].Waltham:Syngress publishing Inc,2004.
[5]Lunt T,Tamaru A,Gilham F,et al.A Real-time Intrusion Detection Expert System (IDES)[R].California:Computer Science Laboratory,SRI International,1992.
[6]Porras P A,Neumann P G.ERALD:Eventmon-itoring enabling responses to anomalous live disturbances[A].Proceedings of National Information Systems Security Conference[C].Bal-timore MD,1997.
[7]Wei Wang,Roberto Battiti.Identifying intrusions in computer networks with principal component analys[A].Proceedings of The First International Conference on Availiability Reliability and Security[C],2006:270-277.