王運兵,姬少培,查成超
(中國電子科技集團公司第三十研究所,四川 成都 610041)
隨著互聯網通信技術的進步,每天都會產生大量的來自醫療保健、交通、社交媒體和生產制造等行業的數據。這些海量的數據具備被定義為大數據的4 個特征:海量性、多樣性、高速性和準確性[1]。由于大數據的范圍極大地提高了可利用的攻擊點,因此很難在大數據環境中進行入侵檢測。Denning等人[2]于1986 年首次引入了入侵檢測系統,建立了一個入侵檢測模型,以識別網絡系統中的異常行為。由于大數據結構的不斷發展和變化,以及網絡數據系統速率的提高,入侵檢測系統(Intrusion Detection System,IDS)仍然是一個重要的研究主題[3,4]。
許多用于IDS 的傳統機器學習方法由于體系結構較淺,不適合在大數據環境中處理入侵檢測,如支持向量機、神經網絡、隱馬爾可夫模型和模糊邏輯等[5],它們很難識別未知的攻擊,不能實時提供解決方案,也不能處理普遍存在于大數據中的噪聲。因此,需要更加強大、有效的機器學習(Machine Learning,ML)技術來進行實時的入侵檢測。
近年來,不斷涌現出利用深度學習技術在各種應用程序中處理大數據的案例,這些深度學習技術包括深度信念網絡(Deep Belief Networks,DBN)、卷積神經網絡(Convolutional Neural Networks,CNN)、長短期記憶(Long-Short Term Memory,LSTM)網絡、門控循環單元神經(Gated Recurrent Unit,GRU)網絡。DBN 主要用于模式分析,而且它們的訓練速度比其他深度學習技術更快[6]。CNN 主要用于圖像處理應用程序,它們比DBN 具有更好的鑒別能力[7]。LSTM 網絡是一種循環神經網絡(Recurrent Neural Network,RNN),它可以比其他類型的RNN 更好地學習提取特征之間的依賴關系[8]。LSTM 的另一種變體是權重丟棄長短期記憶(Weight Decrement Long-term and Shortterm Memory,WDLSTM) 網 絡。WDLSTM 是 在LSTM 中的隱含層權值矩陣上使用連接權重丟棄技術(DropConnect),以保持提取特征之間的長期依賴性,并防止循環連接的過擬合[9]。
然而,迄今為止,還沒有哪種方法能有效地使用上述深度學習算法在大數據環境中進行入侵檢測。Vinaykumar 等人[10]提出了一個深度神經網絡模型,以檢測和分類IDS 中不可預見的和不可預測的網絡攻擊。Faker 等人[11]使用深度神經網絡、隨機森林和梯度增強樹3 個分類器對二進制模式和多類模式的攻擊進行分類。在文獻[12]中,作者提出了一個兩階段的深度學習模型以有效地檢測網絡入侵。為了在大數據環境中提高入侵檢測的性能,本文提出了一種基于CNN 和WRGRU 網絡的混合深度學習模型。本文的主要貢獻如下:
(1)基于CNN 可權重共享和可快速進行數據處理的特點,進行網絡數據流量中的特征提取;
(2)使用GRU 神經網絡來保留提取特征之間的長期依賴關系,避免了梯度消失問題;
(3)基于WDLSTM 模型,在GRU 中的隱含層單元權重權值矩陣上使用DropConnect 技術,避免過擬合問題。
在實驗中,本文使用公共的UNSW-NB15 數據集對CNN-WRGRU 模型進行評估。
卷積神經網絡(Convolutional Neural Network,CNN)是一種前饋神經網絡,人工神經元可以響應周圍單元,可以進行大型圖像處理,同時它可以應用在文本分類中[13]。CNN 是在深度學習領域中取得最大成功的算法之一。CNN 包括1 維、2 維和3 維神經網絡,序列類的數據處理是1 維的CNN主要應用,2 維CNN 經常用于對于文本的識別,3維神經網絡主要應用在處理醫學圖像以及一些視頻數據。
如圖1 所示,CNN 的整體結構是由輸入層(Import Layer)、卷積層(Convolution Layer)、池化層(Pooling Layer)、全連接層(Fully Connected Layer)與輸出層(Output Layer)按順序連接構成的,其中,卷積層和池化層可以在隱藏層出現多次。

