田桂豐,單志龍,廖祝華,王煜林
(1.廣州理工學(xué)院 計(jì)算機(jī)科學(xué)與工程學(xué)院,廣東 廣州 510540;2.華南師范大學(xué) 計(jì)算機(jī)學(xué)院,廣東 廣州 510631;3.湖南科技大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,湖南 湘潭 411103)
隨著互聯(lián)網(wǎng)的高速發(fā)展,接入網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)不斷增加,網(wǎng)絡(luò)服務(wù)也隨之逐漸增多,特別是金融、社交和電商類服務(wù)的增加,安全問題成為網(wǎng)絡(luò)服務(wù)需要大力發(fā)展的基礎(chǔ)保障[1]。網(wǎng)絡(luò)入侵檢測(cè)能夠有效發(fā)現(xiàn)網(wǎng)絡(luò)中的隱藏攻擊,并能分辨出攻擊類型,從而為網(wǎng)絡(luò)安全決策提供有力保障。對(duì)于網(wǎng)絡(luò)數(shù)據(jù)包的安全檢查,可以采用安全規(guī)則匹配的方式來完成;但是無法滿足大規(guī)模數(shù)據(jù)和實(shí)時(shí)性高的網(wǎng)絡(luò)入侵檢測(cè)要求,因此更高效的入侵檢測(cè)算法成為入侵檢測(cè)技術(shù)的研究熱點(diǎn)。
近年來,關(guān)于網(wǎng)絡(luò)入侵檢測(cè)技術(shù)的研究較多,張寶華等[2]采用支持向量機(jī)(support vector machine,SVM)與遺傳算法相結(jié)合的模式進(jìn)行網(wǎng)絡(luò)入侵檢測(cè),改善了SVM算法的迭代效率,降低了網(wǎng)絡(luò)入侵的檢測(cè)時(shí)間,但檢出率并不高。陳紅松等[3]采用循環(huán)神經(jīng)網(wǎng)絡(luò)方法用于無線網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測(cè),通過多次訓(xùn)練有效提高了網(wǎng)絡(luò)攻擊檢出準(zhǔn)確度,但也帶來了較大的虛警報(bào)率。夏景明等[4]采用仿生算法與深度置信網(wǎng)絡(luò)結(jié)合方法進(jìn)行大規(guī)模網(wǎng)絡(luò)入侵檢測(cè),表現(xiàn)出了良好的網(wǎng)絡(luò)入侵檢測(cè)率,但檢測(cè)時(shí)間較長(zhǎng)。在這些研究中,有的算法雖然網(wǎng)絡(luò)入侵檢出率較高,但存在檢測(cè)效率不高的問題。部分算法的網(wǎng)絡(luò)入侵檢出率高,但誤報(bào)率也高,需要不斷優(yōu)化入侵檢測(cè)算法。針對(duì)上述問題,本文中將多核SVM算法應(yīng)用于網(wǎng)絡(luò)入侵檢測(cè),并且采用局部線性嵌入(locally linear embedding,LLE)進(jìn)行數(shù)據(jù)降維,從而能夠獲得較好的網(wǎng)絡(luò)入侵檢出率,并且提高檢測(cè)效率。
網(wǎng)絡(luò)入侵檢測(cè)主要是根據(jù)網(wǎng)絡(luò)中傳輸?shù)臄?shù)據(jù)包是否正常,通過安全規(guī)則分析數(shù)據(jù)包是普通數(shù)據(jù)還是攻擊數(shù)據(jù),對(duì)攻擊數(shù)據(jù)進(jìn)行相應(yīng)的安全處理。檢測(cè)模型[5-6]如圖1所示。

