孫佳佳, 李承禮, 常德顯, 高立偉
(戰略支援部隊信息工程大學, 鄭州 450001)
信息技術的迅猛發展使得網絡已經深度滲透進社會生活的方方面面,互聯網與各行各業的高度融合在給人們帶來巨大便利的同時,隨之而來的日益頻發的網絡安全問題正給整個社會帶來前所未有的挑戰,各種以能源、醫療、交通和金融等關鍵信息基礎設施為目標的高級可持續性威脅(advanced persistent threat,APT)攻擊更是威脅到了國家安全。例如,2019年3月,委內瑞拉電力系統遭網絡攻擊陷入癱瘓,全境大面積斷電斷水,國民生產生活陷入癱瘓,國家接近崩潰邊緣;2020年4月,海蓮花組織針對中國醫療衛生行業和機構發起以COVID-19為主題的攻擊,以期竊取中國醫療衛生行業相關機密,地域涉及中國29個省。因此,及時發現并阻斷攻擊從而保護系統安全具有十分重要的意義。
入侵檢測技術作為傳統防火墻技術的補充,能夠主動檢測網絡中存在的惡意行為并提供實時保護,是安全防護的重要手段之一[1]。但近年來,隨著入侵手段的日益復雜多樣,傳統依賴簡單的模式識別和特征選擇的入侵檢測系統已經無法適應如今的網絡環境,從而致使其檢測的準確率較低且誤警率較高。而作為機器學習新的研究方向的深度學習,能夠自動從人類篩選和準備的訓練樣本中通過對其低層次特征的學習而組合成能夠表征樣本數據的更加高層次的潛在特征[2],其強大的學習和分類能力使其在計算機圖像與視覺、自然語言處理以及網絡安全等領域得到了廣泛的研究與應用。
充足且類別分布均衡的訓練樣本是各種深度學習算法在以上諸領域成功應用的重要前提,而入侵檢測系統的主要功能是區分正常事件和異常事件,基于異常的網絡入侵檢測本質上是數據不平衡情況下的分類問題。所謂數據不平衡是指數據集中各個類別的樣本數量有很大的差別,即數據類別的分布存在很大的差異。數據不平衡問題在機器學習中并不少見,除網絡入侵檢測外,其他如癌癥患者診斷[3]、工業設備故障檢測[4]、信用卡反欺詐和破產預測等[5]亦是如此。在真實網絡環境中,正常用戶行為產生的流量要遠大于異常行為產生的流量,正常流量和異常流量表達方式差異較大且不同攻擊類型所產生的異常樣本數量也有很大的差異,因此當運用機器學習方法處理此類不平衡數據集時,不僅訓練難度很大,而且以最小化經驗風險作為訓練目標會使分類模型傾向于多數類而對少數類的檢測率降低[6],從而影響對分類方法的評價。而且對于入侵檢測系統來說,漏報所造成的危害要遠大于虛警所造成的危害,因此,如何在類別分布不均衡的數據基礎上有效提高其對少數攻擊樣本類型乃至未知攻擊類型的檢測率具有十分重要的意義。
針對數據不平衡問題,目前主流的解決方法是從數據角度通過重新調整訓練集的樣本分布來降低或消除不平衡性[7],常用的方法有過采樣、降采樣以及兩者綜合的混合采樣,但這些方法容易導致過擬合問題[8]或丟失潛在的有用信息且對模型分類性能的提升較為有限[9]。而基于數據生成的方法來解決數據類別不平衡問題則可以避免上述缺點,更好地擴充少數類樣本數據。
生成對抗網絡(generative adversarial network, GAN) 由Goodfellow[10]于2014年提出,是生成模型的一個子類,其作為最大似然方法的一種替代可以對現有數據樣本的潛在分布進行估計并構建出能夠符合數據分布的模型,進而生成新的數據樣本。其生成的數據類型非常廣泛且模型具有一定的自學習能力,因而可以應用于半監督學習[11]和無監督學習中。近年來,GAN已經在計算機視覺[12]、文本[13]、音頻[14]以及與強化學習相結合的領域[15]等取得了一些令人矚目的進展,但將GAN與深度神經網絡(deep neural network,DNN)相結合以生成入侵檢測樣本數據的研究還較少。
Douzas等[16]提出利用條件生成對抗網絡( conditional generative adversarial network,cGAN)來近似真實數據分布和以生成器作為過采樣算法來生成少數類數據,并在加州大學歐文分校(University of California Irvine, UCI)的12個不平衡機器學習數據集上驗證了算法的有效性。袁辰[17]在利用ASCAII碼變量方式定義域名編解碼器的基礎上提出一種域名字符生成模型DGA-GAN來預測生成DGA變體樣本,并從能否作為域名、域名的字符頻率和多分類器分類檢測效果三個方面驗證了生成數據的有效性。Hu等[18]提出的MalGAN以噪聲和原始惡意軟件樣本作為生成器輸入,能夠生成不被黑盒判別器識別的惡意軟件樣本。盧逸君等[19]利用改進的深度卷積生成對抗網絡構造更多的異常樣本,并在主機異常檢測評測數據集ADFA-LD上實現了高檢測率和低誤報率。
上述針對數據不平衡情況下分類問題的研究雖然取得了一定成果,但仍有各種不足,特別是針對少數類攻擊和未知類型攻擊的檢測還不夠準確且其擴充的不是入侵檢測數據集。為了解決入侵檢測領域由于數據隱私性導致的樣本收集困難以及數據類別不平衡的問題從而實現更好的檢測效果,并且解決GAN訓練過程中生成的入侵數據不便觀察生成質量的問題,現結合cGAN和DNN提出一種解決入侵檢測類別不平衡問題的數據增強方法。該方法在針對入侵數據特點進行預處理的基礎上,一方面利用不同攻擊的類別標簽引導入侵數據的生成過程;另一方面將DNN入侵檢測模型引入cGAN的訓練過程以直接觀察入侵數據生成情況并監督優化生成數據;然后用生成好的數據增強原始數據集以改善原始數據集的類別不平衡問題;最后在NSL-KDD數據集上對本文所提方法的有效性進行驗證。
GAN的核心思想來源于博弈論中的二人零和博弈[20],其包含的一對相互對抗的模型生成器(G)和判別器(D)本質都是函數,通常用深層神經網絡來實現[21]。生成器G的目的是學習真實的數據分布并生成相似度逼近真實樣本的生成樣本,而判別器D的目的則是判斷輸入數據是來自真實數據還是生成器生成的數據。判別器的輸出是一個概率值或標量值,用來表示D認定輸入是真實分布的概率。理想情況下,D無法判斷輸入數據來自真實數據還是生成器生成的數據,即D的輸出為1/2,可以認為此時生成器G已經學到了真實數據樣本的分布,博弈達到了納什均衡狀態。GAN的博弈目標函數為
Ez~pz(z)(lg{1-D[G(z)]})
(1)
式(1)中:V(D,G)為價值函數;z和x分別為噪聲和真實數據;pz(z)和pdata(x)分別為噪聲和真實數據的分布;Ex~pdata(x)為分布為pdata(x)的真實數據通過判別器后的熵,對于判別器來說其優化的目標是使D(x)最大化為1;Ez~pz(z)表示分布為pz(z)的隨機噪聲數據通過判別器后的熵,對于判別器來說其優化的目標是使D(G(z))最小化為0,即令整個第二項最大化為0。而對于生成器來說,其優化目標是使D(G(z))最大化為1,從而令整體趨向負無窮。因此D和G的訓練過程是關于V(D,G)的極小極大雙方博弈問題。
GAN的訓練是一個交替迭代優化的過程,即通常先固定生成器G,訓練優化判別器D,更新D的參數,最大化D的判斷準確率,求得最優判別器D*;然后固定D,更新迭代G的參數,最小化D的判斷準確率,從而求得最優生成器G*。為了同時優化D和G,可在迭代過程中更新多次D后更新一次G,從而確保D優先G一步達到當前最優,如此迭代循環直至兩者共同達到最優[22]。
原始GAN生成器輸入的是低維度完全隨機的噪聲,生成過程過于自由而導致訓練過程和結果都不可控,因而容易出現梯度消失和模式崩潰的問題。為了提高GAN的穩定性, Mirza等[23]將條件概率應用于GAN中,提出了條件生成對抗網絡Conditional GAN(cGAN)。cGAN通過將原始分布重新建模為條件概率分布從而使得生成模型可以在一定程度上附加多個條件,在輸入噪聲的同時改變這些條件便可以得到和預期相符的多個結果,其網絡結構如圖1所示。條件變量y可以是類別標簽,也可以是不同模態的數據,例如一段描述句子或是對應的目標圖片。當y為類別標簽時,cGAN就把無監督的GAN變成了一種有監督模型,其博弈目標函數
如式(2)所示:
Ez~pz(z)(lg{1-D[G(z/y)]})
(2)