圖1 CNN 結構
圖1 的CNN 結構與原始的LeNet[12]類似,將輸入的圖像根據對應的類別進行分類,輸出層中所有概率的總和應為1。卷積層內部包含多個卷積核,卷積核的各個元素對應有一個權重系數和偏差量。卷積層內每個神經元都與前一層位置接近的神經元相連。卷積層的功能是將輸入數據進行處理,得到相關特征,在工作時會有規律地掃過輸入特征,在前一層位置接近的區域內對輸入特征進行矩陣元素乘法求和并疊加偏差量。
池化層的作用是將經過卷積層處理后的特征進行選擇并進行信息過濾,再通過池化層預設的池化函數將單個點替換為相鄰區域的特征統計量。
CNN 中的全連接層等價于傳統前饋神經網絡的隱含層,全連接層位于神經網絡中的最后位置,信號只會傳遞給其他全連接層。全連接層的作用是將經過卷積層與池化層后的特征進行非線性組合得到輸出,將輸出結果傳遞給輸出層。
LSTM 中引入了3 個門來控制網絡,輸出門控制輸入值,遺忘門控制記憶值,輸出門控制輸出值,而在LSTM 的變體GRU 中只需要更新門和重置門。由于LSTM 具有3 個功能各不相同的門,所以它的參數相對來說會比較多,在訓練時會比較困難。為解決這個問題,本文采用GRU 的神經網絡,正如上文所述它只有兩個門,在解決RNN 神經網絡長距離依賴問題上也能夠達到和LSTM 一樣的效果,訓練易于實現。GRU 神經網絡的更新門可以看作將LSTM 的輸入門和遺忘門二者合一的結果,更新控制的是控制的前一時刻帶入的程度;重置門是控制前一時刻狀態代入候選集中的程度。GRU 的結構[14]如圖2 所示。

圖2 GRU 結構
圖2 中σ為sigmoid 激活函數,tanh 為另一個激活函數,ht為序列輸出的當前狀態,xt為序列輸入數據。相關公式為:

式中:rt為重置門輸出;為候選狀態輸出;zt為更新門輸出;Wz為更新門與隱含單元之間的連接權重;ht-1為序列上一時刻的輸出狀態;Wr為重置門與隱含單元之間的連接權重;*代表兩個矩陣相乘。
權重縮減GRU 神經網絡(Weight reduction gated recurrent unit,WRGRU)是GRU 神經網絡的一個變形,其主要使用DropConnect 技術將動態稀疏性引入到神經網絡的連接權重上,使得每次迭代時神經網絡的權重參數規模得以縮減。DropConnect技術與神經元丟棄技術(Dropout)的不同之處在于,在每次迭代中神經元間每個連接權重被丟棄的概率為p。在WRGRU 中,為了避免過擬合現象的出現,隱含層單元間的權重參數被隨機地丟棄,WRGRU神經網絡的輸出yt可以被寫為:

式中:M為編碼連接信息的二進制矩陣;U為神經網絡的權重參數矩陣。在訓練階段的每次迭代過程中,通過更改M中的元素可以實現對于神經網絡不同連接權重的丟棄。
使用混合深度學習模型進行數據流量的入侵分類,并將CNN 與WRGRU 相結合,構建了CNNWRGRU 模型。模型架構如圖3 所示。與其他基于神經網絡的入侵檢測模型相比,該混合模型由于結合了CNN 和WRGRU 的優勢,因此可以更有效地進行入侵檢測。CNN-WRGRU 模型包含兩個1 維卷積層,1 個1 維的最大池化層,1 個1 維的WRGRU層和1 個全連接層。ReLU 函數為兩個卷積層中的激活函數,其表達式為:


圖3 CNN-WRGRU 模型結構
在CNN-WRGRU 模型中,兩個1 維的卷積層在進行特征提取后,提取的特征被傳輸至最大池化層,最大池化層的輸出又會被傳遞到1 維WRGRU層中進行提取的特征之間的依賴關系的提取,最后1 維WRGRU 層的輸出被傳遞到全連接層。全連接層的激活函數為softmax,利用該函數進行入侵類別概率分布的計算公式為:

式中:xi和xj分別為類別i和j在經過模型計算后的數值;pi為類別i的判別概率。
CNN-WRGRU 模型中的重要參數包括CNN中濾波器的數量、訓練次數、學習速率,以及WRGRU 中隱含層單元的數量、連接權重丟失率drop-connect 的大小、批處理大小,所有這些參數在訓練階段通過試錯得到。
UNSW-NB15 是澳大利亞的新南威爾士大學于2015 年發布的用于網絡入侵檢測研究的開放數據集[15]。UNSW-NB15 中包括9 種攻擊類型和1 種正常類型,各種類型所占比例如表1 所示。UNSWNB15 數據集由3 個名義特征、2 個二進制特征和37 個數值特征組成,UNSW-NB15 是按照時間順序進行排序記錄的,能夠充分代表數據之間的時序相關性。在實驗中,本文將UNSW-NB15 數據集中的70%用于訓練,30%用于測試。表2 說明了訓練集和測試集的分布。

