賀佳星, 王曉丹, 宋亞飛, 來 杰
(空軍工程大學防空反導學院,西安,710051)
近年來,多種基于機器學習的入侵檢測系統(intrusion detection system, IDS)得到了廣泛的研究,這些入侵檢測方法具備良好的檢測性能。但是實際的網絡活動中,正常的流量和行為中占絕對主導地位,異常行為的數量較少。正常行為和攻擊行為、不同攻擊行為之間的類不平衡問題在入侵檢測的數據集中普遍存在,極大影響了IDS的檢測性能[1]。
針對入侵檢測中的數據集類不平衡問題,文獻[2]和[3]分別使用隨機欠采樣(random under-sampling,RUS)和隨機過采樣(random over-sampling,ROS)來解決IDS中的類不平衡問題。文獻[4]更進一步將RUS和ROS技術結合起來應用。合成少數過度采樣技術(synthetic minority over-sampling technique, SMOTE)[5-6]在數據生成領域中表現良好,文獻[7~9]將SMOTE技術應用在IDS模型中,平衡數據集,提升訓練效果。但SMOTE本身依賴于插值進行過采樣,生成樣本的擬合度比較低。
生成對抗網絡(generative adversarial networks,GAN)[10]技術,能夠從給定數據中學習其分布,并根據學習到的分布生成新的樣本數據。利用生成對抗網絡技術,文獻[11]提出了一種將GAN、粒子群算法和極限學習機結合的入侵檢測方法,用GAN生成少數類樣本。文獻[12]提出一種基于CGAN的入侵檢測技術,利用CGAN生成少數類樣本,均衡訓練數據集。
除類不平衡問題外,入侵檢測數據集還存在著連續特征的混合模型問題。普通的GAN無法模擬一個2D數據集上的高斯混合分布的所有混合分量,學習到的數據分布存在失真[13]。例如,在入侵檢測領域的常見數據集NSL-KDD數據集[14]包含3個離散特征和38個連續特征,共41維特征向量。本文利用核密度估計法對所有的連續特征進行估計后發現,38個連續特征中的22個都存在高斯混合分布的情況。文獻[11]提出的基于GAN的入侵檢測方法均未考慮連續特征的混合分布問題。
為解決上面提到的入侵檢測數據集中的類不平衡問題和連續特征的混合分布問題,本文提出了一種基于條件Wasserstein生成對抗網絡(conditional Wasserstein generative adversarial network,CWGAN)和DNN的方法。首先,CWGAN-DNN對原始數據集進行過濾,選擇少數類樣本,在訓練的過程中使用條件向量控制生成樣本的類別,保證只生成少數類樣本;其次,對數據集中的連續特征利用變分高斯混合模型(variational Gaussian mixture model,VGM)[15]進行分解;最后,利用CWGAN學習處理后的數據集并生成新的少數類數據。達到平衡訓練數據集,改善入侵檢測系統性能的目的。
入侵檢測數據集,如NSL-KDD[10]通常組織為一個二維的表格T,表格中的每一行代表一條流量,每一列代表一維特征。T中包含Nc個連續特征列{C1,C2,…,CNc}和Nd個離散特征列{D1,D2,…,DNd}。T中的每一列都可以看作是一個隨機變量,所有隨機變量遵循一個未知的聯合分布:
P{C1,C2,…,CNc,D1,D2,…,DNd}
(1)
其中的任意一行可以表示為:
rj={c1,j,c2,j,…,cNc,j,d1,j,d2,j,…,dNdj},
j∈{1,2,…,n}
(2)
式中:rj是來自聯合分布的一個觀測樣本。
在數據的生成領域,合成數據的通常做法是通過將表中的每一列視為隨機變量,建模一個聯合多元概率分布,然后從中取樣進行生成[16]。定義輸入原始數據集為s=(r,y),生成器輸出合成樣本為sG=[G(z,y′),y′],其中:y、z和y′分別表示原始類標簽、高斯噪聲和少數類標簽。
條件生成對抗網絡(conditional generative adversarial networks,CGAN)在原始GAN[10]的基礎上引入類別信息,以生成指定類的樣本。生成器同時將噪聲和類別信息作為輸入,鑒別器在接收樣本的時候也會收到對應類別信息。CGAN的目標函數可以表示為:
Ez~pz[log(1-D(G(z|y)))]
(3)
式中:z為隨機噪聲;x為原始樣本;y為類別信息;pz為z的分布;G為生成器;D為鑒別器;pr為真實數據x的分布;G(z)為G生成的偽數據;D(x)為D給樣本打出的分數;E(·)為期望值。
GAN和CGAN中采用的Jensen-Shannon散度會導致模式崩潰和梯度消失問題[17]。針對該問題WGAN-GP[18](Wasserstein GAN-gradient penalty)將計算損失函數的JS數度改為泥土移動(earth mover, EM)距離,并增加了梯度懲罰項,來滿足Lipschitz約束,避免訓練過程中判別器無法收斂的情況出現,解決了GAN和CGAN中的梯度消失和模式崩潰問題。WGAN-GP的目標函數為:
V(G,D)=maxD∈1-lipschitz{Ex~pr[D(x)]-
Ex~pg[D(x)]-λEx~ppenaty[‖?xD(x)‖-1]2}
(4)
式中:λ是人為指定的參數;‖?xD(x)‖表示對D(x)中x的計算范式;x~ppenaty表示從pr上的一個點和pg的一個點的連線上取中間位置的x。
CWGAN-DNN的框架由數據預處理模塊、CWGAN模塊和深度神經網絡(DNN)3個部分組成,如圖1所示。第1步,將原始數據集進行處理;第2步,利用CWGAN模塊生成均衡訓練集;第3步,DNN模塊使用均衡數據集進行訓練,并在測試數據集上執行入侵檢測。