圖1 cGAN模型結構圖Fig.1 Model of cGAN
基于cGAN與DNN相結合的入侵檢測數據增強模型如圖2所示。模型以cGAN為基礎,包括數據預處理、樣本生成和攻擊檢測三部分。cGAN-DNN將攻擊樣本的類別標簽作為條件以生成指定類型的新的攻擊樣本。為了直接觀察數據生成情況并提高生成樣本的質量,在生成過程中將生成數據輸入經預處理后的訓練集訓練好的DNN分類器并觀察輸出值,根據輸出參數的變化對cGAN的超參數進行調節。生成好的樣本便可用以擴充原始訓練集,并基于增強后的訓練集對DNN分類器重新進行訓練。最后利用該訓練好的DNN分類器對測試集進行攻擊檢測,并基于準確率等相關評價指標對數據增強前后模型的分類效果進行對比分析。
cGAN-DNN模型中的生成器和判別器均采用經典的全連接網絡結構,DNN分類器采用卷積神經網絡結構。其中,生成器由6層神經網絡構成,包括輸層、4個隱含層和輸出層,每一個隱含層還包括正則歸一化處理。生成器輸入層共105個節點(100維的隨機噪聲和5維的類別標簽),4個隱含層分別入包含128、256、512和1 024個節點,輸出層122個節點;判別器由4層神經網絡構成,節點數分別為127、512、512和1;DNN分類器由7層神經網絡構成,包括輸入層、兩個卷積層、池化層(池化后進行一次平鋪處理)、兩個線性層和輸出層。其中,兩個卷積層的步長均為(1,1)且第一次卷積后進行(1,1)的零填充,具體參數如表1和表2所示。

