何紅艷 黃國言 張 炳 陳 瑜
(燕山大學(xué)信息科學(xué)與工程學(xué)院 河北秦皇島 066001)(河北省軟件工程重點(diǎn)實(shí)驗(yàn)室 河北秦皇島 066001)
(hhongyan@stumail.ysu.edu.cn)
網(wǎng)絡(luò)入侵檢測系統(tǒng)(IDS)是檢測網(wǎng)絡(luò)入侵常用的工具,通過收集網(wǎng)絡(luò)的當(dāng)前運(yùn)行狀態(tài)數(shù)據(jù),并使用系統(tǒng)預(yù)置算法和歷史經(jīng)驗(yàn)來分析網(wǎng)絡(luò)流量[1].然而,網(wǎng)絡(luò)流量數(shù)據(jù)存在大量冗余和不相關(guān)的數(shù)據(jù),干擾了IDS的分類過程.因此對數(shù)據(jù)的維度進(jìn)行縮減是對數(shù)據(jù)挖掘、分析和應(yīng)用的過程中非常必要的一步.
由于IDS處理的數(shù)據(jù)量很大,因此基于機(jī)器學(xué)習(xí)的IDS面臨的主要挑戰(zhàn)之一是計(jì)算復(fù)雜度高,而計(jì)算復(fù)雜度高的主要原因是機(jī)器學(xué)習(xí)數(shù)據(jù)集中包含的冗余、不完整和無關(guān)的特征[2].為了能夠深入挖掘網(wǎng)絡(luò)流量數(shù)據(jù)中包含的關(guān)鍵信息并消除干擾冗余無關(guān)的特征,特征選擇技術(shù)目前已經(jīng)成為入侵檢測研究中非常重要的一個階段,在此過程中,不相關(guān)和冗余的特征被去除,而信息更豐富的特征被保留.用于入侵檢測系統(tǒng)的數(shù)據(jù)集包含許多特征,因此,需要采用特征選擇步驟來提高分類性能,減少計(jì)算時間[3-4].
基于此,國內(nèi)外很多學(xué)者展開了研究:Wang等人[5]提出了基于互信息和螢火蟲算法分別選擇合適的特征子集,并結(jié)合2種特征子集提出了特征選擇策略.Hamed等人[6]提出基于支持向量機(jī)的特征遞歸選擇方法,減少了特征冗余,提高了相關(guān)性.Ahmadi等人[7]提出了一種多數(shù)投票系統(tǒng),使用基于關(guān)聯(lián)的特征選擇、信息增益和卡方校驗(yàn)3種特征選擇方法來進(jìn)行最相關(guān)特征的選擇.王明等人[8]提出基于卷積神經(jīng)網(wǎng)絡(luò)算法的網(wǎng)絡(luò)入侵檢測系統(tǒng),該系統(tǒng)可以自動提取入侵樣本的有效特征,從而對入侵樣本進(jìn)行準(zhǔn)確分類,并在KDDCUP99數(shù)據(jù)集上評估了模型的準(zhǔn)確率.Sarvari等人[9]提出了基于異常點(diǎn)的入侵檢測方法,采用了改進(jìn)的布谷鳥搜索算法(CSA)、變異布谷鳥模糊算法(MCF)進(jìn)行特征選擇,采用進(jìn)化神經(jīng)網(wǎng)絡(luò)(ENN)進(jìn)行分類.Nancy等人[10]發(fā)現(xiàn)現(xiàn)有的入侵檢測系統(tǒng)只關(guān)注于檢測已知類型的攻擊,而忽略了識別新的攻擊類型,這些攻擊是由惡意用戶引入的,導(dǎo)致網(wǎng)絡(luò)的脆弱性和信息丟失,為了解決這一難題提出了一種新的入侵檢測系統(tǒng),利用智能決策樹分類算法檢測已知和未知類型的攻擊.為此,作者提出了一種新的特征選擇算法——動態(tài)遞推特征選擇算法.此外,通過對決策樹算法的擴(kuò)展,并與卷積神經(jīng)網(wǎng)絡(luò)相結(jié)合,提出了一種智能模糊時態(tài)決策樹算法來有效地檢測入侵者.Zhou等人[11]提出了一種基于特征選擇和集成學(xué)習(xí)技術(shù)的入侵檢測框架:首先提出了基于特征間相關(guān)性選擇最優(yōu)子集的啟發(fā)式降維算法CFS-BA,這是結(jié)合C4.5、隨機(jī)森林(RF)和森林懲罰屬性(forest PA)算法的集成方法;然后利用投票技術(shù)結(jié)合基本學(xué)習(xí)者的概率分布進(jìn)行攻擊識別.Zhong等人[12]提出了一種新的異常檢測模型HELAD,該模型基于阻尼增量統(tǒng)計(jì)算法進(jìn)行特征選擇和多種深度學(xué)習(xí)技術(shù)的有機(jī)集成進(jìn)行分類.Adhao等人[13]采用主成分分析進(jìn)行特征變換,然后使用遺傳算法選擇最優(yōu)特征集,最后使用決策樹作為分類器.結(jié)果表明,在遺傳算法之前采用主成分分析方法,可以在較少特征個數(shù)的情況下提高模型的精度.Mohamed等人[14]提出了基于信息論的特征選擇方法,結(jié)合互信息和“最大化最小化”方法來選擇特征,把冗余和不相關(guān)的特征刪除掉. Khammassi等人[15]應(yīng)用基于遺傳算法的封裝方法作為搜索策略,將邏輯回歸作為網(wǎng)絡(luò)入侵檢測系統(tǒng)的學(xué)習(xí)算法來選擇最佳特征子集.莫坤等人[16]提出了基于LightGBM算法的網(wǎng)絡(luò)入侵檢測系統(tǒng),對疑似入侵行為樣本進(jìn)行分類,通過KDDCUP99數(shù)據(jù)集的驗(yàn)證,實(shí)驗(yàn)結(jié)果表明,準(zhǔn)確率提高,訓(xùn)練時間縮短.Liu等人[17]提出了一種結(jié)合信息增益和遺傳搜索的混合特征選擇算法.首先,利用信息增益計(jì)算所有特征的信息增益值,根據(jù)信息增益對所有特征進(jìn)行排序,并按照指數(shù)遞增策略對排序特征進(jìn)行排序;其次,利用排序特征指導(dǎo)遺傳算法的搜索過程;最后,用分類算法對特征選擇后的數(shù)據(jù)集進(jìn)行測試.Anwer等人[18]提出一種利用不同機(jī)器學(xué)習(xí)分類器進(jìn)行網(wǎng)絡(luò)異常檢測的特征選擇框架.該框架通過使用過濾器和包裝器特性選擇方法組成不同的策略,用來解決入侵檢測問題.
通過特征選擇技術(shù)去除冗余和無關(guān)的特征,在能夠保持代表整個網(wǎng)絡(luò)流量數(shù)據(jù)的高質(zhì)量特征和關(guān)鍵信息的同時,可以非常有效地降低訓(xùn)練和檢測的時間,并且選擇出的最優(yōu)特征子集能增加或至少保持異常檢測的效果[19-20].受此啟發(fā),本文提出了一種具有多種不同特征選擇方法的入侵檢測模型,使用3種不同的機(jī)器學(xué)習(xí)分類算法對特征選擇后的數(shù)據(jù)集進(jìn)行測試,并選擇模型性能最好的組合方法.
圖1為本文提出的多種特征選擇方法構(gòu)建的入侵檢測模型流程圖,主要分為3個核心階段:階段1是對原始數(shù)據(jù)集進(jìn)行預(yù)處理操作,要將數(shù)據(jù)集整理成為機(jī)器學(xué)習(xí)算法可使用的數(shù)據(jù),其中包括文本特征的數(shù)值化以及Kmeans簡化數(shù)據(jù)集獲得典型數(shù)據(jù)集;階段2是不同的特征選擇方法分別與機(jī)器學(xué)習(xí)分類算法的組合;階段3依據(jù)2個評估指標(biāo)對使用不同組合策略構(gòu)建的模型進(jìn)行評估.本文以邏輯回歸、極限樹、隨機(jī)森林為RFE的基模型,并使用決策樹(DT)、隨機(jī)森林和XGBoost這3種機(jī)器學(xué)習(xí)分類器進(jìn)行研究,利用這3種分類器學(xué)習(xí)并測試了所討論策略中的每一種特征選擇方法.
圖1 入侵檢測模型框架流程圖
研究人員通常使用的KDDCUP99自誕生以來,已在該領(lǐng)域使用了近20年,由于網(wǎng)絡(luò)環(huán)境隨時間而變化,已經(jīng)不足以反映現(xiàn)在的真實(shí)網(wǎng)絡(luò)環(huán)境[21].本文采用了澳大利亞網(wǎng)絡(luò)安全中心(ACCS)實(shí)驗(yàn)室創(chuàng)建的公共入侵檢測數(shù)據(jù)集UNSW-NB15,該數(shù)據(jù)集中的異常行為分為九大類,每種異常行為類別也將分為特定的攻擊行為.與KDDCUP99的4種類別相比,UNSW-NB15的特定攻擊行為數(shù)量幾乎是其5倍.由于UNSW-NB15數(shù)據(jù)集的異常行為新穎,均衡且比例合理,因此更適合相關(guān)研究人員進(jìn)行入侵檢測研究,該數(shù)據(jù)集與KDDCUP99數(shù)據(jù)集相比,更能反映當(dāng)代網(wǎng)絡(luò)入侵流量的特點(diǎn)[22-23].
特征選擇過程可以看作是一個迭代過程[24],特征選擇的過程基本由以下幾個部分組成,如圖2所示:
圖2 特征選擇流程圖
根據(jù)學(xué)習(xí)算法的關(guān)系,特征選擇方法可分為2類:分類器獨(dú)立方法(過濾式Filter)和分類器依賴方法(封裝式Wrapper和嵌入式Embedded)[11].
本文關(guān)注的特征選擇技術(shù)是特征遞歸消除算法(RFE),特征遞歸消除是封裝式特征選擇算法.封裝式方法最顯著的特點(diǎn)是需要利用學(xué)習(xí)算法的性能來評估特征子集的優(yōu)劣,在進(jìn)行特征選擇過程中需要一個分類器,根據(jù)分類器性能去度量特征子集.封裝式方法首先通過搜索策略在特征集上選出候選特征子集,然后分類算法作為引導(dǎo)算法對特征子集進(jìn)行評價(jià),迭代這一過程,直到選出符合要求的特征子集[25].本文以邏輯回歸算法(LR)、極限樹算法(ET)和隨機(jī)森林算法(RF)分別作為特征遞歸消除算法的基模型對數(shù)據(jù)集進(jìn)行建模,得到每個特征對應(yīng)的權(quán)重值,再將權(quán)重絕對值最小的特征依次移出特征集合.RFE是在反復(fù)地對模型進(jìn)行構(gòu)建,遍歷其全部的屬性特征,直到獲得其重要性的最終排序結(jié)果[26].基于RFE的特征選擇流程圖如圖3所示:
圖3 基于RFE的特征選擇流程圖
算法1.基于RFE的特征選擇算法.
輸入:訓(xùn)練集Q={(a1,b1),(a2,b2),…,(an,bn)}、特征集F=(f1,f2,…,fn);
輸出:特征的重要度排序.
① 初始化原始特征集合F=(f1,f2,…,fn),特征排序集合R;
② FORF不為空 DO
③ 使用特征集F分別進(jìn)行以邏輯回歸算法、極限樹算法和隨機(jī)森林算法訓(xùn)練模型;
④ 分別計(jì)算各個模型下各個特征的權(quán)重值;
⑤ 對特征權(quán)重值進(jìn)行排序NewRand=sort(Rank);
⑥ 更新特征排序列表:Update(R)=R+F(NewRand);
⑦ 刪除貢獻(xiàn)最小的特征:Update(F)=F-F(NewRand);
⑧ END FOR
UNSW-NB15數(shù)據(jù)集[27]是一個類別不均衡的數(shù)據(jù)集,在網(wǎng)絡(luò)流量中入侵的數(shù)據(jù)樣本遠(yuǎn)遠(yuǎn)少于正常流量的數(shù)據(jù)樣本.UNSW-NB15數(shù)據(jù)集的總體分布情況:采用餅狀圖進(jìn)行可視化數(shù)據(jù)的總體分布,如圖4所示.
圖4 UNSW-NB15數(shù)據(jù)集分布餅狀圖
由于存在數(shù)據(jù)集不均衡和樣本數(shù)量多的情況,我們通過Kmeans算法選出UNSW-NB15數(shù)據(jù)集中具有代表性的典型數(shù)據(jù),也可以表示為對數(shù)據(jù)集進(jìn)行了一個聚類抽樣.聚類后生成的典型數(shù)據(jù)特征表現(xiàn)更為突出,因此在進(jìn)行特征選擇時,典型數(shù)據(jù)集更有利于選出能區(qū)分正常和異常流量較為關(guān)鍵的特征集合.
由于Kmeans聚類算法中k值的確定是一個非常關(guān)鍵的步驟.本次實(shí)驗(yàn)采用手肘法則來確定Kmeans算法的最優(yōu)k值[28].手肘法則在確定Kmeans算法中k值的步驟如下:
1) 初始化k的初始值;
2) 增加k的值;
3) 根據(jù)每個k值計(jì)算平方誤差和;
4) 分析平方誤差和急劇下降的k值;
5) 找到并確定肘形k值.
手肘法則的最佳聚類值將從誤差平方和SSE(sum of the squared errors)的值中選取,SSE值有一個顯著的肘形下降.SSE是一種統(tǒng)計(jì)方法,用于測量與已實(shí)現(xiàn)值的實(shí)際值的總差[29].SSE通常用作確定最佳聚類個數(shù)k的研究參考.
(1)
其中,Ci是第i個簇;p是Ci中的樣本點(diǎn);mi是Ci的質(zhì)心(Ci中所有樣本的均值).隨著聚類數(shù)k值的增加,樣本數(shù)據(jù)的劃分會進(jìn)一步細(xì)化,每個簇群的聚集程度會逐漸地提高,那么誤差平方和SSE自然會逐漸地變小[30].
所有的訓(xùn)練數(shù)據(jù)樣本作為輸入,我們將k值的取值范圍設(shè)置為1~9,對每個k值進(jìn)行聚類實(shí)驗(yàn)并且記錄相應(yīng)的SSE,然后繪制k和SSE的關(guān)系圖,如圖5所示.可以看出隨著k的增加,SSE呈下降趨勢且最終趨于穩(wěn)定狀態(tài),故以拐點(diǎn)肘部處的位置所對應(yīng)的k值被認(rèn)為是相對最優(yōu)的聚類數(shù)量值.由圖5可知,肘部對應(yīng)的k值為2,所以相對于UNSW-NB15數(shù)據(jù)集的聚類而言,聚類數(shù)值設(shè)置2為最佳.
圖5 k值選擇
因此采用參數(shù)k=2進(jìn)行聚類實(shí)驗(yàn)獲取典型代表數(shù)據(jù)集,是最能代表原始數(shù)據(jù)集關(guān)鍵信息以及反映原始數(shù)據(jù)集的實(shí)際情況.原始數(shù)據(jù)集在進(jìn)行Kmeans聚類后獲得典型數(shù)據(jù)集的樣本數(shù)量如表1所示,我們看出聚類前后的數(shù)量發(fā)生了變化,這也表明了通過Kmeans聚類算法達(dá)到了簡化數(shù)據(jù)集的目的.
表1 Kmeans(k=2)典型數(shù)據(jù)集的樣本數(shù)量
本文實(shí)驗(yàn)主要采用準(zhǔn)確率Acc(accuracy)和誤報(bào)率FAR(false alarm rate)作為二分類異常檢測效果的評估指標(biāo).在進(jìn)行多類分類異常檢測研究時,我們采用召回率Recall作為評價(jià)指標(biāo).因?yàn)閿?shù)據(jù)樣本多的類別準(zhǔn)確率高,數(shù)據(jù)樣本少的類別準(zhǔn)確率低,但依然能得到較高總體準(zhǔn)確率,所以并不能很好地描述分類器的性能,所以在進(jìn)行多類分類時我們選擇用召回率作為評價(jià)指標(biāo).準(zhǔn)確率是指在測試數(shù)據(jù)集中分類正確的樣本數(shù)與所有樣本數(shù)之比值.誤報(bào)率是指正例樣本中被誤分為反例的樣本數(shù)與正例樣本總數(shù)的比值和反例樣本中被誤分為正例的樣本數(shù)與反例樣本總數(shù)的比值之和的平均值[26].召回率是指正例樣本中分類正確的比率.分類結(jié)果的混淆矩陣如表2所示:
表2 分類結(jié)果混淆矩陣
Acc,FAR分別定義為
(2)
(3)
(4)
表3展示了采用不同特征選擇方法和不同機(jī)器學(xué)習(xí)分類器組合的評價(jià)結(jié)果.特征選擇的數(shù)量是在每種方法中效果最優(yōu)的特征個數(shù).由表3可以看出,最佳組合是以邏輯回歸算法為特征遞歸消除算法的基模型和決策樹算法為分類器的組合(LR-RFE)+DT,其分類準(zhǔn)確率可以達(dá)到88.27%,其誤報(bào)率也是最低的.
表3 不同策略的模型評價(jià)結(jié)果
為了更好地驗(yàn)證本文提出的算法的有效性,將本文的算法(LR-RFE)+DT在準(zhǔn)確率和誤報(bào)率2個指標(biāo)上與其他已發(fā)表的文獻(xiàn)中提出的算法進(jìn)行了對比,表4展示了對比結(jié)果.本文提出的算法的準(zhǔn)確率為88.27%,相比于其他算法均有提高,檢測效果最優(yōu),且誤報(bào)率低于大多數(shù)算法.綜上所述,驗(yàn)證了本文提出的算法在異常檢測中是有效可行的.
表4 本文提出算法與其他算法的檢測效果對比
為了進(jìn)一步驗(yàn)證我們提出的方法不僅在二分類中取得較好的結(jié)果,在多類分類中也獲得良好的效果,因此我們將本文提出的方法進(jìn)行多類分類研究.由于在網(wǎng)絡(luò)流量中入侵行為比正常行為要少得多,所以將正常流量進(jìn)行抽樣,降低正常流量樣本的數(shù)量,對數(shù)據(jù)進(jìn)行平衡.抽樣方法主要分為隨機(jī)抽樣和不平衡數(shù)據(jù)抽樣2種.我們選擇隨機(jī)抽樣中的分層抽樣方法對正常流量數(shù)據(jù)樣本抽樣,分層抽樣能明顯地降低抽樣誤差,我們將正常流量總樣本數(shù)量的50%進(jìn)行抽取,異常流量樣本數(shù)量保持不變.抽樣后的樣本數(shù)量如表5所示:
表5 抽樣前后樣本數(shù)量
我們的目標(biāo)是檢測入侵行為,對異常流量的多分類研究,采用上述的最佳組合方法(LR-RFE)+DT進(jìn)行實(shí)驗(yàn),在決策樹分類時為了防止決策樹過擬合,我們通過參數(shù)max_depth限定決策樹的深度,在一定程度上可以避免過擬合.調(diào)參結(jié)果展示如圖6所示.Max_depth=18為決策樹的最優(yōu)深度.
圖6 參數(shù)max_depth調(diào)參結(jié)果展示
多類分類召回率結(jié)果展示如表6所示,為了更為直觀地觀察結(jié)果,將本文提出方法與GALR-DT算法的多類分類召回率采用了柱形圖的形式進(jìn)行了結(jié)果對比的展示,如圖7所示.結(jié)果發(fā)現(xiàn),不同類型的攻擊行為的檢測率大部分均有提高,尤其是Backdoor,Analysis,DOS,Shellcode,Worm這5種攻擊類型的樣本數(shù)量相對較少,檢測率較低,我們提出的方法對這幾類攻擊類型的召回率均得到了提高.因此驗(yàn)證了本文方法不僅對二分類的高效性,對多分類同樣有效.
表6 多類分類召回率結(jié)果
圖7 本文方法與GALR-DT[15]多類別召回率對比
網(wǎng)絡(luò)傳輸過程中的海量數(shù)據(jù)中包含大量冗余和無關(guān)特征,使得入侵檢測系統(tǒng)難以及時處理,降低了效率.使用不同的機(jī)器學(xué)習(xí)方法和特征選擇方法組合進(jìn)行入侵檢測的研究具有很好的實(shí)用價(jià)值.本文利用Kmeans算法聚類得到典型數(shù)據(jù)集,提出了一種基于3種不同的特征選擇方法和3種不同機(jī)器學(xué)習(xí)分類算法組合的入侵檢測框架.模型評價(jià)指標(biāo)采用了準(zhǔn)確率和誤報(bào)率.實(shí)現(xiàn)結(jié)果表明,(LR-RFE)+DT方法表現(xiàn)優(yōu)于其他方法.并且驗(yàn)證了該方法在多類分類研究中同樣也取得了良好的結(jié)果,易于使用.接下來將對深度學(xué)習(xí)方面的特征選擇工程進(jìn)行研究,新型算法對于入侵檢測的應(yīng)用,以及對數(shù)據(jù)預(yù)處理階段采用更多不同的方法處理,如層次聚類、過采樣、欠采樣等.
致謝特別感謝黃國言教授、張炳講師的指導(dǎo),感謝陳瑜同學(xué)在實(shí)驗(yàn)上的幫助,同時感謝實(shí)驗(yàn)室其他同學(xué)們的支持.