安 磊,韓忠華,2,林 碩,尚文利
1.沈陽建筑大學 信息與控制工程學院,沈陽110168
2.中國科學院 沈陽自動化研究所 數(shù)字工廠研究室,沈陽110016
3.中國科學院 沈陽自動化研究所 工業(yè)控制網(wǎng)絡與系統(tǒng)研究室,沈陽110016
4.中國科學院 網(wǎng)絡化控制系統(tǒng)重點實驗室,沈陽110016
5.中國科學院 機器人與智能制造創(chuàng)新研究院,沈陽110016
隨著大數(shù)據(jù)時代的來臨,網(wǎng)絡數(shù)據(jù)呈現(xiàn)出數(shù)據(jù)量大、維度高且不平衡的特性,在進行入侵檢測前,對數(shù)據(jù)進行不平衡處理和特征降維至關重要[1-4]。目前已有眾多學者對基于機器學習的入侵檢測方法進行了大量研究,文獻[5]提出了基于隨機森林的高維不平衡數(shù)據(jù)分類方法研究,利用生成少數(shù)類樣本方法(Synthetic Minority Over-sampling Technique,SMOTE)降低數(shù)據(jù)集的不平衡度來提高少數(shù)類的檢測率;文獻[6]提出了基于卷積神經(jīng)網(wǎng)絡(Convolutional Neural Networks,CNN)和支持向量機(Support Vector Machine,SVM)的報文入侵檢測方法,此方法學習速度較快,泛化性能好但面對海量樣本時檢測速度較慢;文獻[7]提出了基于PCA-LSTM(Principal Components Analysis-Long Short Term Memory)的入侵檢測方法,此方法在處理小樣本數(shù)據(jù)集時檢測準確率較高,面對大量樣本時性能較差;文獻[8]采用基于欠采樣的隨機森林算法用于文本分類,在不平衡數(shù)據(jù)分類上提高了準確率和效率;文獻[9]提出一種針對不平衡數(shù)據(jù)的過采樣和隨機森林改進算法,通過過抽樣法增加少數(shù)類的識別率。文獻[10]在N-Nakagami信道的基礎上,提出了基于BP神經(jīng)網(wǎng)絡的移動安全性能智能預測方法,該方法的預測性能更好。
盡管上述入侵檢測方法取得較好的效果,但是現(xiàn)有的研究都是通過采用隨機過采樣,隨機欠采樣和SMOTE解決數(shù)據(jù)的不平衡問題。隨機過采樣會擴大數(shù)據(jù)規(guī)模增加訓練時間,易陷入過擬合;隨機欠采樣會盲目地刪除一些重要信息,影響分類準確率;SMOTE生產(chǎn)的樣本不具有多樣性[11]。因此,本文提出利用生成式對抗網(wǎng)絡(Generative Adversarial Network,GAN)來解決數(shù)據(jù)不平衡問題。GAN是一種新的生成模型[12],它通過學習目標數(shù)據(jù)樣本的概率分布,從而生成極大相似于目標數(shù)據(jù)樣本的偽造樣本,是直接比較偽造樣本和目標樣本的分布來進行訓練生成的新的生成式模型,通過對抗的方式不斷地生成最大可能逼近真實樣本的偽造樣本,提高偽造樣本的生成質(zhì)量,有效解決了傳統(tǒng)生成模型在生成過程中由于訓練樣本不足而導致的過擬合問題[13-15],目前很少被運用在解決入侵檢測數(shù)據(jù)不平衡問題上。
棧式降噪自編碼器(Stacked Denoising Autoencoder,SDAE)處理大樣本和高維數(shù)據(jù)相比傳統(tǒng)機器學習方法具有學習速度快,泛化性能好,抗噪性強等優(yōu)點[16]。在數(shù)據(jù)降維問題上,主成分分析法(Principal Components Analysis,PCA)在面對大量的數(shù)據(jù)樣本時,會產(chǎn)生數(shù)據(jù)特征表達不完整導致檢測誤報率上升的問題,宋永強[17]提出一種基于SDAE的物聯(lián)網(wǎng)分層入侵檢測模型,實驗表明經(jīng)SDAE處理后的入侵數(shù)據(jù)的準確率、誤報率和漏報率較PCA方法提高了10.46%,較KPCA提高了8.64%,更適應高維空間的特征提取任務。因此本文采用了棧式降噪自編碼器SDAE對高維數(shù)據(jù)進行空間降維重構。SDAE(Stacked Denoising Autoencoder)在AE(Autoencoder)的基礎上對數(shù)據(jù)信息加入了噪聲處理,增強了自編碼網(wǎng)絡輸入層的魯棒性,并且在DAE(Denoising Autoencoder)的基礎上加入了丟失包技術增強了自編碼網(wǎng)絡之間級聯(lián)的魯棒性。
隨機森林(Random Forest,RF)是Breiman在2001年提出的一種集成訓練算法,作為應用在入侵檢測領域中較好的分類算法,集成多個決策樹模型所形成的分類器,與神經(jīng)網(wǎng)絡和SVM相比具有檢測精度高,調(diào)整參數(shù)少和易并行化處理等優(yōu)勢。舒斐等人[18]提出基于深度置信網(wǎng)絡(Deep Belief Network,DBN)和RF的電網(wǎng)工控系統(tǒng)異常識別方法,該方法在保證高檢測精度下極大減少了訓練時間,然而由于在識別前沒有對數(shù)據(jù)進行不平衡處理和抗噪降維重構,容易導致輸出結(jié)果在噪聲影響下魯棒性較差。因此當數(shù)據(jù)為不平衡數(shù)據(jù)時隨機森林算法對少數(shù)類的分類精度不高[19];當數(shù)據(jù)中冗余屬性較多時會影響隨機森林算法的速度和精度[20]。近年來,SDAE多次應用在入侵檢測領域,但是目前尚未與隨機森林方法結(jié)合使用。
綜上所述,為解決入侵檢測數(shù)據(jù)不平衡且維度高導致整體檢測率和罕見攻擊類檢測率低的問題,本文提出了一種基于GAN-SDAE-RF的網(wǎng)絡入侵檢測模型,首先利用GAN方法對網(wǎng)絡數(shù)據(jù)進行不平衡處理,在處理后分布平衡的數(shù)據(jù)集上使用SDAE對高維數(shù)據(jù)進行特征降維,構建隨機森林,建立出可有效識別并處理高維、不均衡入侵數(shù)據(jù)的入侵檢測模型。利用UNSW-NB15數(shù)據(jù)集進行實驗驗證,與LSTM、DBN、CNN、SVM和KNN相比結(jié)果表明本文提出的檢測模型性能更好,正確性和創(chuàng)新性得到了驗證。
GAN是由Goodfellow等在2014年提出的一種新型生成模型,屬于深度學習算法的一種[21]。它的結(jié)構屬于二人零和博弈,一方的收益為另一方的損失。GAN是由判別模型(Discriminative model,D)和生成模型(Generative model,G)構成的,生成模型G采用特定的方式模擬出某種數(shù)據(jù)的概率分布,使之與某種目標數(shù)據(jù)的概率統(tǒng)計分布相同或者盡可能相似。在整個算法最初開始時根據(jù)將噪聲z輸入到G來生成一些數(shù)據(jù),D從真實數(shù)據(jù)和G生成的數(shù)據(jù)中判斷出哪些是G生成的偽造數(shù)據(jù)。如圖1所示,整個過程相當于G和D的博弈過程,G的目的是讓它生成的數(shù)據(jù)不能被D輕易識別,D的目的是盡可能準確地判斷數(shù)據(jù)的來源,不斷迭代優(yōu)化這個過程,最終達到穩(wěn)態(tài),此時G能夠生成接近真實數(shù)據(jù)分布的偽造數(shù)據(jù),并不是單純的真實數(shù)據(jù)的復現(xiàn),通過G生成的偽造數(shù)據(jù)實現(xiàn)數(shù)據(jù)擴充的作用。其核心思想可用數(shù)學公式表示如下:

圖1 生成式對抗網(wǎng)絡框架圖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)絡數(shù)據(jù)具有維度高且復雜的特點,本文將自編碼網(wǎng)絡用于數(shù)據(jù)的特征提取。深度學習具有強大的數(shù)據(jù)特征提取能力,采用自編碼器(AE)可以實現(xiàn)無監(jiān)督的對輸入數(shù)據(jù)特征的挖掘和提取,并對高維度數(shù)據(jù)進行降維。AE的學習目標是使輸出數(shù)據(jù)向量x′盡最大相似重構等于輸入數(shù)據(jù)向量x。
降噪自編碼器(DAE)是在自編碼器的基礎上加入噪聲構成的。單層的DAE結(jié)構見圖2(a)圖。DAE的基本過程為:首先在原始數(shù)據(jù)x中添加噪聲數(shù)據(jù),使用隨機映射函數(shù)qD將x轉(zhuǎn)換為x′,然后通過編碼函數(shù)f將含有噪聲數(shù)據(jù)的x′求得編碼后的特征y=f( )

Wx+p,再通過解碼函數(shù)g得到解碼數(shù)據(jù)這里的f和g為激活函數(shù),設置為sigmoid函數(shù)。通過優(yōu)化重構誤差J(x,x?)來對DAE的參數(shù)進行調(diào)整,使用梯度下降法最優(yōu)參數(shù)為保存隱藏層參數(shù)W(1)作為后一層DAE的輸入,進行異常特征的逐層提取,在多個降噪自編碼器上下級聯(lián)形成棧式結(jié)構時,再將每個DAE的編碼矢量合并構成一個N層的神經(jīng)網(wǎng)絡。逐層訓練,反復迭代DAE過程,直到模型到達最后輸出層,就可以得到深度結(jié)構棧式降噪自編碼器SDAE其過程如圖2(b)圖和圖3所示。

