張全龍,王懷彬
(天津理工大學計算機科學與工程學院,天津 300384)
(*通信作者hbwang@tjut.edu.cn)
計算機技術飛速發展,它已經滲透到人們的工作和日常生活中,給人們帶來了極大的便利;但同時網絡攻擊變得越來越頻繁,網絡安全已成為人們必須面對的挑戰[1-3]。入侵檢測技術是網絡安全的重要組成部分,而入侵檢測技術是分類問題,需要做的事情是建立入侵檢測模型,使其能夠有效地對各種網絡攻擊進行分類識別,以便及時采取安全防范措施。
當前,廣為人知的入侵檢測方法之一是使用不同的機器學習技術來降低錯誤率,例如K 最近鄰(K-Nearest Neighbor,KNN)[4]、神經網絡(NeuralNetwork,NN)[5]和支持向量機(Support Vector Machine,SVM)[6-8]已廣泛用于入侵檢測。文獻[9]中提出了一種基于KNN 回歸的動態多間隔預測模型;文獻[10]中提出了一種混合的機器學習技術,結合了K-means 和SVM 來檢測攻擊。集成分類器(例如Adaptive Boosting[11]、隨機森林(Random Forest,RF)[12-13])通常由多個弱分類器構成,避免在訓練過程中過擬合,可以實現更強大的分類功能。Al-Yaseen 等[14]使用SVM 和改進的K-means 算法來構建多層混合入侵檢測模型;但是,對于KDD CUP99 數據集中U2R(User to Root)和R2L(Remote to Local)的低頻攻擊樣本,此模型的檢測率非常低,遠低于其他高頻樣本的檢測率。盡管基于機器學習的網絡入侵檢測模型具有強大的檢測能力和適應網絡環境變化的自適應能力,但是它們仍然受到不平衡數據的影響。卷積神經網絡(Convolutional Neural Network,CNN)[15]是深度學習研究的重點,在計算機視覺、語音識別和自然語言處理方面取得了出色的研究成果。與傳統的特征選擇算法相比,它可以自動學習更好的特征。文獻[16]中首先使用不同的降維方法去除了多余的特征,然后將降維數據呈現給CNN。盡管獲得了很好的準確性,但它掩蓋了CNN 的優勢——自動提取特征。門控循環單元(Gated Recurrent Unit,GRU)是遞歸模型,已用于如自然語言處理和情感分析等序列學習。文獻[17]中實現了網絡入侵檢測模型的GRU、MLP(Multi-Layer Perceptron)和Softmax 模塊,并在KDD CUP99和NSL-KDD訓練數據集上進行了實驗;文獻[18]中進一步提出通過一維卷積來統一和共享多傳感器權重的問題;文獻[19]中設計結合了CNN 和長期短期記憶(Long Short Term Memory,LSTM)網絡的模型;文獻[20]中構建了一個新的深層神經網絡(Deep Neural Network,DNN)模型,該模型使用GRU 和MLP 提取數據信息,仿真結果表明,GRU 單元在入侵檢測方面比LSTM單元更有效。
為了提高檢測的分類準確度,本文模型通過膨脹卷積來增強感受野的同時提取增強的特征,并且使用GRU 模型來挖掘數據樣本之間的時間序列信息。本文模型最大優點是可以準確提取數據的特征,并且檢測到以前從未見過的攻擊。
本文模型主要貢獻如下:
1)使用膨脹卷積來增大感受野,以此來提高模型對特征獲取的準確度,對數據樣本進行充分的學習。
2)使用GRU 神經網絡來獲取數據之間的時間關系特征,以此來檢測未知的攻擊。
3)使用隨機梯度下降(Stochastic Gradient Descent,SGD)優化算法用于協助訓練模型,并且使用動量法來增加SGD 更新的穩定性。
在傳統的卷積神經網絡中,會使用池化層來保持特征不變性并避免過度擬合,但是會大大降低空間分辨率,丟失特征圖的空間信息。當加深卷積神經網絡的層時,網絡需要更多的參數,并導致更多的計算資源消耗。Yu等[21]提出的膨脹卷積很好地解決了這一問題。膨脹卷積是一種卷積算子,它使用不同的膨脹因子在不同范圍使用相同的濾波器,膨脹卷積能夠更有效地擴展感受野。與傳統卷積相反,膨脹卷積的內核中存在孔,孔的大小為膨脹率。一維卷積的公式如下:

其中:f為輸入,w為卷積核,t為卷積核的大小,p為卷積的下限值,q為卷積的上限值。如果是膨脹卷積,則一維膨脹卷積的公式如下:

其中l是膨脹率。本文對輸入數據應用膨脹卷積時,與傳統卷積相比,感受野將得到擴展,而不會降低分辨率,能夠在不增加參數數量或計算量的情況下增大感受野,換句話說,本文使用相同層數可以實現更大的感受野,而無需引入比普通卷積更多的操作。膨脹卷積是一個將步幅進行卷積而元素分開的卷積過程,與傳統的卷積相比,膨脹卷積是到較寬區域的稀疏連接。本文堆疊3 個具有不同步幅的膨脹卷積層,盡管膨脹卷積具有與常規卷積相同的過濾器大小,但是通過堆疊它們,可以感知更大的范圍。
本文設計的膨脹卷積模型如圖1 所示。該模型具有3 個膨脹卷積層,每個卷積層的膨脹率分別為2、4、8:當膨脹率為2 時,膨脹卷積過后特征集中神經元數量為32;當膨脹率為4時,膨脹卷積過后特征集中神經元數量為64;當膨脹率為8時,膨脹卷積過后特征集中神經元數量為128。這樣本文模型可以從原始數據中提取盡可能多的特征,并且可以得到神經元數量分別為32、64、128 的特征集。經過3 個膨脹卷積層后,特征集可以獲取原始數據包含的所有信息。在每個卷積層之后,都有一個ReLU(Rectified Linear Unit)激活層,用于為模型添加非線性特征。本文不在每個卷積層之后都使用maxpooling 層,而是在3 個膨脹卷積層之后加入max-pooling 層來防止過擬合。

圖1 膨脹卷積模型Fig.1 Dilated convolution model
本文使用多級膨脹卷積神經網絡捕獲數據之間的局部相關性和長期依賴性。具體來說,本文的卷積神經網絡是三級膨脹卷積神經網絡,它能夠以指數形式擴展接受域級別而不增加參數數量,因此,膨脹卷積捕獲長期依賴性成為可能。本文使用具有不同膨脹率的多級膨脹卷積,這樣做避免了由膨脹導致的重要局部相關性缺失,也能使輸入的所有數據都能夠參與計算。
傳統的深層神經網絡(DNN)在樣本分類和特征提取方面突破了淺層網絡的局限性,具有強大的非線性擬合能力。然而,DNN 沒有考慮分類樣本之間的時間關系,導致分類過程中一些信息的丟失。循環神經網絡(Recurrent Neural Network,RNN)[22]有效地解決了時序依賴性問題。RNN 引入了隱藏層單元之間的反饋連接,以便網絡可以將學習到的信息保留到當前時刻,并確定網絡的最終輸出結果以及當前時刻的輸入;但是,RNN 無法學習導致梯度消失的長期依賴關系[23]。LSTM 是許多用于改善RNN 的網絡結構中最廣泛使用和有效的結構之一,但是LSTM 中有很多參數,并且需要花費更多的時間來將模型參數調整為最佳狀態。與LSTM 相比,GRU 的門更少,可以節省更多的訓練時間和計算資源。圖2顯示了GRU的典型架構。