圖1 網(wǎng)絡(luò)入侵檢測(cè)模型
在事件數(shù)據(jù)庫(kù)中,制定安全規(guī)則和策略,通過規(guī)則匹配與規(guī)則分析,判斷當(dāng)前網(wǎng)絡(luò)事件是否為正常數(shù)據(jù)包,根據(jù)事件類型執(zhí)行規(guī)定動(dòng)作,從而完成網(wǎng)絡(luò)入侵檢測(cè)。在事件分析過程中,首先要分辨正常數(shù)據(jù)包和入侵?jǐn)?shù)據(jù)包,其次要通過分類算法對(duì)入侵?jǐn)?shù)據(jù)包按攻擊類型進(jìn)行分類,統(tǒng)計(jì)分析分類結(jié)果并有針對(duì)性地制定相應(yīng)的網(wǎng)絡(luò)安全防御系統(tǒng)。
網(wǎng)絡(luò)入侵主要攻擊類型有DOS、Probe、R2L和U2R[7],這4種類型還可以進(jìn)一步劃分為更多小類,在分析過程中,可以根據(jù)實(shí)際情況選擇分類粒度,然后制定分類策略。本文中只選擇這4種常見攻擊類型作為分類對(duì)象。
SVM能夠使用一條線將混合在同一空間的數(shù)據(jù)分開,并且最大限度地維持較大的分類間隔。
設(shè)分類線為
wx+b=0,
(1)
式中:w為斜率;x為數(shù)據(jù)點(diǎn);b為截距。
對(duì)于二元分類,y∈{-1,1},m個(gè)樣本集滿足以下條件:
yi(wxi+b)-1≥0,i=1,2,…,m。
(2)
式中yi為樣本i的類別。

(3)

上述求解過程的約束條件為
(4)
分類函數(shù)[9]為
(5)
式中sgn(·)為階躍函數(shù)。
設(shè)X是一個(gè)n的一個(gè)子集,連續(xù)函數(shù)K滿足條件[10]

(6)
式中:x′為不同于x的變量;f(x)是實(shí)函數(shù)且滿足條件
(7)
則有
(8)
式中λi(≥0)和φi(x)分別是積分算子特征值和特征函數(shù),其中特征函數(shù)的特征解為
(9)
在當(dāng)前的多核函數(shù)研究中,常見的核函數(shù)[11]有以下3種。
1)高斯核函數(shù),
(10)
式中σ為控制函數(shù)作用范圍的常量。
2)多項(xiàng)式核函數(shù),
K(x,y)=(〈x·y〉+R)d,R≥0,d≥0 ,
(11)
式中:R為人工設(shè)置的常量;〈x·y〉為由x和y組成的多項(xiàng)式。
3)Sigmoid核函數(shù),
K(x,y)=tanh(g〈x·y〉+R),g>0,R≥0 ,
(12)
式中:tanh(·)為Sigmoid函數(shù);g為系數(shù)常量。
采用多核函數(shù)的主要原因是單核函數(shù)分類效果不理想,與輸入空間大小有很大關(guān)系。通常按照輸入向量服從的分布來選取合適的核函數(shù),如果輸入數(shù)據(jù)源多樣或者分布多樣,可以選擇多個(gè)核函數(shù)融合的方法來完成分類。
設(shè)樣本xi可以由其相鄰樣本xj、xk和xl(k,l=1,2,…,m)經(jīng)過線性運(yùn)算[12]得到,
xi=ωijxj+ωikxk+ωilxl,
(13)
式中ωij、ωik和ωil分別為樣本xi與其相鄰樣本xj、xk和xl的線性系數(shù)。
在實(shí)際操作過程中,xi的相鄰樣本可以選擇多個(gè),設(shè)xi的k個(gè)鄰居樣本組成的集合為Qi,為了保持降維后樣本點(diǎn)仍屬以前的線性關(guān)系,LLE的降維目標(biāo)函數(shù)[13]為
(14)
設(shè)Cjk=(xi-xj)T(xi-xk),則
(15)
LLE能夠保持降維過程中ωij不變,所以根據(jù)ωij,可以求解降維后的樣本集合,
(16)

