李博超 邵酉辰



摘? 要: 針對網絡異常行為檢測中數據不平衡導致召回率低的問題,提出一種改進逆向習得推理(ALI)的網絡異常行為檢測模型。首先,使用僅由正樣本所構成的數據對改進的ALI模型進行訓練,通過已訓練的改進的ALI模型處理檢測數據,生成處理后的檢測數據集;然后,使用異常檢測函數計算處理后的檢測數據與檢測數據的距離以判斷是否異常。在KDD99數據集上與AnoGAN等常用模型進行對比實驗,實驗結果表明,所設計模型在數據不平衡時具有較高的召回率,相比AnoGAN,召回率提升16%。
關鍵詞: 檢測模型; 網絡異常行為檢測; 逆向習得推理; 模型訓練; 數據處理; 對比實驗
中圖分類號: TN711?34; TP309? ? ? ? ? ? ? ? ? ?文獻標識碼: A? ? ? ? ? ? ? ? ? ? ? 文章編號: 1004?373X(2020)18?0014?05
Abstract: In allusion to the poor recall rate caused by data imbalance in the network abnormal behavior detection, a network abnormal behavior detection model based on improved adversarially learned inference (ALI) is proposed. The data only composed of positive samples is used to train the improved ALI model, and the trained ALI model is utilized to process the detection data to generate the processed detection dataset. The distance between the processed detection data and the detected data is calculated by means of the anomaly detection function to determine whether it is abnormal. The detection model is compared with the commonly used models such as AnoGAN on the KDD99 dataset. The experimental results show the designed model has a higher recall rate when the data is unbalanced, and the recall rate is 16% higher than that of AnoGAN.
Keywords: detection model; network abnormal behavior detection;? adversarially learned inference; model training; data processing; contrast experiment
0? 引? 言
網絡異常行為是指由網絡用戶實施的對網絡正常運行造成影響的行為。隨著網絡技術的快速發展和應用,網絡異常行為的新變種更是層出不窮,其威脅也日益嚴重。對網絡異常行為進行高效檢測已成為目前的研究熱點。
隨著機器學習算法的廣泛應用,許多學者使用機器學習算法進行網絡異常行為檢測研究。文獻[1]通過使用主成分分析法(Principal Component Analysis,PCA)對原始數據集進行數據降維并消除冗余數據,找到具有最優分類效果的主成分屬性集, 解決了對于大型數據集計算代價大的問題,但檢測準確度較低。
使用機器學習算法檢測網絡異常行為準確率低的主要原因是可收集到的異常行為樣本種類少且數量有限,造成收集到的數據集不平衡。文獻[2]提出通過使用變分自編碼器(Variational Auto?Encoder,VAE)模型訓練正常行為,雖解決了網絡異常檢測中數據集不平衡的問題,但該方法對數據集的處理過程中易出現關鍵特征提取效率不高,造成生成數據集“失真”的情況,導致檢測結果準確率波動較大。
針對上述不足,文獻[3]建立了一種卷積神經網絡模型,通過提高該網絡提取特征的效率,進而提高了分類的準確性。文獻[4]提出了一種基于卷積神經網路算法的網絡入侵檢測系統,該系統通過自動提取入侵樣本的有效特征,從而提升分類的準確性。上述兩種方法的主要不足在于模型訓練過程中收斂速度不理想,泛化能力差,導致誤報率較高。
逆向習得推理(Adversarially Learned Inference,ALI)模型是一種成功應用于模擬復雜和高維分布的數據生成模型[5],其主要優勢為:
1) 無需利用馬爾科夫鏈反復采樣,無需在學習過程中進行推斷,回避了棘手的概率計算難題;
2) 如果判別器訓練良好,生成網絡則可以有效地學習到訓練樣本的分布。
因此,本文考慮通過設計一個模型首先來學習正常數據分布,然后將檢測數據輸入訓練完的模型并計算出其正常分布,最后將處理后的檢測數據與處理前的檢測數據通過異常檢測函數進行對比,判斷此數據的異常情況。
1? ALI基本內涵
ALI模型是一種無監督數據生成模型,由編碼器、解碼器和判別器組成。其學習過程就是編碼器、解碼器和判別器之間的一種競爭過程。文獻[5]將這一思想表示為:
當將ALI模型訓練用于生成數據時,解碼器將真實訓練樣本x映射到潛在變量空間,得到z_hat;編碼器將潛在變量z轉化為生成樣本x_tilde。假設解碼器的輸入輸出(x,z_hat)分類為1,編碼器的輸入輸出(x_tilde,z)分類為0。判別器的目標是將盡可能多的(x,z_hat)判別為1,同時將盡可能多的(x_tilde,z)判別為0,即
D(x,Gz(x))≈1且D(Gx(z),z)≈0。當編碼器、解碼器和判別器在訓練中經過多輪競爭最終達到平衡時,此時編碼器生成數據x_tilde與真實訓練樣本x將非常相似。ALI理論上經過訓練可以完全逼近真實數據的分布,這是ALI模型的最大優勢和特點。
2? 基于ALI的網絡異常行為檢測模型
基于ALI模型,設計一種網絡異常行為檢測模型,如圖2所示。該模型由數據預處理和異常檢測兩個模塊組成。
2.1? 數據預處理模塊
操作處理過程為:
步驟1:首先,統計數據集中以離散數據表示的特征項的名稱。然后,遍歷數據集并將所有用離散數據表示的特征項數據去掉。
步驟2:遍歷數據集對數據進行歸一化處理,將數據變為[0,1]之間的小數,以提高模型收斂速度和異常檢測函數計算精度。歸一化公式如下:
式中:Xnormal為歸一化后的數據;X為原始數據;Xmax和Xmin分別為特征項的最大值和最小值。
2.2? 異常檢測模塊
異常檢測模塊包括訓練和檢測過程,模塊處理流程設計如圖3所示。
檢測模塊的處理過程設計如下:
輸入:預處理后的數據D;
輸出:異常檢測結果R。
步驟1:將數據集D中按照標簽分為正常數據與異常數據,組成正常數據集D_normal與異常數據集D_anomal。隨機從D_normal中抽取80%的數據組成訓練數據D_train,剩余的20%數據和D_anomal組成檢測數據D_test。
步驟2:使用改進ALI模型訓練D_train,經過k次迭代訓練,確定生成網絡、推理網絡內部神經元的權重。
步驟3:使用訓練后的改進ALI模型中的生成網絡處理檢測數據D_test,生成處理后的檢測數據D_test_fin。
步驟4:將D_test_fin和D_test輸入異常檢測函數,計算D_test每條記錄的異常結果R。異常檢測函數如下所示:
式中:假設數據集有m個屬性;xaj和xbj分別表示D_test_fin中的記錄xa與D_test中的記錄xb對應的第j個屬性值。本文認為擁有較大檢測結果值的樣本異常可能性大。
在ALI模型中,推理網絡的訓練只是簡單地將輸入復制到輸出,雖保留了原始數據的特征,并不能確保隱變量獲得有用的特征表示。為了增強推理網絡與生成網絡的訓練效率,本文考慮首先通過引入一個損壞過程[Cx′x],得到受損數據作為ALI模型的輸入,然后在ALI模型的隱含層填加一些約束,讓這些約束使模型對輸入數據中有用的特征優先學習,使模型可以學習到能更好表達樣本的特征。
改進ALI的基本結構由推理網絡I、生成網絡G和判斷器D三部分構成,都是由輸入層、隱含層和輸出層構成的神經網絡。
改進ALI模型首先對訓練數據進行訓練,確定推理網絡I、生成網絡G和判別器D的內部神經元的權重。之后使用訓練好的生成網絡G對檢測數據進行處理,得到處理后的檢測數據。ALI模型結構流程圖如圖4所示。
改進ALI模型的處理流程為:
輸入:訓練數據D_train,檢測數據D_test;
輸出:處理后的檢測數據D_test_fin。
1) 網絡采用分批次訓練,每次訓練都從訓練數據D_train中隨機選取固定大小的塊(batch)作為輸入數據x,根據文獻[6]提供的方法,通過引入一個損壞過程[Cx′x],得到受損數據[x′]作為推理網絡的輸入樣本。
2) 推理網絡和生成網絡過程可以由以下公式表示:
式中:z_hat為推理網絡輸出結果;x_tilde為生成網絡輸出結果;θ={W1,b1,W2,b2}表示參數的集合;f和g代表激活函數sigmod,即當神經元的輸出接近于1時為激活狀態,而輸出是0時為抑制狀態。推理網絡和生成網絡的目標是最小化輸入數據x與生成網絡重構數據x_tilde之間的平均重構誤差。為了防止模型過擬合,對損失函數加入懲罰項,損失函數如下所示:
隱含層神經元j的平均活躍度為:
式中:z_hatj表示在隱含層中神經元j的激活度;z_hatj(xi)表示輸入x時推理網絡和生成網絡隱含層神經元j的激活度。
式中,ρ是稀疏性參數。式(10)表示讓推理網絡和生成網絡隱含層中神經元 j的平均活躍度接近于ρ。為達到這一稀疏限制的目標,在優化目標函數中加入一個額外的懲罰因子,即通過最小化這一懲罰因子來實現[ρ′j]趨近于ρ的效果。所以懲罰因子如下所示:
式中:S2是隱含層中隱含神經元的數量;j代表隱含層中的神經元。所以,加入稀疏性要求后的損失函數為:
式中,β控制稀疏性懲罰因子的權重。
3) 生成網絡從服從高斯分布的P(z)中隨機采樣作為輸入,經生成網絡處理生成x_hat。
4) 將x,x_hat和x_tilde輸入判別器。判別器的目標是將生成網絡的輸出x_hat和x_tilde從真實樣本x中盡可能分辨出來,而生成網絡則要盡可能地欺騙判別器。兩個網絡相互對抗,不斷調整參數。判別器的損失函數為:
5) 將步驟2)~步驟4)重復k次,完成模型訓練。
6) 將檢測數據D_test輸入至訓練好的生成網絡,得到處理后的檢測數據D_test_fin。
3? 實驗結果與分析
本文使用KDD99 10%數據集作為本次實驗的數據集。實驗中主機配置為Intel Core i5?6300HQ CPU,NVIDIA GeForce GTX960 GPU,內存4 GB,使用Python 3.5.3編程實現,深度學習框架使用Tensorflow 1.1.0。
為驗證本文模型對網絡異常行為檢測的有效性,將本文模型檢測結果與網絡異常行為檢測中常用的算法模型進行對比實驗。
實驗樣本均來自同一數據集,選擇的模型分別為: DSEBM[7],DAGMM[8],AnoGAN[9]。重復進行10次實驗并計算10次檢測結果中準確率、召回率和F1值的平均值[8],結果如表1所示。
由表1可見,本文模型在召回率和F1兩項指標方面均優于其他的檢測模型。分析對比模型如下:
1) DSEBM模型采用逐層次進行訓練,每一層訓練完成之后才進行下一層疊加并計算上一層的參數。無法有效對本文高維度復雜數據集進行特征學習,導致相較于本文模型檢測準確度偏低。
2) 考慮到DAGMM模型雖對數據集使用高斯概率密度函數(正態分布曲線)進行精確量化,并分解為若干基于高斯概率密度函數形成的模型,提高了檢測準確率。但受本文訓練樣本數量少的限制,DAGMM模型內每個混合模型沒有足夠多的樣本,協方差計算結果不準確,故F1值相對于本文模型較低。
3) AnoGAN模型生成網絡的梯度更新來源于判別網絡,導致生成網絡更傾向生成重復但不會被判別網絡認為異常的樣本,而對于與生成網絡生成的相似檢測數據,該模型有很高的檢測準確度。AnoGAN模型因缺少諸如本文模型的推理網絡,導致模型經訓練未得到正常行為的全部數據分布,導致模式崩潰[10](Mode Collapse)。
為了進一步驗證本文模型在較少訓練樣本情況下的有效性,針對DAGMM模型和本文模型,縮小實驗樣本量,在訓練數據中隨機抽取2 000條數據,重復進行10次實驗,并計算檢測結果中準確率、召回率和F1值,結果如表2所示。
由表2可見,在訓練樣本較少時,該文模型相對于DAGMM模型,在準確率、召回率和F1值3項指標方面均有明顯提高。
該文模型的優勢在于運用逆向習得推理機制,結合無監督的模型訓練和有監督的分類、回歸任務,無需生成顯性表達分布,也沒有繁雜的變分下限,有效避免了在傳統生成模型中復雜的馬爾科夫鏈的采樣和推斷,在大大降低了訓練復雜度的同時提高了檢測準確度。
上述實驗結果表明,文章提出的基于逆向習得推理的網絡異常行為檢測模型具有較高的召回率和檢測精度。
4? 結? 語
文章針對網絡異常行為數據收集不均衡以及現有檢測算法檢出率低等問題,提出基于逆向習得推理的網絡異常行為檢測模型。通過構建改進ALI模型的網絡異常檢測模型,僅使用正常行為數據對模型進行訓練,然后使用異常檢測函數對比判斷檢測數據是否異常,最終解決了因數據不平衡問題導致的檢測正確率低的問題。實驗結果表明,本文模型在樣本數據不平衡時相較于DSEBM,DAGMM,AnoGAN 3種模型具有較高的召回率和檢測精度,在網絡異常行為檢測領域具有一定的應用價值。
參考文獻
[1] 戚名鈺,劉銘,傅彥銘.基于PCA的SVM網絡入侵檢測研究[J].信息網絡安全,2015(2):15?18.
[2] ZHOU C, PAFFENROTH R C. Anomaly detection with robust deep autoencoders [C]// ACM Sigkdd International Conference on Knowledge Discovery & Data Mining. New York: ACM, 2017: 665?674.
[3] 賈凡,孔令智.基于卷積神經網絡的入侵檢測算法[J].北京理工大學學報,2017,37(12):1271?1275.
[4] 王明,李劍.基于卷積神經網絡的網絡入侵檢測系統[J].信息安全研究,2017,3(11):990?994.
[5] DUMOULIN V, BELGHAZI I, POOLE B, et al. Adversarially learned inference [C]// International Conference on Learning Representations. Toulon: ICLR, 2017: 205?211.
[6] VINCENT P, LAROCHELLE H, BENGIO Y, et al. Extracting and composing robust features with denoising autoencoders [C]// Proceedings of the 25th international conference on Machine learning. Helsinki: ACM, 2008: 1096?1103.
[7] ZHAI S, CHENG Y, LU W, et al. Deep structured energy based models for anomaly detection [C]// 33rd International Conference on Machine Learning. New York: ICML, 2016: 1021?1031.
[8] ZONG B, SONG Q, MIN M R, et al. Deep autoencoding gaussian mixture model for unsupervised anomaly detection [C]// International Conference on Learning Representations. Vancouver: ICLR, 2018: 305?309.
[9] SCHLEGL T, SEEB?CK P, WALDSTEIN S M, et al. Unsupervised anomaly detection with generative adversarial networks to guide marker discovery [C]// International Conference on Information Processing in Medical Imaging. Boone: Springer, 2017: 146?157.
[10] METZ L, POOLE B, PFAU D, et al. Unrolled generative adversarial networks [EB/OL]. [2017?05?12]. https:// arxiv.org/abs/16...02163v4.
[11] 任維武,張波辰,底曉強,等.基于人工蜂群優化的密度聚類異常入侵檢測算法[J].吉林大學學報(理學版),2018(1):95?100.
[12] 周棒棒,魏書寧,唐勇,等.粗糙集屬性約簡的極限學習機網絡入侵檢測算法[J].傳感器與微系統,2019(1):122?125.
[13] 黃金超,馬穎華,齊開悅,等.一種基于集成學習的入侵檢測算法[J].上海交通大學學報,2018(10):1382?1387.
[14] 周麗娟.一種改進的基于TS?BPNN的網絡入侵檢測方法[J].陜西理工大學學報(自然科學版),2018(5):45?49.