楊宏宇 李博超
摘 要:針對(duì)網(wǎng)絡(luò)異常行為檢測(cè)中因數(shù)據(jù)不平衡而導(dǎo)致召回率低的問(wèn)題,提出一種基于逆向習(xí)得推理(ALI)的網(wǎng)絡(luò)異常行為檢測(cè)模型。首先,去除數(shù)據(jù)集中用離散數(shù)據(jù)表示的特征項(xiàng),并對(duì)處理后的數(shù)據(jù)集進(jìn)行歸一化以提高模型的收斂速度與精度;然后,提出改進(jìn)的ALI模型,通過(guò)ALI訓(xùn)練算法用僅由正樣本所構(gòu)成的數(shù)據(jù)對(duì)其進(jìn)行訓(xùn)練,并利用已訓(xùn)練完成的改進(jìn)ALI模型處理檢測(cè)數(shù)據(jù)以生成處理后的檢測(cè)數(shù)據(jù)集;最后,依據(jù)異常檢測(cè)函數(shù)計(jì)算檢測(cè)數(shù)據(jù)與處理后的檢測(cè)數(shù)據(jù)之間的距離來(lái)判斷數(shù)據(jù)是否異常。與單類(lèi)支持向量機(jī)(OC-SVM)、深層結(jié)構(gòu)能量模型(DSEBM)、深度自編碼高斯混合模型(DAGMM)和生成對(duì)抗網(wǎng)絡(luò)異常檢測(cè)模型(AnoGAN)的對(duì)比實(shí)驗(yàn)結(jié)果表明,所提模型的準(zhǔn)確率提升了5.8~17.4個(gè)百分點(diǎn),召回率提升了1.4~31.4個(gè)百分點(diǎn),F(xiàn)1值提升了14.18~19.7個(gè)百分點(diǎn)??芍岢龅幕谀嫦蛄?xí)得推理的網(wǎng)絡(luò)異常行為檢測(cè)模型在數(shù)據(jù)不平衡時(shí)仍具有較高的召回率和檢測(cè)精度。
關(guān)鍵詞:逆向習(xí)得推理;異常行為檢測(cè);數(shù)據(jù)不平衡;數(shù)據(jù)歸一化
Abstract: In order to solve the problem of low recall rate caused by data imbalance in network abnormal behavior detection, a network abnormal behavior detection model based on Adversarially Learned Inference (ALI) was proposed. Firstly, the feature items represented by discrete data in a dataset were removed, and the processed dataset was normalized to improve the convergence speed and accuracy of the model. Then, an improved ALI model was proposed and trained by ALI training algorithm with a dataset only consisting of positive samples, and the improved ALI model which had been trained was used to process the detection data to generate the processed detection dataset. Finally, the distance between detection data and the processed detection data was calculated based on abnormality detection function to determine whether the data was abnormal. The experimental results show that compared with One-Class Support Vector Machine (OC-SVM), Deep Structured Energy Based Model (DSEBM), Deep Autoencoding Gaussian Mixture Model (DAGMM) and Anomaly detection model with Generative Adversarial Network (AnoGAN), the accuracy of the proposed model is improved by 5.8-17.4 percentage points, the recall rate is increased by 1.4-31.4 percentage points, and the F1 value is increased by 14.18-19.7 percentage points. It can be seen that the network abnormal behavior detection model based on ALI has high recall rate and detection accuracy when the data is unbalanced.
Key words: Adversarially Learned Inference (ALI); abnormal behavior detection; data imbalance; min-max scaling
0 引言
網(wǎng)絡(luò)異常行為是指由網(wǎng)絡(luò)用戶(hù)實(shí)施的對(duì)網(wǎng)絡(luò)正常運(yùn)行造成影響的行為。這些行為具有隱蔽性強(qiáng)、竊取機(jī)密文件和造成網(wǎng)絡(luò)服務(wù)質(zhì)量急劇下降等特點(diǎn)。隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展和應(yīng)用,網(wǎng)絡(luò)異常行為的新變種更是層出不窮,其威脅也日益嚴(yán)重。對(duì)網(wǎng)絡(luò)異常行為進(jìn)行高效檢測(cè)已成為目前的研究熱點(diǎn)。
隨著機(jī)器學(xué)習(xí)算法的廣泛應(yīng)用,許多學(xué)者使用機(jī)器學(xué)習(xí)方法進(jìn)行網(wǎng)絡(luò)異常行為檢測(cè)研究。文獻(xiàn)[1]采用單類(lèi)支持向量機(jī)(One-Class Support Vector Machine, OC-SVM)算法通過(guò)將One-Class SVM和Online訓(xùn)練算法應(yīng)用于入侵檢測(cè)中,能夠在有噪聲的數(shù)據(jù)集中進(jìn)行訓(xùn)練,同時(shí)解決了基于支持向量機(jī)(Support Vector Machine, SVM)的入侵檢測(cè)實(shí)時(shí)訓(xùn)練的問(wèn)題。上述方法的主要不足是復(fù)雜度較高,且對(duì)于大型數(shù)據(jù)集的計(jì)算代價(jià)很大,由于選擇了全局閾值,無(wú)法有效處理不同密度區(qū)域的數(shù)據(jù)集。文獻(xiàn)[2]通過(guò)使用主成分分析法(Principal Component Analysis, PCA)對(duì)原始數(shù)據(jù)集進(jìn)行數(shù)據(jù)降維并消除冗余數(shù)據(jù),找到具有最優(yōu)分類(lèi)效果的主成分屬性集, 解決了對(duì)于大型數(shù)據(jù)集計(jì)算代價(jià)大的問(wèn)題,但檢測(cè)準(zhǔn)確度較低。
使用機(jī)器學(xué)習(xí)算法檢測(cè)網(wǎng)絡(luò)異常行為檢測(cè)準(zhǔn)確率低的主要原因是可收集到的異常行為樣本種類(lèi)少且數(shù)量有限,造成收集到的數(shù)據(jù)集不平衡。文獻(xiàn)[3-4]中提出通過(guò)使用變分自編碼器(Variational Auto-Encoder, VAE)模型訓(xùn)練正常行為,雖解決了網(wǎng)絡(luò)異常檢測(cè)中數(shù)據(jù)集不平衡問(wèn)題,但該方法在對(duì)數(shù)據(jù)集的處理過(guò)程中易出現(xiàn)關(guān)鍵特征提取效率不高,造成生成數(shù)據(jù)集“失真”的情況,導(dǎo)致檢測(cè)結(jié)果準(zhǔn)確率波動(dòng)較大。
為解決以上問(wèn)題,文獻(xiàn)[5]中提出基于優(yōu)化數(shù)據(jù)處理的深度置信網(wǎng)絡(luò)入侵檢測(cè)方法;文獻(xiàn)[6]中提出基于深度置信網(wǎng)絡(luò)的入侵檢測(cè)模型;文獻(xiàn)[7]中提出多種群克隆選擇算法,通過(guò)改變?cè)撍惴ǖ钠ヅ湟?guī)則以提高識(shí)別異常數(shù)據(jù)的效率。上述方法雖然提高了入侵檢測(cè)的準(zhǔn)確率,但對(duì)于模型的參數(shù)調(diào)優(yōu)較為困難,且特征提取效率較低,導(dǎo)致模型計(jì)算任務(wù)量大。針對(duì)上述不足,文獻(xiàn)[8]建立了一種卷積神經(jīng)網(wǎng)絡(luò)模型,通過(guò)提高該網(wǎng)絡(luò)提取特征的效率,進(jìn)而提高了分類(lèi)的準(zhǔn)確性;文獻(xiàn)[9]中提出了一種基于卷積神經(jīng)網(wǎng)路算法的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng),該系統(tǒng)通過(guò)自動(dòng)提取入侵樣本的有效特征,從而提升分類(lèi)的準(zhǔn)確性。上述兩種方法的主要不足在于模型訓(xùn)練過(guò)程中收斂速度不理想,泛化能力差,導(dǎo)致誤報(bào)率較高。
綜上所述,在對(duì)網(wǎng)絡(luò)異常行為的檢測(cè)過(guò)程中,使用機(jī)器學(xué)習(xí)算法檢測(cè)主要存在如下問(wèn)題:
1)由于難以收集異常行為樣本,導(dǎo)致數(shù)據(jù)集中異常數(shù)據(jù)與正常數(shù)據(jù)的量級(jí)存在嚴(yán)重偏差,使得訓(xùn)練后的結(jié)果偏向于正常行為,產(chǎn)生誤判,因而這種方法對(duì)于網(wǎng)絡(luò)異常行為的檢測(cè)正確率較低。
2)機(jī)器學(xué)習(xí)算法對(duì)較小數(shù)據(jù)量的樣本具有較好的分類(lèi)效果,而且對(duì)樣本的數(shù)據(jù)特征敏感,尤其是處于分類(lèi)邊界上的樣本,若分類(lèi)邊界上存在被錯(cuò)誤分配的樣本,則會(huì)嚴(yán)重影響分類(lèi)的準(zhǔn)確性[1]。
基于逆向習(xí)得推理(Adversarially Learned Inference,ALI)模型[9]是一種成功應(yīng)用于模擬復(fù)雜和高維分布的數(shù)據(jù)生成模型,其主要優(yōu)勢(shì)為:
1)無(wú)需利用馬爾可夫鏈反復(fù)采樣,無(wú)需在學(xué)習(xí)過(guò)程中進(jìn)行推斷,回避了棘手的概率計(jì)算難題;
2)如果判別器訓(xùn)練良好,生成網(wǎng)絡(luò)則可以有效地學(xué)習(xí)到訓(xùn)練樣本的分布。
因此,本文考慮通過(guò)設(shè)計(jì)一個(gè)模型首先來(lái)學(xué)習(xí)正常數(shù)據(jù)的分布,然后將檢測(cè)數(shù)據(jù)輸入訓(xùn)練完的模型并計(jì)算出其正常分布,最后將處理后的檢測(cè)數(shù)據(jù)與檢測(cè)數(shù)據(jù)通過(guò)異常檢測(cè)函數(shù)進(jìn)行對(duì)比判斷此數(shù)據(jù)的異常情況。
1 ALI基本內(nèi)涵
ALI模型是一種無(wú)監(jiān)督數(shù)據(jù)生成模型,由編碼器、解碼器和判別器組成。其學(xué)習(xí)過(guò)程就是編碼器、解碼器和判別器之間的一種競(jìng)爭(zhēng)過(guò)程。文獻(xiàn)[10]將這一思想表示為:
當(dāng)將ALI模型訓(xùn)練用于生成數(shù)據(jù)時(shí),解碼器將真實(shí)訓(xùn)練樣本x映射到潛在變量空間,得到z_hat;編碼器將潛在變量z轉(zhuǎn)化為生成樣本x_tilde。假設(shè)解碼器的輸入輸出(x,z_hat)分類(lèi)為1,編碼器的輸入輸出(x_tilde,z)分類(lèi)為0。判別器的目標(biāo)是將盡可能多的(x,z_hat)判別為1,同時(shí)將盡可能多的(x_tilde,z)判別為0,即D(x,Gz(x))≈1且D(Gx(z),z)≈0。當(dāng)編碼器、解碼器和判別器在訓(xùn)練中經(jīng)過(guò)多輪競(jìng)爭(zhēng)最終達(dá)到平衡時(shí),此時(shí)編碼器生成數(shù)據(jù)x_tilde與真實(shí)訓(xùn)練樣本x將非常相似。ALI理論上經(jīng)過(guò)訓(xùn)練可以完全逼近真實(shí)數(shù)據(jù)的分布,這是ALI模型的最大優(yōu)勢(shì)和特點(diǎn)。
1)數(shù)據(jù)預(yù)處理模塊。
操作處理過(guò)程為:
①因ALI模型只能處理連續(xù)性數(shù)據(jù),故去掉使用離散數(shù)據(jù)表示的特征項(xiàng)。
②遍歷數(shù)據(jù)集對(duì)數(shù)據(jù)進(jìn)行歸一化處理,將數(shù)據(jù)變?yōu)閇0,1]區(qū)間的小數(shù),以提高模型收斂速度和異常檢測(cè)函數(shù)計(jì)算精度。生成預(yù)處理后數(shù)據(jù)集。
2)異常檢測(cè)模塊。
在異常檢測(cè)模塊包括訓(xùn)練和檢測(cè)過(guò)程,處理過(guò)程為:
①將預(yù)處理后的數(shù)據(jù)集按照標(biāo)簽分為正常數(shù)據(jù)與異常數(shù)據(jù)兩類(lèi),隨機(jī)從正常數(shù)據(jù)中抽取80%的數(shù)據(jù)組成訓(xùn)練數(shù)據(jù)集,剩余的20%和異常數(shù)據(jù)組成檢測(cè)數(shù)據(jù)集。
②構(gòu)建ALI模型,確定其生成網(wǎng)絡(luò)和推理網(wǎng)絡(luò)的構(gòu)成,然后用訓(xùn)練數(shù)據(jù)集訓(xùn)練ALI模型,重復(fù)訓(xùn)練并調(diào)整網(wǎng)絡(luò)內(nèi)部神經(jīng)元的權(quán)重。
③將檢測(cè)數(shù)據(jù)集輸入到訓(xùn)練后的ALI模型中,由該模型對(duì)所輸入的數(shù)據(jù)進(jìn)行處理,輸出處理后的檢測(cè)數(shù)據(jù)。
④將處理后的檢測(cè)數(shù)據(jù)和檢測(cè)數(shù)據(jù)作為數(shù)據(jù)源,使用異常檢測(cè)函數(shù)計(jì)算兩者之間的距離,判斷異常狀態(tài)并輸出檢測(cè)結(jié)果。
3 數(shù)據(jù)預(yù)處理
在數(shù)據(jù)預(yù)處理模塊,首先去除數(shù)據(jù)集中使用離散數(shù)據(jù)表示的特征項(xiàng),然后對(duì)處理后的數(shù)據(jù)集進(jìn)行數(shù)據(jù)歸一化(Min-Max scaling),以提高模型的收斂速度與精度。具體處理過(guò)程設(shè)計(jì)如下:
步驟1 首先,統(tǒng)計(jì)數(shù)據(jù)集中以離散數(shù)據(jù)表示的特征項(xiàng)的名稱(chēng);然后,遍歷數(shù)據(jù)集并將所有用離散數(shù)據(jù)表示的特征項(xiàng)數(shù)據(jù)去掉。
步驟2 在數(shù)據(jù)集中,連續(xù)型特征數(shù)據(jù)之間取值范圍差異明顯。例如特征項(xiàng)duration和protocol_type在數(shù)據(jù)集中的取值范圍分別為[0,58329]和[1,3],可見(jiàn)兩者之間的取值范圍差距很大。為了便于異常檢測(cè)函數(shù)運(yùn)算和消除量綱,運(yùn)用函數(shù)歸一化方法,將數(shù)據(jù)集中所有數(shù)據(jù)變?yōu)閇0,1]區(qū)間的小數(shù)。歸一化公式如下:
步驟1 將數(shù)據(jù)集D中按照標(biāo)簽分為正常數(shù)據(jù)與異常數(shù)據(jù)分類(lèi),組成正常數(shù)據(jù)集D_normal與異常數(shù)據(jù)集D_anomal。隨機(jī)從D_normal中抽取80%的數(shù)據(jù)組成訓(xùn)練數(shù)據(jù)D_train,剩余的20%數(shù)據(jù)和D_anomal組成檢測(cè)數(shù)據(jù)D_test。
步驟2 使用ALI算法訓(xùn)練D_train,經(jīng)過(guò)k次迭代訓(xùn)練,確定生成網(wǎng)絡(luò)、推理網(wǎng)絡(luò)內(nèi)部神經(jīng)元的權(quán)重。設(shè)生成網(wǎng)絡(luò)為G、推理網(wǎng)絡(luò)為I、判別網(wǎng)絡(luò)為D,處理流程如算法2所述。
其中假設(shè)數(shù)據(jù)集有m個(gè)屬性,xaj和xbj分別表示D_test_fin中的記錄xa與D_test中的記錄xb對(duì)應(yīng)的第j個(gè)屬性值。本文認(rèn)為擁有較大檢測(cè)結(jié)果值的樣本異??赡苄源?。
4.2 改進(jìn)ALI模型
在ALI模型中,推理網(wǎng)絡(luò)的訓(xùn)練只是簡(jiǎn)單地將輸入復(fù)制到輸出,雖保留了原始數(shù)據(jù)的特征,并不能確保隱變量獲得有用的特征表示。為了增強(qiáng)提高推理網(wǎng)絡(luò)與生成網(wǎng)絡(luò)的訓(xùn)練效率,本文考慮首先通過(guò)引入一個(gè)損壞過(guò)程C(x′|x),得到受損數(shù)據(jù)作為ALI模型的輸入,然后在ALI模型的隱含層填加一些約束,讓這些約束使模型對(duì)輸入數(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模型首先對(duì)訓(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對(duì)檢測(cè)數(shù)據(jù)進(jìn)行處理,得到處理后的檢測(cè)數(shù)據(jù)。ALI模型結(jié)構(gòu)流程如圖4所示。
改進(jìn)ALI模型的處理流程如下。
輸入:訓(xùn)練數(shù)據(jù)D_train,檢測(cè)數(shù)據(jù)D_test。
輸出:處理后的檢測(cè)數(shù)據(jù)D_test_fin。
步驟1 網(wǎng)絡(luò)采用分批次訓(xùn)練,每次訓(xùn)練都從訓(xùn)練數(shù)據(jù)D_train中隨機(jī)選取固定大小的塊(batch)作為輸入數(shù)據(jù)x,根據(jù)文獻(xiàn)[11]提供的方法,通過(guò)引入一個(gè)損壞過(guò)程C(x′|x),得到受損數(shù)據(jù)x′作為推理網(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時(shí)為激活狀態(tài),而輸出為0時(shí)為抑制狀態(tài)。推理網(wǎng)絡(luò)和生成網(wǎng)絡(luò)的目標(biāo)是最小化輸入數(shù)據(jù)x與生成網(wǎng)絡(luò)重構(gòu)數(shù)據(jù)x_tilde之間的平均重構(gòu)誤差。為了防止模型過(guò)擬合,對(duì)損失函數(shù)加入懲罰項(xiàng),損失函數(shù)如式(8)所示:
其中,ρ是稀疏性參數(shù)。式(10)表示讓推理網(wǎng)絡(luò)和生成網(wǎng)絡(luò)隱含層中神經(jīng)元j的平均活躍度接近于ρ。為達(dá)到這一稀疏限制的目標(biāo),在優(yōu)化目標(biāo)函數(shù)中加入一個(gè)額外的懲罰因子,即通過(guò)最小化這一懲罰因子來(lái)實(shí)現(xiàn)ρj′趨近于ρ的效果,所以懲罰因子可由式(9)此處的描述不通順,另外,式(9)是否應(yīng)該為式(10)?請(qǐng)明確。表示:
步驟3 生成網(wǎng)絡(luò)從服從高斯分布的p(z)中隨機(jī)采樣作為輸入,經(jīng)生成網(wǎng)絡(luò)處理生成x_hat。
步驟4 將x、x_hat和x_tilde輸入判別器。判別器的目標(biāo)是將生成網(wǎng)絡(luò)的輸出x_hat和x_tilde從真實(shí)樣本x中盡可能分辨出來(lái),而生成網(wǎng)絡(luò)則要盡可能地欺騙判別器。兩個(gè)網(wǎng)絡(luò)相互對(duì)抗,不斷調(diào)整參數(shù)。判別器的損失函數(shù)為:
5 實(shí)驗(yàn)分析
5.1 數(shù)據(jù)集與環(huán)境配置
KDD99數(shù)據(jù)集建立的目的是為入侵檢測(cè)系統(tǒng)提供統(tǒng)一的性能評(píng)價(jià)基準(zhǔn)。本實(shí)驗(yàn)使用KDD99 10%數(shù)據(jù)集作為本次實(shí)驗(yàn)的數(shù)據(jù)集,數(shù)據(jù)集以CSV格式存儲(chǔ),共計(jì)494021條記錄,每條記錄由41個(gè)特征項(xiàng)和1個(gè)標(biāo)記位組成,標(biāo)記位分為正常(normal)或異常(attack)兩大類(lèi),異常類(lèi)型被細(xì)分為4大類(lèi),分別為拒絕服務(wù)攻擊(Denial of Service, DoS)、未授權(quán)遠(yuǎn)程主機(jī)訪(fǎng)問(wèn)(unauthorized access from a Remote machine to a Local machine, R2L)、本地未授權(quán)超級(jí)用戶(hù)特權(quán)訪(fǎng)問(wèn)(Unauthorized access to local superuseR privileges by a local unprivileged user, U2R)和端口監(jiān)視或掃描(surveillance and probing, PROBE)。數(shù)據(jù)集類(lèi)別分布如表1所示。
實(shí)驗(yàn)中主機(jī)配置為Intel Core i5-6300HQ CPU,NVIDIA GeForce GTX960 GPU,內(nèi)存4GB,使用Python 3.5.3編程實(shí)現(xiàn),深度學(xué)習(xí)框架使用Tensorflow 1.1.0。
5.2 參數(shù)設(shè)置
ALI中訓(xùn)練階段采用小批量梯度下降方法(Mini-batch Gradient Decent)對(duì)內(nèi)部神經(jīng)元權(quán)重進(jìn)行調(diào)整,以達(dá)到降低梯度下降的計(jì)算量,即每次迭代使用固定的樣本個(gè)數(shù)對(duì)參數(shù)進(jìn)行更新,實(shí)現(xiàn)了并行計(jì)算,使模型收斂速度相比批量梯度下降和隨機(jī)梯度下降方法有所提高。本文將訓(xùn)練集中每50個(gè)樣本分為一組,每次按順序選取一組進(jìn)行訓(xùn)練,所有組均訓(xùn)練一次記為一個(gè)循環(huán),共循環(huán)進(jìn)行50次訓(xùn)練。
為了防止過(guò)擬合,本文在小批量梯度下降方法中每次訓(xùn)練過(guò)程中都暫時(shí)隨機(jī)丟棄所有神經(jīng)元節(jié)點(diǎn)的20%。具體參數(shù)設(shè)置如表2所示。
5.3 評(píng)估指標(biāo)
在檢測(cè)實(shí)驗(yàn)中,為客觀評(píng)估檢測(cè)模型的有效性,本文將準(zhǔn)確率和召回率的加權(quán)調(diào)和平均值F1值作為模型的最終評(píng)估指標(biāo),為此定義如下3個(gè)基本指標(biāo)量。
TP(True Positive)表示網(wǎng)絡(luò)異常行為被正確識(shí)別的數(shù)量;FP(False Positive)表示網(wǎng)絡(luò)正常行為被錯(cuò)誤識(shí)別為異常行為的數(shù)量;FN(False Negative)表示網(wǎng)絡(luò)異常行為被錯(cuò)誤識(shí)別為正常行為的數(shù)量。利用上述3個(gè)基本指標(biāo),定義如下3個(gè)度量指標(biāo)。
由表3可知數(shù)據(jù)集一共有9項(xiàng)特征使用離散型數(shù)據(jù)描述,首先遍歷數(shù)據(jù)集將以上特征項(xiàng)的數(shù)據(jù)刪除。之后由算法1得到歸一化后的數(shù)據(jù)集,至此,數(shù)據(jù)預(yù)處理完成。
5.5 檢測(cè)實(shí)驗(yàn)
為驗(yàn)證本文模型對(duì)網(wǎng)絡(luò)異常行為檢測(cè)的有效性,實(shí)驗(yàn)步驟如下:
1)首先對(duì)連續(xù)化的數(shù)據(jù)集D按照每條記錄的第42項(xiàng)標(biāo)記位分為正常數(shù)據(jù)集D_normal與異常數(shù)據(jù)集D_anomal;
然后使用Pandas工具庫(kù)中sample函數(shù),設(shè)置frac參數(shù)為0.8,隨機(jī)從D_normal中抽取80%的數(shù)據(jù)組成訓(xùn)練集D_train;
最后,將D_train中剩余的20%數(shù)據(jù)和D_anomal組成檢測(cè)數(shù)據(jù)D_test,刪除D_train和D_test數(shù)據(jù)中的第42項(xiàng)標(biāo)記位,生成CSV格式文件。數(shù)據(jù)集D拆分結(jié)果如表4所示。
3)將檢測(cè)數(shù)據(jù)集D_test輸入已訓(xùn)練好的ALI模型中處理,輸出D_test_fin。將D_test_fin和D_test輸入異常檢測(cè)函數(shù)公式(3),計(jì)算D_test每條記錄的結(jié)果并與網(wǎng)絡(luò)異常行為檢測(cè)中常用的算法模型進(jìn)行對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)樣本均來(lái)自同一數(shù)據(jù)集(D_train),選擇的模型分別為:OC-SVM[1]、深層結(jié)構(gòu)能量模型(Deep Structured Energy Based Model, DSEBM)[12]、深度自編碼高斯混合模型(Deep Autoencoding Gaussian Mixture Model, DAGMM)[13]和生成對(duì)抗網(wǎng)絡(luò)異常檢測(cè)模型(Anomaly detection model with Generative Adversarial Network, AnoGAN)[14]。以上模型均為筆者Python編程實(shí)現(xiàn),重復(fù)進(jìn)行10次實(shí)驗(yàn)并計(jì)算10次檢測(cè)結(jié)果中準(zhǔn)確率、召回率和F1值的平均值,結(jié)果如表5所示。
由表5可見(jiàn),本文模型在召回率和F1兩項(xiàng)指標(biāo)方面均優(yōu)于其他的檢測(cè)模型。分析對(duì)比模型如下:
1)OC-SVM模型與本文模型相比,模型在分類(lèi)過(guò)程中無(wú)法有效判定異常行為的數(shù)據(jù)邊界,故導(dǎo)致準(zhǔn)確率、召回率和F1值相對(duì)于其他模型偏低。
2)DSEBM采用逐層次進(jìn)行訓(xùn)練,每一層訓(xùn)練完成之后才進(jìn)行下一層疊加并計(jì)算上一層的參數(shù)。無(wú)法有效對(duì)本文高維度復(fù)雜數(shù)據(jù)集進(jìn)行特征學(xué)習(xí),模型誤判率很高,故其評(píng)估指標(biāo)FN值偏大,導(dǎo)致相比本文模型檢測(cè)準(zhǔn)確度偏低。
3)AnoGAN生成網(wǎng)絡(luò)的梯度更新來(lái)源于判別網(wǎng)絡(luò),導(dǎo)致生成網(wǎng)絡(luò)更傾向生成重復(fù)但不會(huì)被判別網(wǎng)絡(luò)認(rèn)為異常的樣本,而對(duì)于與生成網(wǎng)絡(luò)生成的相似的檢測(cè)數(shù)據(jù),該模型有很高的檢測(cè)準(zhǔn)確度。AnoGAN因缺少諸如本文模型的推理網(wǎng)絡(luò),導(dǎo)致模型經(jīng)訓(xùn)練未得到正常行為的全部數(shù)據(jù)分布,導(dǎo)致模式崩潰(mode collapse)[15]。
4)考慮到DAGMM雖對(duì)數(shù)據(jù)集使用高斯概率密度函數(shù)(正態(tài)分布曲線(xiàn))進(jìn)行精確量化,并分解為若干基于高斯概率密度函數(shù)形成的模型,提高了檢測(cè)準(zhǔn)確率;但受本文訓(xùn)練樣本數(shù)量少的限制,DAGMM內(nèi)每個(gè)混合模型沒(méi)有足夠多的樣本,協(xié)方差計(jì)算結(jié)果不準(zhǔn)確,故F1值相對(duì)于本文模型較低。
為了進(jìn)一步驗(yàn)證本文模型在較少訓(xùn)練樣本情況下的有效性,針對(duì)DAGMM和本文模型,縮小實(shí)驗(yàn)樣本量,在D_train中隨機(jī)抽取2000條數(shù)據(jù),重復(fù)進(jìn)行10次實(shí)驗(yàn),并計(jì)算檢測(cè)結(jié)果中準(zhǔn)確率、召回率和F1值,結(jié)果如表6所示。
由表6可見(jiàn),在訓(xùn)練樣本較少時(shí),本文模型相對(duì)于DAGMM,在準(zhǔn)確率、召回率和F1三項(xiàng)指標(biāo)方面均有明顯提高。
本文模型的優(yōu)勢(shì)在于運(yùn)用逆向習(xí)得推理機(jī)制,結(jié)合無(wú)監(jiān)督的模型訓(xùn)練和有監(jiān)督的分類(lèi)與回歸任務(wù),無(wú)需顯性表達(dá)生成分布,也沒(méi)有繁雜的變分下限,有效避免了在傳統(tǒng)生成模型中復(fù)雜的馬爾可夫鏈的采樣和推斷,在大幅度降低了訓(xùn)練復(fù)雜度的同時(shí)提高了檢測(cè)準(zhǔn)確度。
上述實(shí)驗(yàn)結(jié)果表明,本文提出的基于逆向習(xí)得推理的網(wǎng)絡(luò)異常行為檢測(cè)模型具有較高的召回率和檢測(cè)精度。
6 結(jié)語(yǔ)
本文針對(duì)網(wǎng)絡(luò)異常行為數(shù)據(jù)收集不均衡以及現(xiàn)有檢測(cè)算法檢出率低等問(wèn)題,提出基于逆向習(xí)得推理的網(wǎng)絡(luò)異常行為檢測(cè)模型。對(duì)數(shù)據(jù)集通過(guò)去掉離散數(shù)據(jù)項(xiàng),使用線(xiàn)性函數(shù)歸一化提高了模型的收斂速度和模型的精度,該模型首先通過(guò)ALI算法訓(xùn)練正常行為數(shù)據(jù)的分布;之后使用已經(jīng)訓(xùn)練好的ALI算法處理檢測(cè)數(shù)據(jù)的正常分布;最后使用異常檢測(cè)函數(shù)對(duì)比判斷檢測(cè)數(shù)據(jù)是否異常,解決了因數(shù)據(jù)不平衡問(wèn)題導(dǎo)致的檢測(cè)正確率低的問(wèn)題。實(shí)驗(yàn)結(jié)果表明,本文模型在樣本數(shù)據(jù)不平衡時(shí)相比OC-SVM、DSEBM、DAGMM和AnoGAN四種模型具有較高的召回率和檢測(cè)精度。
下一步對(duì)本文模型的改進(jìn)重點(diǎn)集中在以下兩個(gè)方面:1)對(duì)異常檢測(cè)結(jié)果分類(lèi),得出異常行為的準(zhǔn)確攻擊類(lèi)別;2)嘗試使用其他數(shù)據(jù)集訓(xùn)練和測(cè)試驗(yàn)證本文模型,根據(jù)實(shí)驗(yàn)結(jié)果對(duì)本文模型繼續(xù)優(yōu)化,進(jìn)一步提高檢測(cè)準(zhǔn)確度。
參考文獻(xiàn) (References)
[1] 黃謙,王震,韋韜,等.基于One-Class SVM的實(shí)時(shí)入侵檢測(cè)系統(tǒng)[J].計(jì)算機(jī)工程,2006,32(16):133-135.(HUANG Q, WANG Z, WEI T, et al. A Real-time intrusion detection system based on One-Class SVM[J]. Computer Engineering, 2006, 32(16): 133-135.)
[2] 戚名鈺,劉銘,傅彥銘.基于PCA的SVM網(wǎng)絡(luò)入侵檢測(cè)研究[J].信息網(wǎng)絡(luò)安全,2015(2):15-18.(QI M Y, LIU M, FU Y M. Research on network intrusion detection using support vector machines based on principal component analysis[J]. Netinfo Security, 2015(2): 15-18.)
[3] ZHOU C, PAFFENROTH R C. Anomaly detection with robust deep autoencoders[C]// Proceedings of the 2017 ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York: ACM, 2017: 665-674.
[4] 袁靜,章毓晉.融合梯度差信息的稀疏去噪自編碼網(wǎng)絡(luò)在異常行為檢測(cè)中的應(yīng)用[J].自動(dòng)化學(xué)報(bào),2017,43(4):604-610.(YUAN J, ZHANG Y J. Application of sparse denoising auto encoder network with gradient difference information for abnormal action detection[J]. Acta Automatica Sinica, 2017, 43(4):604-610.)
[5] 陳虹,萬(wàn)廣雪,肖振久.基于優(yōu)化數(shù)據(jù)處理的深度信念網(wǎng)絡(luò)模型的入侵檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用,2017,37(6):1636-1643.(CHEN H, WAN G X, XIAO Z J. Intrusion detection method of deep belief network model based on optimization of data processing [J]. Journal of Computer Applications, 2017, 37 (6): 1636-1643.)
[6] QU F, ZHANG J, SHAO Z, et al. An intrusion detection model based on deep belief network[C]// Proceedings of the 2017 VI International Conference on Network, Communication and Computing. Kunming: [s.n.], 2017: 97-101.
[7] 魏明軍,王月月,金建國(guó).一種改進(jìn)免疫算法的入侵檢測(cè)設(shè)計(jì)[J].西安電子科技大學(xué)學(xué)報(bào),2016,43(2):126-131.(WEI M J, WANG Y Y, JIN J G. Intrusion detection design of the impoved immune algorithm[J]. Journal of Xidian University, 2016, 43(2): 126-131.)
[8] 賈凡,孔令智.基于卷積神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)算法[J].北京理工大學(xué)學(xué)報(bào),2017,37(12):1271-1275.(JIA F, KONG L Z. Intrusion detection algorithm based on convolutional neural network[J]. Transactions of Beijing Institute of Technology, 2017, 37(12): 1271-1275.)
[9] 王明,李劍.基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)[J].信息安全研究,2017,3(11):990-994.(WANG M, LI J. Network intrusion detection model based on convolutional neural network[J]. Journal of Information Security Research, 2017, 3(11): 990-994.)
[10] DUMOULIN V, BELGHAZI I, POOLE B, et al. Adversarially learned inference[J]. ArXiv Preprint, 2016, 2016: 1606.00704.(https://arxiv.org/pdf/1606.00704.pdf)
[11] 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. New York: ACM, 2008: 1096-1103.
[12] ZHAI S, CHENG Y, LU W, et al. Deep structured energy based models for anomaly detection[J]. ArXiv Preprint, 2016, 2016: 1605.00717.
[13] ZONG B, SONG Q, MIN M R, et al. Deep autoencoding Gaussian mixture model for unsupervised anomaly detection [C]// Proceedings of the 2018 International Conference on Learning Representations. Vancouver: ICLR, 2018: 1203-1224.
[14] SCHLEGL T, SEEBCK P, WALDSTEIN S M, et al. Unsupervised anomaly detection with generative adversarial networks to guide marker discovery [C]// Proceedings of the 2017 International Conference on Information Processing in Medical Imaging. Berlin: Springer, 2017: 146-157.
[15] METZ L, POOLE B, PFAU D, et al. Unrolled generative adversarial networks[J]. ArXiv Preprint, 2016, 2016: 1611.02163.