張翼英,阮元龍,尚 靜
(天津科技大學人工智能學院,天津 300457)
近年來,隨著網絡技術的進步,網絡安全問題日益嚴峻,各種各樣的入侵方式層出不窮.根據中國互聯(lián)網應急中心2020年2月發(fā)布的《網絡信息安全與動態(tài)周報》[1]的數據顯示,境內感染網絡病毒的設備數量達到132萬個[2].網絡入侵威脅著用戶的信息安全,因此入侵檢測[3]的重要性日益凸顯,建立一套有效的檢測機制尤為必要.
隨著人工智能的興起,有學者[3-4]將機器學習引入入侵檢測系統(tǒng).但是,基于深度學習的入侵檢測方法存在3個問題:第一,深度學習結構復雜,需要花費大量時間訓練參數,檢測實時性不好[5];第二,訓練需要大量完備的數據,以增強模型的訓練效果[6];第三,神經網絡復雜的結構決定了其強大的擬合能力,但同時容易導致過擬合.
目前,國內外基于深度學習方法的入侵檢測研究均取得一定成果.針對訓練效率,Khan等[7]結合主成分分析方法(principal component analysis,PCA)和貝葉斯網絡,基于PCA提取數據主要特征,基于貝葉斯網絡進行入侵分類,但檢測時效性不好.Gurung等[8]采用基于深度置信網絡(deep belief network,DBN)與支持向量機(support vector machine,SVM)相結合的模型,模型的檢測準確率高,但在訓練時長上存在不足.Lopez-Martin等[9]采用基于稀疏自編碼器(sprarse auto-encoder,SAE)的特征提取方法,并用自學習(self-taught learning,STL)的方式對數據進行有監(jiān)督的訓練,檢測準確率在90%以上,但訓練時間過長.馮文英等[10]設計了一種完全基于前饋神經網絡的檢測模型(simplified feed-forward intrusion detection,SFID),模型通過神經元個數逐級遞減,消除樣本數據中的冗余特征,基于降維后的特征對網絡行為進行分類,實現(xiàn)特征抽取和入侵分類,提升了模型整體的訓練效率,但檢測結果仍有提升空間.
針對信息不完備的處理,池亞平等[11]將SVM作為弱分類器,每個SVM對應一個特征,一組SVM作為所有選取的特征所組成一個基分類器,Adaboost將多個基分類器組合,利用SVM和Adaboost的各自優(yōu)點構建了SVM-Adaboost模型.雖然提升了訓練效率,但是并沒有考慮數據類別不平衡的問題.Li等[12]采用半監(jiān)督算法對未標記的數據進行自動標記,雖然無需人工干預,但缺少對不完備信息數據的處理.Hamid等[13]構建小波變換和人工神經網絡的結合模型,降低了數據不平衡所造成的影響,提高了低頻數據類別的檢測準確率.Wu等[14]設計了SAE和Bagging組合的檢測方法,通過對大量高維、無標簽原始數據的特征降維,獲得原始數據的深層特征.算法引入了稀疏因子,使得棧式稀疏自編碼在檢測過程中有更好的泛化性能,檢測準確率較高,但對數據特征量要求大.饒緒黎等[15]設計了數據不完備下的入侵檢測方法,方法丟棄了部分特征,僅利用少量特征就獲得較好的檢測效果.
綜上所述,雖然有很多機器學習算法被應用于入侵檢測領域,也取得了不錯的檢測效果,但大多數模型的結構復雜、訓練時間長,難以滿足真實網絡環(huán)境下檢測實時性的要求,且其中一些模型對數據的特征非常敏感,一旦數據特征量減少,檢測準確率會迅速下降.
針對上述問題,本文提出一種面向不完備信息的集成神經網絡入侵檢測方法(intrusion detection with incomplete information based on ensemble neural network,IDII-ENN),實現(xiàn)了不完備信息下的輕量級網絡入侵檢測.模型主要包含了3個部分:首先,模型對數據類別不平衡的缺陷進行彌補,避免了因信息不完備導致訓練不充分的問題;然后,將采樣后的數據送入基于前饋神經網絡的分類器,網絡的低復雜度可以有效降低模型的訓練時間,滿足網絡入侵檢測實時性的要求;最后,采用基于集成學習的方法,對基分類器的分類結果進行融合,強化了模型的分類效果.模型在滿足檢測實時性的同時,以較高的準確率實現(xiàn)了不完備信息下的入侵檢測.
在網絡傳輸的過程中,存在數據丟包和網絡延遲等問題,以及為了保護隱私對數據進行隱藏的現(xiàn)象.因此,模型在數據層面,對網絡數據進行信息完備化處理,優(yōu)化各類別的數據量,彌補網絡數據自身的缺陷.模型在算法層面,基于前饋神經網絡對數據進行分類,降低神經網絡的復雜度,提升訓練效率.模型在分類階段,設計基于集成學習的結果融合方法,對多個基分類器的結果按照一定策略進行融合,得到最終的檢測結果,提高模型檢測的準確率.入侵檢測的模型如圖1所示.
圖1 IDII-ENN入侵檢測模型Fig. 1 IDII-ENN intrusion detection model
信息不完備導致了各類別數據的數據量不均衡的問題,為了避免訓練數據在各類別上存在較大的差別,避免訓練不充分.模型先對數據進行完備化處理,處理方法基于改進后的bootstrap方法.
自助抽樣法(bootstrap sampling,BS)是有放回的抽樣算法,在給定包含m個樣本的數據集D中,經m次有放回的抽樣生成一個數據子集.但在樣本訓練集的隨機采樣中,每個樣本被采集到的概率是1/m,不被采集到的概率為1?1/m.經m次采樣均沒有被采集到的概率是(1?1/)mm,因此當采樣次數足夠大時,在每輪的隨機采樣中,訓練集中仍有約36.8%的數據無法被采樣到.
為了使盡可能多的數據被采樣到,對BS稍作改進,將原始數據集按照抽取、選取、合并、丟棄這4步進行采樣,得到一份新的數據子集.平衡各類別間的數據量,基于BS的完備化處理如圖2所示.
圖2 基于BS的完備化處理Fig. 2 Complete processing based on BS
完備化處理步驟:
(1)假定分類器的個數為N個,為了提升采集到低頻樣本的概率,使用有放回的BS方法對數據進行N輪采樣,抽取N份數據子集D′,記為α1,α2,…,αN,αi中的數據量與原始數據集D中的數據量相同,記為m.
份數據,記為β1,β2,…,βlnN.
(3)將選取出的β1,β2,…,βlnN進行合并,得到數據集 β,即β=β1+β2+…+βlnN,從而獲取較單份采樣數據更豐富的樣本子集.
在獲取到一份新的樣本數據子集∑i后,重復N次上述的抽樣算法,得到基于BS有放回采樣的N份樣本數據子集,記為 ∑1,∑2,…,∑N,以便每個學習器學習.通過多輪的采集數據,降低了各類別在數據量上的不均衡;通過對數據的隨機丟棄,避免了因數據冗余而導致的訓練效率低的問題.
基于前饋神經網絡對入侵行為進行分類,前饋神經網絡包含輸入層、隱藏層、輸出層,其中隱藏層有3層,數據由輸入層傳入,經隱藏層降維,送進輸出層,輸出層采用softmax函數,并完成分類.前饋神經網絡分類器如圖3所示.
基于正則化后交叉熵損失函數,對樣本點為m、類別為n的交叉熵損失函數的表達式為式中:n為類別數量;m為當前batch的訓練樣本數量;yji為該樣本真實的one-hot編碼;ji為softmax
函數的輸出值,wi為權重值.loss函數中加入正則項,預防模型因個別特征的影響產生較大誤差.
模型的參數集合為θ= { wi,bi,i =1,2,3,4},基于隨機低度下降(stochastic gradient descent,SGD)的方法對參數進行更新.參數θ的更新表達式為式(3),α為模型更新的速率.
集成學習是使用多個學習器共同學習的算法,然后使用一定的策略對多個學習器的結果加以融合,從而獲得比單個學習器更好的學習效果.本文設計了基于Bagging算法的結果融合方法.首先對網絡數據按照前文所述方法進行N次重復采樣,獲得N份不完全相同的訓練數據;然后將每一份數據送入前饋神經網絡分類器,并行對其進行入侵檢測的判斷;最后對多個結果進行融合,得到最終的檢測結果.基于Bagging的集成結果融合如圖4所示.
圖4 基于Bagging的集成結果融合Fig. 4 Ensemble result fusion based on Bagging
模型基于集成學習的方法將多個弱分類器組合成一個強分類器,強化模型的分類效果,提升了分類準確率.通過簡化神經網絡模型的復雜度縮短了模型訓練時間.經過采樣后的數據具有較大差異性,提高了基于集成學習分類方法的檢測準確率.模型基于投票表決法融合了多個分類器的結果,投票公式為
式中:Ni表示類別為i的分類器的個數.f(x)即為入侵檢測數據的最終類別.
KDD Cup 99數據集是入侵檢測的標準數據集.在入侵檢測前,先對數據進行預處理,包括特征數值化和歸一化等操作.在入侵檢測模塊,基于前饋神經網絡對采樣后的數據進行分類,并用集成學習將多個弱分類器組成一個強分類器.本文對每個數據集進行多次實驗,并在測試集上驗證了模型的有效性.
KDD Cup 99數據集的每個網絡連接被標記為正?;虍惓?,異常類型包含拒絕服務攻擊(denial of service,DOS)、遠程主機攻擊(remote to local,R2L)、用戶到根攻擊(user to root,U2R)、端口掃描攻擊(Probe)等共39種攻擊類型,其中22種攻擊類型出現(xiàn)在訓練集中,另有17種未知攻擊類型出現(xiàn)在測試集中.數據類型數量分布見表1.
樣本特征包含數值型數據和字符型數據(protocol_type,service,flag),采用one-hot編碼方式將字符型數據數值化處理.部分數據存在數值量綱差異大的問題,而過大的量綱差異導致網絡收斂慢,故對數據進行歸一化,歸一化公式為式中:x′為歸一化后的特征值;x為原特征值;xmax和 xmin分別為該特征屬性中的最大值和最小值.模型采用Min-Max線性歸一化方法,把所有特征均映射到[0,1]的區(qū)間上.
使用準確率(accuracy,AC)和訓練時間對模型的檢測效果進行評價.樣例根據其真實類別與分類器的預測類別組合分為真正例(true positive,TP)、假正例(false positive,F(xiàn)P)、真反例(true negative,TN)、假反例(false negative,F(xiàn)N).準確率的定義表達式為
模型的準確率表示預測正確的個數占全部樣本的百分比,百分比越大表示模型的檢測效果越好.
為模擬信息不完備的情況,實驗中將數據特征量遞減,觀察IDII-ENN準確率的變化.
準確率的實驗包括:第一,觀察數據特征量對準確率的影響,特征量從80%特征開始,以10%遞減,直至為總特征量的10%,對比IDII-ENN、SFID、SAE各自的準確率;第二,觀察分類器個數的差異對準確率的影響,比較3種方法在準確率上的表現(xiàn).
訓練時間的實驗包括:第一,在分類器個數變化的情況下比較集成算法的耗時;第二,在確定分類器個數的情況下,比較各算法在特征量不同情況下的耗時.
在數據預處理后,實驗對比了SFID、SAE、IDIIENN算法在信息不完備情況下的檢測準確率.為避免結果的隨機性,在相同實驗環(huán)境下,進行多次實驗,取平均準確率為最終結果.IDII-ENN算法在特征量40%時獲得了較高的準確率且趨于穩(wěn)定.3種算法實驗的準確率如圖5所示.
圖5 不同算法的檢測準確率Fig. 5 Detection accuracy of different algorithms
集成學習的分類器數量會對模型的檢測準確率產生影響,因此設計了Bagging-DL和SVMAdaboost在不同分類器個數下的準確率對比實驗.本文的模型在分類器個數達到60個時就獲得了較高的準確率,該結果優(yōu)于對比算法(圖6).
圖6 不同分類器下的檢測準確率Fig. 6 Detection accuracy of different classifiers
為了驗證模型對各數據類型的分類準確率情況,本文設計了IDII-ENN模型在不同特征量下對各數據類型的檢測實驗(圖7).IDII-ENN對Normal、DOS、Probe這3類數據檢測結果較好,在特征數量達到50%時就已經獲得了較高的準確率.3個類別的檢測準確率曲線非常接近,表明在相同條件下數據量對模型檢測有著重要影響,訓練數據越多,模型的擬合效果越好.同時,原始數據的數據量對模型的初始訓練非常重要,可以使模型快速獲得較好的檢測效果.模型對U2R、R2L的檢測在特征較多時同樣可以獲得較好的檢測準確率.這說明本文的模型對各數據類型的分類均有良好的表現(xiàn).
圖7 不同數據類型的檢測準確率Fig. 7 Detection accuracy chart of different data types
損失函數在不同的神經網絡中有不同的效果,實驗對比了Mean Squared Error、Root Mean Square Error、Mean Absolute Error、Cross Entry等損失函數的優(yōu)化效果.為了驗證不同特征數量下?lián)p失函數的表現(xiàn),本文對比了幾種損失函數在特征數量為20%、40%、80%下的檢測準確率(表2).通過實驗結果可知,Cross Entry損失函數相比其他損失函數在檢測準確率上的表現(xiàn)更好.
表2 不同特征數量各類損失函數的檢測準確率Tab. 2 Accuracy of various loss functions of different feature quantites
為了驗證模型在檢測時間上的表現(xiàn),對比了IDII-ENN、SFID、SAE算法在信息不完全情況下的訓練時間.Bagging-DL和SVM-Adaboost都是基于集成學習的分類算法,本文設計了兩種算法在不同分類器數量下訓練時間的對比實驗.實驗中對各算法的運行時間進行記錄,在相同實驗環(huán)境下,多次實驗,取平均運行時間作為最終結果.3種算法在不同特征數量的訓練時間如圖8所示.Bagging-DL和SVMAdaboost不同分類器數量的訓練時間如圖9所示.
圖8 不同特征數量的訓練時間圖Fig. 8 Training time graph of different feature quantities
圖9 不同分類器數量的訓練時間圖Fig. 9 Training time graph for different number of classifiers
由圖8和圖9可知:本文模型和SFID模型訓練時間相差無幾,但本文的算法在訓練時間上更平穩(wěn),相較之下SAE的訓練時間略長.在特征數量減小時,IDII-ENN、SFID、SAE這3種算法的訓練時間均有一定的變化,表明數據的特征數量對這3種算法的訓練時間存在影響.集成學習分類器個數對訓練時間也有影響,隨著分類器數量增加,訓練時間也隨之上升,但是整體來看影響并不大.
針對傳統(tǒng)入侵檢測方法很難同時滿足準確率和實時性的雙重要求,同時為了解決不完備信息下入侵檢測的問題,本文提出了一種面向不完備信息網絡的集成神經網絡入侵檢測方法.該方法的檢測結果與其他算法的結果在準確率方面不相上下,但在訓練時間上縮短了15%,表明該方法具有可推廣性,能夠滿足網絡入侵檢測實時性的需求.