圖2 基于cGAN-DNN的入侵數據增強模型Fig.2 Intrusion data augmentation model based on cGAN-DNN

表1 DNN分類器網絡模型參數Table 1 Model parameters of DNN classifier

表2 生成器和判別器網絡模型參數Table 2 Model parameters of generator and discriminator
KDD-99數據集是入侵檢測領域應用廣泛的一個基準數據集,但其包含的冗余記錄和重復記錄使得分類器會偏向出現更頻繁的樣本從而降低分類準確率,因此,選擇刪除了KDD-99數據集中重復和冗余記錄的NSL-KDD數據集來評估數據增強效果。NSL-KDD數據集包括Normal、DoS、Probe、R2L和U2R 5種類型數據,但不同類型數據之間的數量差異很大,屬于類別不平衡數據集,選擇NSL-KDD數據集中的KDDTrain+作為訓練集、KDDTest+作為測試集,其數據分布如圖3所示。從圖3可知,R2L和U2R這兩種類型數據數量非常少,如直接訓練分類器進行分類那么效果必然不佳,因此需要生成少數類數據以平衡原數據集數據類別從而從根本上解決訓練不充分的問題,進而提高入侵檢測效果。實驗環境詳細信息如表3所示。

圖3 實驗數據集分布Fig.3 Distribution of experimental data sets