通過求解ωij的特征值所對(duì)應(yīng)的特征向量則可以得到降維后的Z。
采用LLE對(duì)抓取的網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行降維處理,然后對(duì)降維后的數(shù)據(jù)采用多核SVM方法進(jìn)行數(shù)據(jù)包檢測(cè),在多核函數(shù)選取時(shí),考慮2種或者2種以上核函數(shù)混合的方式來進(jìn)行SVM計(jì)算。算法流程如圖2所示。

圖2 基于空間降維和多核支持向量機(jī)(SVM)的網(wǎng)絡(luò)入侵檢測(cè)算法流程
為了驗(yàn)證空間降維和多核SVM的網(wǎng)絡(luò)入侵檢測(cè)效果,進(jìn)行實(shí)例仿真。仿真數(shù)據(jù)來源如下:Lincoln實(shí)驗(yàn)室的KDD cup99數(shù)據(jù)(數(shù)據(jù)集1),網(wǎng)絡(luò)入侵樣本個(gè)數(shù)為494 021,網(wǎng)絡(luò)正常數(shù)據(jù)和入侵?jǐn)?shù)據(jù)樣本個(gè)數(shù)分別為97 278和396 743;HTTP DATASET CSIC 2010數(shù)據(jù)集(數(shù)據(jù)集2),樣本個(gè)數(shù)為50 021;Masquerading User Data 數(shù)據(jù)集(數(shù)據(jù)集3),樣本個(gè)數(shù)為14 872;澳大利亞ADFA IDS Datasets數(shù)據(jù)集(數(shù)據(jù)集4),樣本個(gè)數(shù)為32 841。數(shù)據(jù)集中訓(xùn)練樣本個(gè)數(shù)與測(cè)試樣本個(gè)數(shù)比例為3∶1。差異化設(shè)置LLE降維參與運(yùn)算的鄰節(jié)點(diǎn)個(gè)數(shù),采用多核函數(shù)混合方法,充分驗(yàn)證基于空間數(shù)據(jù)降維和多核SVM算法(簡(jiǎn)稱本文算法)對(duì)網(wǎng)絡(luò)入侵檢測(cè)性能的影響,最后比較本文算法與常用的網(wǎng)絡(luò)入侵檢測(cè)算法在不同數(shù)據(jù)集的性能差異。
為了驗(yàn)證LLE在網(wǎng)絡(luò)入侵檢測(cè)中的性能,對(duì)數(shù)據(jù)集3采用MATLAB軟件進(jìn)行仿真,其訓(xùn)練樣本屬性初始分布如圖3所示。

圖3 訓(xùn)練樣本初始分布
分別選擇不同鄰居數(shù)N進(jìn)行LLE線性表示,然后坐標(biāo)轉(zhuǎn)換降維,差異化設(shè)置N分別為10、20、30、50,其中N為10、20時(shí)的降維效果如圖4所示。
對(duì)比圖4(a)、(b)發(fā)現(xiàn):N=10的LLE數(shù)據(jù)降維效果并不理想,很多節(jié)點(diǎn)仍有交叉重疊,二維分布不能完全展示樣本屬性;當(dāng)N=20時(shí),數(shù)據(jù)樣本平鋪展開完整,較好地實(shí)現(xiàn)了三維到二維的降維處理。

(a)N=10
不同鄰居數(shù)N的LLE網(wǎng)絡(luò)入侵檢測(cè)性能如表1所示。從表中數(shù)據(jù)可以看出:鄰居數(shù)為10時(shí),4個(gè)數(shù)據(jù)集樣本的檢出率均低于90%;隨著鄰居數(shù)增加到20,檢出率緩慢提高,表明當(dāng)鄰居節(jié)點(diǎn)數(shù)較少時(shí),LLE的降維作用不大,對(duì)網(wǎng)絡(luò)入侵檢測(cè)的幫助較小。而當(dāng)節(jié)點(diǎn)數(shù)超過20后,LLE降維相鄰節(jié)點(diǎn)參與運(yùn)算的數(shù)量變化對(duì)網(wǎng)絡(luò)入侵檢出率影響逐漸變小,但是檢測(cè)時(shí)間顯著增加,其原因是更多節(jié)點(diǎn)參與空間降維的運(yùn)算復(fù)雜度增大,導(dǎo)致檢測(cè)用時(shí)增加。

