蔡宇航,廖光忠
(1.武漢科技大學 計算機科學與技術學院,湖北 武漢 430065;2.武漢科技大學 智能信息處理與實時工業(yè)系統(tǒng)湖北省重點實驗室,湖北 武漢 430065)
隨著文件共享、移動支付和物聯(lián)網(wǎng)等新互聯(lián)網(wǎng)技術的興起,以及開放信息系統(tǒng)用戶的增加,網(wǎng)絡安全問題也日益突出[1],網(wǎng)絡安全的需求不斷增長。因此,網(wǎng)絡入侵檢測系統(tǒng)(Network Intrusion Detection System,NIDS)已成為網(wǎng)絡安全領域的重要組成部分[2]。
針對網(wǎng)絡系統(tǒng)的攻擊率急劇增加,攻擊者使用的策略也在不斷變化。近年來隨著深度學習模型的不斷發(fā)展,其在大數(shù)據(jù)分析中取得了很好的效果,許多研究人員開始將深度學習技術應用于網(wǎng)絡入侵檢測模型,基于深度學習的網(wǎng)絡入侵檢測模型因此得到了廣泛的研究。針對網(wǎng)絡入侵數(shù)據(jù)所具有的時空特征,Kim等[3]構建了一個基于梯度下降優(yōu)化的長短期記憶網(wǎng)絡入侵檢測模型,該模型使用長短期記憶網(wǎng)絡保留所提取的特征之間的依賴關系,并通過卷積神經(jīng)網(wǎng)絡提取數(shù)據(jù)的空間特征,但該模型存在過擬合問題。針對網(wǎng)絡入侵數(shù)據(jù)特征維度豐富的問題,Wang等[4]提出了一種基于堆疊去噪自編碼器和極限學習機相結合的集成深度入侵檢測模型,該模型通過降噪自編碼器學習數(shù)據(jù)特征,然后將學習到的特征輸入到極限學習機中進行進一步提取,但該模型數(shù)據(jù)挖掘能力有限,對小樣本數(shù)據(jù)集的檢測效果較差。針對少數(shù)類別難以檢測的問題,Singla等[5]基于生成式對抗網(wǎng)絡提出了一種對抗域自適應的入侵檢測模型,該模型通過將域自適應和生成式對抗網(wǎng)絡相結合,降低了入侵檢測模型訓練所需要的數(shù)據(jù)量,可以通過僅對少量的樣本數(shù)據(jù)進行訓練從而達到更高的準確率,但對于網(wǎng)絡入侵數(shù)據(jù)的多分類異常檢測的準確性普遍不高。為解決高維數(shù)據(jù)難以建模分析的問題,Jia等[6]提出了一種信息增益技術,對高維數(shù)據(jù)進行降維并去除冗余特征,基于信息熵來確定深度置信網(wǎng)絡中隱藏神經(jīng)元的數(shù)量和模型網(wǎng)絡深度,但模型的泛化性能不足。
綜上所述,為了解決網(wǎng)絡入侵檢測系統(tǒng)在大型網(wǎng)絡環(huán)境中檢測率低、泛化能力差的問題[7],該文提出一種基于改進降噪自編碼器的網(wǎng)絡入侵檢測模型,使用降噪自編碼器對數(shù)據(jù)進行特征提取,降低了對噪聲擾動的敏感性,并且通過引入門控循環(huán)單元使得模型集成了時序特征的記憶能力。同時針對數(shù)據(jù)不平衡問題,對數(shù)據(jù)集中的少數(shù)類樣本使用生成式對抗網(wǎng)絡進行擴充,使得網(wǎng)絡入侵檢測數(shù)據(jù)中各類樣本更加均衡,提高了模型的多分類準確率。
生成式對抗網(wǎng)絡(Generative Adversarial Networks,GAN)是Ian Goodfellow于2014年提出的一種深度生成神經(jīng)網(wǎng)絡,通過對抗過程估計生成模型[8],可對現(xiàn)實世界中的數(shù)據(jù)的復雜高維分布進行建模分析與學習。GAN由兩個重要模塊組成:生成器G和判別器D,其中生成器G用于學習真實數(shù)據(jù)樣本的潛在分布,從而生成相似數(shù)據(jù)樣本;判別器D用于判斷數(shù)據(jù)樣本的真實性[9]。分類結果將通過損失權重更新傳遞回G和D。兩個網(wǎng)絡經(jīng)過不斷訓練,直到D不再能夠區(qū)分真實樣本和生成樣本。GAN的基本原理如圖1所示。

