李博超 邵酉辰
摘? 要: 針對網(wǎng)絡(luò)異常行為檢測中數(shù)據(jù)不平衡導(dǎo)致召回率低的問題,提出一種改進(jìn)逆向習(xí)得推理(ALI)的網(wǎng)絡(luò)異常行為檢測模型。首先,使用僅由正樣本所構(gòu)成的數(shù)據(jù)對改進(jìn)的ALI模型進(jìn)行訓(xùn)練,通過已訓(xùn)練的改進(jìn)的ALI模型處理檢測數(shù)據(jù),生成處理后的檢測數(shù)據(jù)集;然后,使用異常檢測函數(shù)計算處理后的檢測數(shù)據(jù)與檢測數(shù)據(jù)的距離以判斷是否異常。在KDD99數(shù)據(jù)集上與AnoGAN等常用模型進(jìn)行對比實驗,實驗結(jié)果表明,所設(shè)計模型在數(shù)據(jù)不平衡時具有較高的召回率,相比AnoGAN,召回率提升16%。
關(guān)鍵詞: 檢測模型; 網(wǎng)絡(luò)異常行為檢測; 逆向習(xí)得推理; 模型訓(xùn)練; 數(shù)據(jù)處理; 對比實驗
中圖分類號: TN711?34; TP309? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識碼: 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? 引? 言
網(wǎng)絡(luò)異常行為是指由網(wǎng)絡(luò)用戶實施的對網(wǎng)絡(luò)正常運行造成影響的行為。隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展和應(yīng)用,網(wǎng)絡(luò)異常行為的新變種更是層出不窮,其威脅也日益嚴(yán)重。對網(wǎng)絡(luò)異常行為進(jìn)行高效檢測已成為目前的研究熱點。
隨著機器學(xué)習(xí)算法的廣泛應(yīng)用,許多學(xué)者使用機器學(xué)習(xí)算法進(jìn)行網(wǎng)絡(luò)異常行為檢測研究。文獻(xiàn)[1]通過使用主成分分析法(Principal Component Analysis,PCA)對原始數(shù)據(jù)集進(jìn)行數(shù)據(jù)降維并消除冗余數(shù)據(jù),找到具有最優(yōu)分類效果的主成分屬性集, 解決了對于大型數(shù)據(jù)集計算代價大的問題,但檢測準(zhǔn)確度較低。
使用機器學(xué)習(xí)算法檢測網(wǎng)絡(luò)異常行為準(zhǔn)確率低的主要原因是可收集到的異常行為樣本種類少且數(shù)量有限,造成收集到的數(shù)據(jù)集不平衡。文獻(xiàn)[2]提出通過使用變分自編碼器(Variational Auto?Encoder,VAE)模型訓(xùn)練正常行為,雖解決了網(wǎng)絡(luò)異常檢測中數(shù)據(jù)集不平衡的問題,但該方法對數(shù)據(jù)集的處理過程中易出現(xiàn)關(guān)鍵特征提取效率不高,造成生成數(shù)據(jù)集“失真”的情況,導(dǎo)致檢測結(jié)果準(zhǔn)確率波動較大。
針對上述不足,文獻(xiàn)[3]建立了一種卷積神經(jīng)網(wǎng)絡(luò)模型,通過提高該網(wǎng)絡(luò)提取特征的效率,進(jìn)而提高了分類的準(zhǔn)確性。文獻(xiàn)[4]提出了一種基于卷積神經(jīng)網(wǎng)路算法的網(wǎng)絡(luò)入侵檢測系統(tǒng),該系統(tǒng)通過自動提取入侵樣本的有效特征,從而提升分類的準(zhǔn)確性。上述兩種方法的主要不足在于模型訓(xùn)練過程中收斂速度不理想,泛化能力差,導(dǎo)致誤報率較高。
逆向習(xí)得推理(Adversarially Learned Inference,ALI)模型是一種成功應(yīng)用于模擬復(fù)雜和高維分布的數(shù)據(jù)生成模型[5],其主要優(yōu)勢為:
1) 無需利用馬爾科夫鏈反復(fù)采樣,無需在學(xué)習(xí)過程中進(jìn)行推斷,回避了棘手的概率計算難題;
2) 如果判別器訓(xùn)練良好,生成網(wǎng)絡(luò)則可以有效地學(xué)習(xí)到訓(xùn)練樣本的分布。
因此,本文考慮通過設(shè)計一個模型首先來學(xué)習(xí)正常數(shù)據(jù)分布,然后將檢測數(shù)據(jù)輸入訓(xùn)練完的模型并計算出其正常分布,最后將處理后的檢測數(shù)據(jù)與處理前的檢測數(shù)據(jù)通過異常檢測函數(shù)進(jìn)行對比,判斷此數(shù)據(jù)的異常情況。
1? ALI基本內(nèi)涵
ALI模型是一種無監(jiān)督數(shù)據(jù)生成模型,由編碼器、解碼器和判別器組成。其學(xué)習(xí)過程就是編碼器、解碼器和判別器之間的一種競爭過程。文獻(xiàn)[5]將這一思想表示為:
當(dāng)將ALI模型訓(xùn)練用于生成數(shù)據(jù)時,解碼器將真實訓(xùn)練樣本x映射到潛在變量空間,得到z_hat;編碼器將潛在變量z轉(zhuǎn)化為生成樣本x_tilde。假設(shè)解碼器的輸入輸出(x,z_hat)分類為1,編碼器的輸入輸出(x_tilde,z)分類為0。判別器的目標(biāo)是將盡可能多的(x,z_hat)判別為1,同時將盡可能多的(x_tilde,z)判別為0,即
D(x,Gz(x))≈1且D(Gx(z),z)≈0。當(dāng)編碼器、解碼器和判別器在訓(xùn)練中經(jīng)過多輪競爭最終達(dá)到平衡時,此時編碼器生成數(shù)據(jù)x_tilde與真實訓(xùn)練樣本x將非常相似。ALI理論上經(jīng)過訓(xùn)練可以完全逼近真實數(shù)據(jù)的分布,這是ALI模型的最大優(yōu)勢和特點。
2? 基于ALI的網(wǎng)絡(luò)異常行為檢測模型
基于ALI模型,設(shè)計一種網(wǎng)絡(luò)異常行為檢測模型,如圖2所示。該模型由數(shù)據(jù)預(yù)處理和異常檢測兩個模塊組成。
2.1? 數(shù)據(jù)預(yù)處理模塊
操作處理過程為:
步驟1:首先,統(tǒng)計數(shù)據(jù)集中以離散數(shù)據(jù)表示的特征項的名稱。然后,遍歷數(shù)據(jù)集并將所有用離散數(shù)據(jù)表示的特征項數(shù)據(jù)去掉。
步驟2:遍歷數(shù)據(jù)集對數(shù)據(jù)進(jìn)行歸一化處理,將數(shù)據(jù)變?yōu)閇0,1]之間的小數(shù),以提高模型收斂速度和異常檢測函數(shù)計算精度。歸一化公式如下:
式中:Xnormal為歸一化后的數(shù)據(jù);X為原始數(shù)據(jù);Xmax和Xmin分別為特征項的最大值和最小值。
2.2? 異常檢測模塊
異常檢測模塊包括訓(xùn)練和檢測過程,模塊處理流程設(shè)計如圖3所示。
檢測模塊的處理過程設(shè)計如下:
輸入:預(yù)處理后的數(shù)據(jù)D;
輸出:異常檢測結(jié)果R。
步驟1:將數(shù)據(jù)集D中按照標(biāo)簽分為正常數(shù)據(jù)與異常數(shù)據(jù),組成正常數(shù)據(jù)集D_normal與異常數(shù)據(jù)集D_anomal。隨機從D_normal中抽取80%的數(shù)據(jù)組成訓(xùn)練數(shù)據(jù)D_train,剩余的20%數(shù)據(jù)和D_anomal組成檢測數(shù)據(jù)D_test。
步驟2:使用改進(jìn)ALI模型訓(xùn)練D_train,經(jīng)過k次迭代訓(xùn)練,確定生成網(wǎng)絡(luò)、推理網(wǎng)絡(luò)內(nèi)部神經(jīng)元的權(quán)重。
步驟3:使用訓(xùn)練后的改進(jìn)ALI模型中的生成網(wǎng)絡(luò)處理檢測數(shù)據(jù)D_test,生成處理后的檢測數(shù)據(jù)D_test_fin。
步驟4:將D_test_fin和D_test輸入異常檢測函數(shù),計算D_test每條記錄的異常結(jié)果R。異常檢測函數(shù)如下所示:
式中:假設(shè)數(shù)據(jù)集有m個屬性;xaj和xbj分別表示D_test_fin中的記錄xa與D_test中的記錄xb對應(yīng)的第j個屬性值。本文認(rèn)為擁有較大檢測結(jié)果值的樣本異??赡苄源蟆?/p>
在ALI模型中,推理網(wǎng)絡(luò)的訓(xùn)練只是簡單地將輸入復(fù)制到輸出,雖保留了原始數(shù)據(jù)的特征,并不能確保隱變量獲得有用的特征表示。為了增強推理網(wǎng)絡(luò)與生成網(wǎng)絡(luò)的訓(xùn)練效率,本文考慮首先通過引入一個損壞過程[Cx′x],得到受損數(shù)據(jù)作為ALI模型的輸入,然后在ALI模型的隱含層填加一些約束,讓這些約束使模型對輸入數(shù)據(jù)中有用的特征優(yōu)先學(xué)習(xí),使模型可以學(xué)習(xí)到能更好表達(dá)樣本的特征。
改進(jìn)ALI的基本結(jié)構(gòu)由推理網(wǎng)絡(luò)I、生成網(wǎng)絡(luò)G和判斷器D三部分構(gòu)成,都是由輸入層、隱含層和輸出層構(gòu)成的神經(jīng)網(wǎng)絡(luò)。
改進(jìn)ALI模型首先對訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,確定推理網(wǎng)絡(luò)I、生成網(wǎng)絡(luò)G和判別器D的內(nèi)部神經(jīng)元的權(quán)重。之后使用訓(xùn)練好的生成網(wǎng)絡(luò)G對檢測數(shù)據(jù)進(jìn)行處理,得到處理后的檢測數(shù)據(jù)。ALI模型結(jié)構(gòu)流程圖如圖4所示。
改進(jìn)ALI模型的處理流程為:
輸入:訓(xùn)練數(shù)據(jù)D_train,檢測數(shù)據(jù)D_test;
輸出:處理后的檢測數(shù)據(jù)D_test_fin。
1) 網(wǎng)絡(luò)采用分批次訓(xùn)練,每次訓(xùn)練都從訓(xùn)練數(shù)據(jù)D_train中隨機選取固定大小的塊(batch)作為輸入數(shù)據(jù)x,根據(jù)文獻(xiàn)[6]提供的方法,通過引入一個損壞過程[Cx′x],得到受損數(shù)據(jù)[x′]作為推理網(wǎng)絡(luò)的輸入樣本。
2) 推理網(wǎng)絡(luò)和生成網(wǎng)絡(luò)過程可以由以下公式表示:
式中:z_hat為推理網(wǎng)絡(luò)輸出結(jié)果;x_tilde為生成網(wǎng)絡(luò)輸出結(jié)果;θ={W1,b1,W2,b2}表示參數(shù)的集合;f和g代表激活函數(shù)sigmod,即當(dāng)神經(jīng)元的輸出接近于1時為激活狀態(tài),而輸出是0時為抑制狀態(tài)。推理網(wǎng)絡(luò)和生成網(wǎng)絡(luò)的目標(biāo)是最小化輸入數(shù)據(jù)x與生成網(wǎng)絡(luò)重構(gòu)數(shù)據(jù)x_tilde之間的平均重構(gòu)誤差。為了防止模型過擬合,對損失函數(shù)加入懲罰項,損失函數(shù)如下所示:
隱含層神經(jīng)元j的平均活躍度為:
式中:z_hatj表示在隱含層中神經(jīng)元j的激活度;z_hatj(xi)表示輸入x時推理網(wǎng)絡(luò)和生成網(wǎng)絡(luò)隱含層神經(jīng)元j的激活度。
式中,ρ是稀疏性參數(shù)。式(10)表示讓推理網(wǎng)絡(luò)和生成網(wǎng)絡(luò)隱含層中神經(jīng)元 j的平均活躍度接近于ρ。為達(dá)到這一稀疏限制的目標(biāo),在優(yōu)化目標(biāo)函數(shù)中加入一個額外的懲罰因子,即通過最小化這一懲罰因子來實現(xiàn)[ρ′j]趨近于ρ的效果。所以懲罰因子如下所示:
式中:S2是隱含層中隱含神經(jīng)元的數(shù)量;j代表隱含層中的神經(jīng)元。所以,加入稀疏性要求后的損失函數(shù)為:
式中,β控制稀疏性懲罰因子的權(quán)重。
3) 生成網(wǎng)絡(luò)從服從高斯分布的P(z)中隨機采樣作為輸入,經(jīng)生成網(wǎng)絡(luò)處理生成x_hat。
4) 將x,x_hat和x_tilde輸入判別器。判別器的目標(biāo)是將生成網(wǎng)絡(luò)的輸出x_hat和x_tilde從真實樣本x中盡可能分辨出來,而生成網(wǎng)絡(luò)則要盡可能地欺騙判別器。兩個網(wǎng)絡(luò)相互對抗,不斷調(diào)整參數(shù)。判別器的損失函數(shù)為:
5) 將步驟2)~步驟4)重復(fù)k次,完成模型訓(xùn)練。
6) 將檢測數(shù)據(jù)D_test輸入至訓(xùn)練好的生成網(wǎng)絡(luò),得到處理后的檢測數(shù)據(jù)D_test_fin。
3? 實驗結(jié)果與分析
本文使用KDD99 10%數(shù)據(jù)集作為本次實驗的數(shù)據(jù)集。實驗中主機配置為Intel Core i5?6300HQ CPU,NVIDIA GeForce GTX960 GPU,內(nèi)存4 GB,使用Python 3.5.3編程實現(xiàn),深度學(xué)習(xí)框架使用Tensorflow 1.1.0。
為驗證本文模型對網(wǎng)絡(luò)異常行為檢測的有效性,將本文模型檢測結(jié)果與網(wǎng)絡(luò)異常行為檢測中常用的算法模型進(jìn)行對比實驗。
實驗樣本均來自同一數(shù)據(jù)集,選擇的模型分別為: DSEBM[7],DAGMM[8],AnoGAN[9]。重復(fù)進(jìn)行10次實驗并計算10次檢測結(jié)果中準(zhǔn)確率、召回率和F1值的平均值[8],結(jié)果如表1所示。
由表1可見,本文模型在召回率和F1兩項指標(biāo)方面均優(yōu)于其他的檢測模型。分析對比模型如下:
1) DSEBM模型采用逐層次進(jìn)行訓(xùn)練,每一層訓(xùn)練完成之后才進(jìn)行下一層疊加并計算上一層的參數(shù)。無法有效對本文高維度復(fù)雜數(shù)據(jù)集進(jìn)行特征學(xué)習(xí),導(dǎo)致相較于本文模型檢測準(zhǔn)確度偏低。
2) 考慮到DAGMM模型雖對數(shù)據(jù)集使用高斯概率密度函數(shù)(正態(tài)分布曲線)進(jìn)行精確量化,并分解為若干基于高斯概率密度函數(shù)形成的模型,提高了檢測準(zhǔn)確率。但受本文訓(xùn)練樣本數(shù)量少的限制,DAGMM模型內(nèi)每個混合模型沒有足夠多的樣本,協(xié)方差計算結(jié)果不準(zhǔn)確,故F1值相對于本文模型較低。
3) AnoGAN模型生成網(wǎng)絡(luò)的梯度更新來源于判別網(wǎng)絡(luò),導(dǎo)致生成網(wǎng)絡(luò)更傾向生成重復(fù)但不會被判別網(wǎng)絡(luò)認(rèn)為異常的樣本,而對于與生成網(wǎng)絡(luò)生成的相似檢測數(shù)據(jù),該模型有很高的檢測準(zhǔn)確度。AnoGAN模型因缺少諸如本文模型的推理網(wǎng)絡(luò),導(dǎo)致模型經(jīng)訓(xùn)練未得到正常行為的全部數(shù)據(jù)分布,導(dǎo)致模式崩潰[10](Mode Collapse)。
為了進(jìn)一步驗證本文模型在較少訓(xùn)練樣本情況下的有效性,針對DAGMM模型和本文模型,縮小實驗樣本量,在訓(xùn)練數(shù)據(jù)中隨機抽取2 000條數(shù)據(jù),重復(fù)進(jìn)行10次實驗,并計算檢測結(jié)果中準(zhǔn)確率、召回率和F1值,結(jié)果如表2所示。
由表2可見,在訓(xùn)練樣本較少時,該文模型相對于DAGMM模型,在準(zhǔn)確率、召回率和F1值3項指標(biāo)方面均有明顯提高。
該文模型的優(yōu)勢在于運用逆向習(xí)得推理機制,結(jié)合無監(jiān)督的模型訓(xùn)練和有監(jiān)督的分類、回歸任務(wù),無需生成顯性表達(dá)分布,也沒有繁雜的變分下限,有效避免了在傳統(tǒng)生成模型中復(fù)雜的馬爾科夫鏈的采樣和推斷,在大大降低了訓(xùn)練復(fù)雜度的同時提高了檢測準(zhǔn)確度。
上述實驗結(jié)果表明,文章提出的基于逆向習(xí)得推理的網(wǎng)絡(luò)異常行為檢測模型具有較高的召回率和檢測精度。
4? 結(jié)? 語
文章針對網(wǎng)絡(luò)異常行為數(shù)據(jù)收集不均衡以及現(xiàn)有檢測算法檢出率低等問題,提出基于逆向習(xí)得推理的網(wǎng)絡(luò)異常行為檢測模型。通過構(gòu)建改進(jìn)ALI模型的網(wǎng)絡(luò)異常檢測模型,僅使用正常行為數(shù)據(jù)對模型進(jìn)行訓(xùn)練,然后使用異常檢測函數(shù)對比判斷檢測數(shù)據(jù)是否異常,最終解決了因數(shù)據(jù)不平衡問題導(dǎo)致的檢測正確率低的問題。實驗結(jié)果表明,本文模型在樣本數(shù)據(jù)不平衡時相較于DSEBM,DAGMM,AnoGAN 3種模型具有較高的召回率和檢測精度,在網(wǎng)絡(luò)異常行為檢測領(lǐng)域具有一定的應(yīng)用價值。
參考文獻(xiàn)
[1] 戚名鈺,劉銘,傅彥銘.基于PCA的SVM網(wǎng)絡(luò)入侵檢測研究[J].信息網(wǎng)絡(luò)安全,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īng)網(wǎng)絡(luò)的入侵檢測算法[J].北京理工大學(xué)學(xué)報,2017,37(12):1271?1275.
[4] 王明,李劍.基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測系統(tǒng)[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] 任維武,張波辰,底曉強,等.基于人工蜂群優(yōu)化的密度聚類異常入侵檢測算法[J].吉林大學(xué)學(xué)報(理學(xué)版),2018(1):95?100.
[12] 周棒棒,魏書寧,唐勇,等.粗糙集屬性約簡的極限學(xué)習(xí)機網(wǎng)絡(luò)入侵檢測算法[J].傳感器與微系統(tǒng),2019(1):122?125.
[13] 黃金超,馬穎華,齊開悅,等.一種基于集成學(xué)習(xí)的入侵檢測算法[J].上海交通大學(xué)學(xué)報,2018(10):1382?1387.
[14] 周麗娟.一種改進(jìn)的基于TS?BPNN的網(wǎng)絡(luò)入侵檢測方法[J].陜西理工大學(xué)學(xué)報(自然科學(xué)版),2018(5):45?49.