易琳,王欣
(中國民用航空飛行學院計算機學院,廣漢618307)
由于人們對于網(wǎng)絡接觸的愈來愈多,如何保證網(wǎng)絡中的安全成為人民關注的重點。現(xiàn)在網(wǎng)絡入侵檢測的相關技術已經(jīng)逐漸成為在網(wǎng)絡安全的第一防線和重要手段。網(wǎng)絡入侵的技術越來愈多,針對網(wǎng)絡入侵相關檢測技術要求以及標準也在不斷提升。對于網(wǎng)絡入侵檢測技術而言,其首要任務便是將入侵檢測逐漸轉(zhuǎn)變成為分類問題以及模式識別兩個部分來進行處理。利用機器學習技術將網(wǎng)絡流量的特征行為劃分為正常流量和異常流量進行數(shù)據(jù)采集、預處理、建模和分類。現(xiàn)階段,針對網(wǎng)絡入侵相關檢測技術主要通過機器學習來完成,同時深度學習在檢測網(wǎng)絡入侵中的應用在不斷提升。當前,國內(nèi)外關于此方面的研究大多處于基礎理論研究狀態(tài),同時在體現(xiàn)結構以及相關技術方面獲得了一定成果。
機器學習中很多相關算法被廣泛用于網(wǎng)絡入侵檢測,常見的入侵檢測算法有很多,如KNN(K-nearest neighbor)。多種機器學習的算法結合的網(wǎng)絡入侵檢測方法可以適用于復雜的系統(tǒng)。文獻[1]創(chuàng)造性地提出了網(wǎng)絡入侵檢測相關模型;文獻[2]-[3]通過聚類的方法對流量進行分析;文獻[4]提出了通過蟻群算法旋轉(zhuǎn)神經(jīng)網(wǎng)絡參數(shù)進而針對網(wǎng)絡入侵進行檢測的方法;文獻[5]主要通過自動編碼器來進行網(wǎng)絡入侵檢測;文獻[6]提出一種以機器學習為基礎的網(wǎng)絡端口掃描檢測技術;文獻[7]借助卷積神經(jīng)網(wǎng)絡來展開入侵檢測,進而針對日志信息特征以及灰度圖進行提取,借助spark來針對日志信息進行處理,進而借助不斷迭代的方式來產(chǎn)生相應新特征,通過卷積來達到降噪目的;文獻[8]提出了以人工神經(jīng)網(wǎng)絡作為基礎的網(wǎng)絡入侵檢測系統(tǒng),降低了傳統(tǒng)方法的誤報率高的問題。
現(xiàn)階段,通過決策樹以及SVM等經(jīng)典機器學習算法來處理海量數(shù)據(jù)以及高緯度數(shù)據(jù),存在攻擊率檢測結果普遍偏低以及誤報率高等問題。而Boosting在處理大量數(shù)據(jù)時泛用性較好,可以有效的保證分類正確,提高檢測的精度。本文選擇Boosting算法對入侵進行檢測和識別,同時采用Boosting來針對樣本進行訓練Boosting算法訓練時間短,參數(shù)調(diào)整有獨特的優(yōu)勢。進而將正則項添加到迭代函數(shù)里面,并且將其用于模型復雜度的控制當中。筆者首先介紹Boosting算法,進而以此算法為基礎,協(xié)同kdd99數(shù)據(jù)集來針對入侵檢測模型進行構建,最終達到特征工程以及數(shù)據(jù)預處理的目的。為了對Boosting的模型進行提升,使用熱編碼與隨機森林選擇特征相結合,實現(xiàn)參數(shù)的優(yōu)化與特征的提取。最終實驗表明,和隨機森林算法進行相關比較,Boosting模型在分類正確率方面有明顯優(yōu)勢,大大提升了網(wǎng)絡入侵的檢測效果。
Boosting算法是集成學習算法的一種,多個弱學習器相互組成Boosting算法,通過多個弱學習器的結果來進行結果預測,進而獲取相應的投票結果。在進行訓練過程中,針對各弱學習器予以訓練,核心要點便是關注錯分樣本。Xgboost、AdaBoost以及GBDT為Boosting相關的三大注意算法類型。
Adaboost將處理屬于同一的訓練集,此算法會應用到多種不同的弱分類器,然后將許多弱學習器,進行相對的組合,以便組合成為強學習器。根據(jù)每次訓練的結果,調(diào)整樣本的權值,將得到的新權值使用與后面的訓練器進行訓練,然后每次新增一個弱分類器,直至最終獲得最小錯誤率以及預先制定的相應最大迭代次數(shù)。
在Adaboost算法模型上,大體上分為3個步驟:
(1)對于各訓練樣本給予相同比例權重值。