圖1 生成式對抗網(wǎng)絡基本原理
其中,z是初始隨機生成的噪聲,G(z)表示生成器G試圖從噪聲Pz的分布中學習一個分布PG,使PG盡可能接近真實數(shù)據(jù)的分布Pdata。判別器D的作用是識別數(shù)據(jù)樣本是否真實。繼續(xù)調整G和D,直到D在訓練期間無法區(qū)分真實數(shù)據(jù)和生成數(shù)據(jù),從而實現(xiàn)了PG=Pdata的最優(yōu)性。因此,定義G和D的目標函數(shù)如下:
Ez~Pz(z)[log(1-D(G(z)))]
(1)
在入侵檢測領域中,相關數(shù)據(jù)集通常具有樣本不均衡以及特征維度豐富的特點。其中,樣本不均衡問題指的是在數(shù)據(jù)集中正常的數(shù)據(jù)樣本所占比例較高,而網(wǎng)絡攻擊類別的樣本占比較小,在訓練入侵檢測模型的時候如果不注意該問題,則容易出現(xiàn)模型對于網(wǎng)絡攻擊檢測敏感程度較低的現(xiàn)象,從而降低了入侵檢測的召回率[10],對入侵檢測的效果造成影響。針對此問題,該文使用GAN網(wǎng)絡數(shù)據(jù)生成技術來創(chuàng)建包含高度不平衡類的數(shù)據(jù)集,以減少數(shù)據(jù)不均衡對檢測模型準確率的影響。
自編碼器(Autoencoder,AE)是一種無監(jiān)督學習算法,通過壓縮輸入信息,從數(shù)據(jù)中提取最具代表性的特征[11]。目的是在不丟失重要特征的情況下減少輸入信息的維度,減小神經(jīng)網(wǎng)絡的開銷達到特征提取的效果,其特征提取效果也決定了機器學習模型的效果。為了解決模型存在對數(shù)據(jù)無效提取的問題,研究人員對自編碼器添加了一定的約束,以提高對數(shù)據(jù)集深層特征的提取效果。其中一種便是降噪自編碼器(Denoising Autoencoder,DAE),通過在輸入中引入隨機噪聲,迫使自編碼器在學習過程中去除隨機噪聲,從而降低其對輸入樣本的敏感性[12],增強了隱藏層的特征學習能力,使得模型具有更加良好的魯棒性[13]。其結構如圖2所示。

圖2 降噪自編碼器結構

傳統(tǒng)的DAE網(wǎng)絡入侵檢測模型雖然能夠克服隨機噪聲的影響,有效地提取原始數(shù)據(jù)的特征,但每層內部的節(jié)點之間處于無連接狀態(tài),無法有效處理數(shù)據(jù)的時序傳遞關系,數(shù)據(jù)重構的準確性容易隨著時間序列長度的增加而降低[14]。為了增強檢測模型對入侵數(shù)據(jù)的特征提取的有效性,該文構建了一種GRU-DAE模型,在DAE網(wǎng)絡架構的基礎上引入門控循環(huán)單元(Gate Recurrent Unit,GRU)[15]完成編碼和解碼過程,在保證精度的同時提高了計算效率,也提高了模型的非線性擬合能力。
GRU結構如圖3所示。

圖3 GRU結構
GRU神經(jīng)網(wǎng)絡是在LSTM循環(huán)神經(jīng)網(wǎng)絡的基礎上,對神經(jīng)元內部的組成結構進行了優(yōu)化。使用復位門和更新門替代LSTM結構中的輸入門、遺忘門和輸出門,顯著地提升模型訓練的效率。將GRU神經(jīng)網(wǎng)絡引入網(wǎng)絡入侵檢測,充分考慮網(wǎng)絡入侵數(shù)據(jù)的時序特性,訓練速度快,檢測精度高。GRU神經(jīng)網(wǎng)絡的訓練公式如下:
(2)
其中,xt為當前時刻的輸入向量;ht和ht-1分別為當前時刻和上一時刻的狀態(tài)記憶變量;rt和zt分別為重置門狀態(tài)、更新門狀態(tài)[16]。
該文將DAE模型的全連接層編碼網(wǎng)絡替換為GRU編碼層,在網(wǎng)絡入侵數(shù)據(jù)編解碼過程中,通過GRU單元的更新門和重置門結構將前一時刻狀態(tài)信息中重要的部分保留記憶,不重要的部分予以忽略,以此綜合得到當前時刻的狀態(tài)信息。與傳統(tǒng)自編碼模型相比,特征提取更加豐富,并且保證了時序信息傳遞的連貫性,避免了重要數(shù)據(jù)特征的遺漏。其改進后模型網(wǎng)絡結構如圖4所示。

