溫纖纖 柳 毅 凌 捷 羅 玉
(廣東工業(yè)大學(xué)計算機(jī)學(xué)院 廣東 廣州 510006)
隨著技術(shù)和互聯(lián)網(wǎng)服務(wù)的飛速發(fā)展,計算機(jī)網(wǎng)絡(luò)給人們的生活和工作帶來了極大的便利。與此同時,它們也帶來了很多安全問題,如各種類型的病毒、漏洞和攻擊[1]。網(wǎng)絡(luò)攻擊給網(wǎng)絡(luò)服務(wù)帶來了很大的風(fēng)險,從社會經(jīng)濟(jì)和個人的角度來看,網(wǎng)絡(luò)服務(wù)正變得越來越重要。如何在海量數(shù)據(jù)環(huán)境下取得較好的網(wǎng)絡(luò)入侵檢測效果成為亟待解決的重要問題,而應(yīng)用新方法提高網(wǎng)絡(luò)入侵檢測技術(shù)則至關(guān)重要。
機(jī)器學(xué)習(xí)的概念最早在20世紀(jì)50年代被提出[2],隨著對機(jī)器學(xué)習(xí)的深入研究,機(jī)器學(xué)習(xí)的算法也被廣泛應(yīng)用于各個領(lǐng)域,基于機(jī)器學(xué)習(xí)方法的網(wǎng)絡(luò)入侵檢測的研究也越來越深入。由一開始單一的機(jī)器學(xué)習(xí)方法,如支持向量機(jī)[3]、決策樹[4]、貝葉斯[5]等方法,再到將幾種機(jī)器學(xué)習(xí)算法結(jié)合的混合模型對網(wǎng)絡(luò)入侵檢測進(jìn)行研究。例如Kuang等[6]提出了一種基于遺傳算法的主成分分析與支持向量機(jī)的混合入侵檢測方法。顧兆軍等[7]提出一種基于極限學(xué)習(xí)機(jī)和K鄰近算法的網(wǎng)絡(luò)入侵檢測模型,檢測的準(zhǔn)確率達(dá)到了95.33%,實驗采用KDDcup99數(shù)據(jù)集,但是只選用了1 900個數(shù)據(jù)作為訓(xùn)練集,1 000個數(shù)據(jù)作為測試集。將機(jī)器學(xué)習(xí)的模型用于網(wǎng)絡(luò)入侵檢測雖然取得了不錯的效果,但是傳統(tǒng)的機(jī)器學(xué)習(xí)的模型在少量樣本上才會產(chǎn)生比較好的分類效果,對于大量的樣本的分類結(jié)果卻不盡如人意。
隨著神經(jīng)網(wǎng)絡(luò)的出現(xiàn),深度學(xué)習(xí)的研究也越來越火熱。Ingre等[ 8 ]利用人工神經(jīng)網(wǎng)絡(luò)做網(wǎng)絡(luò)入侵檢測的五分類和二分類實驗,獲得了不錯的結(jié)果。Ma等[9]提出了一種結(jié)合譜聚類(Spectral Clustering,SC)和深度神經(jīng)網(wǎng)絡(luò)(Deep Neural Network,DNN)算法的SCDNN算法,實驗結(jié)果表明,SCDNN分類器在檢測的準(zhǔn)確率和發(fā)現(xiàn)異常攻擊類型上優(yōu)于BP神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)、隨機(jī)森林和貝葉斯模型。Yin等[10]提出了一種基于遞歸神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)的深度學(xué)習(xí)入侵檢測(Intrusion Detect ion System,IDS)方法,實驗結(jié)果表明, RNN-IDS非常適合建模分類,模型具有較高的精度,其性能優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)的分類方法。Kim等[11]將LSTM和RNN組合成LSTM-RNN模型,利用KDD Cup 1999數(shù)據(jù)集訓(xùn)練入侵檢測系統(tǒng)模型,通過性能測試,驗證了該方法的有效性。Sethi等[12]提出了一種基于深度強(qiáng)化學(xué)習(xí)(Deep Reinforcement Learning,DRL)的自適應(yīng)算法,使用UNSW-NB15數(shù)據(jù)集做實驗,對新的復(fù)雜攻擊進(jìn)行準(zhǔn)確的檢測和細(xì)粒度的分類。
基于前面的研究,為了進(jìn)一步提高網(wǎng)絡(luò)入侵檢測模型的檢測性能,本文提出一種基于一維卷積神經(jīng)網(wǎng)絡(luò)和門控循環(huán)單元網(wǎng)絡(luò)(1DCNN-GRU)的網(wǎng)絡(luò)入侵檢測混合模型。1DCNN-GRU混合模型是由1DCNN和GRU構(gòu)建的8層網(wǎng)絡(luò)的一個深度學(xué)習(xí)模型,利用 1DCNN的滑動窗口和權(quán)值共享來獲取網(wǎng)絡(luò)流量數(shù)據(jù)序列的局部特征作為GRU層的輸入,GRU進(jìn)一步提取特征數(shù)據(jù)并挖掘時序信息,最終通過全連接層分類輸出。為提高模型的魯棒性,將1DCNN的卷積方式改為膨脹卷積,并在訓(xùn)練模型時通過添加高斯噪聲層、調(diào)整優(yōu)化器和學(xué)習(xí)速率優(yōu)化模型,從而提高模型的檢測性能。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)是一類包含卷積計算且具有深度結(jié)構(gòu)的前饋神經(jīng)網(wǎng)絡(luò),其中:一維卷積神經(jīng)網(wǎng)絡(luò)常用于自然語言處理領(lǐng)域[13];二維卷積神經(jīng)網(wǎng)絡(luò)和三維卷積神經(jīng)網(wǎng)絡(luò)常用于圖片識別[14]、普通話語音識別[15]、人臉識別[16]等領(lǐng)域。卷積神經(jīng)網(wǎng)絡(luò)采用局部連接和權(quán)值共享的方式以減少網(wǎng)絡(luò)模型參數(shù)數(shù)量,這樣既降低了模型的復(fù)雜度,也使得網(wǎng)絡(luò)易于優(yōu)化。
一維卷積神經(jīng)網(wǎng)絡(luò)模型包含輸入層、卷積層、池化層、全連接層、輸出層[17]。
輸入層:將經(jīng)過數(shù)據(jù)預(yù)處理的數(shù)據(jù)集輸入到卷積神經(jīng)網(wǎng)絡(luò)模型中。
卷積層:卷積層中每個神經(jīng)元連接數(shù)據(jù)窗都有固定的權(quán)重,將一組固定的權(quán)重和不同窗口內(nèi)的數(shù)據(jù)做內(nèi)積的操作稱為卷積。公式如式(1)所示。
(1)
池化層:池化層的作用是將輸入的數(shù)據(jù)進(jìn)行壓縮重塑,以達(dá)到提取重要特征和特征降維的作用。公式如式(2)所示。
(2)
全連接層:全連接層中的每個神經(jīng)元與其前一層的所有神經(jīng)元進(jìn)行全連接,將學(xué)習(xí)到的分布式特征表示映射到樣本標(biāo)記空間。
輸出層:將分類結(jié)果輸出。
圖1 GRU網(wǎng)絡(luò)結(jié)構(gòu)
GRU在時間t之前觀察到的所有信息的編碼:
rt=σ(wr·[ht-1,xt]+br)
(3)
zt=σ(wz·[ht-1,xt]+bz)
(4)
(5)
(6)
1DCNN-GRU混合模型的結(jié)構(gòu)與參數(shù)配置如表1所示,其中:1DCNN為一維卷積層,MPool1D為最大一維池化層;GRU(32)為門控遞歸單元網(wǎng)絡(luò)層,其中32為輸出維度;Dense_1(128)為第一個全連接層,其中128為輸出維度;Dense_2(2)為第二個全連接層,Dense_2作為最后一個全連接層將預(yù)測結(jié)果分類輸出,2為輸出維度即輸出為2分類;filters為卷積核的數(shù)目;size為卷積核的時域窗大小或池化窗口大小;d為膨脹卷積的膨脹率;activation為激活函數(shù);“—”表示沒有該參數(shù)或未設(shè)置該參數(shù)。
表1 1DCNN-GRU混合模型結(jié)構(gòu)與參數(shù)
卷積層的膨脹率設(shè)為2,將卷積層卷積方式改為膨脹卷積。膨脹卷積是標(biāo)準(zhǔn)卷積的一種改進(jìn)形式,CNN在處理數(shù)據(jù)時通過多次卷積和池化操作增大模型的感受野,而膨脹卷積(Dilated Convolution) 與標(biāo)準(zhǔn)的卷積不同,膨脹卷積在卷積核中增加一些空洞,從而擴(kuò)大模型的感受野。膨脹卷積以膨脹率來指定核元素之間的0的數(shù)量。因此,應(yīng)用膨脹率可以增加有效核尺寸。膨脹卷積與標(biāo)準(zhǔn)卷積的區(qū)別如圖2和圖3所示,采用3×3的卷積核(kernel),膨脹率(dilation rate)表示卷積核的間隔。膨脹率為1時表示卷積核間沒有間隔,為標(biāo)準(zhǔn)卷積,卷積核的感受野為3×3;膨脹率為2時表示卷積核間的間隔為1,有效卷積核為5×5,卷積核的感受野為7×7。可以看出,膨脹卷積在增大感受野的同時并保持提取的特征圖的尺寸與標(biāo)準(zhǔn)卷積的特征圖一致。應(yīng)用膨脹卷積擴(kuò)大了模型的感受野,因此模型可以提取長距離特征信息。
圖2 標(biāo)準(zhǔn)卷積
圖3 膨脹卷積
1DCNN-GRU混合模型由8層網(wǎng)絡(luò)構(gòu)成,GRU置于一維卷積神經(jīng)網(wǎng)絡(luò)的池化層和全連接之間。四層卷積層通過膨脹卷積的方式對輸入的數(shù)據(jù)進(jìn)行特征提取,兩層池化層將卷積層輸出的特征數(shù)據(jù)進(jìn)行壓縮降維,經(jīng)過二次壓縮的特征數(shù)據(jù)作為GRU層的輸入,GRU利用重置門和更新門對特征數(shù)據(jù)進(jìn)行進(jìn)一步的篩選,去除冗余信息,保留具有類別區(qū)分性的特征信息,Dense_1層中的每個神經(jīng)元與GRU層的所有神經(jīng)元全連接進(jìn)行特征加權(quán),Dense_2層利用Softmax函數(shù)進(jìn)行分類輸出。
在訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型時,如果數(shù)據(jù)集中不同類別的樣本不均衡,容易導(dǎo)致模型陷入過擬合,神經(jīng)網(wǎng)絡(luò)模型注重擬合樣本較多的類別而忽略樣本較少的類別。本文通過添加高斯噪聲(Gaussian Noise,GNoise)到輸入樣本防止模型過擬合。每次訓(xùn)練神經(jīng)網(wǎng)絡(luò)模型時,將高斯噪聲隨機(jī)添加到輸入樣本,使得輸入模型的數(shù)據(jù)每次都不同,神經(jīng)網(wǎng)絡(luò)模型無法記住訓(xùn)練樣本,從而提高模型從輸入空間中學(xué)習(xí)映射規(guī)則的能力,增強(qiáng)網(wǎng)絡(luò)的魯棒性。訓(xùn)練模型時的模型結(jié)構(gòu)與數(shù)據(jù)如表2所示,其中GNoise(n)為高斯噪聲層,n為高斯噪聲的標(biāo)準(zhǔn)差。
表2 訓(xùn)練模型時的模型結(jié)構(gòu)與數(shù)據(jù)
樣本添加的高斯噪聲的分布概率密度計算公式為:
(7)
式中:μ為均值;σ為標(biāo)準(zhǔn)差。
基于1DCNN-GRU混合模型的網(wǎng)絡(luò)入侵檢測流程如圖4所示,可分為以下幾個步驟:
圖4 網(wǎng)絡(luò)入侵檢測流程
(1) 選取UNSW- NB15樣本集。
(2) 對樣本集做數(shù)據(jù)預(yù)處理并將數(shù)據(jù)集劃分為訓(xùn)練集和測試集。
(3) 樣本集用于訓(xùn)練模型,訓(xùn)練模型時的模型結(jié)構(gòu)詳見表2,在訓(xùn)練的過程中利用Adam優(yōu)化器更新模型的網(wǎng)絡(luò)參數(shù),使其逼近或達(dá)到最優(yōu)值。
Adam優(yōu)化更新模型參數(shù)過程如下:
初始化一階和二階矩變量s=0,r=0,初始化時間步t=0。輸入m個樣本{x(1),x(2),…,x(m)},對應(yīng)目標(biāo)為y(i)。
計算梯度:
(8)
t←t+1
(9)
更新有偏一階矩估計和有偏二階矩估計:
s←β1s+(1-β1)g
(10)
r←β2r+(1-β2)g2
(11)
修正一階矩的偏差和二階矩的偏差:
(12)
(13)
更新網(wǎng)絡(luò)參數(shù):
(14)
θ←θ+Δθ
(15)
式中:α為學(xué)習(xí)速率;β1和β2為矩估計的指數(shù)衰減速率,β1,β2∈[0,1];δ為極小常數(shù)。
(4) 當(dāng)模型的訓(xùn)練次數(shù)達(dá)到預(yù)設(shè)的迭代次數(shù)則保存模型在訓(xùn)練實驗中的最優(yōu)網(wǎng)絡(luò)參數(shù),利用測試集測試1DCNN-GRU模型性能,最終將測試結(jié)果輸出。
本文實驗采用的是UNSW-NB15數(shù)據(jù)集,它是由澳大利亞網(wǎng)絡(luò)安全中心(ACCS)的實驗室在2015年創(chuàng)建的,包含了正常網(wǎng)絡(luò)行為和9類攻擊。攻擊類型分別為模糊測試、滲透分析、后門、拒絕服務(wù)攻擊、漏洞利用、泛型攻擊、踩點、shellcode和蠕蟲。這些攻擊包含了近年才出現(xiàn)的攻擊手段,比KDDcup99數(shù)據(jù)集更適用于網(wǎng)絡(luò)入侵檢測的研究[19]。
本文實驗采用了257 673條數(shù)據(jù),其中:訓(xùn)練集包含175 341條數(shù)據(jù);測試集包含82 332條數(shù)據(jù)。訓(xùn)練集和測試集的樣本數(shù)據(jù)如表3所示。
表3 訓(xùn)練集和測試集樣本
UNSW-NB15數(shù)據(jù)集每條數(shù)據(jù)包含44個特征,其中:1至30的特征是從數(shù)據(jù)包中綜合收集的信息,數(shù)據(jù)包生成的附加特性進(jìn)一步分為兩個部分,分別為連接特征和通用特征;31至37的特征為連接特性;38至42的特征為通用特征;43至44的特征為標(biāo)簽特征,用于標(biāo)記正常數(shù)據(jù)和攻擊類型。
本文實驗采用絕對值最大標(biāo)準(zhǔn)化方法對訓(xùn)練集和測試集中的數(shù)據(jù)特征做數(shù)據(jù)預(yù)處理,計算公式如式(16)所示。
(16)
絕對值最大標(biāo)準(zhǔn)化方法將每個特征數(shù)據(jù)調(diào)整到[-1,1]的范圍,它根據(jù)每個特征內(nèi)的最大絕對值來劃分?jǐn)?shù)據(jù),它不會移動和聚集數(shù)據(jù),因此不會破壞數(shù)據(jù)的稀疏性。
用準(zhǔn)確率(AC)、漏報率 (FPR)、誤報率 (FNR)等指標(biāo)來評價1DCNN-GRU網(wǎng)絡(luò)入侵檢測模型的性能。公式如下:
(17)
(18)
(19)
式中:TP表示待分類樣本為正,分類后標(biāo)記為正;TN表示待分類樣本為負(fù),分類后標(biāo)記為負(fù);FP表示待分類樣本為負(fù),分類后標(biāo)記為正;FN表示待分類樣本為正,分類后標(biāo)記為負(fù)。
為了提高模型的泛化能力,進(jìn)行對優(yōu)化器和學(xué)習(xí)速率的調(diào)整實驗,實驗結(jié)果如圖5和圖6所示。實驗對SGD、Adagrad、RMSprop、Adamax和Adam優(yōu)化器的性能進(jìn)行了對比,由圖5可看出,訓(xùn)練模型時使用Adam優(yōu)化器效果最好、準(zhǔn)確率最高。選定Adam優(yōu)化器后,對優(yōu)化器的學(xué)習(xí)速率進(jìn)行調(diào)整,由圖6可看出,當(dāng)學(xué)習(xí)速率為0.001時檢測效果最好。學(xué)習(xí)速率過小會導(dǎo)致模型陷入過擬合;學(xué)習(xí)速率過大會導(dǎo)致模型欠擬合。根據(jù)實驗結(jié)果選定Adam優(yōu)化器優(yōu)化模型的網(wǎng)絡(luò)參數(shù)并將Adam優(yōu)化器的學(xué)習(xí)速率設(shè)置為0.001。
圖6 學(xué)習(xí)速率對檢測準(zhǔn)確率的影響
為了增強(qiáng)網(wǎng)絡(luò)的魯棒性,在訓(xùn)練模型時添加高斯噪音。添加高斯噪聲(GNoise)與不添加高斯噪聲(None-GNoise)進(jìn)行實驗對比,實驗對比結(jié)果如表4所示。
表4 GNoise與None-GNoise實驗對比(%)
可以看出,在訓(xùn)練模型時加入GNoise層,模型檢測的準(zhǔn)確率比None-GNoise提高了5.1百分點且誤報率降低了12.58百分點。None-GNoise模型的高誤報率是由兩種樣本的不均衡導(dǎo)致的,導(dǎo)致模型過度擬合攻擊樣本,將正常行為誤報為攻擊行為。而加入GNoise顯著降低了模型的誤報率,雖然這使得漏報率更高,但影響更小。實驗結(jié)果表明,在訓(xùn)練模型時加入GNoise有助于增強(qiáng)網(wǎng)絡(luò)的魯棒性,提高檢測的準(zhǔn)確率和防止過擬合。
1DCNN-GRU混合模型與1DCNN模型都采用UNSW-NB15數(shù)據(jù)集做網(wǎng)絡(luò)入侵檢測實驗,實驗結(jié)果如表5所示。結(jié)果表明,1DCNN-GRU混合模型與單一的1DCNN模型相比檢測的準(zhǔn)確率更高,雖然它們對網(wǎng)絡(luò)攻擊的漏報率相差無幾,但是1DCNN-GRU混合模型的誤報率比1DCNN模型降低了5.57百分點。這表明1DCNN-GRU混合模型比1DCNN模型更有利于提取具有類別區(qū)分性的特征信息,使分類效果更好,從而提高了模型的檢測性能。
表5 1DCNN-GRU與1DCNN模型實驗對比(%)
為了進(jìn)一步驗證本文提出的1DCNN-GRU網(wǎng)絡(luò)入侵檢測混合模型的性能,在使用相同數(shù)據(jù)集的情況下與其他文獻(xiàn)的算法進(jìn)行對比,對比結(jié)果如表6所示。與SVM相比,本文提出的1DCNN-GRU混合模型檢測的準(zhǔn)確率提高了5.13百分點,誤報率降低了10.04百分點。與DRL、遺傳算法邏輯回歸(Genetic Algorithm Logistic Regression,AG-LR)[20]相比,1DCNN-GRU混合模型對入侵檢測的準(zhǔn)確率也有了明顯的提升。
表6 檢測性能對比(%)
本文將一維卷積神經(jīng)網(wǎng)絡(luò)和門控循環(huán)單元網(wǎng)絡(luò)融合構(gòu)建了一個1DCNN-GRU混合模型,通過改變一維卷積神經(jīng)網(wǎng)絡(luò)的卷積方式,加入高斯噪聲層訓(xùn)練模型,調(diào)整優(yōu)化器和學(xué)習(xí)速率提高模型的學(xué)習(xí)能力,優(yōu)化模型。實驗結(jié)果表明,本文方法能有效提高網(wǎng)絡(luò)入侵檢測的準(zhǔn)確率并降低檢測的誤報率。