圖1 CWGAN-DNN入侵檢測方法的結構
數據預處理部分提取少數類信息,并對混合分布的連續特征進行分解。以原始樣本s=(r,y)為輸入,首先篩選出需要進行增強的少數類數據(r,y′),而后進行VGM分解得到少數類樣本數據s′=(r′,y′)。
對于高斯混合分布的連續特征列,利用VGM來進行處理。入侵檢測數據集中,離散特征可以表示為one-hot向量[19],而高斯混合分布的連續特征難以全面地表示,本文選擇將其利用VGM分解。
連續特征列中的每個值,通過VGM都將其轉換為一個指示所在分量的one-hot向量v*和一個指示在分量下值大小的標量a*的并聯。
利用VGM分解連續特征的混合分布,首先對于每一個連續列,使用VGM估計其分量的個數,并訓練高斯混合模型;其次,對于Ci中的每個值ci,j,計算其在每個分量下的概率;最后在所求得的概率最大的子分布上采樣并進行歸一化。

vNc,j⊕aNc,j⊕d1,j⊕…⊕dNd
(5)
CWGAN的整個訓練過程見表1,其中θG、ηθG、θD、ηθD分別為生成器的網絡參數、梯度和鑒別器的網絡參數、梯度。

表1 CWGAN訓練過程
訓練CWGAN過程中,依次交替訓練生成器和鑒別器,訓練主要的步驟如下:
1)首先將隨機噪聲向量z與類別標簽y′輸入G,訓練并得到生成樣本sG;
2)固定生成器G,對D進行訓練,更新θD;
3)固定鑒別器D,對G進行訓練,更新θG;
4)在鑒別器的損失值未達到0.5之前,循環執行步驟1)~3),G和D交替訓練,使得生成的樣本不斷接近真實樣本。
2.2.1 鑒別器D
鑒別器D由一個3層的全連接網絡組成。在訓練的過程中,將s′和sG混合作為判別器D的輸入,輸出為樣本屬于真實樣本s′和偽樣本sG的分類概率值,然后通過激活函數將概率值轉換為預測標簽。對于一個特定的輸入(r,y),需要判斷它來自s′而不是sG的概率D(r,y),見表1中第7、8行。
在WGAN模型當中,不再對鑒別器的值取對數。得到損失值后,可以計算梯度ηθD,通過Adam算法更新鑒別器的網絡參數θD。
2.2.2 生成器G
生成器G同樣采用一個全連接網絡,將少數類標簽y′和高斯噪聲z作為輸入,訓練過程中將類別信息y′與噪聲z連接為(z,y′),G生成樣本為sG=[G(z,y′),y′]。表1中第11、12行給出了公式。
深度神經網絡模塊(DNN)被用來執行入侵檢測。在CWGAN-DNN當中,DNN被設計為一個包含2個隱藏層的全連接網絡。
在訓練階段,DNN模型以均衡訓練集作為輸入。最終給出它們在不同入侵類別上的概率分布p(y|r)。在測試階段,DNN模塊以測試數據集上未曾出現過的樣本作為輸入,檢測CWGAN對于DNN網絡的提升效果。
本文過實驗來評估CWGAN-DNN的性能。將CWGAN-DNN與傳統的入侵檢測方法、基于類均衡的方法和一些先進的入侵檢測方法進行了比較。
采用NSL-KDD數據集對CWGAN-DNN進行評估。NSL-KDD是評估入侵檢測領域的經典基準數據集,剔除了KDDCUP99中的冗余數據,并對訓練集和測試集的構成進行了調整,更適用于網絡入侵檢測的研究。NSL-KDD中的每條數據包括41個特征。將NSL-KDD預先劃分為訓練集和測試集,分別為KDDTrain+_20和KDDTest+。NSL-KDD數據集的詳細信息如表2所示。