圖4 GRU-DAE結構
為了減小重構誤差,模型采用梯度下降法訓練。其中通過DAE提取到的特征具有一定的魯棒性,不易受到隨機噪聲的影響,而且得益于GRU特有的網(wǎng)絡結構,數(shù)據(jù)的時序特征也能夠有效地被提取,保持數(shù)據(jù)間長期依賴關系,比改進前的DAE模型提取到的特征更加準確和全面。提取數(shù)據(jù)特征完成后,提取GRU-DAE模型編碼的網(wǎng)絡部分,在隱層節(jié)點后加上Softmax分類器進行分類,最終得到網(wǎng)絡入侵檢測結果。
在模型訓練中,利用GAN生成少數(shù)類樣本,改進降噪自編碼器的特征提取,Softmax的分類構建的并行化設計。整個網(wǎng)絡入侵檢測方法的設計思路如圖5所示,具體步驟如下:

圖5 基于GRU-DAE模型的網(wǎng)絡入侵檢測流程
(1) 對網(wǎng)絡入侵數(shù)據(jù)中的字符型特征進行數(shù)值化,并對所有數(shù)據(jù)進行歸一化處理,得到標準化的原始數(shù)據(jù)集,然后將其分為訓練數(shù)據(jù)集和測試數(shù)據(jù)集。
(2)網(wǎng)絡入侵數(shù)據(jù)包括正常數(shù)據(jù)和攻擊數(shù)據(jù),但一般情況下,其攻擊數(shù)據(jù)量遠遠小于正常行為數(shù)據(jù)量,并且攻擊數(shù)據(jù)也存在類別失衡。通過數(shù)據(jù)劃分,將訓練集分為少數(shù)類樣本和其他類樣本。
(3)訓練數(shù)據(jù)集中少數(shù)類樣本通過GAN進行數(shù)據(jù)增強。將GAN生成的新數(shù)據(jù)樣本與原始數(shù)據(jù)樣本整合,獲得一個新的均衡訓練集。
(4)使用新的訓練集對GRU-DAE模型訓練,用測試集對模型進行測試,實現(xiàn)對入侵數(shù)據(jù)的特征提取。最后對提取的特征通過Softmax分類器進行分類,得到檢測結果,從而實現(xiàn)網(wǎng)絡入侵異常檢測。
該文使用的實驗平臺為Ubuntu 18.04操作系統(tǒng),硬件配置為NVIDIA RTX 2060圖形處理器、32 GB內存。算法采用Python 3.6.5和TensorFlow 2.3.0實現(xiàn)。
用于NIDS的開放數(shù)據(jù)集并不多,大部分相關工作主要基于KDD99數(shù)據(jù)集、NSL-KDD數(shù)據(jù)集和Kyoto2006數(shù)據(jù)集進行研究。研究人員對現(xiàn)有數(shù)據(jù)集的評估表明,它們大多陳舊且不可靠,還有一些問題不能反映當前的攻擊趨勢。在最近發(fā)布的數(shù)據(jù)集中,ISCX2012數(shù)據(jù)集反映了最新的攻擊。但是,由于攻擊類型比UBSW-NB15數(shù)據(jù)集少,特征數(shù)量少,因此不適合作為本研究的數(shù)據(jù)集。
因此,該文使用UBSW-NB15數(shù)據(jù)集[17]進行實驗,它由正常流量和9種攻擊類型組成,共10種類型,其中包括Analysis、Backdoor、Shellcode和Worms少數(shù)類。表1展示了UBSW-NB15數(shù)據(jù)集中各類數(shù)據(jù)的分布情況。