圖2 GRU模型Fig.2 GRU model
GRU 中有兩個主門,即更新門和重置門。更新門用于控制將多少先前狀態信息帶入當前狀態;重置門用于控制GRU忽略前一時刻的狀態信息的程度。所有的關系定義如下:
1)重置門:

2)更新門:

門控循環單元中的重置門和更新門的輸入均為當前時間步輸入Xt與上一時間步隱藏狀態Ht-1,輸出由激活函數為sigmoid 函數的全連接層計算得到。其中Wr、Wz是權重參數,br、bz是偏差參數。
3)候選狀態:

4)隱藏狀態:

其中:Wh、W是權重參數;bh是偏差參數。門控循環單元將計算候選狀態來輔助稍后的隱藏狀態的計算,將當前時間步重置門的輸出與上一時間步隱藏狀態做按元素乘法。如果重置門中元素值接近0,那么意味著重置對應隱藏狀態元素為0,即丟棄上一時間步的隱藏狀態;如果元素值接近1,那么表示保留上一時間步的隱藏狀態。這個設計可以應對循環神經網絡中的梯度衰減問題,并更好地捕捉時間序列中時間步距離較大的依賴關系。
本文通過將膨脹卷積與GRU 模型結合在一起形成新模型來提取數據的特征,兩者的結合構成了一個深層網絡,可以實現更優化的結果。其結構如圖3所示。

圖3 基于膨脹卷積和GRU的組合模型Fig.3 Combined model based on dilated convolution and GRU
該模型由膨脹卷積部分、GRU 部分、全連接層部分和輸出部分組成。由于膨脹卷積和GRU 網絡結構的輸入形式不同,因此提取的空間特征會在膨脹卷積部分的輸出處進行調整,保證GRU 部分輸入的大小與膨脹卷積的輸出大小一致,以滿足GRU 模型的輸入格式。在GRU 模型的輸出層之后連接一個全連接層,對先前提取的特征進行集成,最后一個全連接的層的輸出值傳遞給Softmax 進行分類。模型各層參數如表1所示。

表1 模型中各層結構參數Tab.1 Parameters of different layers of model
膨脹卷積部分提取的特征用于訓練分類模型,考慮到特征在不同位置具有局部性,因此在三層膨脹卷積之后使用池化層,在一定程度上匯總不同位置的統計信息,將小鄰域中的特征點集成以獲得新特征,以減少數據量并避免過擬合。經過膨脹卷積和合并后,使用reshape 函數重新整形為向量;然后,通過全連接層獲得輸出,這樣就可以得到膨脹卷積提取的空間特征。膨脹卷積可以準確提取空間特征,但在學習序列相關信息時效果不佳,因此,為提高僅使用膨脹卷積的網絡入侵檢測的準確性,本文加入了GRU模型。膨脹卷積和GRU模型都代表了深度學習算法,膨脹卷積可以提取空間維度中的數據特征,并且增大感受野,GRU 具有可以長時間保存上下文歷史信息的特性,并且可以在時間級別上實現數據特征的提取。
本文實驗的總體步驟如圖4 所示。首先使用所提出的模型提取數據的特征,以提高分類的準確性;訓練后,獲得了具有良好分類性能的模型,并使用該模型對測試集進行分類,以獲得優異的分類結果。本文實驗使用的CPU 為Intel Core i7-7700、GPU 為GeForce GT 730、操作系統為Windows 10,內存為16 GB。

圖4 實驗總體步驟Fig.4 General steps of experiment
本文使用SGD 優化算法,經過多次和小范圍實驗訓練,實驗參數設置如下:學習率設置為0.01,此時模型的學習狀態最佳;權值衰減系數為0.000 001,此時模型的復雜度對損失函數影響最小;動量(momentum)設置為0.9,此時SGD的穩定性最好;正則化方法Dropout失活率設置為0.2。
本文使用3 個公開可用的入侵檢測數據集KDD CUP99、NSL-KDD 和UNSW-NB15 數據集。在入侵檢測領域,KDD CUP99 和NSL-KDD 是著名的數據集[24],兩個數據集中每個入侵記錄都具有42 維特征,標簽主要包含普通數據和4 種攻擊數據:DoS(Denial of Service)、Probe、U2R、R2L。UNSW-NB15數據集包含許多現代網絡的新攻擊,可以將其分為1 個正常類和9 個攻擊類。在本文的實驗中,KDD CUP99、NSL-KDD、UNSW-NB15數據集中樣本類別分布如表2所示。

