高燚 高麗婷 楊宇夏



摘要:深度學習應用于網絡入侵檢測,從卷積神經網絡中的殘差網絡ResNet結構之后主要通過聯合使用多種優化策略的方式進行改進,較少關注新模型的使用。因此,提出了一種基于ResNeXt結構的網絡入侵檢測模型,使用NSL-KDD數據集進行了二分類實驗,驗證了所提模型相對同樣使用二維卷積的經典CNN結構模型具備一定的優勢,且能保持合理的模型復雜度,表明所提模型算法的合理性,也為今后網絡入侵檢測的研究提供了又一種可選用的基礎模型。
關鍵詞:入侵檢測;ResNeXt;深度學習;NSL-KDD;二分類
中圖分類號:TP393? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)28-0085-03
開放科學(資源服務)標識碼(OSID):
1 引言
深度學習是現在應用于網絡入侵檢測的主流技術,其中卷積神經網絡CNN在圖像識別方面廣泛使用,應用于網絡入侵檢測也同樣表現不俗。CNN模型從1998年LeNet結構之后也在改進和發展中,AlexNet、VGG-Net、GoogLeNet和ResNet等經典模型隨著結構的改進,應用于圖像分類的準確率不斷提高。已有前人使用前述幾種CNN結構模型進行了網絡入侵檢測相關實驗,表明一些檢測指標相對傳統機器學習方法有優勢。使用KDDCup99數據集測試的如楊凝之[1]提出的PCA+CNN結構的入侵檢測算法,鄭非凡[2]提出的基于ResNet的異常檢測模型,周珮等[3]提出的基于AutoEncoder和ResNet的入侵檢測模型等。使用NSL-KDD數據集測試的有楊印根等[4]提出的基于LSTM-RESNET結構的入侵檢測模型等。Saining Xie等在2017年發表的論文[5]中首次提出了ResNeXt結構模型,是在Resnet之后基于CNN結構的一種改進模型,之前還沒有人將其應用于網絡入侵檢測,本文將做這方面的探索。
2 ResNeXt入侵檢測結構設計
ResNeXt結構模型主要特點是模塊化,不需要人為刻意地設計模型中每個具體部分結構細節,通過模塊的簡單堆疊就能實現復雜的分類任務,較為簡潔和規整,也便于移植和改進。根據模塊堆疊次數和方式的不同,就能形成不同層數的模型結構[5],如常用的50層和101層等多個版本。ResNeXt在不明顯增加模型復雜度的情況下,在ImageNet圖像分類數據集上的表現優于ResNet(同等層數的兩種模型復雜度相當,具體分析和圖像分類對比詳見文獻[5])。由于本文所使用的NSL-KDD數據集特征數量不多,本文選擇結構相對簡單的ResNeXt50結構,同時設置全連接層執行二分類,具體模型結構設置如表1。
3 入侵檢測實驗分析
3.1 測試數據集的選擇
現在最常用來進行入侵檢測評估的是KDD CUP99數據集和NSI-KDD數據集。
(1)KDD CUP99數據集
由于有大量的數據冗余,約包含有490萬條網絡連接記錄,完整數據集很大,實驗時常選取較小的10%數據集進行評估(如文獻[6])。
(2)NSI-KDD數據集
NSI-KDD數據集是KDDCUP99數據集減少了冗余的改進版。兩者相同的是每條記錄都由41個特征和標簽(代表正?;蛘呔唧w的攻擊種類,攻擊種類也都可分為4種類型攻擊:Dos攻擊、非法遠程訪問R2L、非法本地特權訪問U2R和端口與漏洞掃描Probe)組成,特征和標簽保持同樣的排列順序。不同的是NSI-KDD數據集在每條記錄中增加了用來評估每條記錄分類難度的第43列successfulPrediction屬性。本文使用完整版的NSI-KDD數據集進行測試評估。
3.2測試數據的預處理
(1)本文選擇NSL-KDD數據集已經劃分好的KDDTrain+作為訓練數據集(簡稱為訓練集)和KDDTest+作為測試數據集(簡稱測試集)。訓練集和測試集中的網絡連接記錄都按照時間順序排列,每一行為一條記錄,使用CSV格式存儲的訓練集前10條記錄如圖1所示。前41列為網絡連接特征,第42列為記錄標簽,第43列為本文不需要使用的successfulPrediction屬性,將這一列刪除。
(2)由于每一條記錄中同時有字符型和數值型數據,為了方便ResNeXt模型識別和處理,需將字符型數據轉化為數值型。本文采用序號數值映射方法,對第2列至第4列的字符型數據采用順序編號的方法進行數值化,如第2列中3種協議類型tcp、 udp、icmp分別數值化為0、1、2,對第3列和第4列的字符型數據也用類似方法處理;由于要進行二分類評估,對正常流量標簽norm數值化為0,其余攻擊標簽都數值化為1。由于數值化之后數據集中數據的數值偏差較大,不便于模型分類,本文采用Z-score的方法進行標準化處理,公式為[Z=x-μσ],式中x屬于原始數據集,?和σ為原始數據每一維特征項的均值和標準差,標準化后每一維的數據轉化為以0為均值,1為標準差的標準正態分布。經標準化處理后Z的值域為[0,1]。
3.3實驗測試
使用Tensorflow 2.1.0搭建運行環境,實驗硬件環境為:Intel酷睿I5 10400的cpu,GeForce RTX 2060顯卡,16g內存;軟件環境:Windows 10 64位的操作系統,Python版本為3.7.10。
為便于ResNeXt模型識別,這里使用二維卷積的方法,將按照2.2方式預處理后的訓練集和測試集中的每條記錄的41個特征轉化為一張6*7的二維灰度圖(第42維用0填充)的形式。然后將這些灰度圖片送入ResNeXt模型進行入侵檢測的訓練和評估。具體實驗流程為將預處理好的KDDTrain+數據按照訓練集:驗證集=8:2的比例送入ResNeXt50模型中進行訓練,將KDDTest+數據作為模型訓練好之后評估的測試集。選擇adam優化器,交叉熵損失函數,輸出層選擇softmax分類器,設置batch_size=128。訓練100輪,從中選擇驗證集準確率較優的權重作為模型權重,這時訓練集和驗證集的總體分類準確率都超過了99%,表明模型已訓練充分。模型訓練好之后使用測試集進行測試評估。
3.4實驗數據評估
本文進行的是NSL-KDD數據集的二分類評估實驗。入侵檢測評價指標主要包括準確率accr、精準率precision、召回率recall和F1值,通常利用混淆矩陣來計算這些值。設正常網絡數據為normal,異常網絡數據為attack,由此有如表2所示的混淆矩陣。
結合混淆矩陣對上述評價指標進行計算的公式為:
accr=[TP+TNTP+FN+FP+TN],precision=[TPTP+FP],recall=[TPTP+FN],F1-value=[2precision*recallprecision+recall]
公式中accr表示準確預測的normal和attack占總記錄數之比,precision表示準確預測的attack與預測值為attack的數量之比,recall表示準確預測的attack占實際attack總數之比,F1值是綜合precision和recall兩個標準的一個總體反映。
本文算法在KDDTest+測試集二分類評估時的實驗混淆矩陣值為:TP=8929,FN=3904,FP=332,TN=9379。利用上述公式進行計算,得到本文算法的accr、precision、recall和F1值如表3所示。為便于對比,同時在表3中列舉了典型傳統機器學習算法、同為CNN結構也使用二維卷積的GoogLeNet和50層的ResNet50模型算法,其中ResNet50與本文算法模型復雜度相當。
從表3可知,在僅使用一種模型也不使用其他優化策略聯合優化的對比中,本文算法的accr、recall和F1值都是表3中最高的,同時在表3中所有評價指標都全面領先同為CNN結構的GoogLeNet和ResNet50;和傳統機器學習算法的對比中,只有precision值略低于SVM,但SVM的recall值較低,且本文算法在綜合反映precision與recall平均指標的F1值的對比中也明顯優于SVM。網絡攻擊的危害較大,對入侵檢測任務來說,recall和F1值更重要,在這一點ResNet50和本文模型相對傳統機器學習算法更有優勢。
4 結論
本文首次將CNN中的ResNeXt結構應用于網絡入侵檢測,在NSL-KDD數據集進行的二分類評估實驗,表明本文算法模型的準確率、精準率、召回率和F1值都全面優于同為CNN結構的GoogLeNet和ResNet50模型;在與典型傳統機器學習算法的比較中,在除精準率外的其余評估指標都占據明顯優勢,且有更高的F1值。表明ResNeXt結構模型應用于網絡入侵檢測的可行性。本文模型也有不足,如precision值略低,后續若妥善結合其它算法模型或者優化策略,還有較大的提升空間。
參考文獻:
[1] 楊凝之.基于CNN的入侵檢測技術[J].通訊世界,2019,26(1):233-235.
[2] 鄭非凡.基于ResNet深度神經網絡的異常檢測模型[J].網絡新媒體技術,2020,9(2):16-22.
[3] 周珮,周志平,王利,等.基于AutoEncoder和ResNet的網絡入侵檢測方法[J].計算機應用研究,2020,37(S2):224-226.
[4] 楊印根,王忠洋.基于深度神經網絡的入侵檢測技術[J].網絡安全技術與應用,2019(4):37-41.
[5] Xie S N,Girshick R,Dollar P,et al.Aggregated residual transformations for deep neural networks[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR).July 21-26,2017.Honolulu,HI.IEEE,2017.
[6] 李勇,張波.一種基于深度CNN的入侵檢測算法[J].計算機應用與軟件,2020,37(4):324-328.
[7] 紀書鑒.基于深度學習的網絡流量入侵檢測研究[D]. 深圳:中國科學院大學(中國科學院深圳先進技術研究院),2020.
[8] 張勇東,陳思洋,彭雨荷,等.基于深度學習的網絡入侵檢測研究綜述[J].廣州大學學報(自然科學版),2019,18(3):17-26.
[9] 鄭偉發.基于CNN-LSTM混合模型的入侵檢測算法研究[J].網絡安全技術與應用,2020(5):61-64.
【通聯編輯:聞翔軍】