易琳,王欣
(中國民用航空飛行學(xué)院計(jì)算機(jī)學(xué)院,廣漢618307)
由于人們對(duì)于網(wǎng)絡(luò)接觸的愈來愈多,如何保證網(wǎng)絡(luò)中的安全成為人民關(guān)注的重點(diǎn)?,F(xiàn)在網(wǎng)絡(luò)入侵檢測(cè)的相關(guān)技術(shù)已經(jīng)逐漸成為在網(wǎng)絡(luò)安全的第一防線和重要手段。網(wǎng)絡(luò)入侵的技術(shù)越來愈多,針對(duì)網(wǎng)絡(luò)入侵相關(guān)檢測(cè)技術(shù)要求以及標(biāo)準(zhǔn)也在不斷提升。對(duì)于網(wǎng)絡(luò)入侵檢測(cè)技術(shù)而言,其首要任務(wù)便是將入侵檢測(cè)逐漸轉(zhuǎn)變成為分類問題以及模式識(shí)別兩個(gè)部分來進(jìn)行處理。利用機(jī)器學(xué)習(xí)技術(shù)將網(wǎng)絡(luò)流量的特征行為劃分為正常流量和異常流量進(jìn)行數(shù)據(jù)采集、預(yù)處理、建模和分類。現(xiàn)階段,針對(duì)網(wǎng)絡(luò)入侵相關(guān)檢測(cè)技術(shù)主要通過機(jī)器學(xué)習(xí)來完成,同時(shí)深度學(xué)習(xí)在檢測(cè)網(wǎng)絡(luò)入侵中的應(yīng)用在不斷提升。當(dāng)前,國內(nèi)外關(guān)于此方面的研究大多處于基礎(chǔ)理論研究狀態(tài),同時(shí)在體現(xiàn)結(jié)構(gòu)以及相關(guān)技術(shù)方面獲得了一定成果。
機(jī)器學(xué)習(xí)中很多相關(guān)算法被廣泛用于網(wǎng)絡(luò)入侵檢測(cè),常見的入侵檢測(cè)算法有很多,如KNN(K-nearest neighbor)。多種機(jī)器學(xué)習(xí)的算法結(jié)合的網(wǎng)絡(luò)入侵檢測(cè)方法可以適用于復(fù)雜的系統(tǒng)。文獻(xiàn)[1]創(chuàng)造性地提出了網(wǎng)絡(luò)入侵檢測(cè)相關(guān)模型;文獻(xiàn)[2]-[3]通過聚類的方法對(duì)流量進(jìn)行分析;文獻(xiàn)[4]提出了通過蟻群算法旋轉(zhuǎn)神經(jīng)網(wǎng)絡(luò)參數(shù)進(jìn)而針對(duì)網(wǎng)絡(luò)入侵進(jìn)行檢測(cè)的方法;文獻(xiàn)[5]主要通過自動(dòng)編碼器來進(jìn)行網(wǎng)絡(luò)入侵檢測(cè);文獻(xiàn)[6]提出一種以機(jī)器學(xué)習(xí)為基礎(chǔ)的網(wǎng)絡(luò)端口掃描檢測(cè)技術(shù);文獻(xiàn)[7]借助卷積神經(jīng)網(wǎng)絡(luò)來展開入侵檢測(cè),進(jìn)而針對(duì)日志信息特征以及灰度圖進(jìn)行提取,借助spark來針對(duì)日志信息進(jìn)行處理,進(jìn)而借助不斷迭代的方式來產(chǎn)生相應(yīng)新特征,通過卷積來達(dá)到降噪目的;文獻(xiàn)[8]提出了以人工神經(jīng)網(wǎng)絡(luò)作為基礎(chǔ)的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),降低了傳統(tǒng)方法的誤報(bào)率高的問題。
現(xiàn)階段,通過決策樹以及SVM等經(jīng)典機(jī)器學(xué)習(xí)算法來處理海量數(shù)據(jù)以及高緯度數(shù)據(jù),存在攻擊率檢測(cè)結(jié)果普遍偏低以及誤報(bào)率高等問題。而Boosting在處理大量數(shù)據(jù)時(shí)泛用性較好,可以有效的保證分類正確,提高檢測(cè)的精度。本文選擇Boosting算法對(duì)入侵進(jìn)行檢測(cè)和識(shí)別,同時(shí)采用Boosting來針對(duì)樣本進(jìn)行訓(xùn)練Boosting算法訓(xùn)練時(shí)間短,參數(shù)調(diào)整有獨(dú)特的優(yōu)勢(shì)。進(jìn)而將正則項(xiàng)添加到迭代函數(shù)里面,并且將其用于模型復(fù)雜度的控制當(dāng)中。筆者首先介紹Boosting算法,進(jìn)而以此算法為基礎(chǔ),協(xié)同kdd99數(shù)據(jù)集來針對(duì)入侵檢測(cè)模型進(jìn)行構(gòu)建,最終達(dá)到特征工程以及數(shù)據(jù)預(yù)處理的目的。為了對(duì)Boosting的模型進(jìn)行提升,使用熱編碼與隨機(jī)森林選擇特征相結(jié)合,實(shí)現(xiàn)參數(shù)的優(yōu)化與特征的提取。最終實(shí)驗(yàn)表明,和隨機(jī)森林算法進(jìn)行相關(guān)比較,Boosting模型在分類正確率方面有明顯優(yōu)勢(shì),大大提升了網(wǎng)絡(luò)入侵的檢測(cè)效果。
Boosting算法是集成學(xué)習(xí)算法的一種,多個(gè)弱學(xué)習(xí)器相互組成Boosting算法,通過多個(gè)弱學(xué)習(xí)器的結(jié)果來進(jìn)行結(jié)果預(yù)測(cè),進(jìn)而獲取相應(yīng)的投票結(jié)果。在進(jìn)行訓(xùn)練過程中,針對(duì)各弱學(xué)習(xí)器予以訓(xùn)練,核心要點(diǎn)便是關(guān)注錯(cuò)分樣本。Xgboost、AdaBoost以及GBDT為Boosting相關(guān)的三大注意算法類型。
Adaboost將處理屬于同一的訓(xùn)練集,此算法會(huì)應(yīng)用到多種不同的弱分類器,然后將許多弱學(xué)習(xí)器,進(jìn)行相對(duì)的組合,以便組合成為強(qiáng)學(xué)習(xí)器。根據(jù)每次訓(xùn)練的結(jié)果,調(diào)整樣本的權(quán)值,將得到的新權(quán)值使用與后面的訓(xùn)練器進(jìn)行訓(xùn)練,然后每次新增一個(gè)弱分類器,直至最終獲得最小錯(cuò)誤率以及預(yù)先制定的相應(yīng)最大迭代次數(shù)。
在Adaboost算法模型上,大體上分為3個(gè)步驟:
(1)對(duì)于各訓(xùn)練樣本給予相同比例權(quán)重值。
(2)經(jīng)過多輪迭代以后,然后利用權(quán)重分布Dm對(duì)數(shù)據(jù)集進(jìn)行有針對(duì)性的學(xué)習(xí),然后訓(xùn)練,之后獲得基本分類器,m代表迭代了多少輪。
計(jì)算Gm(x)的誤差率:
針對(duì)Gm(x)的系數(shù)進(jìn)行計(jì)算,am代表的是在最終分類器里面Gm(x)相應(yīng)的重要程度:
對(duì)于權(quán)值分布進(jìn)行更新,在之后的迭代進(jìn)行使用。
Zt是規(guī)范化因子:
(3)組合各類弱分類器:
進(jìn)而得到最終分類器:
作為一種以迭代疊加為基礎(chǔ)的決策樹算法,GBDT主要是將多個(gè)不同弱學(xué)習(xí)器予以組合,并且對(duì)應(yīng)的預(yù)測(cè)結(jié)果當(dāng)作是最終預(yù)測(cè)結(jié)果。GBDT算法模型具體步驟包含如下:
輸入訓(xùn)練集{(x1,y1),(x2,y2),…,(xn,yn)},損失函數(shù)為L(zhǎng)(y,f(x)),迭代m輪,m為迭代次數(shù)。
計(jì)算m輪的i個(gè)樣本殘差:
針對(duì)各節(jié)點(diǎn)相應(yīng)最小損失函數(shù)進(jìn)行計(jì)算,進(jìn)而得到最佳的輸出值:
Rmj代表是第m棵樹所對(duì)應(yīng)的一個(gè)葉子節(jié)點(diǎn)區(qū)域,j代表的也就是葉子節(jié)點(diǎn)數(shù)所對(duì)應(yīng)的個(gè)數(shù),θ代表的也就是初始常數(shù),則本輪最終的算法模型::
Xgboost即 指 的 是eXtreme gradient boosting,此算法屬于梯度提升算法經(jīng)過優(yōu)化改進(jìn)以后的算法。針對(duì)Xgboost對(duì)應(yīng)預(yù)測(cè)模型可以通過如下式子來進(jìn)行表示。
上述式子中K代表的是樹對(duì)應(yīng)總個(gè)數(shù),fk代表的是第k顆樹,yi代表的是樣本xi對(duì)應(yīng)預(yù)測(cè)結(jié)果。
Xgboost代表的是實(shí)現(xiàn)了運(yùn)算速度以及模型表現(xiàn)得平衡算法,在模型當(dāng)中引入了復(fù)雜度,進(jìn)而針對(duì)算法效率進(jìn)行衡量,以此來防止模型過擬合。關(guān)于Xgboost目標(biāo)函數(shù)可以表示成為模型復(fù)雜度+傳統(tǒng)損失函數(shù)。
上述式子里面i代表的是一個(gè)數(shù)據(jù)集合里面所對(duì)應(yīng)得某個(gè)樣本i,m代表的是某個(gè)k棵樹所對(duì)應(yīng)的數(shù)據(jù)總量大小,k代表的是所有k棵樹對(duì)應(yīng)的數(shù)目,上述式子里面每一項(xiàng)都是代表損失函數(shù),體現(xiàn)了損失函數(shù)是預(yù)測(cè)值和真實(shí)標(biāo)簽之間所共同存在的差異。一般情況下,指的是經(jīng)過調(diào)節(jié)以后對(duì)應(yīng)得均方誤差rmse。第二項(xiàng)所要代表的是一個(gè)模型對(duì)應(yīng)的數(shù)據(jù)復(fù)雜度,借助于該樹在模型中采取相應(yīng)變換方式來對(duì)其進(jìn)行表示:
其中γ和λ為人工設(shè)置的參數(shù),T為葉子總數(shù),w代表的是葉子節(jié)點(diǎn)對(duì)應(yīng)分值為w的L2模平方。
Boosting集成算法,將多個(gè)弱學(xué)習(xí)算法結(jié)合,訓(xùn)練出精度較高的強(qiáng)學(xué)習(xí)算法。本文使用KDD99中10%kddcup.data_10_percent作為訓(xùn)練數(shù)據(jù)集。如今,網(wǎng)絡(luò)入侵檢測(cè)應(yīng)用最為普遍的數(shù)據(jù)集為KDD99,在此數(shù)據(jù)集里面保證的特征數(shù)為44個(gè),大體上包含五個(gè)標(biāo)簽大類,即probe、nomal、u21、dos以及r2l。具體分類如表1所示。
表1 kdd99特征值
在數(shù)據(jù)集上運(yùn)用交叉驗(yàn)證,并用交叉驗(yàn)證得到的平均準(zhǔn)確率,平均召回比例作為模型中最終評(píng)價(jià)的指標(biāo)[8]文中將常見的Boosting集成算法用于網(wǎng)絡(luò)入侵檢測(cè),首先對(duì)KDD99進(jìn)行預(yù)處理,嘗試針對(duì)特征“service”予以合并,并且稀疏特征,結(jié)果發(fā)現(xiàn)redi、ntpu、urhi以及urhi相對(duì)應(yīng)標(biāo)簽均屬于normal,故而能夠?qū)⑸鲜鏊膫€(gè)標(biāo)簽予以合并。通過One-hot編碼來針對(duì)離散型特征予以處理:在針對(duì)離散型特征予以數(shù)字化處理的過程中,此時(shí)的算法方能夠進(jìn)行處理,如若某個(gè)特征包含三種值,即藍(lán)、紅和綠,假如編碼是“0”、“1”以及“2”,則“0”和“1”之間對(duì)應(yīng)距離則是1,而“0”和“2”之間對(duì)應(yīng)距離則是2,存在大小關(guān)系,然而對(duì)于原屬性值紅綠藍(lán)而言,則不存在大小區(qū)分。通過隨機(jī)森林來針對(duì)特征值進(jìn)行提取,借助Xgboost、Adaboost以及GBDT算法來針對(duì)訓(xùn)練數(shù)據(jù)集,然后用測(cè)試集進(jìn)行預(yù)測(cè),具體流程如圖1所示。
圖1 基于boosting的入侵檢測(cè)模型
本文選用召回率與準(zhǔn)確率作為評(píng)價(jià)入侵檢測(cè)模型的指標(biāo),從不同的角度對(duì)基于Boosting集成學(xué)習(xí)算法的入侵檢測(cè)模型進(jìn)行評(píng)估,評(píng)價(jià)指標(biāo)的計(jì)算公式如下:
公式中的TP表示預(yù)測(cè)結(jié)果和實(shí)際結(jié)果同時(shí)攻擊的樣本數(shù)。TN代表預(yù)測(cè)結(jié)果和實(shí)際結(jié)果都死正常的樣本個(gè)數(shù),F(xiàn)P指的是將原本屬于正常類型識(shí)別成為攻擊型樣本數(shù),F(xiàn)N指的是將原本屬于攻擊型識(shí)別成為正常樣本對(duì)應(yīng)個(gè)數(shù)。
借助GBDT、Xgboost以及Adaboost來處理經(jīng)過KD999數(shù)據(jù)集處理過后的數(shù)據(jù),進(jìn)而構(gòu)建模型。具體方法步驟參見如下:
(1)采取5折交叉驗(yàn)證的方式處理試驗(yàn)數(shù)據(jù)。并且將獲得數(shù)據(jù)劃分成為數(shù)量相同且不重復(fù)的五個(gè)部分,經(jīng)過分割以后對(duì)于各數(shù)據(jù)樣本均包含五個(gè)不同類別。
(2)借助四份數(shù)據(jù)來針對(duì)分類器構(gòu)建模型,剩余1份數(shù)據(jù)則用于驗(yàn)證召回率以及準(zhǔn)確率。針對(duì)四種不同分類器構(gòu)建模型分析,重復(fù)五次。
(3)選取5次建模結(jié)果平均值,進(jìn)而獲得對(duì)應(yīng)評(píng)價(jià)指標(biāo)。
上述4種分類器對(duì)應(yīng)分類準(zhǔn)確率參見表2內(nèi)容。
表2 4種分類器的分類準(zhǔn)確率結(jié)果
由表2可以觀察到,GBDT模型相比Ada?Boost模型、Xgboost模型而言,在U2R、normal、Dos以及probe等積累樣本的分類準(zhǔn)確率方面優(yōu)勢(shì)更加顯著,即便Xgboost模型相比GBDT模型要差,但是顯著優(yōu)于隨機(jī)森林。
由表3可以觀察到,一般GBDT模型對(duì)應(yīng)召回率維持在80%水平,但是總體上優(yōu)于隨機(jī)森林模型、AdaBoost以及Xgboost三種模型,并且隨機(jī)森林模型在召回率方面基本保持一致,故而可以在識(shí)別數(shù)據(jù)里面存在的異常樣本方面,GBDT模型更加合適。
表3 4種分類器的分類召回率結(jié)果
在本文中,筆者將Boosting算法作為研究目標(biāo)對(duì)象,并且針對(duì)三種不同類型機(jī)器學(xué)習(xí)算法進(jìn)行了對(duì)比分析,同時(shí)針對(duì)三種不同機(jī)器學(xué)習(xí)算法對(duì)應(yīng)數(shù)學(xué)原理進(jìn)行了論述,借助試驗(yàn)對(duì)比了Xg?boost,AdaBoost,GBDT在KDD999準(zhǔn)確率以及召回率上的表現(xiàn)。Boosting算法比隨機(jī)森林算法更具優(yōu)勢(shì)。在進(jìn)行網(wǎng)絡(luò)入侵檢測(cè)方面,GBDT和Xgboost比AdaBoost更具優(yōu)勢(shì)。對(duì)于Boosting算法而言,在集成學(xué)習(xí)方面具有顯著優(yōu)勢(shì)特點(diǎn),在今后的研究中,將采用真實(shí)的網(wǎng)絡(luò)入侵流量進(jìn)行研究,進(jìn)一步的運(yùn)用在實(shí)際網(wǎng)絡(luò)異常檢測(cè)過程中。