表2 NSL-KDD數據集樣本類型的分布
從表1中可以看出,訓練集KDDTrain+_20存在嚴重的類別不平衡現象,U2R和R2L攻擊樣本的數量嚴重偏少。
為了定量評價CWGAN-DNN的性能,本文采用準確率(accuracy)、精確率(precision)、召回率(recall)和F1分數(F1 score)作為主要指標來衡量本模型的多分類性能:
(6)
(7)
(8)
(9)
式中:TP、TN、FP和FN分別表示真陽性、真陰性、假陽性和假陰性。
此外,文中采用AUC(area under the ROC curve,AUC)來反映綜合能力。ROC (receiver operating characteristic curve,ROC)是研究學習器泛化性能的有效工具[20]。AUC是ROC曲線下的面積,可以更進一步的比較分類器的性能。
3.3.1 實驗設置
為了測試基于CWGAN-DNN的網絡入侵檢測方法的性能,本文設計了以下實驗:
實驗1:CWGAN-DNN模型的訓練實驗。
實驗2:CWGAN-DNN與傳統入侵檢測方法的性能對比實驗。
選擇一些常見的機器學習方法進行比較。樸素貝葉斯和決策樹是經典的機器學習方法,它們能以較低的開銷提供較好的性能。隨機森林[21]是一種由多個決策樹構成的集成學習方法,但比決策樹具有更強的泛化能力。支持向量機是一種經典而高效的分類方法,但不適用于大數據[22-23]。多層感知器(MLP)[24]是一種最簡單的深度學習模型,具有穩定的分類能力。
實驗3:CWGAN-DNN與不同數據類均衡方法的性能對比實驗。
在類平衡方法方面,選用了隨機過采樣(ROS)、SMOTE和自適應綜合過采樣(adaptive synthetic,ADASYN)[25]技術進行對比,并將其與第2.3節中敘述的DNN結合。利用類平衡方法生成樣本,然后將平衡后的樣本輸入DNN進行入侵檢測,將這些方法分別記做ROS+DNN、SMOTE+DNN和ADASYN+DNN。這些方法中的DNN參數都保持一致,參考表2進行設置。