(2)經(jīng)過多輪迭代以后,然后利用權重分布Dm對數(shù)據(jù)集進行有針對性的學習,然后訓練,之后獲得基本分類器,m代表迭代了多少輪。

計算Gm(x)的誤差率:

針對Gm(x)的系數(shù)進行計算,am代表的是在最終分類器里面Gm(x)相應的重要程度:

對于權值分布進行更新,在之后的迭代進行使用。

Zt是規(guī)范化因子:

(3)組合各類弱分類器:

進而得到最終分類器:

作為一種以迭代疊加為基礎的決策樹算法,GBDT主要是將多個不同弱學習器予以組合,并且對應的預測結果當作是最終預測結果。GBDT算法模型具體步驟包含如下:
輸入訓練集{(x1,y1),(x2,y2),…,(xn,yn)},損失函數(shù)為L(y,f(x)),迭代m輪,m為迭代次數(shù)。
計算m輪的i個樣本殘差:

針對各節(jié)點相應最小損失函數(shù)進行計算,進而得到最佳的輸出值:

Rmj代表是第m棵樹所對應的一個葉子節(jié)點區(qū)域,j代表的也就是葉子節(jié)點數(shù)所對應的個數(shù),θ代表的也就是初始常數(shù),則本輪最終的算法模型::

Xgboost即 指 的 是eXtreme gradient boosting,此算法屬于梯度提升算法經(jīng)過優(yōu)化改進以后的算法。針對Xgboost對應預測模型可以通過如下式子來進行表示。

上述式子中K代表的是樹對應總個數(shù),fk代表的是第k顆樹,yi代表的是樣本xi對應預測結果。
Xgboost代表的是實現(xiàn)了運算速度以及模型表現(xiàn)得平衡算法,在模型當中引入了復雜度,進而針對算法效率進行衡量,以此來防止模型過擬合。關于Xgboost目標函數(shù)可以表示成為模型復雜度+傳統(tǒng)損失函數(shù)。

上述式子里面i代表的是一個數(shù)據(jù)集合里面所對應得某個樣本i,m代表的是某個k棵樹所對應的數(shù)據(jù)總量大小,k代表的是所有k棵樹對應的數(shù)目,上述式子里面每一項都是代表損失函數(shù),體現(xiàn)了損失函數(shù)是預測值和真實標簽之間所共同存在的差異。一般情況下,指的是經(jīng)過調(diào)節(jié)以后對應得均方誤差rmse。第二項所要代表的是一個模型對應的數(shù)據(jù)復雜度,借助于該樹在模型中采取相應變換方式來對其進行表示:

其中γ和λ為人工設置的參數(shù),T為葉子總數(shù),w代表的是葉子節(jié)點對應分值為w的L2模平方。
Boosting集成算法,將多個弱學習算法結合,訓練出精度較高的強學習算法。本文使用KDD99中10%kddcup.data_10_percent作為訓練數(shù)據(jù)集。如今,網(wǎng)絡入侵檢測應用最為普遍的數(shù)據(jù)集為KDD99,在此數(shù)據(jù)集里面保證的特征數(shù)為44個,大體上包含五個標簽大類,即probe、nomal、u21、dos以及r2l。具體分類如表1所示。

