安 磊,韓忠華,2,林 碩,尚文利
1.沈陽建筑大學(xué) 信息與控制工程學(xué)院,沈陽110168
2.中國科學(xué)院 沈陽自動化研究所 數(shù)字工廠研究室,沈陽110016
3.中國科學(xué)院 沈陽自動化研究所 工業(yè)控制網(wǎng)絡(luò)與系統(tǒng)研究室,沈陽110016
4.中國科學(xué)院 網(wǎng)絡(luò)化控制系統(tǒng)重點實驗室,沈陽110016
5.中國科學(xué)院 機(jī)器人與智能制造創(chuàng)新研究院,沈陽110016
隨著大數(shù)據(jù)時代的來臨,網(wǎng)絡(luò)數(shù)據(jù)呈現(xiàn)出數(shù)據(jù)量大、維度高且不平衡的特性,在進(jìn)行入侵檢測前,對數(shù)據(jù)進(jìn)行不平衡處理和特征降維至關(guān)重要[1-4]。目前已有眾多學(xué)者對基于機(jī)器學(xué)習(xí)的入侵檢測方法進(jìn)行了大量研究,文獻(xiàn)[5]提出了基于隨機(jī)森林的高維不平衡數(shù)據(jù)分類方法研究,利用生成少數(shù)類樣本方法(Synthetic Minority Over-sampling Technique,SMOTE)降低數(shù)據(jù)集的不平衡度來提高少數(shù)類的檢測率;文獻(xiàn)[6]提出了基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)和支持向量機(jī)(Support Vector Machine,SVM)的報文入侵檢測方法,此方法學(xué)習(xí)速度較快,泛化性能好但面對海量樣本時檢測速度較慢;文獻(xiàn)[7]提出了基于PCA-LSTM(Principal Components Analysis-Long Short Term Memory)的入侵檢測方法,此方法在處理小樣本數(shù)據(jù)集時檢測準(zhǔn)確率較高,面對大量樣本時性能較差;文獻(xiàn)[8]采用基于欠采樣的隨機(jī)森林算法用于文本分類,在不平衡數(shù)據(jù)分類上提高了準(zhǔn)確率和效率;文獻(xiàn)[9]提出一種針對不平衡數(shù)據(jù)的過采樣和隨機(jī)森林改進(jìn)算法,通過過抽樣法增加少數(shù)類的識別率。文獻(xiàn)[10]在N-Nakagami信道的基礎(chǔ)上,提出了基于BP神經(jīng)網(wǎng)絡(luò)的移動安全性能智能預(yù)測方法,該方法的預(yù)測性能更好。
盡管上述入侵檢測方法取得較好的效果,但是現(xiàn)有的研究都是通過采用隨機(jī)過采樣,隨機(jī)欠采樣和SMOTE解決數(shù)據(jù)的不平衡問題。隨機(jī)過采樣會擴(kuò)大數(shù)據(jù)規(guī)模增加訓(xùn)練時間,易陷入過擬合;隨機(jī)欠采樣會盲目地刪除一些重要信息,影響分類準(zhǔn)確率;SMOTE生產(chǎn)的樣本不具有多樣性[11]。因此,本文提出利用生成式對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)來解決數(shù)據(jù)不平衡問題。GAN是一種新的生成模型[12],它通過學(xué)習(xí)目標(biāo)數(shù)據(jù)樣本的概率分布,從而生成極大相似于目標(biāo)數(shù)據(jù)樣本的偽造樣本,是直接比較偽造樣本和目標(biāo)樣本的分布來進(jìn)行訓(xùn)練生成的新的生成式模型,通過對抗的方式不斷地生成最大可能逼近真實樣本的偽造樣本,提高偽造樣本的生成質(zhì)量,有效解決了傳統(tǒng)生成模型在生成過程中由于訓(xùn)練樣本不足而導(dǎo)致的過擬合問題[13-15],目前很少被運用在解決入侵檢測數(shù)據(jù)不平衡問題上。
棧式降噪自編碼器(Stacked Denoising Autoencoder,SDAE)處理大樣本和高維數(shù)據(jù)相比傳統(tǒng)機(jī)器學(xué)習(xí)方法具有學(xué)習(xí)速度快,泛化性能好,抗噪性強(qiáng)等優(yōu)點[16]。在數(shù)據(jù)降維問題上,主成分分析法(Principal Components Analysis,PCA)在面對大量的數(shù)據(jù)樣本時,會產(chǎn)生數(shù)據(jù)特征表達(dá)不完整導(dǎo)致檢測誤報率上升的問題,宋永強(qiáng)[17]提出一種基于SDAE的物聯(lián)網(wǎng)分層入侵檢測模型,實驗表明經(jīng)SDAE處理后的入侵?jǐn)?shù)據(jù)的準(zhǔn)確率、誤報率和漏報率較PCA方法提高了10.46%,較KPCA提高了8.64%,更適應(yīng)高維空間的特征提取任務(wù)。因此本文采用了棧式降噪自編碼器SDAE對高維數(shù)據(jù)進(jìn)行空間降維重構(gòu)。SDAE(Stacked Denoising Autoencoder)在AE(Autoencoder)的基礎(chǔ)上對數(shù)據(jù)信息加入了噪聲處理,增強(qiáng)了自編碼網(wǎng)絡(luò)輸入層的魯棒性,并且在DAE(Denoising Autoencoder)的基礎(chǔ)上加入了丟失包技術(shù)增強(qiáng)了自編碼網(wǎng)絡(luò)之間級聯(lián)的魯棒性。
隨機(jī)森林(Random Forest,RF)是Breiman在2001年提出的一種集成訓(xùn)練算法,作為應(yīng)用在入侵檢測領(lǐng)域中較好的分類算法,集成多個決策樹模型所形成的分類器,與神經(jīng)網(wǎng)絡(luò)和SVM相比具有檢測精度高,調(diào)整參數(shù)少和易并行化處理等優(yōu)勢。舒斐等人[18]提出基于深度置信網(wǎng)絡(luò)(Deep Belief Network,DBN)和RF的電網(wǎng)工控系統(tǒng)異常識別方法,該方法在保證高檢測精度下極大減少了訓(xùn)練時間,然而由于在識別前沒有對數(shù)據(jù)進(jìn)行不平衡處理和抗噪降維重構(gòu),容易導(dǎo)致輸出結(jié)果在噪聲影響下魯棒性較差。因此當(dāng)數(shù)據(jù)為不平衡數(shù)據(jù)時隨機(jī)森林算法對少數(shù)類的分類精度不高[19];當(dāng)數(shù)據(jù)中冗余屬性較多時會影響隨機(jī)森林算法的速度和精度[20]。近年來,SDAE多次應(yīng)用在入侵檢測領(lǐng)域,但是目前尚未與隨機(jī)森林方法結(jié)合使用。
綜上所述,為解決入侵檢測數(shù)據(jù)不平衡且維度高導(dǎo)致整體檢測率和罕見攻擊類檢測率低的問題,本文提出了一種基于GAN-SDAE-RF的網(wǎng)絡(luò)入侵檢測模型,首先利用GAN方法對網(wǎng)絡(luò)數(shù)據(jù)進(jìn)行不平衡處理,在處理后分布平衡的數(shù)據(jù)集上使用SDAE對高維數(shù)據(jù)進(jìn)行特征降維,構(gòu)建隨機(jī)森林,建立出可有效識別并處理高維、不均衡入侵?jǐn)?shù)據(jù)的入侵檢測模型。利用UNSW-NB15數(shù)據(jù)集進(jìn)行實驗驗證,與LSTM、DBN、CNN、SVM和KNN相比結(jié)果表明本文提出的檢測模型性能更好,正確性和創(chuàng)新性得到了驗證。
GAN是由Goodfellow等在2014年提出的一種新型生成模型,屬于深度學(xué)習(xí)算法的一種[21]。它的結(jié)構(gòu)屬于二人零和博弈,一方的收益為另一方的損失。GAN是由判別模型(Discriminative model,D)和生成模型(Generative model,G)構(gòu)成的,生成模型G采用特定的方式模擬出某種數(shù)據(jù)的概率分布,使之與某種目標(biāo)數(shù)據(jù)的概率統(tǒng)計分布相同或者盡可能相似。在整個算法最初開始時根據(jù)將噪聲z輸入到G來生成一些數(shù)據(jù),D從真實數(shù)據(jù)和G生成的數(shù)據(jù)中判斷出哪些是G生成的偽造數(shù)據(jù)。如圖1所示,整個過程相當(dāng)于G和D的博弈過程,G的目的是讓它生成的數(shù)據(jù)不能被D輕易識別,D的目的是盡可能準(zhǔn)確地判斷數(shù)據(jù)的來源,不斷迭代優(yōu)化這個過程,最終達(dá)到穩(wěn)態(tài),此時G能夠生成接近真實數(shù)據(jù)分布的偽造數(shù)據(jù),并不是單純的真實數(shù)據(jù)的復(fù)現(xiàn),通過G生成的偽造數(shù)據(jù)實現(xiàn)數(shù)據(jù)擴(kuò)充的作用。其核心思想可用數(shù)學(xué)公式表示如下:
圖1 生成式對抗網(wǎng)絡(luò)框架圖Fig.1 Generative adversarial network framework
式中,V(D,G)是損失函數(shù);Pm是真實數(shù)據(jù)分布;Pz是生成數(shù)據(jù)分布;G(z)表示G通過輸入噪聲z生成的偽造樣本;D(x)表示D判斷x為真實數(shù)據(jù)的概率;D(x)和G(z)交替的最大化和最小化損失函數(shù),最終求出近似最優(yōu)解的生成式模型。
針對目前的網(wǎng)絡(luò)數(shù)據(jù)具有維度高且復(fù)雜的特點,本文將自編碼網(wǎng)絡(luò)用于數(shù)據(jù)的特征提取。深度學(xué)習(xí)具有強(qiáng)大的數(shù)據(jù)特征提取能力,采用自編碼器(AE)可以實現(xiàn)無監(jiān)督的對輸入數(shù)據(jù)特征的挖掘和提取,并對高維度數(shù)據(jù)進(jìn)行降維。AE的學(xué)習(xí)目標(biāo)是使輸出數(shù)據(jù)向量x′盡最大相似重構(gòu)等于輸入數(shù)據(jù)向量x。
降噪自編碼器(DAE)是在自編碼器的基礎(chǔ)上加入噪聲構(gòu)成的。單層的DAE結(jié)構(gòu)見圖2(a)圖。DAE的基本過程為:首先在原始數(shù)據(jù)x中添加噪聲數(shù)據(jù),使用隨機(jī)映射函數(shù)qD將x轉(zhuǎn)換為x′,然后通過編碼函數(shù)f將含有噪聲數(shù)據(jù)的x′求得編碼后的特征y=f( )
Wx+p,再通過解碼函數(shù)g得到解碼數(shù)據(jù)這里的f和g為激活函數(shù),設(shè)置為sigmoid函數(shù)。通過優(yōu)化重構(gòu)誤差J(x,x?)來對DAE的參數(shù)進(jìn)行調(diào)整,使用梯度下降法最優(yōu)參數(shù)為保存隱藏層參數(shù)W(1)作為后一層DAE的輸入,進(jìn)行異常特征的逐層提取,在多個降噪自編碼器上下級聯(lián)形成棧式結(jié)構(gòu)時,再將每個DAE的編碼矢量合并構(gòu)成一個N層的神經(jīng)網(wǎng)絡(luò)。逐層訓(xùn)練,反復(fù)迭代DAE過程,直到模型到達(dá)最后輸出層,就可以得到深度結(jié)構(gòu)棧式降噪自編碼器SDAE其過程如圖2(b)圖和圖3所示。
圖2 SDAE結(jié)構(gòu)Fig.2 SDAE structure
圖3 SDAE特征提取Fig.3 SDAE feature extraction
SDAE的訓(xùn)練過程:第一階段,無監(jiān)督的逐層訓(xùn)練參數(shù),每個隱含層即為每個DAE預(yù)訓(xùn)練過程逐層提取的特征,第二階段,對整個棧式結(jié)構(gòu)的參數(shù)進(jìn)行整體調(diào)整,得到模型最優(yōu)解。
隨機(jī)森林是由Breiman在2001年提出的一種集成學(xué)習(xí)算法,此方法可以被看作是多個決策樹的集合,如圖4所示。隨機(jī)森林利用Bagging算法對原始數(shù)據(jù)集進(jìn)行隨機(jī)采樣,得到各個數(shù)量相同但互不相同的數(shù)據(jù)子集。首先,N棵決策樹對應(yīng)N個數(shù)據(jù)子集,由指數(shù)最小原則選出M個特征變量中m個屬性中的最優(yōu)劃分。節(jié)點的屬性分類采用CART算法,對于數(shù)據(jù)集D,使基尼指數(shù)盡可能的小,數(shù)據(jù)集中被選中的樣本分錯的概率越小。選中的屬性個數(shù)為隨機(jī)特征變量,依次訓(xùn)練大量的決策樹,然后將所有的決策樹形成森林。
圖4 隨機(jī)森林圖解Fig.4 Random forest illustration
隨機(jī)森林的分類結(jié)果是在考慮所有決策樹結(jié)果的基礎(chǔ)上進(jìn)行綜合投票后產(chǎn)生的,樣本的最終分類為所獲票數(shù)占總得票數(shù)比值最大的類別。在進(jìn)行數(shù)據(jù)分類時,隨機(jī)森林算法擁有良好的抗噪性,能處理缺失值和異常值,由于引入了部分隨機(jī)性,令隨機(jī)森林具有了更好的魯棒性。但是在面對高維和不平衡數(shù)據(jù)集時單獨采用隨機(jī)森林方法不能確定數(shù)據(jù)樣本相關(guān)性最小以及少數(shù)類數(shù)據(jù)分布是否均衡,導(dǎo)致分類精度低,因此在訓(xùn)練隨機(jī)森林分類器之前需要對數(shù)據(jù)進(jìn)行不平衡擴(kuò)充以及特征降維。
GAN是一種采用對抗的方式學(xué)習(xí)真實樣本分布的生成式模型。該模型無需預(yù)先建模,即可生成高質(zhì)量的新樣本。在入侵檢測過程中由于某幾類異常數(shù)據(jù)數(shù)量極少,導(dǎo)致入侵檢測使用的數(shù)據(jù)集數(shù)據(jù)分布不平衡,因此本文運用GAN生成少數(shù)類訓(xùn)練樣本,減少不平衡訓(xùn)練樣本對檢測準(zhǔn)確率的影響。
SDAE是一種深度學(xué)習(xí)方法,包含輸入層,N個隱含層和輸出層,以DAE為基本單元,順序逐層堆疊構(gòu)成深度網(wǎng)絡(luò)結(jié)構(gòu),具有深層的特征提取能力,并且利用DAE的降噪特性使模型的泛化能力增強(qiáng)??梢詫⒏呔S數(shù)據(jù)最大可能的降維,得到最具有特征的數(shù)據(jù),得到重新構(gòu)成的原始數(shù)據(jù),更容易被隨機(jī)森林學(xué)習(xí)。
隨機(jī)森林算法集成多個決策樹模型所形成的分類器,具有檢測精度高,調(diào)整參數(shù)少以及易于并行化等優(yōu)勢,但其缺點在于當(dāng)數(shù)據(jù)集維度過高時算法的訓(xùn)練時間長、檢測精度低;當(dāng)數(shù)據(jù)集分布不平衡時算法對少數(shù)類樣本的檢測能力極低??紤]到網(wǎng)絡(luò)數(shù)據(jù)具有維度高、不平衡等特性,鑒于GAN、SDAE和隨機(jī)森林算法獨有的良好性能,充分利用GAN和SDAE的優(yōu)點將兩種方法相結(jié)合,針對傳統(tǒng)隨機(jī)森林算法的缺點去處理網(wǎng)絡(luò)數(shù)據(jù)進(jìn)而提高隨機(jī)森林算法的分類準(zhǔn)確率。在運用GAN生成少數(shù)類樣本后,結(jié)合生成的少數(shù)類樣本和原始數(shù)據(jù)集,構(gòu)成一個新的且樣本分布均衡的數(shù)據(jù)集,并通過Bagging算法將新的數(shù)據(jù)集抽樣產(chǎn)生多個樣本分布均衡的數(shù)據(jù)子集,然后采用SDAE將每個數(shù)據(jù)子集進(jìn)行特征降維,每個降維后的數(shù)據(jù)樣本分別對應(yīng)每一棵決策樹,進(jìn)行訓(xùn)練。在檢測階段通過結(jié)合每棵決策樹的分類結(jié)果進(jìn)行投票,最終匯集所有決策樹形成森林并得出分類結(jié)果,構(gòu)建基于GAN-SDAE-RF的網(wǎng)絡(luò)入侵檢測模型。整體框架如圖5所示。
圖5 基于GAN-SDAE-RF的網(wǎng)絡(luò)入侵檢測模型框架Fig.5 Network instrusion detection model framework based on GAN-SDAE-RF
利用GAN生成對抗網(wǎng)絡(luò)對訓(xùn)練數(shù)據(jù)中較少的攻擊類型Analysis、Shellcode、Backdoor、Worms進(jìn)行數(shù)據(jù)生成,通過類別內(nèi)擴(kuò)充,具體步驟為:
步驟1首先分別分離出只包括Analysis、Shellcode、Backdoor、Worms攻擊類型的四個真實數(shù)據(jù)集。
步驟2依據(jù)GAN模型輸入格式要求將128的數(shù)據(jù)轉(zhuǎn)換為12×12的矩陣向量,剩余的16維補0。
步驟3給定生成模型一個取值范圍在[?1,1]的144維噪聲s,將該生成的假數(shù)據(jù)與分離出來的真實數(shù)據(jù)進(jìn)行混合,訓(xùn)練判別器。
步驟4根據(jù)設(shè)定的迭代次數(shù)進(jìn)行判別模型的訓(xùn)練迭代,直至判別結(jié)果最優(yōu),此時固定判別模型的參數(shù),將判別的結(jié)果反饋給生成模型。
步驟5根據(jù)設(shè)定的迭代次數(shù)進(jìn)行生成模型的訓(xùn)練迭代,直至判別結(jié)果最差,此時固定生成模型的參數(shù),不斷迭代此過程,直至GAN模型平衡。
步驟6將生成的少數(shù)類數(shù)據(jù)作為擴(kuò)充樣本與原始數(shù)據(jù)進(jìn)行補充,將擴(kuò)充的樣本重組為144維特征,取前128維數(shù)據(jù)作為擴(kuò)充的樣本,得到平衡的訓(xùn)練數(shù)據(jù)集。
利用SDAE對擴(kuò)充后的數(shù)據(jù)進(jìn)行特征提取,如圖6所示,訓(xùn)練過程為:
圖6 SDAE訓(xùn)練過程Fig.6 SDAE training process
步驟1構(gòu)建第一個DAE,設(shè)定每個規(guī)則θj:x1,x2,…,xn,θj為對象網(wǎng)絡(luò)的隱含層神經(jīng)元,x1,x2,…,xn為輸入層神經(jīng)元集。
步驟2確定θj和x1,x2,…,xn之間的連接權(quán)重Mθj,當(dāng)輸入神經(jīng)元對應(yīng)規(guī)則中的激活元素,那么M=1,否則M=-1,剩余與θj關(guān)系不大的權(quán)重設(shè)為較小的隨機(jī)值。神經(jīng)元偏差設(shè)為隨機(jī)值。
步驟3利用反向傳播算法訓(xùn)練網(wǎng)絡(luò),更新連接權(quán)值。
步驟4對每一個DAE重復(fù)步驟1~3,直至全部的DAE完成訓(xùn)練。
將GAN模型生成少數(shù)類樣本、SDAE特征提取和隨機(jī)森林算法構(gòu)建并行化設(shè)計。如圖7所示,整個并行化設(shè)計思路如下:
圖7 模型訓(xùn)練過程Fig.7 Model training process
步驟1首先將網(wǎng)絡(luò)上捕獲的數(shù)據(jù)集進(jìn)行數(shù)值化和歸一化處理,然后GAN模型從少數(shù)類樣本中進(jìn)行少數(shù)類樣本擴(kuò)充。
步驟2將GAN模型生成的少數(shù)類樣本與原數(shù)據(jù)樣本整合,獲得一個新的且平衡的數(shù)據(jù)集,通過Bagging算法將新的數(shù)據(jù)集隨機(jī)抽樣產(chǎn)生多個數(shù)量相等且分布平衡的數(shù)據(jù)子集。
步驟3將每個數(shù)據(jù)子集通過SDAE進(jìn)行特征提取,得到重構(gòu)后的新的數(shù)據(jù)子集。
步驟4每一個數(shù)據(jù)子集根據(jù)決策樹的生成方式訓(xùn)練出相應(yīng)的決策樹模型。
步驟5匯集所有的決策樹形成森林。
為了驗證本文基于深度學(xué)習(xí)的入侵檢測模型,搭建仿真實驗環(huán)境,應(yīng)用基于tensorflow-GPU1.13的Keras2.2.4深度學(xué)習(xí)框架進(jìn)行實驗仿真,操作系統(tǒng)為Windows10,使用英特爾i5-6300HQ 4核處理器,內(nèi)存大小為8 GB,同時使用NVIDIA GTX960顯卡來加快GPU的運行速度。
實驗使用的數(shù)據(jù)集為UNSW-NB15數(shù)據(jù)集,是入侵檢測領(lǐng)域研究的最新的數(shù)據(jù)集。該數(shù)據(jù)集由澳大利亞網(wǎng)絡(luò)安全中心(ACCS)于2015年創(chuàng)建,其中涵蓋了大量低占用入侵和深度結(jié)構(gòu)化的網(wǎng)絡(luò)流量信息,代表了現(xiàn)代網(wǎng)絡(luò)流量模式,調(diào)整了訓(xùn)練集和測試集,更適合用于模擬目前的復(fù)雜的網(wǎng)絡(luò)環(huán)境,使測試結(jié)果更好[22-23]。該數(shù)據(jù)集有9種不同的現(xiàn)代攻擊類型,49個特征,比NSL-KDD多5種攻擊類型,包含2 540 044個樣本,包含9類攻擊,分別為Fuzzers、DoS、Analysis、Reconnaissance、Exploit、Shellcode、Worm、Backdoor、Generic。每一條數(shù)據(jù)具有47維特征和1個具體攻擊類別標(biāo)識、1個攻擊與正常類別標(biāo)識。
(1)應(yīng)用獨熱編碼對字符型特征數(shù)值化。
數(shù)據(jù)集中protocol_type、service和state包含字符型特征,則首先需要將字符型特征應(yīng)用獨熱編碼轉(zhuǎn)換為數(shù)值型特征,protocol_type包括TCP、UDP、ICMP的3種類別,則轉(zhuǎn)換為數(shù)值型特征為三維特征[1,0,0]、[0,1,0]、[0,0,1],對于service有70種情況,因此數(shù)值轉(zhuǎn)換為70維特征,state有11種情況,因此數(shù)值轉(zhuǎn)換為11維,通過數(shù)值化處理后,整個數(shù)據(jù)集就變成了130維數(shù)值型特征,其中前128維為特征,后二維為類標(biāo)簽。
(2)歸一化處理。
處理完字符型特征后,數(shù)據(jù)集中的特征分為兩個屬性,連續(xù)型和離散型,這就使得不同特征之間差異較大,故需要將數(shù)據(jù)集中的特征值歸一化至[?1,1]區(qū)間,本文運用min-max標(biāo)準(zhǔn)化方法進(jìn)行歸一化處理,這樣只是對數(shù)據(jù)進(jìn)行了壓縮處理,并沒有改變數(shù)據(jù)的原始性信息[24]。轉(zhuǎn)換公式如下,ymin和ymax分別表示原始特征值的最大值和最小值,y則代表轉(zhuǎn)換前的特征值。
將數(shù)據(jù)集劃分為兩部分包括訓(xùn)練數(shù)據(jù)集(175 341個樣本)和測試數(shù)據(jù)集(82 332個樣本)[25],具體見表1。
表1 數(shù)據(jù)集明細(xì)Table 1 Data set details
為了驗證不同模型的檢測性能,需要根據(jù)模型的檢測樣本類別和樣本實際類別進(jìn)行計算,本文主要采用準(zhǔn)確率(ACC)、均方誤差(MSE)、誤報率(FPR)和漏報率(FNR)對模型進(jìn)行評估,假設(shè)ti代表第i個樣本的實際類別,t′i代表第i個樣本的檢測類別,樣本集為n,漏報事件m項,誤報事件f項。當(dāng)ti=t′i時,代表模型檢測準(zhǔn)確。則在樣本集n上的準(zhǔn)確率為:
其中,L(x)代表檢測函數(shù),當(dāng)樣本集中所有的檢測結(jié)果類別與樣本實際類別相同時,準(zhǔn)確率為1。
均方誤差是衡量誤差的平均值,評價數(shù)據(jù)變化程度的一種方法,計算公式如下:
誤報率為:
漏報率為:
因為網(wǎng)絡(luò)入侵檢測數(shù)據(jù)復(fù)雜,評價模型好壞的標(biāo)準(zhǔn)難以界定,因此本文通過ACC、MSE、FPR和FNR對各模型檢測結(jié)果進(jìn)行綜合對比,驗證模型的精確性和穩(wěn)定性。
本文從Analysis、Shellcode、Backdoor、Worms類攻擊樣本中分別選取了2 000、1 258、1 587、125個真實數(shù)據(jù)樣本對GAN進(jìn)行訓(xùn)練。GAN的初始參數(shù)包括batch-size設(shè)置為50,epoch為100,學(xué)習(xí)率設(shè)置為0.000 2,選取relu函數(shù)作為模型的激活函數(shù),使用Adam優(yōu)化器。以Analysis類攻擊樣本為例,最終生成器損失和判別器損失變化曲線如圖8和圖9所示,從圖中可以看出訓(xùn)練次數(shù)到達(dá)5 500次左右,生成器和判別器的損失開始收斂。
圖8 生成器損失曲線Fig.8 Generator loss curve
圖9 判別器損失曲線Fig.9 Discriminator loss curve
通過SDAE對處理完不平衡問題的訓(xùn)練數(shù)據(jù)樣本進(jìn)行降維操作,SDAE作為深度學(xué)習(xí)模型,它的初始參數(shù)是由逐層貪婪訓(xùn)練最小化原始數(shù)據(jù)和重構(gòu)數(shù)據(jù)的重構(gòu)誤差所得到的權(quán)重。通過BP算法微調(diào)初始參數(shù)的交叉熵來確保最小重構(gòu)誤差,從而得到最優(yōu)結(jié)果。輸入層節(jié)點數(shù)與數(shù)值化處理后的數(shù)據(jù)特征值保持一致,這里設(shè)為122,通過不同SDAE網(wǎng)絡(luò)結(jié)構(gòu)對比實驗,采用四層網(wǎng)絡(luò)結(jié)構(gòu)準(zhǔn)確率最高,DAE1為122-100,DAE2為100-60,DAE3為60-30,DAE4為30-5。每層的神經(jīng)元個數(shù)分別為122、100、60、30、5,batch-size設(shè)置為64,epoch設(shè)置為3 000。如圖10所示,選取均方誤差作為衡量重構(gòu)誤差的標(biāo)準(zhǔn),可以看出訓(xùn)練5次時MSE趨于穩(wěn)定。設(shè)置各層DAE及SDAE模型的訓(xùn)練次數(shù)為10次,通過實驗分析噪聲比例對準(zhǔn)確率的影響,如圖11所示,噪聲比例在[0.2,0.6]區(qū)間準(zhǔn)確率最高,結(jié)合多次實驗結(jié)果選取均值,因此本次設(shè)置為0.4。
圖10 SDAE訓(xùn)練次數(shù)Fig.10 SDAE training times
圖11 噪聲比例與準(zhǔn)確率影響圖Fig.11 Influence graph of noise ratio and accuracy
選取categorical_crossentropy為損失函數(shù),其專門用于多分類問題,設(shè)置bach_size為64,epoch為10,運用Adam優(yōu)化算法對模型進(jìn)行反向傳播訓(xùn)練。
通過仿真實驗,綜合整體的隨機(jī)森林模型性能,如圖12所示,算法最終選擇的森林規(guī)模為550棵,決策樹最深度為12,權(quán)重分別為1、3、1、5、3.5。
圖12 森林規(guī)模與算法性能影響圖Fig.12 Forest scale and algorithm performance impact map
通過運用GAN分別對訓(xùn)練集中Analysis、Shellcode、Backdoor、Worms類攻擊樣本進(jìn)行擴(kuò)充,分析不同訓(xùn)練集擴(kuò)充比例對于少數(shù)類檢測率的影響,當(dāng)比例為0%、40%、80%、120%時進(jìn)行4組對比實驗,結(jié)果如表2所示。經(jīng)過實驗得出擴(kuò)充比例為80%時準(zhǔn)確率最高,因此本次擴(kuò)充比例均選用80%。
表2 不同擴(kuò)充比例的準(zhǔn)確率Table 2 Accuracy of different expansion ratios %
為了證明該入侵檢測模型的效果,選用相同的訓(xùn)練集和測試集,分別采用僅通過SDAE提取數(shù)據(jù)特征的隨機(jī)森林算法(SDAE-RF)和僅通過主成分分析處理后的隨機(jī)森林算法(PCA-RF)還有傳統(tǒng)的隨機(jī)森林算法(RF)進(jìn)行對比實驗,模型性能結(jié)果比較如表3所示。
表3 模型對比Table 3 Model comparison %
為了驗證經(jīng)過GAN擴(kuò)充少數(shù)類樣本后是否提升了算法性能以及經(jīng)過SDAE處理后的隨機(jī)森林模型的可行性、準(zhǔn)確性和優(yōu)勢,與SDAE-RF和PCA-RF還有傳統(tǒng)的RF進(jìn)行對比。由圖13可知,應(yīng)用SDAE后的隨機(jī)森林模型對網(wǎng)絡(luò)入侵?jǐn)?shù)據(jù)分類準(zhǔn)確率相比于傳統(tǒng)的RF模型和PCA-RF模型,分別提升了19.4%和8.9%,通過GAN模型補充少數(shù)類樣本后對分類準(zhǔn)確率提升了1.42%。
圖13 算法準(zhǔn)確率對比Fig.13 Algorithm accuracy comparison
圖14 比較了GAN-SDAE-RF、SDAE-RF、PCA-RF以及RF的均方誤差。由圖14可知,GAN-SDAE-RF模型的均方誤差最低,相比于傳統(tǒng)的RF模型,降低了87.4%;相比PCA-RF模型,降低了75.3%;相比SDAE-RF降低了39.63%,由此可知,基于GAN-SDAE-RF的網(wǎng)絡(luò)入侵檢測模型大幅度地降低了網(wǎng)絡(luò)入侵檢測的誤差。
圖14 算法均方誤差對比Fig.14 Algorithm mean square error comparison
為了驗證本文提出的基于GAN-SDAE-RF的網(wǎng)絡(luò)入侵檢測模型的優(yōu)勢,選用相同的訓(xùn)練集和測試集,將GAN-SDAE-RF與目前流行的深度學(xué)習(xí)模型CNN、LSTM模型以及DBN(Deep Belief Networks)深度信念網(wǎng)絡(luò)模型進(jìn)行復(fù)雜度對比實驗。
結(jié)果如圖15所示,從圖中可以看出隨著測試樣本個數(shù)的增加,GAN-SDAE-RF的檢測時間比LSTM和DBN的少并且逐漸時間差逐漸拉大。與CNN相比檢測時間稍微高一些,但總體相差有限。然后將本文的方法測試結(jié)果與其他機(jī)器學(xué)習(xí)方法進(jìn)行比較,如表4所示。
圖15 不同樣本個數(shù)下檢測時間比較Fig.15 Comparison of detection time under different number of samples
表4 與其他方法對比Table 4 Compared with other methods %
通過與目前常用的入侵檢測算法對比可以看出,一些經(jīng)典的機(jī)器學(xué)習(xí)算法例如SVM和KNN算法實驗效果較差,整體漏報率非常高,而深度學(xué)習(xí)算法在整體指標(biāo)上均優(yōu)于SVM和KNN,但是對于罕見攻擊類的檢測率并不高,其中本文提出的基于GAN-SDAE-RF與其他方法相比整體準(zhǔn)確率平均提高了9.39%,誤報率平均降低了9%,漏報率平均降低了15.24%。并且對于罕見攻擊類Analysis、Shellcode、Backdoor、Worms,本文方法的準(zhǔn)確率分別為90.13%、88.68%、89.26%、86.58%相比其他方法分別平均提高了26.8%、27.98%、27.85%、39.97%。由此可以證明本文方法的系統(tǒng)性能好且具備創(chuàng)新性。
本文針對目前大數(shù)據(jù)時代網(wǎng)絡(luò)入侵檢測存在的問題,提出了新的基于GAN-SDAE-RF的網(wǎng)絡(luò)入侵檢測模型,運用無監(jiān)督的GAN神經(jīng)網(wǎng)絡(luò)對網(wǎng)絡(luò)流量數(shù)據(jù)樣本的不平衡性進(jìn)行擴(kuò)充,不僅能夠保留多數(shù)類數(shù)據(jù)樣本的檢測精度,還能夠提高數(shù)據(jù)少數(shù)類樣本的檢測精度,運用棧式降噪自編碼器保留了數(shù)據(jù)樣本的特征,極大程度地對數(shù)據(jù)進(jìn)行重構(gòu),提取特征,并將空間特征輸入到隨機(jī)森林算法中,各個決策樹進(jìn)行投票決策出異常類別。運用具備更多數(shù)據(jù)特征的UNSW-NB15數(shù)據(jù)集對模型進(jìn)行訓(xùn)練與測試,實驗結(jié)果表明,本文GAN-SDAE的隨機(jī)森林入侵檢測模型在檢測精度、誤報率和漏報率上取得了良好的效果。目前該模型僅在數(shù)據(jù)集中測試效果良好,還需要在實際網(wǎng)絡(luò)環(huán)境中進(jìn)行應(yīng)用測試,驗證該模型在實際網(wǎng)絡(luò)環(huán)境下真實的性能。