表1 不同鄰居數(shù)N的局部線性嵌入網(wǎng)絡(luò)入侵檢測(cè)性能
選取LLE參與計(jì)算的鄰居數(shù)為20,對(duì)高斯核函數(shù)、多項(xiàng)式核函數(shù)和Sigmoid核函數(shù)分別兩兩混合,采用混合核函數(shù)SVM對(duì)網(wǎng)絡(luò)入侵方式進(jìn)行檢測(cè),結(jié)果見表2。由表可以看出:對(duì)于數(shù)據(jù)集1、2、3,核函數(shù)的組合方式不同,網(wǎng)絡(luò)入侵的檢出率差異較大,這是由樣本的分布構(gòu)成決定的;數(shù)據(jù)集4的網(wǎng)絡(luò)入侵檢出率受核函數(shù)組合的影響不大,檢出率均在0.973以上。在檢測(cè)時(shí)間方面,多核函數(shù)組合模式并沒有對(duì)檢測(cè)時(shí)間性能造成大的影響,通過4個(gè)數(shù)據(jù)集樣本檢測(cè)時(shí)間的橫向?qū)Ρ瓤梢钥闯觯瑱z測(cè)時(shí)間與樣本量呈正比的關(guān)系,樣本量最少的數(shù)據(jù)集4檢測(cè)時(shí)間最短。綜合而言,對(duì)于不同的數(shù)據(jù)集,為了獲得最優(yōu)的網(wǎng)絡(luò)入侵檢測(cè)效果,應(yīng)采取合適的核函數(shù)組合方式。

表2 不同多核支持向量機(jī)的檢測(cè)性能
為了驗(yàn)證不同網(wǎng)絡(luò)入侵檢測(cè)算法的網(wǎng)絡(luò)攻擊檢出性能,分別采用K近鄰(KNN)-SVM[14]、粒子群算法(PSO)-SVM[15]、卷積神經(jīng)網(wǎng)絡(luò)[16]和本文算法對(duì)數(shù)據(jù)集1分別進(jìn)行性能仿真。本文算法采用LLE鄰居數(shù)為20,多核函數(shù)采用高斯核函數(shù)與Sigmoid核函數(shù)組合的方式,仿真結(jié)果如圖5所示。由圖可以看出,本文算法和卷積神經(jīng)網(wǎng)絡(luò)算法的檢出率最高,數(shù)值非常接近,KNN-SVM的檢出率最低。對(duì)比檢測(cè)時(shí)間,KNN-SVM和PSO-SVM在50 s之前均已完成檢測(cè),而本文算法在60 s左右才完成收斂,卷積神經(jīng)網(wǎng)絡(luò)檢測(cè)時(shí)間最長(zhǎng),大約需要70 s。綜合對(duì)比檢出率和檢測(cè)時(shí)間,本文算法的網(wǎng)絡(luò)入侵檢測(cè)率高,耗時(shí)較短。

KNN—K鄰近算法;SVM—支持向量機(jī);PSO—粒子群算法;LLE—局部線性嵌入。圖5 不同算法的網(wǎng)絡(luò)入侵檢測(cè)性能
本文中采用LLE空間數(shù)據(jù)降維和多核SVM算法用于網(wǎng)絡(luò)入侵檢測(cè),通過合理設(shè)置LLE計(jì)算的鄰居數(shù),靈活選擇核函數(shù)的混合方法,可以獲得較高的網(wǎng)絡(luò)入侵檢出率。后續(xù)研究將進(jìn)一步優(yōu)化核函數(shù)組合模式及多核函數(shù)的選擇,以進(jìn)一步優(yōu)化網(wǎng)絡(luò)入侵檢測(cè)性能。