表1 kdd99特征值
在數(shù)據(jù)集上運用交叉驗證,并用交叉驗證得到的平均準確率,平均召回比例作為模型中最終評價的指標[8]文中將常見的Boosting集成算法用于網(wǎng)絡入侵檢測,首先對KDD99進行預處理,嘗試針對特征“service”予以合并,并且稀疏特征,結果發(fā)現(xiàn)redi、ntpu、urhi以及urhi相對應標簽均屬于normal,故而能夠?qū)⑸鲜鏊膫€標簽予以合并。通過One-hot編碼來針對離散型特征予以處理:在針對離散型特征予以數(shù)字化處理的過程中,此時的算法方能夠進行處理,如若某個特征包含三種值,即藍、紅和綠,假如編碼是“0”、“1”以及“2”,則“0”和“1”之間對應距離則是1,而“0”和“2”之間對應距離則是2,存在大小關系,然而對于原屬性值紅綠藍而言,則不存在大小區(qū)分。通過隨機森林來針對特征值進行提取,借助Xgboost、Adaboost以及GBDT算法來針對訓練數(shù)據(jù)集,然后用測試集進行預測,具體流程如圖1所示。

圖1 基于boosting的入侵檢測模型
本文選用召回率與準確率作為評價入侵檢測模型的指標,從不同的角度對基于Boosting集成學習算法的入侵檢測模型進行評估,評價指標的計算公式如下:

公式中的TP表示預測結果和實際結果同時攻擊的樣本數(shù)。TN代表預測結果和實際結果都死正常的樣本個數(shù),F(xiàn)P指的是將原本屬于正常類型識別成為攻擊型樣本數(shù),F(xiàn)N指的是將原本屬于攻擊型識別成為正常樣本對應個數(shù)。
借助GBDT、Xgboost以及Adaboost來處理經(jīng)過KD999數(shù)據(jù)集處理過后的數(shù)據(jù),進而構建模型。具體方法步驟參見如下:
(1)采取5折交叉驗證的方式處理試驗數(shù)據(jù)。并且將獲得數(shù)據(jù)劃分成為數(shù)量相同且不重復的五個部分,經(jīng)過分割以后對于各數(shù)據(jù)樣本均包含五個不同類別。
(2)借助四份數(shù)據(jù)來針對分類器構建模型,剩余1份數(shù)據(jù)則用于驗證召回率以及準確率。針對四種不同分類器構建模型分析,重復五次。
(3)選取5次建模結果平均值,進而獲得對應評價指標。
上述4種分類器對應分類準確率參見表2內(nèi)容。

表2 4種分類器的分類準確率結果
由表2可以觀察到,GBDT模型相比Ada?Boost模型、Xgboost模型而言,在U2R、normal、Dos以及probe等積累樣本的分類準確率方面優(yōu)勢更加顯著,即便Xgboost模型相比GBDT模型要差,但是顯著優(yōu)于隨機森林。
由表3可以觀察到,一般GBDT模型對應召回率維持在80%水平,但是總體上優(yōu)于隨機森林模型、AdaBoost以及Xgboost三種模型,并且隨機森林模型在召回率方面基本保持一致,故而可以在識別數(shù)據(jù)里面存在的異常樣本方面,GBDT模型更加合適。

表3 4種分類器的分類召回率結果
在本文中,筆者將Boosting算法作為研究目標對象,并且針對三種不同類型機器學習算法進行了對比分析,同時針對三種不同機器學習算法對應數(shù)學原理進行了論述,借助試驗對比了Xg?boost,AdaBoost,GBDT在KDD999準確率以及召回率上的表現(xiàn)。Boosting算法比隨機森林算法更具優(yōu)勢。在進行網(wǎng)絡入侵檢測方面,GBDT和Xgboost比AdaBoost更具優(yōu)勢。對于Boosting算法而言,在集成學習方面具有顯著優(yōu)勢特點,在今后的研究中,將采用真實的網(wǎng)絡入侵流量進行研究,進一步的運用在實際網(wǎng)絡異常檢測過程中。