劉海燕 叢菲
摘要:互聯(lián)網高速發(fā)展的今天,網絡安全日益引起人們的關注。但是,作為網絡安全核心要素的網絡入侵異常檢測技術,仍然面臨著無法有效檢測未知攻擊的問題。在本文中,我們將半監(jiān)督模型SGAN用于網絡入侵檢測,基于nsl-kdd數據集進行對比實驗來證明,SGAN的模型相比有監(jiān)督模型,對含有未知攻擊的測試集有更高的檢測準確率。
關鍵詞:入侵檢測;半監(jiān)督模型;未知攻擊
中圖分類號:TP311? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)32-0073-03
1 引言
目前主流的網絡入侵異常檢測方法基于有監(jiān)督模型,在訓練和檢測過程中存在著不能有效檢測未知攻擊的問題。半監(jiān)督或無監(jiān)督模型是克服以上問題的有效方法。本文提出一種使用半監(jiān)督生成式對抗網絡(SGAN)的入侵異常檢測方法,并在nsl-kdd數據集上進行了對比實驗。實驗表明,該方法能顯著提高對含有未知攻擊數據集的檢測精確度。
2 相關工作
Kwon等[1]綜述了深度學習技術在網絡入侵異常檢測領域的應用情況,并通過實驗驗證了全連接神經網絡模型相比于傳統(tǒng)淺層機器學習模型,能顯著提高檢測性能。尹傳龍[2] 利用循環(huán)神經網絡學習網絡連接之間的時序特征,構建了基于全連接循環(huán)神經網絡的入侵檢測系統(tǒng),驗證了該方法的有效性。Di Mattia等[3]對生成式對抗網絡在異常檢測領域的應用作了綜述,但是在網絡入侵檢測中應用生成式對抗網絡的研究很少。Augustus[4]通過使生成式對抗網絡的判別器輸出類別標簽,將其擴展為半監(jiān)督模型。本文使用Augustus的方法,基于nsl-kdd進行實驗驗證,提高了在測試集上的檢測準確率。
3 基于SGAN的入侵檢測模型
標準GAN[5]判別器的輸出層只有一個sigmoid單元以輸出其輸入屬于真實數據分布的概率。SGAN判別器使用softmax輸出層,輸出N+1個類別概率。其中N為輸入數據類別數,1類為生成器生成數據。令[xlabel,ylabel]為真實樣本,[xfake,yfake]為偽樣本,[x,y]為真實樣本和偽樣本的集合,判別器損失函數為:
為避免模型訓練中模式坍塌,使模型能生成多樣化的偽樣本,我們的檢測模型為生成器損失函數增加了Huber損失,并將[δ]設為1,其權重設置為0.0001, 生成器損失函數[Lg]為:
與標準GAN類似,我們同時訓練生成器和判別器。訓練算法如下:
for epoch in range(訓練輪次N):
for i in range(每輪次迭代次數I) :
取m個隨機噪聲樣本,生成器生成m個生成樣本;
取m個真實數據樣本;
對生成器參數在m個生成樣本上執(zhí)行梯度下降。
對判別器參數在共2m個生成和真實數據混合樣本上執(zhí)行梯度下降;
4 實驗與分析
4.1 數據集
NSL-KDD數據集的前身是KDD CUP 99,涵蓋39種攻擊,訓練集有22種攻擊類型,17種攻擊只出現(xiàn)在測試集。KDD CUP 99存在過多冗余數據,影響檢測模型實際檢測效果。NSL-KDD數據集以KDD CUP 99為基礎,刪除大量重復記錄,合理配置了記錄數量和類型。目前,NSL-KDD數據集基本取代了KDD CUP 99,成為網絡流量入侵檢測領域的基準數據集。與KDD CUP 99一樣NSL-KDD有39種攻擊類型,17種僅在測試集中出現(xiàn)。NSL-KDD數據集包括KDDTrain+、KDDTest+、KDDTest-21。
4.2 實驗設置
首先對NSL-KDD數據集進行了預處理,將41個特征中的三個非數值特征使用獨熱編碼轉換為數值特征,轉換后數據維度為122維。之后使用最大最小規(guī)范化方法將所有特征值規(guī)范到0至1的范圍內。實驗中使用KDDTrain+作為訓練集,KDDTest+作為測試集,五種攻擊樣例作為異常樣例,進行正常與異常流量的二分類任務。為保證對比實驗客觀性,MODEL1和SGAN模型均采用學習率為0.0002的Adam優(yōu)化算法。
為評估SGAN模型對含有未知攻擊樣例的KDDTest+集檢測性能的提升,我們設置對照模型MODEL1,網絡結構如圖1。該模型輸出層只有一個sigmoid單元,除輸出層外與SGAN模型判別器網絡結構一致。SGAN模型判別器和生成器網絡結構如圖2、圖3,判別器使用softmax輸出層,其三個輸出層神經單元分別輸出樣例為正常流量、入侵流量和生成器偽造流量的概率。訓練完成后,使用SGAN模型的判別器測試,輸出的入侵流量和生成器偽造流量的概率之和大于0.5,則判定為異常流量。
4.3 實驗分析
對比實驗中,對兩個模型在訓練集上每訓練10個輪次,即在測試集上進行測試,共進行80個輪次。檢測準確率結果如表1所示。
SGAN模型檢測準確率可達82.17%,MODEL1模型最高達80.13%,證明使用SGAN的模型能有效提高模型在含有未知攻擊的測試集上的檢測效果。但隨著訓練輪次的增多,MODEL1模型檢測準確率趨于穩(wěn)定,而SGAN模型達到最高點后開始下降,如圖 4所示。
采用有監(jiān)督學習的方式訓練時,模型試圖找到正常和異常數據間的最佳的決策曲線以正確分類正常和異常數據,如圖 5所示。當新出現(xiàn)的未知異常樣例位于決策曲線正常一側時,有監(jiān)督模型會將未知異常錯誤分類為正常。這使有監(jiān)督模型在含未知攻擊的數據集上的檢測準確率顯著低于不含未知攻擊的測試集。SGAN模型通過生成偽樣本,使判別器學習區(qū)分真實正常樣例、真實異常樣例與偽樣例,從而使判別器尋找真實正常樣例、真實異常樣例與偽樣例之間的決策曲線。測試時,判別器判定為偽樣例與真實異常樣例的樣例都視為異常,使判別器決策曲線如圖6所示,從而更好地檢測未知攻擊樣例。但當生成器生成的偽正常樣例數據分布接近真實正常樣例時,判別器將正常樣例判定為異常的概率升高,從而使檢測準確率反而下降。
5 總結
本文提出一種基于SGAN的入侵檢測模型,利用模型的生成器生成的偽樣本輔助訓練判別器,以使判別器能更好的檢測未知攻擊,并通過對比實驗分析了該方法。下步工作將針對本文模型生成器生成的偽樣本接近真實數據分布時,檢測準確率反而下降的現(xiàn)象,繼續(xù)探索既能利用生成式對抗網絡擬合高維復雜數據分布能力,同時又能克服該現(xiàn)象的方法。
參考文獻:
[1] Kwon D,Kim H,Kim J,et al.A survey of deep learning-based network anomaly detection[J].Cluster Computing,2019,22(1):949-961.
[2] 尹傳龍.基于深度學習的網絡異常檢測技術研究[D].戰(zhàn)略支援部隊信息工程大學,2018.
[3] di Mattia F,Galeone P,de Simoni M,et al.A survey on GANs for anomaly detection[EB/OL].2019: arXiv:1906.11632[cs.LG]. https://arxiv.org/abs/1906.11632.
[4] Odena A.Semi-supervised learning with generative adversarial networks[EB/OL].2016: arXiv:1606.01583[stat.ML]. https://arxiv.org/abs/1606.01583.
【通聯(lián)編輯:李雅琪】