圖2 SDAE結(jié)構Fig.2 SDAE structure

圖3 SDAE特征提取Fig.3 SDAE feature extraction
SDAE的訓練過程:第一階段,無監(jiān)督的逐層訓練參數(shù),每個隱含層即為每個DAE預訓練過程逐層提取的特征,第二階段,對整個棧式結(jié)構的參數(shù)進行整體調(diào)整,得到模型最優(yōu)解。
隨機森林是由Breiman在2001年提出的一種集成學習算法,此方法可以被看作是多個決策樹的集合,如圖4所示。隨機森林利用Bagging算法對原始數(shù)據(jù)集進行隨機采樣,得到各個數(shù)量相同但互不相同的數(shù)據(jù)子集。首先,N棵決策樹對應N個數(shù)據(jù)子集,由指數(shù)最小原則選出M個特征變量中m個屬性中的最優(yōu)劃分。節(jié)點的屬性分類采用CART算法,對于數(shù)據(jù)集D,使基尼指數(shù)盡可能的小,數(shù)據(jù)集中被選中的樣本分錯的概率越小。選中的屬性個數(shù)為隨機特征變量,依次訓練大量的決策樹,然后將所有的決策樹形成森林。

圖4 隨機森林圖解Fig.4 Random forest illustration
隨機森林的分類結(jié)果是在考慮所有決策樹結(jié)果的基礎上進行綜合投票后產(chǎn)生的,樣本的最終分類為所獲票數(shù)占總得票數(shù)比值最大的類別。在進行數(shù)據(jù)分類時,隨機森林算法擁有良好的抗噪性,能處理缺失值和異常值,由于引入了部分隨機性,令隨機森林具有了更好的魯棒性。但是在面對高維和不平衡數(shù)據(jù)集時單獨采用隨機森林方法不能確定數(shù)據(jù)樣本相關性最小以及少數(shù)類數(shù)據(jù)分布是否均衡,導致分類精度低,因此在訓練隨機森林分類器之前需要對數(shù)據(jù)進行不平衡擴充以及特征降維。
GAN是一種采用對抗的方式學習真實樣本分布的生成式模型。該模型無需預先建模,即可生成高質(zhì)量的新樣本。在入侵檢測過程中由于某幾類異常數(shù)據(jù)數(shù)量極少,導致入侵檢測使用的數(shù)據(jù)集數(shù)據(jù)分布不平衡,因此本文運用GAN生成少數(shù)類訓練樣本,減少不平衡訓練樣本對檢測準確率的影響。
SDAE是一種深度學習方法,包含輸入層,N個隱含層和輸出層,以DAE為基本單元,順序逐層堆疊構成深度網(wǎng)絡結(jié)構,具有深層的特征提取能力,并且利用DAE的降噪特性使模型的泛化能力增強。可以將高維數(shù)據(jù)最大可能的降維,得到最具有特征的數(shù)據(jù),得到重新構成的原始數(shù)據(jù),更容易被隨機森林學習。
隨機森林算法集成多個決策樹模型所形成的分類器,具有檢測精度高,調(diào)整參數(shù)少以及易于并行化等優(yōu)勢,但其缺點在于當數(shù)據(jù)集維度過高時算法的訓練時間長、檢測精度低;當數(shù)據(jù)集分布不平衡時算法對少數(shù)類樣本的檢測能力極低。考慮到網(wǎng)絡數(shù)據(jù)具有維度高、不平衡等特性,鑒于GAN、SDAE和隨機森林算法獨有的良好性能,充分利用GAN和SDAE的優(yōu)點將兩種方法相結(jié)合,針對傳統(tǒng)隨機森林算法的缺點去處理網(wǎng)絡數(shù)據(jù)進而提高隨機森林算法的分類準確率。在運用GAN生成少數(shù)類樣本后,結(jié)合生成的少數(shù)類樣本和原始數(shù)據(jù)集,構成一個新的且樣本分布均衡的數(shù)據(jù)集,并通過Bagging算法將新的數(shù)據(jù)集抽樣產(chǎn)生多個樣本分布均衡的數(shù)據(jù)子集,然后采用SDAE將每個數(shù)據(jù)子集進行特征降維,每個降維后的數(shù)據(jù)樣本分別對應每一棵決策樹,進行訓練。在檢測階段通過結(jié)合每棵決策樹的分類結(jié)果進行投票,最終匯集所有決策樹形成森林并得出分類結(jié)果,構建基于GAN-SDAE-RF的網(wǎng)絡入侵檢測模型。整體框架如圖5所示。