表1 各種類型數據所占比例

表2 訓練集和測試集的分布
為了評估CNN-WRGRU 模型的性能,利用python 進行仿真實驗分析,采用準確率(Accuracy)、精度(Precision),召回率(Recall)和F1 值作為評估指標。這些指標的計算方法如下:

式中:TP為正樣本且分類正確的實例數量;TN為負樣本且分類器識別正確實例的數量;FP為負樣本且分類識別結果錯誤的實例數量;FN為正樣本且分類識別結果錯誤的實例數量。
本文實驗在CPU 為i7 4510U,運行內存為8 GB,操作系統為64 位Windows 10 的筆記本電腦上進行。為了獲得CNN-WRGRU 模型超參數的最佳設置,本文在模型訓練過程中為相關超參數選擇了初始值,然后對其進行動態調整,通過反復試驗獲得最佳結果。最終,當模型取得最佳檢測效果時,訓練次數為50,學習率為0.005,drop-connect 的大小為0.1,第一層和第二層的卷積濾波器的數量分別為32 和64,最大池化長度為2。
圖4 給出了訓練中模型的準確率和損失,其中測試集被用于進行模型驗證。從中可以看出,CNN-WRGRU 模型在訓練中能夠穩定收斂,很好地抑制了模型的過度擬合。

圖4 模型在訓練階段的準確率及損失
表3 和表4 分別為模型CNN-WRGRU 在UNSW-NB15 測試集上執行二元分類任務得到的正常和異常樣本的混淆矩陣,執行多元分類任務得到的所有分類的混淆矩陣。從表3 中可以看出,該模型在執行二元分類任務時對測試集中的649 336 個樣本進行了正確分類;表4 中可以看出,該模型在執行多元分類任務時對657 612 個樣本進行了正確分類。

表3 模型在二元分類任務下的混淆矩陣

表4 模型在執行多元分類下的混淆矩陣
表5 和表6 分別給出了模型CNN-WRGRU 在執行二元分類任務和多元分類任務時的性能指標值。

表5 模型在二元分類任務下的性能指標

表6 模型在二元分類任務下的性能指標
如表5 和表6 所示,模型CNN-WRGRU 在二元分類和多元分類下的總體準確率分別為97.17%和98.58%。對于指標F1-score,模型在generic、reconnaissance、shellcode 和exploit 4種類別數據上的結果分別為0.99、0.83、0.80 和0.72;對于稀有的類別數據(Shellcode、Backdoors、Analysis),由于數據規模不足,模型CNN-WRGRU 的檢測效果較差。總體而言,隨著不同類別的數據分布存在不平衡現象,但是CNN-WRGRU 模型仍取得了非常好的檢測結果。
表7 給出了CNN-WRGRU模型與TSDL、KDDwinner[16]、CSVAC[17]、CPSO-SVM[18]、Dendron[19]模型在UNSW-NB15 數據集上分別執行二元分類時的準確率結果。由表7 中的對比結果可以看出,CNN-WRGRU 模型由于能夠從大量訓練數據中提取到更為準確的特征表示,相較于其他模型在進行入侵檢測時更為有效。

表7 CNN-WRGRU 模型與其他模型的入侵檢測準確率
表8 給出了CNN-WRGRU 模型與其他5 種模型在UNSW-NB15數據集上每條數據的平均執行時間。
如表8 所示,CNN-WRGRU 模型的平均執行時間非常低(略低于TSDL 模型),非常適合實時的入侵檢測。這主要是因為該模型能夠在離線模式下定期訓練最新的網絡流量特征,并且能夠檢測入侵攻擊在線模式。

表8 每條數據的平均檢測執行時間
本文將CNN 與權重縮減GRU 神經網絡結合起來,提出了一種基于CNN 與WRGRU 的網絡入侵檢測模型(CNN-WRGRU)。該模型利用CNN 進行入侵檢測數據集的特征提取,然后利用WRGRU來學習數據特征之間的依賴關系。WRGRU 由于在訓練過程中使用dropout 技術隨機地忽略了一些神經元,使得模型可以有效避免過擬合問題的出現。在實驗時,本文利用TSDL、KDDwinner、CSVAC、CPSO-SVM、Dendron、CNN-WRGRU 等模型在UNSW-NB15 數據集上進行對比仿真實驗,結果表明:CNN-WRGRU 模型具有最好的識別精度。
CNN-WRGRU 模型在UNSW-NB15 上雖具有較好的識別效果,但是在實際應用中還有若干問題有待解決,如入侵檢測的實時性,以及在具有更大規模的數據集上的有效性,這些問題都有待進一步研究。