表1 UNSW-NB15數(shù)據(jù)集各類數(shù)據(jù)分布
網(wǎng)絡入侵檢測數(shù)據(jù)中存在連續(xù)數(shù)據(jù)和離散數(shù)據(jù),數(shù)據(jù)中不同特征屬性之間存在較大的數(shù)量差異。為了使數(shù)據(jù)集中不同類別的數(shù)據(jù)更加均衡,通常需要對數(shù)據(jù)集進行預處理。數(shù)據(jù)預處理階段通常包括兩個部分:數(shù)值化和歸一化[18]。
(1)數(shù)值化:原始數(shù)據(jù)集含有不利于直接矢量化的字符串特征,為了將數(shù)據(jù)輸入到網(wǎng)絡異常檢測模型中,對數(shù)據(jù)標簽進行獨熱編碼操作,將其中的字符型特征轉換為數(shù)值型特征。獨熱編碼是機器學習分類任務中一種常用的數(shù)據(jù)編碼方法,它可以將原始數(shù)據(jù)中離散值轉化為歐氏空間的點,從而保持各標簽之間合理的特征距離[19]。例如,該文采用的數(shù)據(jù)集中proto、service、state和Attack_act包含字符型特征,例如proto屬性,將其中的三個最重要的值TCP、UDP和ICMP分別映射到1、2和3,并將其余值映射到4。
(2)歸一化:由于原始數(shù)據(jù)中各維度的值不一致,數(shù)據(jù)范圍大不相同,這在網(wǎng)絡入侵數(shù)據(jù)集中尤為突出,所以需要對原始數(shù)據(jù)的每一列進行歸一化處理。高幅度數(shù)據(jù)具有較高的權重,這使得低幅度的數(shù)據(jù)對結果的影響很小,并且丟失了一些隱藏在原始數(shù)據(jù)集中的信息。將同一列數(shù)據(jù)歸一化到[-1,1]之間。其歸一化公式為:
(3)
其中,x為原始數(shù)據(jù)集的特征值,x*為歸一化后的數(shù)據(jù)值,xmax和xmin分別為原始特征值的最大值和最小值。
目前使用GAN模型對網(wǎng)絡入侵數(shù)據(jù)進行擴充大致分為兩種方法:一種是整體類擴充,使用GAN對整體類別進行訓練并生成相似數(shù)據(jù),再對生成的數(shù)據(jù)進行類別識別;另外一種是類別內擴充,其區(qū)別是需要在生成數(shù)據(jù)的類別中進行訓練,并生成相應類別的數(shù)據(jù)。文中實驗采用類別內擴充對少數(shù)類進行數(shù)據(jù)增強,其步驟如下:
(1)從預處理后的網(wǎng)絡入侵數(shù)據(jù)集中分離出包括Analysis、Shellcode、Backdoor和Worms四個少數(shù)攻擊類的數(shù)據(jù)集。
(2)因分離出的訓練數(shù)據(jù)維度數(shù)不夠,根據(jù)GAN模型的輸入格式要求,將128維的訓練數(shù)據(jù)末位進行補0擴充,使之變成144維度,進而轉換為12×12的矩陣向量。
(3)通過在生成模型中引入范圍在[-1,1]的144維的隨機噪聲,將GAN生成的新數(shù)據(jù)樣本與原始數(shù)據(jù)樣本進行混合,從而訓練判別器。
(4)根據(jù)實驗選擇合適的迭代次數(shù),分別對判別模型和生成模型進行訓練迭代,當判別模型和生成模型的判別結果分別達到最優(yōu)和最差時,固定其模型參數(shù),不斷迭代該過程,直至GAN模型平衡。
(5)將擴充的樣本重組為144維的特征向量,取前128維作為擴充樣本的特征,并將擴充樣本與原始訓練數(shù)據(jù)進行混合,得到新的訓練數(shù)據(jù)集。
該文基于混淆矩陣來測量結果。其由四種數(shù)值組成:真正例(True Positive,TP)、真負例(True Negative,TN)、假正例(False Positive,F(xiàn)P)、假負例(False Negative,F(xiàn)N),混淆矩陣的定義如表2所示。

表2 混淆矩陣定義
實驗性能評估準確率、精確率、召回率和F1分數(shù)。其公式如下:
(4)
(5)
(6)
(7)
其中,準確率是一個最直觀地表示模型的性能的評價指標,但是當數(shù)據(jù)類別不平衡時,需要補充指標F1分數(shù),即精確率和召回率的調和均值。F1分數(shù)是一個重要的性能評估因素,因為它可以準確地評估模型在使用不平衡數(shù)據(jù)時的性能[20]。因此,該文以準確率、精確率、召回率和F1分數(shù)作為指標。
該文使用GAN對攻擊類Analysis、Backdoor、Shellcode和Worms進行樣本擴充。GAN的初始參數(shù)包括batch-size設置為20,epoch為100,學習率為0.000 2,其中對少數(shù)類數(shù)目擴充為10 000。
實驗過程中,該文分別選用迭代次數(shù)為50、200、400、600和800進行GAN訓練,實驗結果如圖6所示。當?shù)螖?shù)為400時,其準確率基本達到最高。迭代次數(shù)超過400次后隨著迭代次數(shù)的增加,各類的檢測準確率沒有顯著提高。綜合檢測準確率和時間成本考慮,文中GAN的迭代次數(shù)選擇400次。