表3 實驗環境配置表Table 3 Configuration table of experimental environment
NSL-KDD數據集既包括數值型數據也包括字符型數據,因此在選定訓練集和測試集后,需要利用one-hot編碼將字符型數據進行數值化處理然后再進行歸一化處理,處理后的數據特征共122項,樣例處理結果對比如表4所示。

表4 樣例處理結果對比Table 4 Comparison of sample processing results
在對分類結果進行評價時,選用常用的檢測率、準確率、誤報率以及調和平均數作為實驗結果的評價指標,各指標計算公式如表5所示,其中TP、TN、FP和FN分別代表正確記錄的攻擊樣本、正確記錄的正常樣本,被錯誤記錄成攻擊樣本的正常樣本,被錯誤記錄為正常樣本的攻擊樣本。

表5 各指標計算方式Table 5 Calculation formula of each parameter
為了驗證生成入侵樣本的有效性,分別以原始訓練集和經生成對抗網絡生成數據增強后的訓練集為基礎,對CNN入侵檢測分類器進行訓練,并在測試集中驗證該數據增強方法對于入侵檢測分類器綜合分類性能的提升作用。同時,為了進一步說明本文模型的性能優越性,又選取傳統經典數據生成方法隨機過采樣(ROS)和合成少數類過采樣技術(SMOTE)進行對比分析。各生成方法生成的樣本數目保持一致,使訓練集中不同類別的數據分布達到均衡,具體生成樣本數目如表6所示。表7為部分真實數據樣本和生成數據樣本。

表6 訓練集生成樣本數量Table 6 Number of samples generated through the training set
從表7可以看出,生成數據無論是數值類型還是數據取值范圍都和真實數據有很大不同,而且后續的驗證實驗也證明了生成數據的有效性。因此,利用生成對抗網絡可以擬合出與原始數據集特征分布類似但數據又不相同的生成數據集,從而在一定程度上解決網絡安全領域相關數據集因機密性等原因而不便公開研究的問題。
表8是利用測試集KDDTest+分別對經原始訓練集、ROS增強后的訓練集、SMOTE增強后的訓練集以及cGAN增強后的訓練集訓練好的入侵檢測CNN分類器進行測試后的結果。從表8可以看出,cGAN-CNN不僅具有更高的準確率和調和平均數、更低的誤報率,而且在兩個少數類攻擊類型R2L和U2R中具有更高的檢測率,說明本文所提數據增強方法能夠根據真實入侵樣本的實際分布特征對原始數據集進行有效擴充,從而在一定程度上改善入侵檢測類別不平衡問題,進而提升入侵檢測模型的整體分類性能,最終在提高對少數攻擊和未知攻擊檢測能力的同時降低誤報率。
針對入侵檢測領域存在的數據類別不平衡問題,利用在圖像處理領域大放異彩的生成對抗網絡的強大生成能力,提出一種基于cGAN和CNN相結合的入侵樣本增強方法,并通過實驗驗證了方法的有效性。實驗結果表明,相較于ROS和SMOTE等傳統數據生成方法,基于cGAN-CNN模型的數據增強方法在各項評價指標上都有一定的提升,其能夠通過對原始數據集潛在分布特征的學習而生成與原始數據大相徑庭的指定類型樣本,從而在一定程度上解決入侵檢測樣本集中的類別不平衡問題,進而改善入侵檢測分類器對于多數類樣本的分類偏好問題,提高對少數類攻擊和未知攻擊的檢測率。深度學習應用于入侵檢測領域還處于起步階段,今后將繼續優化網絡結構,進一步提高生成樣本數量和質量。

表7 生成數據示例Table 7 Sample of generated data

續表

表8 多分類結果對比Table 8 Comparison of Multiple classification results