表2 數據集樣本分布Tab.2 Dateset sample distribution
本文對數據集中的字符型特征屬性進行數字化和標準化,得到一個標準化的數據集,然后將每個數據轉換為二維矩陣,使其符合膨脹卷積模型的輸入格式。處理后的數據集有訓練數據集和測試數據集,訓練數據集用來訓練網絡模型,測試數據集用來驗證模型的有效性。由于數據特征的復雜性,數據預處理包括以下3步:
1)數值化處理。
由于模型的輸入是數字矩陣,因此使用one-hot 編碼方法將數據集中具有符號特征的數據映射到數字特征向量。將KDD CUP99 和NSL-KDD 數據集中正常數據(Normal)和4 種攻擊類型(DoS、Probe、U2R、R2L)這5 種類標簽進行數值化處理,也對UNSW-NB15 數據集中正常數據(Normal)和9種攻擊類型(Reconnaissance、Backdoor、Worms、Analysis、Shellcode、Generic、Fuzzers、DoS、Exploits)這10 種類標簽進行數值化處理。
2)標準化處理。
在數據集中,不同類別的數據值大小明顯不同,最大值的范圍變化很大。為了便于算術處理和消除尺寸,采用歸一化處理方法,在[0,1]區間內均勻且線性地映射每個特征的值范圍。用以下方程將數值數據歸一化為[0,1]:

其中:max為樣本數據的最大值,min為樣本數據的最小值,x為標準化后的數據。
3)將標準化數據轉換為矩陣。
讀取數據的每個網絡記錄都將進行尺寸轉換以符合網絡模型的格式。為了輸入到膨脹卷積神經網絡中,使用reshape轉換函數將網絡數據重塑為矩陣。
在本文中,準確率(Accuracy)、精確率(Precision)、召回率(Recall)和F1-measure 被用作評估模型性能的關鍵指標。這些指標是從混淆矩陣的4 個基本屬性中得出的,如表3 所示,其中TP(True Positive)表示攻擊數據被正確地分類為攻擊,FP(False Positive)表示正常數據被錯誤地分類為攻擊,TN(True Negative)表示正常數據被正確地分類為正常,FN(False Negative)表示攻擊數據被錯誤地分類為正常。

表3 混淆矩陣Tab.3 Confusion matrix
本文將使用以下評估指標來評估本文所提出模型的性能。

實驗包括訓練和測試兩個過程,使用KDD CUP99 數據集的訓練集和測試集來進行實驗。本文模型使用訓練集對模型進行訓練,最后使用測試集對模型進行測試。
五個標簽類的評估指標值通過圖5 可以被更清楚地觀察到,低頻樣本U2R、R2L類在本文模型下,Precision、Recall、F1-measure三個評估指標依然擁有較高的值。

圖5 KDD CUP99數據集的五個標簽類的評估指標值Fig.5 Evaluation index values of five label classes of KDD CUP99 dataset
為了評估所提模型對未知攻擊的檢測效果,使用了KDD CUP99數據集中17種未知攻擊類型,這17種未知攻擊類型存在于測試集中,而在訓練集中不存在。這17 種未知攻擊的召回率如表4 所示。從檢測結果上可以看出,本文模型可以對未知攻擊進行檢測。