圖6 不同迭代次數(shù)下模型的檢測準確率
由于GRU特殊的網(wǎng)絡結構,GRU-DAE編碼網(wǎng)絡的隱藏層數(shù)的選擇受批訓練大小的限制。該文對隱藏層數(shù)選擇10、20、30、40、50、60這6個值進行對比實驗,并對每個取值重復5次平均實驗,得到訓練集中準確率、召回率和F1分數(shù)隨隱藏層數(shù)的數(shù)值變化情況,如圖7所示。

圖7 不同隱藏層數(shù)量下的模型性能
從圖7可以得出,當隱藏層數(shù)為40時表現(xiàn)出較好的性能,即使增加隱藏層數(shù)量,性能也沒有得到較高提升,相反隱藏層數(shù)過多會使模型結構過于復雜,不僅會使時間成本過高,而且可能會降低模型的檢測性能。因此,綜合考慮模型性能和時間成本,選取40為隱藏層數(shù)的最優(yōu)取值。
為了更好地體現(xiàn)該模型在少數(shù)類的檢測效果,該文對比了傳統(tǒng)的LeNet、AlexNet、GoogleNet和LSTM模型在Analysis、Backdoor、Shellcode和Worms類上的各項指標,對各模型均進行5次重復實驗并取其平均值,實驗結果如表3所示。實驗證明,通過GAN對少數(shù)類樣本進行擴充,提高少數(shù)攻擊類的占比,使少數(shù)攻擊類樣本能夠充分被分類器學習,其檢測率得到了明顯提高。

表3 少數(shù)類別數(shù)據(jù)檢測率對比 %
為了更好地分析GRU-DAE異常檢測模型的性能,該文分別使用決策樹、隨機森林、GRU-RNN和CNN-BiLSTM這4種網(wǎng)絡入侵檢測模型基于相同數(shù)據(jù)集進行對比實驗,對各模型均進行5次重復實驗并記錄平均值,實驗結果對比如表4所示。與傳統(tǒng)網(wǎng)絡入侵檢測模型相比,GRU-DAE在UNSW-NB15數(shù)據(jù)集上的檢測效果更優(yōu),驗證了該模型在網(wǎng)絡入侵檢測上具有較高的整體類別檢測率。

表4 各模型實驗結果對比 %
從以上對比實驗結果可以看出,在處理樣本不平衡的入侵檢測數(shù)據(jù)時,GRU-DAE模型不僅對少數(shù)攻擊類取得了較高的檢測率,而且在整體檢測性能上相較于傳統(tǒng)方法也具有一定的優(yōu)勢。
該文提出了一種融合生成式對抗網(wǎng)絡、降噪自編碼器與門控循環(huán)單元的入侵檢測方法。針對網(wǎng)絡入侵數(shù)據(jù)不均衡問題,采用生成式對抗神經(jīng)網(wǎng)絡對少數(shù)類樣本數(shù)據(jù)進行擴充,降低數(shù)據(jù)的不平衡程度,提高少數(shù)攻擊類的占比,使少數(shù)攻擊類樣本能夠充分被分類器學習,提高了對少數(shù)類的檢測率。同時提出了一種改進降噪自編碼器的網(wǎng)絡入侵模型,通過融入門控循環(huán)單元,使得模型在具有一定的魯棒性、不易受到隨機噪聲影響的同時,對網(wǎng)絡入侵數(shù)據(jù)的時序特征也能夠有效地提取,實現(xiàn)了對數(shù)據(jù)間長期依賴關系的有效記憶,相較于傳統(tǒng)的網(wǎng)絡入侵檢測模型,具有更高的檢測性能。在今后的研究工作中,將基于該模型對物聯(lián)網(wǎng)環(huán)境中的正常數(shù)據(jù)和攻擊數(shù)據(jù)進行處理與分析,進一步驗證該方法對于物聯(lián)網(wǎng)領域網(wǎng)絡入侵檢測任務的適用性和有效性。