馬 琳 張莎莎 宋姝雨 王 磊*
(*空軍杭州特勤療養(yǎng)中心信息科 杭州 310012)(**浙江大學(xué)信息與電子工程學(xué)院 杭州 310027)(***國(guó)家廣播電視總局廣播電視科學(xué)研究院 北京 100866)
入侵檢測(cè)常用的檢測(cè)方法有異常檢測(cè)和誤用檢測(cè)[1]。對(duì)于異常檢測(cè),其假設(shè)入侵行為與正常行為明顯不同。典型的異常檢測(cè)方法包括專(zhuān)家系統(tǒng)、統(tǒng)計(jì)分析和定量分析。而誤用檢測(cè)假設(shè)所有入侵都可以表示為模式或特征,系統(tǒng)基于這些模式或特征來(lái)檢測(cè)入侵行為[2]。異常檢測(cè)的優(yōu)勢(shì)在于對(duì)新型攻擊敏感,但誤報(bào)率較高。誤用檢測(cè)的優(yōu)勢(shì)在于其對(duì)已知攻擊具有優(yōu)越性能,但很難檢測(cè)到未知的攻擊。如何提高入侵檢測(cè)系統(tǒng)的檢測(cè)準(zhǔn)確率、降低誤報(bào)率和漏報(bào)率一直是研究的重點(diǎn)和熱點(diǎn)。
軟件定義網(wǎng)絡(luò)(software defined networking,SDN)作為一種新型網(wǎng)絡(luò)架構(gòu),其控制面與轉(zhuǎn)發(fā)面分離、控制器北向接口開(kāi)放、可實(shí)現(xiàn)集中控制等特性為網(wǎng)絡(luò)技術(shù)創(chuàng)新提供了良好的平臺(tái)。SDN控制器具有全局網(wǎng)絡(luò)的信息,可以根據(jù)需要監(jiān)控網(wǎng)絡(luò)中任意位置的流量,這為集中進(jìn)行入侵流監(jiān)測(cè)提供了便利。在SDN控制器中,可以非常方便地集成各種先進(jìn)的人工智能算法[3-5],突破了傳統(tǒng)特征匹配等方法的局限性,能夠顯著提升入侵檢測(cè)的性能。
本文設(shè)計(jì)了一種基于SDN的智能入侵檢測(cè)系統(tǒng)模型,使用改進(jìn)的隨機(jī)森林算法進(jìn)行智能流分類(lèi),以獲得更高的檢測(cè)率和更低的檢測(cè)代價(jià)。本文使用KDD CUP99數(shù)據(jù)集作為訓(xùn)練集和測(cè)試集,對(duì)改進(jìn)算法進(jìn)行了性能仿真和對(duì)比分析。
文獻(xiàn)[6,7]研究了傳統(tǒng)的流量異常檢測(cè)方法在SDN網(wǎng)絡(luò)中的應(yīng)用。然而這些方法采用的流量特征數(shù)據(jù)較為單一, 僅能針對(duì)某種特定的異常。文獻(xiàn)[8]提出了基于改進(jìn)非廣延熵特征提取的雙隨機(jī)森林實(shí)時(shí)入侵檢測(cè)方法,實(shí)現(xiàn)對(duì)少量異常的有效實(shí)時(shí)檢測(cè),但該方法只適合對(duì)骨干鏈路進(jìn)行檢測(cè)。文獻(xiàn)[9]融合OpenFlow和sFlow提出了一種可進(jìn)行異常檢測(cè)并可減輕網(wǎng)絡(luò)異常的機(jī)制。Jankowski等人[10]提出了一種基于SDN的入侵檢測(cè)架構(gòu),該架構(gòu)從細(xì)粒度數(shù)據(jù)流中提取流量統(tǒng)計(jì)信息,并通過(guò)分類(lèi)器對(duì)數(shù)據(jù)進(jìn)行分類(lèi)并判斷是否有入侵。文獻(xiàn)[11]提出了一種稱(chēng)為AD-ICMP-SDN的異常檢測(cè)機(jī)制。其中的異常檢測(cè)組件由因特網(wǎng)控制報(bào)文協(xié)議(internet control message protocol, ICMP)流量采集、數(shù)據(jù)訓(xùn)練、支持向量機(jī)(support vector machine, SVM)分類(lèi)3個(gè)模塊組成并對(duì)異常檢測(cè)。但這些研究都缺少統(tǒng)一的系統(tǒng)模型,也缺乏對(duì)人工智能算法的靈活集成和應(yīng)用,無(wú)法實(shí)現(xiàn)持續(xù)的檢測(cè)性能提升。
本文提出一種基于SDN的智能入侵檢測(cè)系統(tǒng)模型,如圖1所示。該系統(tǒng)模型被分為3個(gè)平面:轉(zhuǎn)發(fā)平面、控制平面、應(yīng)用和分類(lèi)平面。
圖1 基于SDN的智能入侵檢測(cè)系統(tǒng)模型
轉(zhuǎn)發(fā)平面由網(wǎng)絡(luò)中的OpenFlow交換機(jī)構(gòu)成,它們通過(guò)安全通道與控制器進(jìn)行通信。該平面負(fù)責(zé)在交換機(jī)之間轉(zhuǎn)發(fā)數(shù)據(jù)包。通過(guò)收集和上傳交換機(jī)的流量信息,為控制平面提供實(shí)時(shí)的網(wǎng)絡(luò)狀態(tài)和可疑數(shù)據(jù)流。另外,交換機(jī)也可以根據(jù)控制器的指令通過(guò)丟棄攻擊流的報(bào)文來(lái)阻止入侵行為。
控制平面對(duì)采集的數(shù)據(jù)流進(jìn)行初步分析。狀態(tài)監(jiān)測(cè)模塊監(jiān)視網(wǎng)絡(luò)狀態(tài),并周期性地請(qǐng)求交換機(jī)上報(bào)流量信息。流劃分模塊處理和分析流量統(tǒng)計(jì)信息,將數(shù)據(jù)包聚類(lèi)成流,并生成如下的6元組流標(biāo)識(shí):
{srcip,dstip,srcport,dstport,duration,protocol}
數(shù)據(jù)包的收集和檢查按照一定的時(shí)間間隔執(zhí)行,合適的時(shí)間間隔能夠避免降低異常識(shí)別的實(shí)時(shí)性,同時(shí)不會(huì)大幅增加開(kāi)銷(xiāo)。
應(yīng)用和分類(lèi)平面包括特征選擇模塊和流分類(lèi)器模塊。特征選擇模塊提取可疑流的有關(guān)特征并找到特征的最佳子集,可以高效地處理高維數(shù)據(jù)。流分類(lèi)器模塊通過(guò)標(biāo)記是否屬于特定類(lèi)型的攻擊或正常流量來(lái)分類(lèi)網(wǎng)絡(luò)流量?;谠撓到y(tǒng)模型,可以靈活地選擇不同的機(jī)器學(xué)習(xí)算法來(lái)測(cè)量特征的相關(guān)性和冗余度,從而找到特征的最佳子集。
隨機(jī)森林算法[12-14]具有較高的預(yù)測(cè)準(zhǔn)確率,對(duì)異常值和噪聲具有很好的容忍度,目前已經(jīng)在很多領(lǐng)域得到應(yīng)用。但是,它在噪音較大的分類(lèi)或回歸問(wèn)題上會(huì)出現(xiàn)過(guò)擬合,尤其當(dāng)特征取值劃分較多時(shí),對(duì)算法性能的影響更大。針對(duì)隨機(jī)森林在對(duì)多特征、數(shù)據(jù)不平衡等特點(diǎn)的網(wǎng)絡(luò)流數(shù)據(jù)進(jìn)行分類(lèi)時(shí)存在的問(wèn)題,本文提出了改進(jìn)方法,步驟如下。
(1)初始化樣本權(quán)重。
對(duì)每一個(gè)樣本賦予權(quán)重1/N,其中N為樣本總數(shù)。樣本權(quán)重的初始值可以根據(jù)需要調(diào)整,但樣本權(quán)重之和為1。為了提高少數(shù)類(lèi)樣本的分類(lèi)精確度,從而提高總體分類(lèi)性能,改進(jìn)方法增大了少數(shù)類(lèi)樣本的權(quán)重。樣本權(quán)重集為
D1=(ω1,1,ω1,2, …ω1,i, …,ω1,N)
(1)
(2)構(gòu)建決策樹(shù),更新權(quán)重抽樣,并進(jìn)行多輪迭代。
依據(jù)樣本分布,對(duì)樣本進(jìn)行有權(quán)重的隨機(jī)抽樣,生成訓(xùn)練集,并用生成的訓(xùn)練集構(gòu)造一棵樹(shù)。用原始數(shù)據(jù)集對(duì)生成的樹(shù)進(jìn)行分類(lèi),計(jì)算分類(lèi)誤差率em,對(duì)樣本權(quán)重進(jìn)行更新。這里的em使用袋外數(shù)據(jù)(即在樣本抽樣時(shí)沒(méi)有被抽中的數(shù)據(jù))作為測(cè)試集進(jìn)行計(jì)算,也就是用生成的決策樹(shù)沒(méi)有學(xué)習(xí)到的樣本數(shù)據(jù)進(jìn)行計(jì)算。更新后的樣本權(quán)重集為
Dm+1=(ωm+1,1,ωm+1,2,…,ωm+1,i,…,ωm+1,N)
(2)
樣本權(quán)重更新公式為
(3)
(4)
其中,Zm是規(guī)范化因子。
(5)
e±a取決于分類(lèi)結(jié)果,分類(lèi)正確為e-a,分類(lèi)錯(cuò)誤則為ea。
依據(jù)上式可知,對(duì)于分類(lèi)正確的樣本,其權(quán)重更新后會(huì)變小,下一次生成分類(lèi)器的過(guò)程中,被抽中的概率也就變小,可以理解為被學(xué)到的可能性減小。相反,對(duì)于分類(lèi)錯(cuò)誤的樣本,若要求之后生成的分類(lèi)器能夠分類(lèi)正確,就需要加大對(duì)這些樣本的學(xué)習(xí),所以這里更新權(quán)重時(shí)增大了其權(quán)重。式中的Zm為規(guī)范化因子,保證每次更新權(quán)重后所有樣本權(quán)重之和恒等于1。參數(shù)β用來(lái)區(qū)別少數(shù)類(lèi)與多數(shù)類(lèi),因?yàn)樯贁?shù)類(lèi)樣本占比較少,這樣分類(lèi)器學(xué)到的“知識(shí)”也較少。另外,少數(shù)類(lèi)樣本分類(lèi)錯(cuò)誤的代價(jià)相對(duì)更高,所以算法通過(guò)β提高少數(shù)類(lèi)樣本的分類(lèi)精度,從而提升總體性能。β的取值由表1決定。其中,m為多數(shù)類(lèi)樣本(標(biāo)簽為0,1,2)的總數(shù),n為少數(shù)類(lèi)樣本(標(biāo)簽為3,4)總數(shù)。
表1 β取值
樣本更新完畢后,對(duì)新的樣本依據(jù)權(quán)重抽樣,得到新的訓(xùn)練集,生成新的一棵樹(shù)。
(3)所有決策樹(shù)生成完成,計(jì)算每棵樹(shù)的分類(lèi)器權(quán)重wi。
(6)
其中,Ai為第i棵樹(shù)正確分類(lèi)的個(gè)數(shù)與所有樹(shù)正確分類(lèi)個(gè)數(shù)平均值的比值,Bi為代價(jià)的平均值與第i棵樹(shù)的代價(jià)的比值。
wi的計(jì)算公式權(quán)衡了檢測(cè)精度和代價(jià)的值。由公式可知,若某棵決策樹(shù)分類(lèi)精度高,則其正確分類(lèi)個(gè)數(shù)越多,Ai也就越大;同時(shí)其代價(jià)低,則Bi也越大,這樣wi就較大。訓(xùn)練生成的隨機(jī)森林中每棵決策樹(shù)的生成是帶有隨機(jī)性的,所以每個(gè)決策樹(shù)的性能不盡相同。如果一棵決策樹(shù)的分類(lèi)精度高,代價(jià)低,那么它的性能應(yīng)該是較好的,所以它的分類(lèi)器權(quán)重應(yīng)該較大。
針對(duì)前文提出的模型和算法,利用KDD CUP99數(shù)據(jù)集[15]作為測(cè)試數(shù)據(jù),在其提供的訓(xùn)練集和測(cè)試集的基礎(chǔ)上,利用抽樣得到訓(xùn)練子集(樣本數(shù)為57 114)和測(cè)試子集(樣本數(shù)為37 464),對(duì)改進(jìn)算法進(jìn)行訓(xùn)練和測(cè)試,模擬入侵檢測(cè)過(guò)程,以對(duì)比改進(jìn)前后算法的性能。
其中,樣本類(lèi)別分布如表2所示。采用的評(píng)價(jià)指標(biāo)包括精度(P)、召回率(R)、F_score(F)、準(zhǔn)確度(AC)和誤報(bào)率(FPR)[12]。
表2 訓(xùn)練子集和測(cè)試子集樣本分布
由于不同的攻擊類(lèi)型未被系統(tǒng)檢測(cè)到而產(chǎn)生的后果不盡相同,同時(shí)一個(gè)正常的數(shù)據(jù)流被誤分類(lèi)為攻擊也會(huì)產(chǎn)生不同的代價(jià)。定義另一個(gè)比較指標(biāo)(Cost)來(lái)度量每個(gè)樣本被錯(cuò)誤分類(lèi)的成本損失,計(jì)算公式如下。
(7)
其中,Mij表示實(shí)際為類(lèi)別i、分類(lèi)結(jié)果為類(lèi)別j的樣本數(shù)量。Cij表示從KDD CUP99數(shù)據(jù)集獲得的每個(gè)樣本的代價(jià)值,Cij的具體取值如表3所示。N是用于測(cè)試的樣本總數(shù)。從Cost的定義可知,它是一個(gè)介于0~4之間的數(shù),對(duì)于分類(lèi)算法來(lái)說(shuō),其Cost的值越小越好。
表3 代價(jià)矩陣(Cij)
改進(jìn)前后算法的入侵檢測(cè)性能如表4所示。
表4 改進(jìn)前后算法入侵檢測(cè)性能比較
由表4可以看出,改進(jìn)算法相對(duì)于原算法在AC、P、R、F_score性能上都有明顯的提升,F(xiàn)PR明顯降低。改進(jìn)算法的代價(jià)為0.1445,而原算法為0.1735,改進(jìn)算法明顯降低了代價(jià),說(shuō)明改進(jìn)隨機(jī)森林算法優(yōu)于原算法。
為了進(jìn)一步分析實(shí)驗(yàn)結(jié)果,在入侵檢測(cè)過(guò)程中分別計(jì)算了各個(gè)類(lèi)別的檢測(cè)精度,得到結(jié)果如表5所示。
從表5可見(jiàn),改進(jìn)算法在Normal、Probing、R2L攻擊類(lèi)上檢測(cè)精度有所提升,而在U2L攻擊類(lèi)上檢測(cè)精度大幅度提高,符合預(yù)期設(shè)想。因?yàn)楦倪M(jìn)算法的基本思路是增加少數(shù)類(lèi)樣本(U2R、R2L)的學(xué)習(xí)度,從而提高檢測(cè)精度。
為了驗(yàn)證以上結(jié)果的普遍性,進(jìn)行了如下實(shí)驗(yàn)。在不同的測(cè)試集樣本數(shù)下,觀(guān)察對(duì)比檢測(cè)結(jié)果的Cost值,結(jié)果如圖2所示。
表5 算法改進(jìn)前后各類(lèi)別檢測(cè)精度比較
圖2 Cost隨測(cè)試集樣本數(shù)變化曲線(xiàn)圖
由圖2看出,隨著測(cè)試子集樣本數(shù)的改變,Cost的值基本不變,而且改進(jìn)隨機(jī)森林算法的Cost的值低于原算法的Cost值,說(shuō)明此結(jié)果具有普遍性,也進(jìn)一步驗(yàn)證了本文所提出的改進(jìn)的隨機(jī)森林算法在入侵檢測(cè)中與原算法相比性能更好。
本文提出了一種基于SDN的智能入侵檢測(cè)系統(tǒng)模型,該模型能夠充分發(fā)揮軟件定義網(wǎng)絡(luò)的集中管理、全局控制等優(yōu)勢(shì)。同時(shí),可以靈活使用各種機(jī)器學(xué)習(xí)算法進(jìn)行流分類(lèi),提高檢測(cè)效率。針對(duì)隨機(jī)森林算法存在的不足,尤其針對(duì)需要分類(lèi)的入侵流具有多特征、數(shù)據(jù)不平衡等特點(diǎn),提出了一種改進(jìn)的隨機(jī)森林算法,使用KDD CUP99數(shù)據(jù)集進(jìn)行性能仿真和對(duì)比分析。從實(shí)驗(yàn)結(jié)果來(lái)看,相對(duì)于原算法,改進(jìn)的隨機(jī)森林算法在檢測(cè)精度、代價(jià)等指標(biāo)上都明顯得到了提升,證明了該改進(jìn)算法在智能入侵檢測(cè)系統(tǒng)中的有效性。