李小劍 謝曉堯
(貴州師范大學貴州省信息與計算科學重點實驗室 貴州 550001)
支持向量機(SVM,Support Vector Machine),在解決小樣本、非線性、高維模式分類和回歸問題上,由于其泛化能力強,并且是基于機構(gòu)風險化最小原則的,因此成為目前網(wǎng)絡(luò)入侵檢測的主要分類器[1]。然而在構(gòu)建基于 SVM 分類器的過程中,由于可能存在人為的誤操作或者受外界因素的影響,例如噪聲,導致分類面附近的某些樣本點有可能被誤分類。因此本文提出將SVM于K近鄰法相結(jié)合的方法,對分類面附近的樣本點進行二次分類。在構(gòu)建分類器模型時,先用 SVM 算法對訓練樣本進行訓練,求得最優(yōu)分類超平面,然后設(shè)定一個閥值。在用設(shè)計好的分類器對測試樣本進行分類時,若待分類樣本與最優(yōu)分類超平面的距離大于預設(shè)閥值,則直接應(yīng)用 SVM 對測試樣本進行分類;否則采用K近鄰法對測試樣本進行二次分類,從而進一步提高分類的準確率。
假設(shè)給定一個特征空間上訓練數(shù)據(jù)集 T={(x1,y1),( x2,y2),……,( xi,yi)},其中,xi∈ X =Rn,yi∈Y={+1,-1},i=1,2,……,N ,輸入空間是X ? Rn,xi為第i個特征向量,也稱為實例,yi為xi類標記,當yi=+1時,稱xi為正例;當 yi=-1時,稱xi為負例,(xi,yi)稱為樣本點。模型的輸入為實例的特征向量,輸出為實例的類別。對于線性可分訓練樣本集,線性可分支持向量機利用間隔最大化求得的最優(yōu)分離超平面

求解的最優(yōu)的w*,b*。由此得到的分離超平面:

以及相應(yīng)的分類決策函數(shù)

對于線性不可分的訓練樣本集,可以通過非線性變換,將原輸入空間映射到新的特征空間,使訓練數(shù)據(jù)集在新的特征空間變成線性可分,為此引入核函數(shù)

與拉格朗日乘子,將式(1)轉(zhuǎn)化為原始問題的對偶形式:

式中 αi為與每個樣本對應(yīng)的拉格朗日乘子
其分類決策函數(shù)為

在支持向量機中,核函數(shù)對算法具有重要的影響,在眾多核函數(shù)中,徑向基函數(shù)RBF(Radical Basis Function)需要優(yōu)化的參數(shù)少,且具有較好高維數(shù)據(jù)分析能力,因此選擇RBF核函數(shù)作為支持向量機的核函數(shù)[2]。
K近鄰法是一種基本分類與回歸方法。其算法思想比較樸素:假設(shè)給定一個訓練樣本,其中樣本的類別已知。分類時,對于測試樣本,根據(jù)其K個最近鄰的訓練樣本的類別,通過多數(shù)表決的方式進行預測。具體來說就是,首先,計算測試樣本x到所有訓練樣本點的距離,然后找出與x最近的訓練樣本中的K個近鄰,最后檢查這K個近鄰中的多數(shù)樣本屬于哪一類,就把x分到哪一類[3]。
網(wǎng)絡(luò)連接是指一個單獨的UDP或ICMP報文,或是從連接建立到連接斷開的所有連續(xù)的 TCP包。KDDCUP99每條網(wǎng)絡(luò)連接包含了41個固定的特征屬性。在41個固定的特征屬性中,32個特征屬性為連續(xù)的,9個特征屬性為離散的。這41個特征分為4大類。如下表所示:

表1 網(wǎng)絡(luò)連接的41個特征
數(shù)據(jù)連續(xù)化處理:在DARPA提供的數(shù)據(jù)集中,有幾個特征的取值是離散的,由于所設(shè)計的SVM-KNN分類器只能接受數(shù)值型的數(shù)據(jù),因而在構(gòu)造分類器模型之前要把這些離散數(shù)據(jù)連續(xù)化[4]。采用的方法是將這些離散數(shù)值數(shù)據(jù)除以該特征取值范圍的上限,使之轉(zhuǎn)化為0~1之間的連續(xù)型數(shù)據(jù)。例如,特征service共有64個標號值,則首先將其值轉(zhuǎn)化到l到64之間的整數(shù)m,然后將m/64作為對應(yīng)的屬性值。
數(shù)據(jù)標準化處理:采用計算距離的方法對連續(xù)型數(shù)據(jù)進行聚類。對于連續(xù)型特征屬性,各屬性的度量單位不一樣。一般而言,所用的度量單位越小,變量可能的值域就越大,這樣對聚類結(jié)果的影響也就越大,即在計算數(shù)據(jù)間距離時對聚類的影響越大,因此為了避免對度量單位選擇的依賴,消除由于屬性度量的差異對聚類產(chǎn)生的影響,需要對屬性值進行標準化。
假設(shè)對第i樣本的第i個特征 xii進行標準化處理,采用以下變換公式