表2 DNN的網絡結構
實驗4:CWGAN-DNN與現有的入侵檢測模型的性能對比實驗。
將CWGAN-DNN與幾種較為先進的入侵檢測方法進行比較。基于模糊的神經網絡(fuzziness-based neural network, NN)是一種半監督學習方法,它可以提高通過模糊分類進行入侵檢測的泛化能力;文獻[26]在最小二乘支持向量機(LSSVM)之前引入了一種基于互信息的特征選擇(MIFS),它對特征進行貪婪選擇,提升入侵檢測的效果; 基于LSSVM+MIFS,文獻[27]進一步提出了一種靈活的MIFS(FMIFS)方法,是一種無需經驗參數的自適應特征選擇方法;文獻[28]將一維的入侵檢測數據集轉化為二維灰度圖,并利用一個2層的卷積神經網絡(CNN)進行入侵檢測。這4種方法,均是在標準的KDDTrain+20%數據集上進行訓練,并在KDDTest+數據集上進行了測試,這一點上與本文方法相同。本文采用參考文獻中給出的性能數據進行對比,與CWGAN-DNN進行比較。
實驗5:不同數據生成率對CWGAN-DNN性能影響對比實驗。
為了驗證生成樣本的效果,本文還對數據的生成率對于CWGAN-DNN入侵檢測性能的影響,通過一系列不同生成率的實驗來評估CWGAN-DNN。
3.3.2 實驗環境及參數設置
本文實驗基于Windows10操作系統下Pytorch和sklearn框架進行實現。CWGAN模塊中,鑒別器D和生成器G的體系結構相對靈活,可以根據具體情況進行設置。本文根據文獻[16]確定了CWGAN的結構,并在驗證集上通過網格搜索調整CWGAN的參數。生成器和鑒別器的各層的網絡大小分別設置為100-256-256-63和63-256-256-5。
CWGAN的學習率(在算法1中表示為αD和αG)都設置為0.001。批大小(用m表示)為500,在每次迭代時優化D和G一次。生成樣本個數的數量設置為原始樣本的數量的1.5倍,即數據的生成比(生成樣本數量:原始樣本數量)為1.5∶1。對CWGAN模塊進行訓練,直到所有類的D收斂到0.5,此時鑒別器已經無法分辨生成樣本和真實樣本,即生成器具備了生成高質量樣本的能力,這意味著CWGAN已經完成優化。
DNN使用具有100個神經元的全連接層作為輸入層。之后采用2個大小分別為100和40的全連接層作為隱藏層。輸出層的大小等于類數5。學習率設置為0.000 1。最后使用Softmax函數,將輸出向量轉換為概率分布p(y|r)。表2描述了DNN模塊的詳細結構。
作為對比試驗,傳統入侵檢測方法和類均衡方法均使用sklearn框架進行實現,參數選擇上使用網格搜索法進行優化;在與其它的先進入侵檢測方法進行對比時,參考對應文獻中的數據。
3.4.1 實驗1:CWGAN和DNN的訓練
利用CWGAN為Probe、R2L和U2R等3個少數類生成樣本,訓練過程中鑒別器D的損失曲線見圖2。



圖2 NSL-KDD上少數類樣本訓練鑒別器的損失曲線
圖2(a)、(b)和(c)分別對應Probe、U2R和R2L類,可以看到CWGAN在Probe、U2R和R2L類上分別在3 000、5 000和3 500次訓練后鑒別器損失收斂。
3個類的損失函數曲線在收斂之后均存在不同程度的震蕩,其中U2R類的震蕩最為明顯,R2L次之,Probe的震蕩幅度最小。這是因為KDD Train+數據集當中U2R類的僅有11個樣本,較難收斂。
以圖2(b)中Probe類的損失曲線為例進行分析。在0~1 000次迭代時,G無法生成有效的數據,D可以很輕易的區分出生成樣本,損失值較大;在1 000~3 000次迭代過程中,G的生成能力不斷提高,D給出生成樣本的得分越來越接近原始樣本的得分,損失值不斷降低,并在4 000次后達到動態穩定。
在DNN模塊訓練過程中,將平衡后的數據集作為輸入。DNN模塊在訓練后,在測試數據集上進行入侵檢測。以交叉熵函數為損失,采用Adam算法進行優化,將學習率設置為0.000 1。DNN的損失曲線如圖3所示,分類器已經收斂。

圖3 DNN分類器訓練過程中的損失曲線
3.4.2 實驗2:CWGAN-DNN與傳統入侵檢測方法的性能對比實驗
如表3所示,與傳統的機器學習方法相比,CWGAN-DNN的準確度、和F1分數分別提升了最少3%,而AUC比MLP有2%的下降。在傳統的方法中,MLP的準確率較好,在準確度和F1分數相比其他機器學習方法有1%~2%下降的情況下,AUC提升至少9%。MLP作為一種深度學習模型,具有良好的分類能力,但在處理類不平衡數據方面仍然存在一定的困難。樸素貝葉斯在NSL-KDD上取得了所有機器學習算法中最高的AUC(83%),因為它是一個生成模型,受數據類不均衡的影響較小,但它表達能力的不足導致它的分類性能較差。隨機森林在2個數據集上取得了不錯的成績,顯示了其作為集成模型的優秀泛化能力。然而,上述結果均反映出傳統方法對數據的表達能力不足和對類不平衡數據的處理能力較弱的缺陷。