圖5 基于GAN-SDAE-RF的網(wǎng)絡入侵檢測模型框架Fig.5 Network instrusion detection model framework based on GAN-SDAE-RF
利用GAN生成對抗網(wǎng)絡對訓練數(shù)據(jù)中較少的攻擊類型Analysis、Shellcode、Backdoor、Worms進行數(shù)據(jù)生成,通過類別內(nèi)擴充,具體步驟為:
步驟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ù)進行混合,訓練判別器。
步驟4根據(jù)設定的迭代次數(shù)進行判別模型的訓練迭代,直至判別結(jié)果最優(yōu),此時固定判別模型的參數(shù),將判別的結(jié)果反饋給生成模型。
步驟5根據(jù)設定的迭代次數(shù)進行生成模型的訓練迭代,直至判別結(jié)果最差,此時固定生成模型的參數(shù),不斷迭代此過程,直至GAN模型平衡。
步驟6將生成的少數(shù)類數(shù)據(jù)作為擴充樣本與原始數(shù)據(jù)進行補充,將擴充的樣本重組為144維特征,取前128維數(shù)據(jù)作為擴充的樣本,得到平衡的訓練數(shù)據(jù)集。
利用SDAE對擴充后的數(shù)據(jù)進行特征提取,如圖6所示,訓練過程為:

圖6 SDAE訓練過程Fig.6 SDAE training process
步驟1構建第一個DAE,設定每個規(guī)則θj:x1,x2,…,xn,θj為對象網(wǎng)絡的隱含層神經(jīng)元,x1,x2,…,xn為輸入層神經(jīng)元集。
步驟2確定θj和x1,x2,…,xn之間的連接權重Mθj,當輸入神經(jīng)元對應規(guī)則中的激活元素,那么M=1,否則M=-1,剩余與θj關系不大的權重設為較小的隨機值。神經(jīng)元偏差設為隨機值。
步驟3利用反向傳播算法訓練網(wǎng)絡,更新連接權值。
步驟4對每一個DAE重復步驟1~3,直至全部的DAE完成訓練。
將GAN模型生成少數(shù)類樣本、SDAE特征提取和隨機森林算法構建并行化設計。如圖7所示,整個并行化設計思路如下:

圖7 模型訓練過程Fig.7 Model training process
步驟1首先將網(wǎng)絡上捕獲的數(shù)據(jù)集進行數(shù)值化和歸一化處理,然后GAN模型從少數(shù)類樣本中進行少數(shù)類樣本擴充。
步驟2將GAN模型生成的少數(shù)類樣本與原數(shù)據(jù)樣本整合,獲得一個新的且平衡的數(shù)據(jù)集,通過Bagging算法將新的數(shù)據(jù)集隨機抽樣產(chǎn)生多個數(shù)量相等且分布平衡的數(shù)據(jù)子集。
步驟3將每個數(shù)據(jù)子集通過SDAE進行特征提取,得到重構后的新的數(shù)據(jù)子集。
步驟4每一個數(shù)據(jù)子集根據(jù)決策樹的生成方式訓練出相應的決策樹模型。
步驟5匯集所有的決策樹形成森林。
為了驗證本文基于深度學習的入侵檢測模型,搭建仿真實驗環(huán)境,應用基于tensorflow-GPU1.13的Keras2.2.4深度學習框架進行實驗仿真,操作系統(tǒng)為Windows10,使用英特爾i5-6300HQ 4核處理器,內(nèi)存大小為8 GB,同時使用NVIDIA GTX960顯卡來加快GPU的運行速度。
實驗使用的數(shù)據(jù)集為UNSW-NB15數(shù)據(jù)集,是入侵檢測領域研究的最新的數(shù)據(jù)集。該數(shù)據(jù)集由澳大利亞網(wǎng)絡安全中心(ACCS)于2015年創(chuàng)建,其中涵蓋了大量低占用入侵和深度結(jié)構化的網(wǎng)絡流量信息,代表了現(xiàn)代網(wǎng)絡流量模式,調(diào)整了訓練集和測試集,更適合用于模擬目前的復雜的網(wǎng)絡環(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個具體攻擊類別標識、1個攻擊與正常類別標識。
(1)應用獨熱編碼對字符型特征數(shù)值化。
數(shù)據(jù)集中protocol_type、service和state包含字符型特征,則首先需要將字符型特征應用獨熱編碼轉(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維為特征,后二維為類標簽。
(2)歸一化處理。
處理完字符型特征后,數(shù)據(jù)集中的特征分為兩個屬性,連續(xù)型和離散型,這就使得不同特征之間差異較大,故需要將數(shù)據(jù)集中的特征值歸一化至[?1,1]區(qū)間,本文運用min-max標準化方法進行歸一化處理,這樣只是對數(shù)據(jù)進行了壓縮處理,并沒有改變數(shù)據(jù)的原始性信息[24]。轉(zhuǎn)換公式如下,ymin和ymax分別表示原始特征值的最大值和最小值,y則代表轉(zhuǎn)換前的特征值。

將數(shù)據(jù)集劃分為兩部分包括訓練數(shù)據(jù)集(175 341個樣本)和測試數(shù)據(jù)集(82 332個樣本)[25],具體見表1。

表1 數(shù)據(jù)集明細Table 1 Data set details
為了驗證不同模型的檢測性能,需要根據(jù)模型的檢測樣本類別和樣本實際類別進行計算,本文主要采用準確率(ACC)、均方誤差(MSE)、誤報率(FPR)和漏報率(FNR)對模型進行評估,假設ti代表第i個樣本的實際類別,t′i代表第i個樣本的檢測類別,樣本集為n,漏報事件m項,誤報事件f項。當ti=t′i時,代表模型檢測準確。則在樣本集n上的準確率為:

其中,L(x)代表檢測函數(shù),當樣本集中所有的檢測結(jié)果類別與樣本實際類別相同時,準確率為1。
均方誤差是衡量誤差的平均值,評價數(shù)據(jù)變化程度的一種方法,計算公式如下:

誤報率為:

漏報率為:

因為網(wǎng)絡入侵檢測數(shù)據(jù)復雜,評價模型好壞的標準難以界定,因此本文通過ACC、MSE、FPR和FNR對各模型檢測結(jié)果進行綜合對比,驗證模型的精確性和穩(wěn)定性。
本文從Analysis、Shellcode、Backdoor、Worms類攻擊樣本中分別選取了2 000、1 258、1 587、125個真實數(shù)據(jù)樣本對GAN進行訓練。GAN的初始參數(shù)包括batch-size設置為50,epoch為100,學習率設置為0.000 2,選取relu函數(shù)作為模型的激活函數(shù),使用Adam優(yōu)化器。以Analysis類攻擊樣本為例,最終生成器損失和判別器損失變化曲線如圖8和圖9所示,從圖中可以看出訓練次數(shù)到達5 500次左右,生成器和判別器的損失開始收斂。

圖8 生成器損失曲線Fig.8 Generator loss curve

圖9 判別器損失曲線Fig.9 Discriminator loss curve
通過SDAE對處理完不平衡問題的訓練數(shù)據(jù)樣本進行降維操作,SDAE作為深度學習模型,它的初始參數(shù)是由逐層貪婪訓練最小化原始數(shù)據(jù)和重構數(shù)據(jù)的重構誤差所得到的權重。通過BP算法微調(diào)初始參數(shù)的交叉熵來確保最小重構誤差,從而得到最優(yōu)結(jié)果。輸入層節(jié)點數(shù)與數(shù)值化處理后的數(shù)據(jù)特征值保持一致,這里設為122,通過不同SDAE網(wǎng)絡結(jié)構對比實驗,采用四層網(wǎng)絡結(jié)構準確率最高,DAE1為122-100,DAE2為100-60,DAE3為60-30,DAE4為30-5。每層的神經(jīng)元個數(shù)分別為122、100、60、30、5,batch-size設置為64,epoch設置為3 000。如圖10所示,選取均方誤差作為衡量重構誤差的標準,可以看出訓練5次時MSE趨于穩(wěn)定。設置各層DAE及SDAE模型的訓練次數(shù)為10次,通過實驗分析噪聲比例對準確率的影響,如圖11所示,噪聲比例在[0.2,0.6]區(qū)間準確率最高,結(jié)合多次實驗結(jié)果選取均值,因此本次設置為0.4。

圖10 SDAE訓練次數(shù)Fig.10 SDAE training times

圖11 噪聲比例與準確率影響圖Fig.11 Influence graph of noise ratio and accuracy
選取categorical_crossentropy為損失函數(shù),其專門用于多分類問題,設置bach_size為64,epoch為10,運用Adam優(yōu)化算法對模型進行反向傳播訓練。
通過仿真實驗,綜合整體的隨機森林模型性能,如圖12所示,算法最終選擇的森林規(guī)模為550棵,決策樹最深度為12,權重分別為1、3、1、5、3.5。

圖12 森林規(guī)模與算法性能影響圖Fig.12 Forest scale and algorithm performance impact map
通過運用GAN分別對訓練集中Analysis、Shellcode、Backdoor、Worms類攻擊樣本進行擴充,分析不同訓練集擴充比例對于少數(shù)類檢測率的影響,當比例為0%、40%、80%、120%時進行4組對比實驗,結(jié)果如表2所示。經(jīng)過實驗得出擴充比例為80%時準確率最高,因此本次擴充比例均選用80%。

表2 不同擴充比例的準確率Table 2 Accuracy of different expansion ratios %
為了證明該入侵檢測模型的效果,選用相同的訓練集和測試集,分別采用僅通過SDAE提取數(shù)據(jù)特征的隨機森林算法(SDAE-RF)和僅通過主成分分析處理后的隨機森林算法(PCA-RF)還有傳統(tǒng)的隨機森林算法(RF)進行對比實驗,模型性能結(jié)果比較如表3所示。

表3 模型對比Table 3 Model comparison %
為了驗證經(jīng)過GAN擴充少數(shù)類樣本后是否提升了算法性能以及經(jīng)過SDAE處理后的隨機森林模型的可行性、準確性和優(yōu)勢,與SDAE-RF和PCA-RF還有傳統(tǒng)的RF進行對比。由圖13可知,應用SDAE后的隨機森林模型對網(wǎng)絡入侵數(shù)據(jù)分類準確率相比于傳統(tǒng)的RF模型和PCA-RF模型,分別提升了19.4%和8.9%,通過GAN模型補充少數(shù)類樣本后對分類準確率提升了1.42%。

圖13 算法準確率對比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)絡入侵檢測模型大幅度地降低了網(wǎng)絡入侵檢測的誤差。

圖14 算法均方誤差對比Fig.14 Algorithm mean square error comparison
為了驗證本文提出的基于GAN-SDAE-RF的網(wǎng)絡入侵檢測模型的優(yōu)勢,選用相同的訓練集和測試集,將GAN-SDAE-RF與目前流行的深度學習模型CNN、LSTM模型以及DBN(Deep Belief Networks)深度信念網(wǎng)絡模型進行復雜度對比實驗。
結(jié)果如圖15所示,從圖中可以看出隨著測試樣本個數(shù)的增加,GAN-SDAE-RF的檢測時間比LSTM和DBN的少并且逐漸時間差逐漸拉大。與CNN相比檢測時間稍微高一些,但總體相差有限。然后將本文的方法測試結(jié)果與其他機器學習方法進行比較,如表4所示。

圖15 不同樣本個數(shù)下檢測時間比較Fig.15 Comparison of detection time under different number of samples

表4 與其他方法對比Table 4 Compared with other methods %
通過與目前常用的入侵檢測算法對比可以看出,一些經(jīng)典的機器學習算法例如SVM和KNN算法實驗效果較差,整體漏報率非常高,而深度學習算法在整體指標上均優(yōu)于SVM和KNN,但是對于罕見攻擊類的檢測率并不高,其中本文提出的基于GAN-SDAE-RF與其他方法相比整體準確率平均提高了9.39%,誤報率平均降低了9%,漏報率平均降低了15.24%。并且對于罕見攻擊類Analysis、Shellcode、Backdoor、Worms,本文方法的準確率分別為90.13%、88.68%、89.26%、86.58%相比其他方法分別平均提高了26.8%、27.98%、27.85%、39.97%。由此可以證明本文方法的系統(tǒng)性能好且具備創(chuàng)新性。
本文針對目前大數(shù)據(jù)時代網(wǎng)絡入侵檢測存在的問題,提出了新的基于GAN-SDAE-RF的網(wǎng)絡入侵檢測模型,運用無監(jiān)督的GAN神經(jīng)網(wǎng)絡對網(wǎng)絡流量數(shù)據(jù)樣本的不平衡性進行擴充,不僅能夠保留多數(shù)類數(shù)據(jù)樣本的檢測精度,還能夠提高數(shù)據(jù)少數(shù)類樣本的檢測精度,運用棧式降噪自編碼器保留了數(shù)據(jù)樣本的特征,極大程度地對數(shù)據(jù)進行重構,提取特征,并將空間特征輸入到隨機森林算法中,各個決策樹進行投票決策出異常類別。運用具備更多數(shù)據(jù)特征的UNSW-NB15數(shù)據(jù)集對模型進行訓練與測試,實驗結(jié)果表明,本文GAN-SDAE的隨機森林入侵檢測模型在檢測精度、誤報率和漏報率上取得了良好的效果。目前該模型僅在數(shù)據(jù)集中測試效果良好,還需要在實際網(wǎng)絡環(huán)境中進行應用測試,驗證該模型在實際網(wǎng)絡環(huán)境下真實的性能。