表4 KDD CUP99數據集上未知攻擊類型的檢測結果Tab.4 Unknown attack type detection results on KDD CUP99 dataset
目前,許多機器學習和深度學習算法已應用于網絡入侵檢測。支持向量機和經典卷積神經網絡廣泛用于網絡入侵檢測,因此,將入侵檢測中常用的經典分類模型與本文中的模型進行了比較。本文使用SVM[7]、S-NDAE(Stacked Nonsymmetric Deep AutoEncoder)[25]、MHCVF(Multilevel Hybrid Classfier with Variant Feature sets)[26]模型和本文模型在KDD CUP99 數據集上對分類性能進行了比較,如表5所示。
從表5 可以看出,與傳統的SVM、S-NDAE、MNCVF 模型相比,本文模型測試結果最好,準確率達到99.78%,召回率達到99.33%。當面對復雜數據時,從分類結果可以看出,本文模型仍然比其他模型獲得更高的準確率。

表5 KDD CUP99數據集的上各模型實驗結果對比 單位:%Tab.5 Comparison of experimental results of different models on KDD CUP99 dataset unit:%
為了進一步驗證本文模型,還對NSL-KDD 數據集進行了實驗。各指標的分布通過圖6 可以被更清楚地看到,選取入侵檢測中常用的經典分類模型與本文模型進行了比較。本文使 用SCDNN(Spectral Clustering Deep Neural Network)[27]、DNN[28]、SMOTE+CANN(Synthetic Minority Oversampling Technique and Cluster center And Nearest Neighbor)模型[29]和本文模型在NSL-KDD 數據集上對分類性能進行了比較,比較結果如表6所示。

圖6 NSL-KDD數據集的五個標簽類的評估指標值Fig.6 Evaluation index values of five label classes of NSL-KDD dataset

表6 NSL-KDD數據集上的各模型實驗結果對比 單位:%Tab.6 Comparison of experimental results of different models on NSL-KDD dataset unit:%
從表6 可以看出,與SCDNN、SMOTE+CANN 和DNN 三種分類器相比,本文模型準確率可以達到99.53%,召回率達到99.25%。從圖6 可以看出,本文模型在Precision、Recall 和F1-measure 幾個評價標準上得到的結果都很高。從分類結果可以看出,所提模型是有效的,當面對復雜數據時,本文模型仍然比其他模型獲得更好的結果。
UNSW-NB15 數據集中包含許多現代網絡的新攻擊,使用本文提出的模型用訓練集數據進行訓練,最后使用測試集對模型進行測試。各指標的分布通過圖7可以被更清楚地看到。本文同樣選取入侵檢測中常用的經典分類模型與本文模型進行了比較。使用RF[13]、SVM[8]和MSCNN(MultiScale Convolutional Neural Network)模型[30]與本文模型在UNSW-NB15數據集上對分類性能進行了比較,比較結果如表7所示。


表7 UNSW-NB15數據集上的各模型準確率對比Tab.7 Accuracy comparison of different models on UNSW-NB15 dataset
從表7 可以看出,與RF、SVM、MSCNN 三個模型相比,本文模型有最高的準確率,可以達到93.12%。與傳統的模型相比,在新型數據集UNSW-NB15 上進行實驗時,從分類結果可以看出,本文模型仍然比其他模型獲得更高的準確率。
本文提出了一種基于膨脹卷積和門控循環單元(GRU)相結合的入侵檢測新模型。首先,對數據集進行數值化和標準化處理,這樣可以減少模型的訓練時間;然后,通過膨脹卷積和GRU 構建的網絡模型對輸入數據進行分類。該模型利用深度學習的出色性能,通過重復的多級學習自動提取特征。本文使用KDD CUP99、NSL-KDD 和UNSW-NB15 三個入侵數據集來進行實驗。根據統計顯著性檢驗可以得出結論,該模型優于其他分類器。本文提出的模型在準確率和召回率方面取得了優異的結果,尤其是在多特征數據集中,發現訓練數據規模越大,檢測性能越好。