田桂豐,單志龍,廖祝華,王煜林
(1.廣州理工學院 計算機科學與工程學院,廣東 廣州 510540;2.華南師范大學 計算機學院,廣東 廣州 510631;3.湖南科技大學 計算機科學與工程學院,湖南 湘潭 411103)
隨著互聯網的高速發(fā)展,接入網絡的節(jié)點數不斷增加,網絡服務也隨之逐漸增多,特別是金融、社交和電商類服務的增加,安全問題成為網絡服務需要大力發(fā)展的基礎保障[1]。網絡入侵檢測能夠有效發(fā)現網絡中的隱藏攻擊,并能分辨出攻擊類型,從而為網絡安全決策提供有力保障。對于網絡數據包的安全檢查,可以采用安全規(guī)則匹配的方式來完成;但是無法滿足大規(guī)模數據和實時性高的網絡入侵檢測要求,因此更高效的入侵檢測算法成為入侵檢測技術的研究熱點。
近年來,關于網絡入侵檢測技術的研究較多,張寶華等[2]采用支持向量機(support vector machine,SVM)與遺傳算法相結合的模式進行網絡入侵檢測,改善了SVM算法的迭代效率,降低了網絡入侵的檢測時間,但檢出率并不高。陳紅松等[3]采用循環(huán)神經網絡方法用于無線網絡的網絡入侵檢測,通過多次訓練有效提高了網絡攻擊檢出準確度,但也帶來了較大的虛警報率。夏景明等[4]采用仿生算法與深度置信網絡結合方法進行大規(guī)模網絡入侵檢測,表現出了良好的網絡入侵檢測率,但檢測時間較長。在這些研究中,有的算法雖然網絡入侵檢出率較高,但存在檢測效率不高的問題。部分算法的網絡入侵檢出率高,但誤報率也高,需要不斷優(yōu)化入侵檢測算法。針對上述問題,本文中將多核SVM算法應用于網絡入侵檢測,并且采用局部線性嵌入(locally linear embedding,LLE)進行數據降維,從而能夠獲得較好的網絡入侵檢出率,并且提高檢測效率。
網絡入侵檢測主要是根據網絡中傳輸的數據包是否正常,通過安全規(guī)則分析數據包是普通數據還是攻擊數據,對攻擊數據進行相應的安全處理。檢測模型[5-6]如圖1所示。
圖1 網絡入侵檢測模型
在事件數據庫中,制定安全規(guī)則和策略,通過規(guī)則匹配與規(guī)則分析,判斷當前網絡事件是否為正常數據包,根據事件類型執(zhí)行規(guī)定動作,從而完成網絡入侵檢測。在事件分析過程中,首先要分辨正常數據包和入侵數據包,其次要通過分類算法對入侵數據包按攻擊類型進行分類,統計分析分類結果并有針對性地制定相應的網絡安全防御系統。
網絡入侵主要攻擊類型有DOS、Probe、R2L和U2R[7],這4種類型還可以進一步劃分為更多小類,在分析過程中,可以根據實際情況選擇分類粒度,然后制定分類策略。本文中只選擇這4種常見攻擊類型作為分類對象。
SVM能夠使用一條線將混合在同一空間的數據分開,并且最大限度地維持較大的分類間隔。
設分類線為
wx+b=0,
(1)
式中:w為斜率;x為數據點;b為截距。
對于二元分類,y∈{-1,1},m個樣本集滿足以下條件:
yi(wxi+b)-1≥0,i=1,2,…,m。
(2)
式中yi為樣本i的類別。
(3)
上述求解過程的約束條件為
(4)
分類函數[9]為
(5)
式中sgn(·)為階躍函數。
設X是一個n的一個子集,連續(xù)函數K滿足條件[10]
(6)
式中:x′為不同于x的變量;f(x)是實函數且滿足條件
(7)
則有
(8)
式中λi(≥0)和φi(x)分別是積分算子特征值和特征函數,其中特征函數的特征解為
(9)
在當前的多核函數研究中,常見的核函數[11]有以下3種。
1)高斯核函數,
(10)
式中σ為控制函數作用范圍的常量。
2)多項式核函數,
K(x,y)=(〈x·y〉+R)d,R≥0,d≥0 ,
(11)
式中:R為人工設置的常量;〈x·y〉為由x和y組成的多項式。
3)Sigmoid核函數,
K(x,y)=tanh(g〈x·y〉+R),g>0,R≥0 ,
(12)
式中:tanh(·)為Sigmoid函數;g為系數常量。
采用多核函數的主要原因是單核函數分類效果不理想,與輸入空間大小有很大關系。通常按照輸入向量服從的分布來選取合適的核函數,如果輸入數據源多樣或者分布多樣,可以選擇多個核函數融合的方法來完成分類。
設樣本xi可以由其相鄰樣本xj、xk和xl(k,l=1,2,…,m)經過線性運算[12]得到,
xi=ωijxj+ωikxk+ωilxl,
(13)
式中ωij、ωik和ωil分別為樣本xi與其相鄰樣本xj、xk和xl的線性系數。
在實際操作過程中,xi的相鄰樣本可以選擇多個,設xi的k個鄰居樣本組成的集合為Qi,為了保持降維后樣本點仍屬以前的線性關系,LLE的降維目標函數[13]為
(14)
設Cjk=(xi-xj)T(xi-xk),則
(15)
LLE能夠保持降維過程中ωij不變,所以根據ωij,可以求解降維后的樣本集合,
(16)
通過求解ωij的特征值所對應的特征向量則可以得到降維后的Z。
采用LLE對抓取的網絡數據進行降維處理,然后對降維后的數據采用多核SVM方法進行數據包檢測,在多核函數選取時,考慮2種或者2種以上核函數混合的方式來進行SVM計算。算法流程如圖2所示。
圖2 基于空間降維和多核支持向量機(SVM)的網絡入侵檢測算法流程
為了驗證空間降維和多核SVM的網絡入侵檢測效果,進行實例仿真。仿真數據來源如下:Lincoln實驗室的KDD cup99數據(數據集1),網絡入侵樣本個數為494 021,網絡正常數據和入侵數據樣本個數分別為97 278和396 743;HTTP DATASET CSIC 2010數據集(數據集2),樣本個數為50 021;Masquerading User Data 數據集(數據集3),樣本個數為14 872;澳大利亞ADFA IDS Datasets數據集(數據集4),樣本個數為32 841。數據集中訓練樣本個數與測試樣本個數比例為3∶1。差異化設置LLE降維參與運算的鄰節(jié)點個數,采用多核函數混合方法,充分驗證基于空間數據降維和多核SVM算法(簡稱本文算法)對網絡入侵檢測性能的影響,最后比較本文算法與常用的網絡入侵檢測算法在不同數據集的性能差異。
為了驗證LLE在網絡入侵檢測中的性能,對數據集3采用MATLAB軟件進行仿真,其訓練樣本屬性初始分布如圖3所示。
圖3 訓練樣本初始分布
分別選擇不同鄰居數N進行LLE線性表示,然后坐標轉換降維,差異化設置N分別為10、20、30、50,其中N為10、20時的降維效果如圖4所示。
對比圖4(a)、(b)發(fā)現:N=10的LLE數據降維效果并不理想,很多節(jié)點仍有交叉重疊,二維分布不能完全展示樣本屬性;當N=20時,數據樣本平鋪展開完整,較好地實現了三維到二維的降維處理。
(a)N=10
不同鄰居數N的LLE網絡入侵檢測性能如表1所示。從表中數據可以看出:鄰居數為10時,4個數據集樣本的檢出率均低于90%;隨著鄰居數增加到20,檢出率緩慢提高,表明當鄰居節(jié)點數較少時,LLE的降維作用不大,對網絡入侵檢測的幫助較小。而當節(jié)點數超過20后,LLE降維相鄰節(jié)點參與運算的數量變化對網絡入侵檢出率影響逐漸變小,但是檢測時間顯著增加,其原因是更多節(jié)點參與空間降維的運算復雜度增大,導致檢測用時增加。
表1 不同鄰居數N的局部線性嵌入網絡入侵檢測性能
選取LLE參與計算的鄰居數為20,對高斯核函數、多項式核函數和Sigmoid核函數分別兩兩混合,采用混合核函數SVM對網絡入侵方式進行檢測,結果見表2。由表可以看出:對于數據集1、2、3,核函數的組合方式不同,網絡入侵的檢出率差異較大,這是由樣本的分布構成決定的;數據集4的網絡入侵檢出率受核函數組合的影響不大,檢出率均在0.973以上。在檢測時間方面,多核函數組合模式并沒有對檢測時間性能造成大的影響,通過4個數據集樣本檢測時間的橫向對比可以看出,檢測時間與樣本量呈正比的關系,樣本量最少的數據集4檢測時間最短。綜合而言,對于不同的數據集,為了獲得最優(yōu)的網絡入侵檢測效果,應采取合適的核函數組合方式。
表2 不同多核支持向量機的檢測性能
為了驗證不同網絡入侵檢測算法的網絡攻擊檢出性能,分別采用K近鄰(KNN)-SVM[14]、粒子群算法(PSO)-SVM[15]、卷積神經網絡[16]和本文算法對數據集1分別進行性能仿真。本文算法采用LLE鄰居數為20,多核函數采用高斯核函數與Sigmoid核函數組合的方式,仿真結果如圖5所示。由圖可以看出,本文算法和卷積神經網絡算法的檢出率最高,數值非常接近,KNN-SVM的檢出率最低。對比檢測時間,KNN-SVM和PSO-SVM在50 s之前均已完成檢測,而本文算法在60 s左右才完成收斂,卷積神經網絡檢測時間最長,大約需要70 s。綜合對比檢出率和檢測時間,本文算法的網絡入侵檢測率高,耗時較短。
KNN—K鄰近算法;SVM—支持向量機;PSO—粒子群算法;LLE—局部線性嵌入。圖5 不同算法的網絡入侵檢測性能
本文中采用LLE空間數據降維和多核SVM算法用于網絡入侵檢測,通過合理設置LLE計算的鄰居數,靈活選擇核函數的混合方法,可以獲得較高的網絡入侵檢出率。后續(xù)研究將進一步優(yōu)化核函數組合模式及多核函數的選擇,以進一步優(yōu)化網絡入侵檢測性能。