KDDcup99描述一個完整的連接記錄包含有41維特征,根據(jù)前人研究結(jié)果表明并不是所有的特征都適合用于支持向量機的分類,有的甚至會降低分類器的識別率,因此有必要對提取的特征值進行篩選。篩選采用以下方法:如果缺少這個特征后,分類器匹配準確率下降,則認為這個特征是重要特征;如果分類器匹配準確率沒有變化,但缺少這個特征后訓練速度反而降低了,這個特征也被認為是重要特征;反之,則被認為是不重要特征[5]。針對目前網(wǎng)絡(luò)比較流行的 4中攻擊行為,篩選出具有代表性的特征值。拒絕服務(wù)攻擊(DoS)有10個重要特征,遠程用戶攻擊(R2L)有3個重要特征,提權(quán)攻擊(U2R)有5個重要特征,探測和掃描攻擊(Probe)有6個重要特征。
K的取值大小對分類器的分類結(jié)果有重要的影響。如果選擇較小的K值,就相當于用較小領(lǐng)域中訓練樣本對測試樣本進行判斷,這樣只有與測試樣本較近的訓練樣本才會對預測結(jié)果起作用,但如果測試樣本鄰近的實例點恰好是噪聲,預測結(jié)果就會出錯,這就意味著如果K值選取過小,整體模型會變得復雜,容易發(fā)生過擬合;如果選擇較大的K值,就相當于用較大領(lǐng)域的訓練樣本對測試樣本進行判斷,這樣與測試樣本較遠的訓練樣本也會對預測起作用,使預測發(fā)生錯誤。這就意味著如果K值選取過大,整體模型會變得簡單[6]。本文通過交叉驗證的方法來選取最優(yōu)的K值,取值為6。
本文利用wireshark抓包軟件在Windows平臺下采用被動監(jiān)聽的方式對流入網(wǎng)絡(luò)中的數(shù)據(jù)包進行分析,搭建的網(wǎng)絡(luò)環(huán)境如下:

圖1 搭建的網(wǎng)絡(luò)環(huán)境
對核心匯聚交換機g1/0/1-g1/0/7共7個端口進出兩個方向的流量進行鏡像,并把流量鏡像至端口 g1/0/8,使該端口作為流量采集端口,連接至終端設(shè)備。核心交換機采用華為的三層交換機S6503,配置命令如下:

圖2 配置命令表
采集終端運行wireshark軟件,捕獲流經(jīng)端口g1/0/8的數(shù)據(jù)包,捕獲過程如下圖所示:

圖3 捕獲過程
共捕獲10000個數(shù)據(jù)包,將其中的1000個數(shù)據(jù)包用于訓練SVM模型,剩余的作為測試樣本。


在入侵檢測系統(tǒng)中,不僅要實時地識別正常行為與攻擊行為,而且還要在攻擊行為中能夠識別是哪一類攻擊[7]。網(wǎng)絡(luò)流量包含多種類型的入侵,其中具有很強代表性的有 4類攻擊,分別是拒絕服務(wù)攻擊(DoS)、遠程用戶攻擊(R2L)、提權(quán)攻擊(U2R)、探測和掃描攻擊(Probe)。為此需要構(gòu)建5個不同類型 SVM 分類器。在第一層先將所有的網(wǎng)絡(luò)連接記錄劃分為正常和異常兩大類。在第二層再將異常的網(wǎng)絡(luò)連接記錄送入到事先訓練出來的 DoS_SVM,如此反復進行,最終可以將所有的連接記錄都分別歸類。
為了說明采用SVM-KNN算法的入侵檢測模型比單獨采用SVM算法的入侵檢測模型具有更好的分類效果,本文將捕獲的網(wǎng)絡(luò)連接記錄分為四組,每組數(shù)據(jù)包為2000個,分別用于這兩種檢測模型,檢測效果對比如表2所示。

表2 兩種模型檢測結(jié)果對比
對表2的實驗結(jié)果進行對比和分析,可以得出以下結(jié)論:
基于SVM-KNN算法的入侵檢測模型無論是對正常、異常數(shù)據(jù)包進行分類還是在異常數(shù)據(jù)包中對對目前網(wǎng)絡(luò)具有代表性的四種數(shù)據(jù)包進行分類,其檢測的正確率都高于單獨采用SVM算法的入侵檢測模型。
在網(wǎng)絡(luò)入侵檢測過程中,檢測的正確率是衡量網(wǎng)絡(luò)入侵檢測系統(tǒng)的一項重要指標。針對 SVM 對分類面附近,尤其是兩支持向量面之間的實例點易造成誤分類,為了進一步提高入侵檢測系統(tǒng)的檢測正確率,采用了SVM與KNN相結(jié)合的算法對易造成誤分類的實例點進行了二次分類。實驗結(jié)果表明,分類的正確率得到了進一步提高,可以用于網(wǎng)絡(luò)入侵檢測系統(tǒng)。
[1]Cheng Lung Huang,Chieh Jen Wang.A GA-based feature selection and parameters optimization for support vector machines[J].Expert Systems with Applications,2006,31(2):231-240.
[2]陳果.基于遺傳算法的支持向量機分類器模型參數(shù)優(yōu)化[J].機械科學與技術(shù),2007,26(3):347-350.
[3]殷小舟.一種改進的結(jié)合K近鄰法的SVM分類算法[J].中國圖像圖形學報,2009,14(11):2300-2303.
[4]王潔松,王小飛.KDDCup99網(wǎng)絡(luò)入侵檢測數(shù)據(jù)的分析和預處理[J].科技信息,2008,(15):407-408
[5]孫鋼,基于SVM的入侵檢測系統(tǒng)研究[D].北京:北京郵電大學,2007.
[6]李航.統(tǒng)計學習方法[M].北京:清華大學出版社,2012.
[7]唐正軍,李建華.入侵檢測技術(shù)[M].第2版.北京:清華大學出版社,2004.