表3 CWGAN與傳統機器學習方法比較單位:%
3.4.3 實驗3:CWGAN-DNN與不同數據類均衡方法的性能對比實驗
如表4所示,對類均衡方法,CWGAN-DNN與常見的類均衡方法相比,CWGAN-DNN的準確度、F1分數和AUC分別提升了最少3%、1%和1%。采用均衡樣本訓練的DNN的表現都比僅使用原始訓練集更好,因為類均衡方法有助于解決類不平衡問題。SMOTE和ADASYN方法可以較好地從生成的樣本中學習少數類,其準確度與RF等機器學習算法相同,F1分數和AUC均有一定的提升。然而相比于僅使用原始數據集進行訓練的DNN,類均衡方法在提升準確度和F1分數的同時,AUC有至少2%的下降,體現了分類能力和泛化能力的取舍。

表4 CWGAN與其他類均衡方法的比較 單位:%
如圖4所示,所有的類均衡方法對少數類的檢測能力均有一定的提升。
在圖4(a)中可以看到,ADASYN方法對Probe和R2L兩類的精確度提升明顯,在U2R類上表現一般。而CWGAN可以大幅度提升U2R和R2L兩個少數類的檢測精確度,和本文選擇的方法相比均有不同程度的提升。在U2R和R2L類上,CWGAN-DNN對比DNN分別提升了55%和61%,對比其他類均衡方法,分別了15%~40%和1%~58%的提升。
圖4(b)中,CWGAN在Probe和R2L兩個少數類上的召回率提升幅度與其他性能較好的類均衡方法相近。但在U2R類上,CWGAN-DNN的召回率僅為6%。根據式(16)的描述,recall較低,說明FP的值較大,有大量的其他類的樣本被檢測為U2R類。這是因為訓練集當中U2R類僅有11個樣本,導致CWGAN在U2R樣本上的進行訓練時無法學習到U2R類樣本的特征,生成的樣本質量較低。


圖4 類均衡方法在各類別上的性能比較
3.4.4 實驗4:CWGAN-DNN與現有的入侵檢測模型的性能對比實驗
如表5所示,在與其他的先進的入侵檢測算法進行比較時,CWGAN-DNN在準確率、召回率和F1分數3項指標上都追平或超過其他的方法,而在精確度和AUC指標上,CWGAN-DNN僅落后CNN 4%和2%。CWGAN-DNN性能的提高得益于CWGAN對少數類的高代表性合成樣本,緩解類不平衡問題,模擬了未知異常。

表5 CWGAN與其他先進方法的對比
3.4.5 實驗5:不同數據生成率對CWGAN-DNN性能影響對比實驗。
具有不同生成比率的IGAN-IDS的精度如表4所示。與沒有合成樣本的結果(r=0)相比,可以觀察到CWGAN-DNN在訓練過程中生成樣本時表現出更高的性能(精確度提高4%),說明了CWGAN的積極作用。進一步比較了不同生成比率的IGAN-IDS的細節性能,如圖5所示。從圖5可以看出,CWGAN在生成率為1.5時獲得最高的準確度、召回率和F1分數。而在生成率為0.5和1時,AUC的值最低。在實驗中,建議生成率應控制在1.5。
綜上所述,CWGAN-DNN確實可以通過生成樣本來提高入侵檢測的性能,而且生成的比率應該受到嚴格的控制。

圖7 CWGAN-DNN在不同生成率下的表現
為解決入侵檢測系統中由訓練樣本類不均衡導致的檢測識別率和泛化能力較差的問題,本文通過VGM和CWGAN技術生成少數類新的訓練樣本,改善訓練集中的類不平衡問題,并在均衡訓練集上訓練一個全連接DNN網絡進行入侵檢測。將本文提出的CWGAN-DNN入侵檢測技術進行性能評估,并與傳統入侵檢測方法、類均衡方法和主流入侵檢測技術進行了比較。同時對于CWGAN在少數類的檢測性能和CWGAN數據生成率對檢測性能的影響。實驗結果表明,CWGAN-DNN相比于傳統的基于機器學習和類均衡技術的入侵檢測方法,能夠有效提升少數類的檢測性能,從而提高總體分類能力和泛化能力。