麻文剛,張亞?wèn)|,郭進(jìn)
(西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,四川 成都 611756)
互聯(lián)網(wǎng)技術(shù)的出現(xiàn)使工控行業(yè)(如鐵路、道路交通控制、制造及工業(yè)測(cè)量等)越來(lái)越智能化與標(biāo)準(zhǔn)化,各種行業(yè)之間的聯(lián)系不再單一,互聯(lián)網(wǎng)與物聯(lián)網(wǎng)技術(shù)的發(fā)展為各個(gè)工業(yè)系統(tǒng)發(fā)展的合作通信以及業(yè)務(wù)交流帶來(lái)一個(gè)很好的契機(jī)[1]。隨著網(wǎng)絡(luò)環(huán)境的不斷更迭,工業(yè)網(wǎng)絡(luò)將受到各種形式的安全威脅與網(wǎng)絡(luò)攻擊。從工業(yè)控制的各種信號(hào)系統(tǒng)[2-4]來(lái)講,現(xiàn)有工業(yè)信號(hào)系統(tǒng)想要發(fā)展,就必須結(jié)合互聯(lián)網(wǎng)技術(shù)不斷更新信號(hào)數(shù)據(jù)與相關(guān)程序信息,然而信息技術(shù)的不斷更新與發(fā)展,勢(shì)必造成互聯(lián)網(wǎng)技術(shù)被大量運(yùn)用。但現(xiàn)有的網(wǎng)絡(luò)安全防護(hù)技術(shù)依然存在很多不足,同時(shí)大數(shù)據(jù)量的需求也會(huì)使各個(gè)行業(yè)的網(wǎng)絡(luò)配置相當(dāng)復(fù)雜,各方面通信與連接的網(wǎng)絡(luò)也較多,導(dǎo)致通信行業(yè)的網(wǎng)絡(luò)安全防護(hù)存在極易被攻擊的危險(xiǎn)。因此各個(gè)國(guó)家與組織越來(lái)越注重對(duì)網(wǎng)絡(luò)安全信息的攻擊檢測(cè)與防御,保障信號(hào)及其工業(yè)控制的網(wǎng)絡(luò)安全,力爭(zhēng)在網(wǎng)絡(luò)空間安全中掌握主動(dòng)。作為網(wǎng)絡(luò)攻擊中必不可少的一項(xiàng)工作,網(wǎng)絡(luò)異常流量檢測(cè)與分類(lèi)成為當(dāng)下工作的首要研究方向與重中之重。同時(shí),近年來(lái)不斷出現(xiàn)的異常流量、漏洞利用方法及深度學(xué)習(xí)方法的廣泛應(yīng)用,使網(wǎng)絡(luò)異常檢測(cè)又一次成為當(dāng)下的研究熱點(diǎn)。由于傳統(tǒng)的檢測(cè)方式在網(wǎng)絡(luò)流量檢測(cè)時(shí)泛化能力與特征選擇較差,已經(jīng)面臨失效。因此尋找一種有效并且準(zhǔn)確檢測(cè)與區(qū)分異常流量的方法是目前工業(yè)與信號(hào)網(wǎng)絡(luò)中需要解決的關(guān)鍵問(wèn)題。在網(wǎng)絡(luò)安全領(lǐng)域,異常流量檢測(cè)一直是熱點(diǎn)問(wèn)題。本文的主要研究工作為分析當(dāng)前網(wǎng)絡(luò)異常流量檢測(cè)的主體方法,針對(duì)現(xiàn)有處理網(wǎng)絡(luò)流量過(guò)程中的不足進(jìn)行改進(jìn)。因此本文將分析最近幾年網(wǎng)絡(luò)異常流量檢測(cè)的相關(guān)研究現(xiàn)狀。
眾所周知,對(duì)于網(wǎng)絡(luò)流量特征的預(yù)處理能夠使后續(xù)的異常流量檢測(cè)更加高效,檢測(cè)準(zhǔn)確率更高。而現(xiàn)有方法都是將網(wǎng)絡(luò)數(shù)據(jù)結(jié)合到一起,利用簡(jiǎn)單的人工分析、歸一化及標(biāo)準(zhǔn)化完成,其處理效果一般。在利用機(jī)器學(xué)習(xí)進(jìn)行異常流量檢測(cè)時(shí),要對(duì)網(wǎng)絡(luò)數(shù)據(jù)中的大量信息特征進(jìn)行文本分析。網(wǎng)絡(luò)攻擊流量特征具有高時(shí)序、亂排序及樣本大的特點(diǎn),存在不同方式的加密與替換,導(dǎo)致異常網(wǎng)絡(luò)流量含有很多無(wú)用信息,因此需對(duì)數(shù)據(jù)進(jìn)行預(yù)處理使后續(xù)檢測(cè)效果更好。文獻(xiàn)[5]通過(guò)流量特征之間的同義詞轉(zhuǎn)換,根據(jù)文本詞庫(kù)對(duì)流量信息進(jìn)行不斷擴(kuò)展達(dá)到數(shù)據(jù)預(yù)處理的目的。Lu 等[6]為使支持向量機(jī)(SVM,support vector machine)具有更好的分類(lèi)檢測(cè)效果,根據(jù)傳統(tǒng)的高斯隨機(jī)方法構(gòu)造一種半監(jiān)督式的模型進(jìn)行樣本預(yù)處理,最終實(shí)現(xiàn)前端預(yù)處理的數(shù)據(jù)操作。Park 等[7]提出了一種字符級(jí)二值圖像變換的卷積自動(dòng)編碼器,實(shí)現(xiàn)了對(duì)Http 消息的異常檢測(cè),其中采用字符級(jí)分割的數(shù)據(jù)預(yù)處理方法,檢測(cè)性能優(yōu)于傳統(tǒng)方法。Yu 等[8]將雙向長(zhǎng)短記憶網(wǎng)絡(luò)(LSTM,long short-term memory)與深度神經(jīng)網(wǎng)絡(luò)結(jié)合用于網(wǎng)絡(luò)中的惡意流量檢測(cè),通過(guò)將字符進(jìn)行不斷分割,從而完成對(duì)樣本前期的處理與分析,該方法雖能取得較好結(jié)果,但時(shí)間復(fù)雜度較高。
而關(guān)于異常流量檢測(cè)分類(lèi)方法,Yang 等[9]設(shè)計(jì)了一種卷積門(mén)控遞歸單元神經(jīng)網(wǎng)絡(luò),通過(guò)分析統(tǒng)一資源定位符(URL,uniform resource locator)流量特征搭建了一種檢測(cè)的樣本詞庫(kù),并將該樣本詞庫(kù)進(jìn)行訓(xùn)練,最終用于文本分類(lèi)特征URL 檢測(cè)。Chora?等[10]通過(guò)模擬網(wǎng)絡(luò)中不斷發(fā)送的鏈接與獲取的Web程序,從而生成網(wǎng)絡(luò)中的正常流量樣本信息。同時(shí)通過(guò)從各種網(wǎng)絡(luò)協(xié)議與接收的網(wǎng)絡(luò)數(shù)據(jù)包獲取異常數(shù)據(jù)樣本,最終利用一種圖分割理論與卷積神經(jīng)網(wǎng)絡(luò)將其樣本用于訓(xùn)練,實(shí)現(xiàn)不同的異常流量檢測(cè)。Kruegel 等[11]搭建了一種多模型融合網(wǎng)絡(luò)用于異常流量檢測(cè),該模型通過(guò)接收網(wǎng)絡(luò)中協(xié)議的Http 信息請(qǐng)求指令,分析指令中的多個(gè)網(wǎng)絡(luò)數(shù)據(jù)特征來(lái)對(duì)異常流量進(jìn)行分類(lèi)檢測(cè),雖能取得一定效果,但泛化能力較差。Corona 等[12]通過(guò)訓(xùn)練網(wǎng)絡(luò)中采集到的網(wǎng)絡(luò)流量樣本,設(shè)計(jì)完成了一種多分類(lèi)網(wǎng)絡(luò)異常流量檢測(cè)模型。該模型在檢測(cè)前就已設(shè)計(jì)好一個(gè)正常流量定義模型,同時(shí)模型將其用在網(wǎng)絡(luò)協(xié)議中的各個(gè)連接段,最終結(jié)合統(tǒng)計(jì)分布與馬爾可夫鏈完成了不同攻擊流量的分類(lèi)。該模型效果較好,但是穩(wěn)健性一般。Ringberg 等[13]分析了來(lái)自2 個(gè)IP 骨干網(wǎng)(Abilene 和Geant)和3 個(gè)不同流量聚合(入口路由器、OD 流和輸入鏈路)的一周全網(wǎng)流量測(cè)量,并對(duì)每個(gè)異常流量進(jìn)行了特征時(shí)間序列的詳細(xì)檢查,得出了誤報(bào)率對(duì)正常子空間中主分量數(shù)量的微小差異非常敏感的結(jié)論。Al-Obeidat 等[14]首先提出一種屬性選擇方法對(duì)其網(wǎng)絡(luò)特征進(jìn)行最優(yōu)特征選擇,然后提出混合機(jī)學(xué)習(xí)方法對(duì)其樣本進(jìn)行訓(xùn)練,最終結(jié)合模糊決策樹(shù)方法完成異常流量分類(lèi),該方法效果較好。Erfani 等[15]采用信念網(wǎng)絡(luò)(DBN,deep belief network)來(lái)提取通用的底層特征,用一個(gè)單分類(lèi)SVM 從DBN學(xué)習(xí)特征,最終完成了異常檢測(cè)。但在利用DBN 進(jìn)行訓(xùn)練數(shù)據(jù)時(shí)會(huì)出現(xiàn)過(guò)擬合情況[16],訓(xùn)練效果一般,因此分類(lèi)性能一般。Zhang 等[17]將隱馬爾可夫及SVM 分類(lèi)3 種模型結(jié)合到一起,提出一種多模型網(wǎng)絡(luò)異常流量檢測(cè)方法。該方法通過(guò)對(duì)網(wǎng)絡(luò)中接收到的不同網(wǎng)絡(luò)字段內(nèi)容進(jìn)行異常檢測(cè),如果有一種模型顯示異常,則總體異常。該方法雖能在二分類(lèi)時(shí)取得較好的分類(lèi)結(jié)果,但由于采用的模型皆為傳統(tǒng)機(jī)器學(xué)習(xí)方法,因此在多分類(lèi)任務(wù)中效果較差,穩(wěn)健性一般。通過(guò)分析可知,上述研究?jī)?nèi)容都是采用一種機(jī)器學(xué)習(xí)方法或神經(jīng)網(wǎng)絡(luò)模型對(duì)網(wǎng)絡(luò)流量特征進(jìn)行訓(xùn)練,然后根據(jù)選擇的分類(lèi)器完成檢測(cè)分類(lèi)。但大部分研究都未采取檢測(cè)分類(lèi)前的數(shù)據(jù)預(yù)處理,而采取預(yù)處理的也只是利用相關(guān)文本分析與數(shù)據(jù)簡(jiǎn)單的歸一化完成,因此得到的最優(yōu)特征還是存在冗余性[18-21]。同時(shí),只利用歸一化等操作處理網(wǎng)絡(luò)流量數(shù)據(jù),會(huì)使原始網(wǎng)絡(luò)數(shù)據(jù)樣本的一些重要特征被直接濾除,不能達(dá)到數(shù)據(jù)最優(yōu)清洗的目的。同樣,僅僅使用樣本增強(qiáng)也會(huì)使數(shù)據(jù)樣本不斷擴(kuò)大,導(dǎo)致數(shù)據(jù)維度爆炸,最終使惡意流量特征及語(yǔ)義特征得不到保留。因此最終的檢測(cè)方法特征選擇較差,泛化能力一般。再者,現(xiàn)有的神經(jīng)網(wǎng)絡(luò)方法在訓(xùn)練數(shù)據(jù)時(shí)也會(huì)產(chǎn)生過(guò)擬合與梯度消失的缺點(diǎn),導(dǎo)致模型訓(xùn)練丟失率過(guò)大,訓(xùn)練性能一般。
綜上分析,本文的改進(jìn)主要分為以下三點(diǎn)。1) 根據(jù)網(wǎng)絡(luò)流量特征是否為數(shù)值型數(shù)據(jù)將其進(jìn)行不同操作處理,數(shù)值型數(shù)據(jù)進(jìn)行歸一化,否則進(jìn)行獨(dú)熱編碼,最終將兩部分的數(shù)據(jù)進(jìn)行特征排序與特征清洗完成數(shù)據(jù)預(yù)處理;2) 設(shè)計(jì)一種三層堆疊LSTM 網(wǎng)絡(luò)來(lái)解決單層LSTM 網(wǎng)絡(luò)適應(yīng)性弱的問(wèn)題;3) 結(jié)合Inception 結(jié)構(gòu)與空洞卷積,設(shè)計(jì)一種帶跳躍連接線的改進(jìn)殘差神經(jīng)網(wǎng)絡(luò)對(duì)LSTM 進(jìn)行優(yōu)化,改善深度神經(jīng)網(wǎng)絡(luò)中的過(guò)擬合與梯度消失等缺點(diǎn),最終利用2 個(gè)公開(kāi)的網(wǎng)絡(luò)安全數(shù)據(jù)集來(lái)完成提出方法的性能驗(yàn)證。
在網(wǎng)絡(luò)流量中,固定時(shí)間窗口Δh內(nèi),每一特定源IP 地址將被抽象成為聚合流。根據(jù)集合X={x1,x2,…,xn},n個(gè)源IP 地址被設(shè)置,其中每個(gè)地址都有一個(gè)w維的統(tǒng)計(jì)特征屬性V={v1,v2,…,vw}。因此本文首先使用源IP 地址的特征屬性構(gòu)建一個(gè)屬性矩陣K∈Ωn×w,其中K(:,i)∈Ωw表示第i個(gè)源地址的特征屬性。由于IP地址間的相似性與流量之間存在一定關(guān)系,因此根據(jù)IP 地址的相似性構(gòu)建鄰接矩陣F∈Ωn×n,當(dāng)鄰接矩陣中的某個(gè)元素F(i,j)=1,則表示xi與xj相似,否則不相似。為得到屬性矩陣主模式,本文建立了一種從屬性矩陣中提取代表性的行與列的模型,從而組成新的屬性矩陣該矩陣代表屬性矩陣K的主模式,可以通過(guò)K與之間的差異進(jìn)行網(wǎng)絡(luò)異常流量檢測(cè)。可以看出,網(wǎng)絡(luò)異常流量檢測(cè)可以描述為從大量IP 地址中找出一個(gè)異常IP地址集合,該集合中流量特征與其他絕大多數(shù)IP 地址的流量特征具有顯著差異性。最后根據(jù)神經(jīng)網(wǎng)絡(luò)方法完成特征提取與訓(xùn)練,最終輸入分類(lèi)器完成各種異常流量分類(lèi)。
深度學(xué)習(xí)中的循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN,recurrent neural network)在處理長(zhǎng)序列數(shù)據(jù)時(shí)非常有效,但是序列數(shù)據(jù)樣本過(guò)大且環(huán)境較復(fù)雜時(shí),模型訓(xùn)練容易出現(xiàn)梯度消失與爆炸及神經(jīng)網(wǎng)絡(luò)過(guò)于依賴(lài)訓(xùn)練輪數(shù)的缺點(diǎn)。因此本文利用LSTM 模型中的長(zhǎng)短期記憶模塊來(lái)解決上述問(wèn)題。LSTM 本質(zhì)上為一個(gè)門(mén)限RNN,在RNN 模型的隱藏層增加3 個(gè)門(mén)與一個(gè)細(xì)胞狀態(tài)更新參數(shù),使其檢測(cè)網(wǎng)絡(luò)具有變化的自循環(huán)權(quán)重。當(dāng)出現(xiàn)模型參數(shù)不變狀況時(shí),在不同時(shí)間點(diǎn)可得到動(dòng)態(tài)改變的積分尺度,從而解決網(wǎng)絡(luò)梯度消失及梯度爆炸問(wèn)題。
如圖1 所示,LSTM 網(wǎng)絡(luò)由4 個(gè)獨(dú)立結(jié)構(gòu)組合形成,包含一個(gè)狀態(tài)為細(xì)胞狀態(tài),同時(shí)由3 個(gè)門(mén)(遺忘門(mén)、輸入門(mén)及輸出門(mén))組成的主體結(jié)構(gòu)。其中,負(fù)責(zé)清除前一細(xì)胞ct?1到當(dāng)前細(xì)胞ct信息的為遺忘門(mén);通過(guò)計(jì)算決策更新值iL與候選細(xì)胞ct的為輸入門(mén);更新ct通過(guò)遺忘門(mén)、輸入門(mén)及?t三者進(jìn)行計(jì)算得到,將?t進(jìn)行不間斷傳遞,由此到達(dá)下一狀態(tài)ct+1;ht為L(zhǎng)STM 網(wǎng)絡(luò)的輸出值,由輸出門(mén)計(jì)算并決策。

圖1 LSTM 網(wǎng)絡(luò)結(jié)構(gòu)
各個(gè)參數(shù)具體如下:ft為L(zhǎng)STM 網(wǎng)絡(luò)的更新遺忘門(mén),其具體表達(dá)式為

其中,?為點(diǎn)乘,ef為遺忘門(mén)的權(quán)值矩陣,df為偏置向量,σa(x)為遺忘門(mén)激活函數(shù),用于計(jì)算ft。更新輸入門(mén)輸出iL并計(jì)算候選狀態(tài)?t

其中,ei為輸入門(mén)權(quán)重矩陣,di為偏置向量,σc(x)為輸入門(mén)激活函數(shù),用于計(jì)算iL。ec與dc分別代表tanh(激活函數(shù))權(quán)重與系統(tǒng)偏置向量,通過(guò)這2 個(gè)參數(shù)即可計(jì)算?t,因此根據(jù)式(2)和式(3),得到更新的ct為

更新輸出門(mén)ht

其中,eo為輸出門(mén)權(quán)重矩陣;do為偏置向量;σb(x)為輸出門(mén)激活函數(shù),用于計(jì)算ot;tanh()為tanh 層的激活函數(shù),用于計(jì)算輸出ht。
在實(shí)際網(wǎng)絡(luò)異常流量檢測(cè)中,復(fù)雜的網(wǎng)絡(luò)環(huán)境會(huì)導(dǎo)致LSTM在訓(xùn)練過(guò)程中出現(xiàn)訓(xùn)練集誤差及新樣本泛化能力弱的缺點(diǎn)。訓(xùn)練集偏差可通過(guò)擴(kuò)大訓(xùn)練樣本,選擇適合的特征優(yōu)化選擇方法來(lái)解決,也可適當(dāng)在LSTM網(wǎng)絡(luò)中增加神經(jīng)網(wǎng)絡(luò)的訓(xùn)練深度來(lái)解決。但是深度選擇不適時(shí),方差依舊很大,因此綜上分析后,本文將正則化處理與自適應(yīng)學(xué)習(xí)率方法相結(jié)合來(lái)解決方差過(guò)大及目標(biāo)函數(shù)優(yōu)化問(wèn)題。通過(guò)參數(shù)范數(shù)懲罰方法對(duì)LSTM 模型進(jìn)行正則化,直接對(duì)目標(biāo)函數(shù)G優(yōu)化。同時(shí)加入一個(gè)懲罰項(xiàng)Ω(λ),Ω(λ)可很大程度地改善方差過(guò)大問(wèn)題,正則化后目標(biāo)函數(shù)記為,具體計(jì)算式為

為了驗(yàn)證正則化過(guò)程及自適應(yīng)學(xué)習(xí)率對(duì)LSTM網(wǎng)絡(luò)優(yōu)化的影響,圖2 分別給出了LSTM 網(wǎng)絡(luò)未正則化、L1 正則化、L2 正則化及本文方法優(yōu)化后的方差對(duì)比。
從圖2(a)可知,隨著時(shí)間及學(xué)習(xí)率的不斷遞增,LSTM 檢測(cè)的方差也在增大。當(dāng)學(xué)習(xí)率繼續(xù)增大時(shí),大部分?jǐn)?shù)據(jù)的檢測(cè)方差會(huì)減小,這是由于沒(méi)有正則化從而導(dǎo)致數(shù)據(jù)的泛化能力差引起的方差過(guò)大。從圖2(b)可知,當(dāng)LSTM 檢測(cè)模型在經(jīng)過(guò)L1 正則優(yōu)化后,檢測(cè)的方差減小;隨著時(shí)間及學(xué)習(xí)率的不斷遞增,檢測(cè)的方差逐漸減小。當(dāng)學(xué)習(xí)率增加時(shí),方差基本不變,但繼續(xù)隨著時(shí)間遞增,方差又開(kāi)始變大,這是由于L1 正則化方法處理目標(biāo)函數(shù)精度不高所導(dǎo)致的。從圖2(c)可知,當(dāng)LSTM 在經(jīng)過(guò)L2正則優(yōu)化后,檢測(cè)數(shù)據(jù)的最高方差低于L1 正則化優(yōu)化,隨著時(shí)間及學(xué)習(xí)率的不斷遞增,檢測(cè)方差平均值基本不變,但低于L1 正則化優(yōu)化的方差。當(dāng)學(xué)習(xí)率繼續(xù)遞增,檢測(cè)方差又開(kāi)始變大。從圖2(d)可知,當(dāng)LSTM 在經(jīng)過(guò)L2 正則化及自適應(yīng)學(xué)習(xí)率優(yōu)化后,檢測(cè)數(shù)據(jù)的最高方差低于前述2 種優(yōu)化方法的方差,隨著時(shí)間及學(xué)習(xí)率的不斷遞增,檢測(cè)數(shù)據(jù)的方差平均值維持不變,但是低于前述2 種優(yōu)化方法的方差。當(dāng)學(xué)習(xí)率繼續(xù)遞增,檢測(cè)數(shù)據(jù)的方差變化不大,由此驗(yàn)證了L2 正則化與自適應(yīng)學(xué)習(xí)率方法對(duì)LSTM 的優(yōu)化性能。

圖2 LSTM 優(yōu)化效果對(duì)比
在上述分析LSTM網(wǎng)絡(luò)相關(guān)理論及流量檢測(cè)原理之后,本文構(gòu)建了基于LSTM 與改進(jìn)殘差網(wǎng)絡(luò)優(yōu)化的異常流量檢測(cè)模型,具體流程如圖3 所示。

圖3 基于LSTM 與改進(jìn)殘差網(wǎng)絡(luò)優(yōu)化的異常流量檢測(cè)模型
模型檢測(cè)的主要思路為:1) 網(wǎng)絡(luò)數(shù)據(jù)集在預(yù)處理操作之后,得到輸出X;2) 將此輸出X作為三層堆疊LSTM 網(wǎng)絡(luò)的輸入進(jìn)行特征優(yōu)化處理,從而得到輸出X0,同時(shí)將此輸出作為輸入經(jīng)過(guò)Dropout后得到Y(jié)0;3) 得到的輸出Y0進(jìn)入改進(jìn)殘差網(wǎng)絡(luò)進(jìn)行優(yōu)化特征提取,且Y1分別經(jīng)過(guò)兩條路徑。第一條路徑經(jīng)過(guò)Dense1 層,與輸出權(quán)重相乘,利用批歸一化(BN,batch normalization)與激活函數(shù)(ReLU)進(jìn)一步優(yōu)化,降低深層網(wǎng)絡(luò)缺陷,之后進(jìn)入Dense2 與權(quán)重相乘得到Y(jié)2。第二條路徑將改進(jìn)殘差神經(jīng)網(wǎng)絡(luò)的輸出Y1作為輸入,最終兩條路徑輸出相加,經(jīng)過(guò)激活函數(shù)ReLU 與Softmax 層得到最終的輸出結(jié)果Y。因此,下述內(nèi)容分別介紹各個(gè)優(yōu)化策略的具體實(shí)現(xiàn)。
本文首先構(gòu)建了一種三層堆疊LSTM(如圖4所示),然后根據(jù)前述優(yōu)化的LSTM 網(wǎng)絡(luò),連續(xù)利用3 個(gè)優(yōu)化LSTM 模型來(lái)設(shè)計(jì)一個(gè)三層堆疊結(jié)構(gòu),解決單層LSTM 網(wǎng)絡(luò)提取特征適應(yīng)性弱的問(wèn)題。
圖4 輸入為前期特征優(yōu)化與預(yù)處理的網(wǎng)絡(luò)數(shù)據(jù)集樣本X,分別利用三層堆疊LSTM 從數(shù)據(jù)中提取不同深度特征,然后將處理的樣本特征進(jìn)行融合分析,繼續(xù)傳遞到下一LSTM網(wǎng)絡(luò)中訓(xùn)練分析,利用Dropout 與Dense 層來(lái)適當(dāng)削弱梯度消失的弱點(diǎn),將輸出結(jié)果作為輸入傳遞到Softmax 層進(jìn)行分類(lèi)。具體過(guò)程為:經(jīng)過(guò)預(yù)處理之后的樣本特征X首先通過(guò)含有256 個(gè)單元的第一層LSTM 得到一階特征;特征在傳入堆疊的第二層LSTM 前,先經(jīng)過(guò)一層Dropout 層對(duì)神經(jīng)元進(jìn)行優(yōu)化,優(yōu)化后的數(shù)據(jù)傳入含有128 個(gè)單元的第二層LSTM 得到二階特征;特征在傳入堆疊的第三層LSTM 前,再經(jīng)過(guò)一層Dropout 層對(duì)神經(jīng)元進(jìn)行優(yōu)化,優(yōu)化后的二階特征數(shù)據(jù)傳入一個(gè)含有64 個(gè)單元的第三層LSTM 得到三階特征,再經(jīng)過(guò)一層Dropout 層對(duì)神經(jīng)元進(jìn)行優(yōu)化。將這些不同深度的特征與數(shù)據(jù)合并(Concatenate)得到新的不同深度特征的數(shù)據(jù)。最后,將不同深度特征的數(shù)據(jù)輸入一層含有32 個(gè)單元的LSTM中,得到最后時(shí)刻隱藏層狀態(tài)的數(shù)據(jù)。經(jīng)過(guò)LSTM最后時(shí)刻隱藏層狀態(tài)的數(shù)據(jù)傳入一層全連接層得到32維特征,最終使用一層Softmax進(jìn)行分類(lèi),提取等于目標(biāo)類(lèi)數(shù)量的一維5 個(gè)元素的向量X0,經(jīng)過(guò)Dropout 后得到Y(jié)0。

圖4 三層堆疊LSTM 網(wǎng)絡(luò)結(jié)構(gòu)
LSTM 網(wǎng)絡(luò)除梯度消失與過(guò)擬合弱點(diǎn),也存在如何確定網(wǎng)絡(luò)深度的問(wèn)題。傳統(tǒng)方式為人工實(shí)驗(yàn)確定,所需時(shí)間較長(zhǎng),因此本文采用殘差神經(jīng)網(wǎng)絡(luò)(ResNet)來(lái)構(gòu)造模型中的全連接神經(jīng)網(wǎng)絡(luò)。利用殘差神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)特性選擇一條有效路徑來(lái)降低層數(shù)選擇的難度,相比于BN 方法,本文方法能夠使神經(jīng)網(wǎng)絡(luò)具有更深的網(wǎng)絡(luò)結(jié)構(gòu),同時(shí)也不會(huì)出現(xiàn)明顯的過(guò)擬合以及梯度消失問(wèn)題。殘差網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示,三層堆疊網(wǎng)絡(luò)輸出Y0與H(Y0)分別為殘差輸入與輸出,此時(shí)輸出為H(Y0)=F(Y0)+Y0。為了進(jìn)一步優(yōu)化 LSTM 網(wǎng)絡(luò),本文根據(jù)H(Y0)=F(Y0,[Wi])+Y0建立模型,形成一個(gè)恒等映射函數(shù),用于分析從LSTM 網(wǎng)絡(luò)中的各個(gè)特征信息。其中[Wi]為在處理輸入樣本數(shù)據(jù)時(shí),傳遞信息到達(dá)第i個(gè)卷積層所設(shè)計(jì)的權(quán)重,卷積層的核大小都為3×3。因此整個(gè)殘差網(wǎng)絡(luò)的具體優(yōu)化原理為:通過(guò)預(yù)先設(shè)計(jì)好的快捷鏈接擬合F(Y0)這一殘差映射函數(shù),使輸入數(shù)據(jù)Y0與F(Y0)所獲得的尺寸一致。在此基礎(chǔ)上,利用模型的輸入與輸出繼續(xù)重構(gòu)樣本進(jìn)行不斷學(xué)習(xí)分析,進(jìn)而將模型訓(xùn)練時(shí)最底層的誤差傳遞到上層,通過(guò)重構(gòu)學(xué)習(xí)來(lái)減小誤差,有效地解決殘差網(wǎng)絡(luò)訓(xùn)練時(shí)導(dǎo)致的梯度消失問(wèn)題。在利用傳統(tǒng)殘差網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化模型時(shí),其分析樣本所設(shè)計(jì)的數(shù)據(jù)池化層包含7×7原始池化層。

圖5 殘差網(wǎng)絡(luò)結(jié)構(gòu)
當(dāng)利用圖5 模型訓(xùn)練數(shù)據(jù)時(shí),由于輸入樣本過(guò)大,導(dǎo)致所需的硬件GPU 必須不斷更迭才能完成模型數(shù)據(jù)訓(xùn)練,因此時(shí)間復(fù)雜度與成本過(guò)高。同時(shí)網(wǎng)絡(luò)流量數(shù)據(jù)集特征具有時(shí)變性強(qiáng)的特點(diǎn),且有效樣本有限,會(huì)導(dǎo)致搭建的模型提取特征信息不完善與信息丟失等問(wèn)題。因此本文在分析上述情況后,根據(jù)Inception 模塊對(duì)原先數(shù)據(jù)池化層進(jìn)行優(yōu)化。同時(shí),綜合考慮到 Inception-V1~I(xiàn)nception-V4 的變化,在殘差網(wǎng)絡(luò)的改進(jìn)過(guò)程中,為了能夠保留更多目標(biāo)的原始細(xì)節(jié)特征,本文繼續(xù)對(duì)Inception 網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行適應(yīng)性優(yōu)化。將5×5卷積核替換成2 個(gè)3×3卷積核以提升計(jì)算速度,同時(shí)減少了Inception 網(wǎng)絡(luò)中每層特征數(shù)量,保持特征總和與原殘差神經(jīng)網(wǎng)絡(luò)的額外層特征總數(shù)相同。
為了能夠反映引入的Inception 結(jié)構(gòu)對(duì)不同尺度卷積核的重要性,本文對(duì)結(jié)構(gòu)中現(xiàn)存的2 種卷積核(1×1與3×3)附以加權(quán),比值為1:2。在靠近輸出端添加1×1 Conv 來(lái)降低參數(shù)數(shù)量,加快計(jì)算速度。最后將整個(gè)結(jié)構(gòu)輔以殘差結(jié)構(gòu)連接,綜合提升算法的訓(xùn)練與測(cè)試性能。經(jīng)過(guò)Inception 改進(jìn)后的數(shù)據(jù)池化層更加具有特征提取能力,進(jìn)而在訓(xùn)練數(shù)據(jù)時(shí),達(dá)到最好的訓(xùn)練效果,具體結(jié)構(gòu)如圖6 所示。經(jīng)過(guò)上述的Inception 結(jié)構(gòu)改進(jìn)后,最終設(shè)計(jì)的改進(jìn)數(shù)據(jù)池化層由原先的7×7卷積層變?yōu)? 個(gè)3×3小卷積層,分別為1 個(gè)3×3×8與2 個(gè)3×3×16。同時(shí)為了使網(wǎng)絡(luò)提取效率更高與提取特征信息能力更強(qiáng),分別在3 個(gè)卷積層后加入BN 與ReLU 激活函數(shù),之后利用一個(gè)Concat 層將分析后的特征融合到一起再次通過(guò)一個(gè)1×1卷積層繼續(xù)優(yōu)化提取特征。由于增加了網(wǎng)絡(luò)層數(shù),因此可能會(huì)隨著網(wǎng)絡(luò)層數(shù)的加大,使模型在訓(xùn)練時(shí)出現(xiàn)嚴(yán)重的過(guò)擬合問(wèn)題,導(dǎo)致網(wǎng)絡(luò)深度不好,分類(lèi)效果不佳。因此本文再次加入殘差連接,利用一個(gè)最大池化層最終輸出提取的特征信息。

圖6 改進(jìn)的數(shù)據(jù)池化層結(jié)構(gòu)
傳統(tǒng)殘差神經(jīng)網(wǎng)絡(luò)中的殘差塊內(nèi)部第二個(gè)卷積層僅對(duì)第一個(gè)卷積層的特征向量進(jìn)行卷積運(yùn)算,無(wú)法有效利用殘差塊輸入向量與第二個(gè)卷積層之間的相關(guān)性,從而限制了殘差塊對(duì)特征的學(xué)習(xí)效率。因此本文將普通卷積替換為空洞卷積,空洞卷積在普通卷積中添加零填充,是一種擴(kuò)展卷積核感受野的方法。其優(yōu)勢(shì)是在不改變特征分辨率前提下使感受野更大,感知信息范圍更廣,進(jìn)而改善下采樣帶來(lái)的特征信息丟失問(wèn)題。假設(shè)等效卷積核大小為r?,真實(shí)卷積核尺寸為r,擴(kuò)張率為d,則等效卷積尺寸為

當(dāng)擴(kuò)張率較小時(shí),感受野與卷積核尺寸較小。當(dāng)擴(kuò)張率變大時(shí),感受野也會(huì)增加,具體計(jì)算式為

其中,Hi表示當(dāng)前層的感受野,Hi+1表示下一層的感受野,S表示從第一層到第i? 1層步長(zhǎng)的乘積。因此可知,當(dāng)空洞卷積級(jí)聯(lián)時(shí),其感受野面積呈指數(shù)級(jí)增長(zhǎng),獲得的特征信息較好。此外,相較于普通卷積,空洞卷積不會(huì)因增大感受野而造成訓(xùn)練參數(shù)增加,使網(wǎng)絡(luò)在獲取更大范圍內(nèi)的特征信息時(shí)更加高效與便捷。然而空洞卷積雖可以增大感受野,但當(dāng)空洞率較大時(shí),讀取的數(shù)據(jù)更稀疏,從而導(dǎo)致特征信息連續(xù)性被破壞,空洞殘差塊不能有效提取信號(hào)特征中的異常信息。
因此,本文分別分析驗(yàn)證了空洞率為2 與3 時(shí)的效果。當(dāng)空洞率為2 時(shí),本文方法具有更高的檢測(cè)準(zhǔn)確率,所以將普通卷積核替換為空洞率為2 的空洞卷積核,此時(shí),獲得的感受野等價(jià)于2 個(gè)空洞卷積核的結(jié)果。對(duì)空洞卷積核中沒(méi)有參數(shù)的位置填充0。通過(guò)空洞卷積的操作后,殘差塊可以獲取更多的信息,空洞殘差塊結(jié)構(gòu)如圖7 所示,其中λ為空洞率。同理,為使網(wǎng)絡(luò)提取效率更高與提取特征信息能力更強(qiáng),分別在2 個(gè)空洞卷積后加入BN 與ReLU 激活函數(shù)來(lái)優(yōu)化模型。

圖7 空洞殘差塊結(jié)構(gòu)
經(jīng)過(guò)上述的改進(jìn)數(shù)據(jù)池化層與空洞殘差塊后,最終改進(jìn)的殘差網(wǎng)絡(luò)結(jié)構(gòu)如圖8 所示。為使優(yōu)化后的訓(xùn)練模型具有更好的訓(xùn)練性能,需控制設(shè)計(jì)的網(wǎng)絡(luò)深度與殘差塊個(gè)數(shù)。本文根據(jù)實(shí)驗(yàn)分析,選擇使用5 個(gè)殘差塊來(lái)設(shè)計(jì)改進(jìn)殘差神經(jīng)網(wǎng)絡(luò)。這5 個(gè)殘差塊按照端到端方式形成完整的殘差神經(jīng)網(wǎng)絡(luò)用于訓(xùn)練模型優(yōu)化。更進(jìn)一步地,為使殘差網(wǎng)絡(luò)優(yōu)化效果更好,將第一個(gè)與第三個(gè)殘差塊利用跳躍連接線,設(shè)計(jì)為空洞殘差塊;第二個(gè)、第四個(gè)及第五個(gè)殘差塊維持不變。5 個(gè)殘差塊中的卷積核大小均為3×3,卷積核空洞率d=2,跳躍連接線倍數(shù)j=0.2,加入一個(gè)Dropout 層防止過(guò)擬合情況,進(jìn)一步提升訓(xùn)練性能,使分類(lèi)效果更佳。同時(shí),為了使本文在后述的對(duì)比結(jié)果更加清晰,將改進(jìn)殘差神經(jīng)網(wǎng)絡(luò)優(yōu)化后的 LSTM 標(biāo)記為L(zhǎng)STM-ResNet 網(wǎng)絡(luò)。

圖8 改進(jìn)的殘差網(wǎng)絡(luò)結(jié)構(gòu)
仿真實(shí)驗(yàn)數(shù)據(jù)選自NSL-KDD 數(shù)據(jù)集與來(lái)自Fsecrurify 的基于Http 的開(kāi)源WAF 請(qǐng)求數(shù)據(jù)集,然后將這2 個(gè)數(shù)據(jù)集分別選取子數(shù)據(jù)集后混合成為NSL-KDD 混合數(shù)據(jù)集。NSL-KDD 數(shù)據(jù)集之所以能被廣泛用于異常流量檢測(cè)模型的驗(yàn)證,是因?yàn)镹SL-KDD 中的訓(xùn)練集與測(cè)試集中的記錄數(shù)目合理,同時(shí)也添加了一個(gè)difficulty level 屬性。利用該屬性可使分析網(wǎng)絡(luò)中的各個(gè)連接時(shí),與網(wǎng)絡(luò)連接記錄在NSL-KDD 數(shù)據(jù)集中的比重形成反比例關(guān)系,這就更加突出了不同機(jī)器學(xué)習(xí)方法的分類(lèi)差異,評(píng)估各種方法的分類(lèi)性能與效率。本文選取的訓(xùn)練集為數(shù)據(jù)集前7 周的網(wǎng)絡(luò)連接記錄,是二進(jìn)制TCPdump壓縮樣本數(shù)據(jù)。數(shù)據(jù)集總數(shù)據(jù)量超過(guò)4 GB,測(cè)試集包括最后2 周的網(wǎng)絡(luò)連接記錄,網(wǎng)絡(luò)數(shù)據(jù)按照src流向dst。具體分類(lèi)為:若為正常連接記錄,則被標(biāo)記為Normal;否則被標(biāo)記為一個(gè)明確類(lèi)型的入侵(Attack)。流量數(shù)據(jù)處理后,共有4 類(lèi)攻擊,具體如表1 所示。

表1 NSL-KDD 數(shù)據(jù)集
訓(xùn)練集與測(cè)試集在應(yīng)用到異常檢測(cè)方法之前,需對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,具體流程如圖9 所示。本文首先對(duì)數(shù)據(jù)進(jìn)行數(shù)值化操作,若不是數(shù)值型數(shù)據(jù),將利用One-Hot 編碼進(jìn)行重新分析,使其為數(shù)值型。One-Hot 編碼主要采用N位狀態(tài)寄存器對(duì)N個(gè)狀態(tài)進(jìn)行編碼。當(dāng)表示某一個(gè)狀態(tài)時(shí),只需將該狀態(tài)的位置1,其他位置0 即可。本文利用One-Hot 編碼對(duì)網(wǎng)絡(luò)連接中的每個(gè)屬性進(jìn)行處理時(shí),將所有離散型數(shù)據(jù)進(jìn)行量化,使特征更易分析處理,最后將得到的流量數(shù)據(jù)特征通過(guò)LSTM 進(jìn)行特征提取,得到最優(yōu)的特征字段。選取的流量特征被分為4 類(lèi):每個(gè)tcp 連接的基本屬性、連接中內(nèi)容特征、時(shí)間窗口內(nèi)的流量信息及連接窗口內(nèi)的流量信息。其中“相同主機(jī)”僅統(tǒng)計(jì)2 s 內(nèi)與當(dāng)前connection 具有相同dst 的連接,并計(jì)算與協(xié)議、服務(wù)相關(guān)的統(tǒng)計(jì)數(shù)據(jù)。本文選取的NSL-KDD 混合數(shù)據(jù)集特征數(shù)為41,其中只有3 個(gè)特征為非數(shù)值型,其余均為數(shù)值型,同時(shí)類(lèi)標(biāo)簽也為非數(shù)值型。4 個(gè)特征分別為protocol_type、service、flag 及class。其中protocol_type特征有3 個(gè)屬性:tcp、udp 及icmp。首先需對(duì)非數(shù)值型數(shù)據(jù)進(jìn)行標(biāo)簽編碼,再對(duì)經(jīng)過(guò)標(biāo)簽編碼后的數(shù)據(jù)進(jìn)行One-Hot 編碼,即可得到3 個(gè)3 bit 的向量[1,0,0]、[0,1,0]及[0,0,1],分別代表tcp、udp 及icmp。最后利用同樣方法對(duì)有70 個(gè)屬性的service、11 個(gè)屬性的flag 及5 個(gè)屬性的class 進(jìn)行One-Hot處理,最終與其他38 個(gè)特征拼接成預(yù)處理后的數(shù)據(jù)集。

圖9 數(shù)據(jù)預(yù)處理過(guò)程
更進(jìn)一步地,為降低特征值的差異性,需要對(duì)特征進(jìn)行歸一化,即將特征值映射到[0,1]區(qū)間。通過(guò)歸一化和獨(dú)熱編碼將原始數(shù)據(jù)全部轉(zhuǎn)化為無(wú)量綱的數(shù)值數(shù)據(jù)。設(shè)有n條數(shù)據(jù),第i條數(shù)據(jù)中統(tǒng)計(jì)型字段的第j個(gè)子屬性值為aij,則歸一化為

其中,Iij為歸一化結(jié)果,m為屬性總數(shù)。歸一化具體目的是使各特征數(shù)據(jù)分布盡可能接近,便于統(tǒng)一度量與分析。根據(jù)網(wǎng)絡(luò)連接IP 地址與MAC 地址等信息,可得到多種比例型數(shù)據(jù)。其中一部分?jǐn)?shù)據(jù)處于[0,1],數(shù)值相近,因此保留;而大于1 的數(shù)據(jù),由于分布廣泛導(dǎo)致難以把握規(guī)律,因此將其與上述數(shù)據(jù)同步分析。考慮此情況,本文利用sigmoid 函數(shù)將其映射到(0,1),然后再與原來(lái)屬性值在[0,1]的數(shù)據(jù)進(jìn)行聯(lián)合分析,繼續(xù)進(jìn)行特征排序與特征清洗后,最終得到預(yù)處理數(shù)據(jù)。
實(shí)驗(yàn)采用準(zhǔn)確率(A,accuracy)、精確率(P,precision)、召回率(R,recall)、誤報(bào)率(FPR,false positive rate)及調(diào)和平均值(F-measure)對(duì)檢測(cè)方法進(jìn)行驗(yàn)證,其參數(shù)計(jì)算方法與各部分定義參照文獻(xiàn)[24]。其中,A定義如式(11)所示,其值越高,分類(lèi)器總體性能越好;P定義如式(12)所示,其值越高,分類(lèi)器的誤報(bào)率越低;R定義如式(13)所示,其值越高,分類(lèi)誤報(bào)率越低,分類(lèi)效果越好;FPR(式(14))反映了誤報(bào)率,F(xiàn)PR 值越大,分類(lèi)性能越差;F-measure(式(15))反映P與R的調(diào)和平均值,其值越大,表明P與R值越接近1,分類(lèi)器對(duì)正類(lèi)流量的檢測(cè)性能越好。

4.4.1數(shù)據(jù)可視化分析討論
為了驗(yàn)證數(shù)據(jù)預(yù)處理過(guò)程中每個(gè)步驟的必要性,實(shí)驗(yàn)采用NSL-KDD 混合數(shù)據(jù)集中的一部分?jǐn)?shù)據(jù),分別針對(duì)未處理、獨(dú)熱編碼、獨(dú)熱編碼+歸一化處理及獨(dú)熱編碼+歸一化處理+特征映射4 種方式的處理做了數(shù)據(jù)散點(diǎn)可視化分析,主要對(duì)比數(shù)據(jù)集在不同預(yù)處理步驟下Normal 流量與Attack流量的分布情況,4 種處理方式的可視化結(jié)果如圖10 所示。其中大部分中心區(qū)域的樣本為Normal樣本,大部分邊緣區(qū)域的樣本為Attack 樣本。
圖10(a)是NSL-KDD 混合數(shù)據(jù)集未處理時(shí)的可視化結(jié)果,在未處理過(guò)的數(shù)據(jù)集中,原樣本中的Normal 與Attack 流量數(shù)據(jù)是混亂離散的,無(wú)法對(duì)數(shù)據(jù)集進(jìn)行有效的訓(xùn)練。圖10(b)是經(jīng)過(guò)獨(dú)熱編碼處理后的輸出結(jié)果,相較于10(a),獨(dú)熱編碼后的數(shù)據(jù)聚合程度較好,某些Normal 與Attack流量數(shù)據(jù)點(diǎn)能夠得到有效分離,但是大部分?jǐn)?shù)據(jù)點(diǎn)還是混亂離散,這是由數(shù)據(jù)維度過(guò)高導(dǎo)致數(shù)據(jù)中存在一些無(wú)用數(shù)據(jù)點(diǎn)引起的。圖10(c)是在圖10(b)基礎(chǔ)上加了歸一化的可視化結(jié)果,該處理方式得到的Normal 流量數(shù)據(jù)點(diǎn)中夾雜的Attack 數(shù)據(jù)點(diǎn)較少,但是某些區(qū)域還是混亂離散,數(shù)據(jù)點(diǎn)沒(méi)有得到很好的分離,這是由數(shù)據(jù)分布廣泛導(dǎo)致難以把握其規(guī)律引起的。圖10(d)為本文最終提出的處理方式,該方式能把原來(lái)數(shù)據(jù)樣本中的大部分Normal 與Attack 流量數(shù)據(jù)點(diǎn)分離,且Normal 與Attack 流量數(shù)據(jù)點(diǎn)各自都變得比較收斂聚攏,特征較清晰,由此驗(yàn)證了本文預(yù)處理方法每個(gè)步驟的必要性。

圖10 數(shù)據(jù)集預(yù)處理可視化分析
4.4.2訓(xùn)練數(shù)據(jù)集參數(shù)最優(yōu)驗(yàn)證
為了驗(yàn)證時(shí)間與訓(xùn)練輪數(shù)對(duì)本文檢測(cè)模型的影響,實(shí)驗(yàn)根據(jù)搭建好的檢測(cè)模型,在時(shí)間與訓(xùn)練輪數(shù)不斷遞增的情況下,利用本文模型進(jìn)行數(shù)據(jù)樣本訓(xùn)練。每輪訓(xùn)練完成后使用訓(xùn)練集來(lái)做交叉驗(yàn)證,圖11 給出了NSL-KDD 混合數(shù)據(jù)集中的一部分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練輸出數(shù)據(jù)。從圖11 可以看到,隨著時(shí)間的不斷遞增(訓(xùn)練輪數(shù)也在不斷遞增),目標(biāo)數(shù)據(jù)個(gè)數(shù)始終在一個(gè)比較平穩(wěn)的范圍內(nèi)進(jìn)行輸出目標(biāo)數(shù)據(jù),且訓(xùn)練集的輸出個(gè)數(shù)與測(cè)試輸出個(gè)數(shù)相差不大,錯(cuò)誤率為0.35%~0.5%。但隨著時(shí)間繼續(xù)遞增,目標(biāo)輸出數(shù)據(jù)減少,且此時(shí)的訓(xùn)練輸出與測(cè)試相差較大。這是由于此時(shí)訓(xùn)練數(shù)據(jù)已經(jīng)出現(xiàn)了過(guò)擬合情況,導(dǎo)致輸出減少,錯(cuò)誤率也增大到了1.5%~2%。當(dāng)繼續(xù)遞增訓(xùn)練輪數(shù)進(jìn)行訓(xùn)練時(shí),雖然訓(xùn)練數(shù)據(jù)輸出增大,但是測(cè)試數(shù)據(jù)輸出減小,此時(shí)的數(shù)據(jù)分類(lèi)效果一般。

圖11 數(shù)據(jù)集訓(xùn)練
因此,本文將訓(xùn)練輪數(shù)設(shè)置為50 輪,此時(shí)的訓(xùn)練輸出結(jié)果最好,錯(cuò)誤率最低。同時(shí)為使訓(xùn)練效果更優(yōu),本文將訓(xùn)練集與測(cè)試集分成不同組合進(jìn)行訓(xùn)練。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證后得知,當(dāng)訓(xùn)練集75%與測(cè)試集25%組合時(shí),分類(lèi)獲得的準(zhǔn)確率較高,因此更加優(yōu)化了訓(xùn)練模型的輸出。
為了進(jìn)一步驗(yàn)證每個(gè)設(shè)計(jì)步驟的有效性,建立了訓(xùn)練準(zhǔn)確率與丟失率的對(duì)比實(shí)驗(yàn),如圖12 所示。圖12 分別對(duì)比了不同方法下Normal 與Attack 樣本的訓(xùn)練情況,所選方法分別為RNN、LSTM、三層堆疊LSTM、RNN+改進(jìn)殘差網(wǎng)絡(luò)、LSTM+改進(jìn)殘差網(wǎng)絡(luò)及本文方法。所有實(shí)驗(yàn)在Windows 系統(tǒng)下使用Tensorflow 作為后端的Keras 深度學(xué)習(xí)框架下完成。實(shí)際應(yīng)用中根據(jù)實(shí)驗(yàn)調(diào)整相應(yīng)參數(shù),Dropout的dropout rate 為0.5。由圖12 可知,雖然LSTM網(wǎng)絡(luò)基于RNN,但是處理流量序列數(shù)據(jù),LSTM 網(wǎng)絡(luò)的性能優(yōu)于RNN;當(dāng)LSTM 網(wǎng)絡(luò)被設(shè)計(jì)為三層堆疊LSTM 之后,性能會(huì)進(jìn)一步提高,訓(xùn)練性能優(yōu)于前兩者。當(dāng)最終使用改進(jìn)殘差網(wǎng)絡(luò)優(yōu)化各個(gè)網(wǎng)絡(luò)后,訓(xùn)練性能會(huì)進(jìn)一步提高,且同時(shí)用改進(jìn)殘差網(wǎng)絡(luò)優(yōu)化 RNN、LSTM 及本文的三層堆疊LSTM 時(shí),本文方法的訓(xùn)練性能指標(biāo)最好,能夠解決其單層LSTM 適應(yīng)性弱的問(wèn)題。由此驗(yàn)證了本文設(shè)計(jì)步驟的有效性。

圖12 不同方法下的訓(xùn)練指標(biāo)對(duì)比
4.4.3二分類(lèi)性能對(duì)比分析
為了驗(yàn)證本文方法的檢測(cè)性能,實(shí)驗(yàn)將數(shù)據(jù)集4 類(lèi)攻擊合并為Attack,正常流量記為Normal,進(jìn)行二分類(lèi)對(duì)比實(shí)驗(yàn)。圖13 給出了數(shù)據(jù)集在未使用殘差網(wǎng)絡(luò)優(yōu)化與使用改進(jìn)殘差網(wǎng)絡(luò)優(yōu)化下的訓(xùn)練ROC 曲線與測(cè)試ROC 曲線。

圖13 LSTM 與LSTM-ResNet 的輸出ROC 曲線
AUC 曲線下的面積被稱(chēng)為AUC 值,用來(lái)衡量預(yù)測(cè)準(zhǔn)確性,其值越大,預(yù)測(cè)準(zhǔn)確率越高。從圖13可以看到,在僅使用LSTM 網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)時(shí),無(wú)論是訓(xùn)練ROC 曲線還是測(cè)試ROC 曲線,AUC 值都比較低,其中訓(xùn)練ROC 曲線的AUC 值與測(cè)試ROC曲線的AUC 值相差較大,導(dǎo)致在分割驗(yàn)證數(shù)據(jù)集時(shí)出現(xiàn)的誤差較大,不能很好地提取與分析網(wǎng)絡(luò)流量數(shù)據(jù)特征。由圖13 可知,在使用改進(jìn)的殘差網(wǎng)絡(luò)優(yōu)化LSTM 網(wǎng)絡(luò)后,訓(xùn)練數(shù)據(jù)時(shí),無(wú)論是訓(xùn)練ROC 曲線還是測(cè)試ROC 曲線,取得的AUC 值都比較高,其中訓(xùn)練ROC 曲線的AUC 值與測(cè)試ROC曲線的AUC 值相差不大,同時(shí)無(wú)論檢測(cè)Normal 還是Attack 數(shù)據(jù),本文方法的AUC 值均較優(yōu),突出了引入改進(jìn)殘差網(wǎng)絡(luò)的必要性。
表2 給出了各方法的準(zhǔn)確率對(duì)比結(jié)果。7 種機(jī)器學(xué)習(xí)[20]方法分別為反向傳播(BP,back propaga-tion)、邏輯回歸(LR,logistic regression)、最近鄰(KNN,k-nearest neighbor)、決策樹(shù)(DT,decision tree)、隨機(jī)森林(RF,random forest)、隨機(jī)決策森林(RDF,random decision forest)、SVM。5 種深度神經(jīng)網(wǎng)絡(luò)分類(lèi)方法分別為 2 層卷積神經(jīng)網(wǎng)絡(luò)(CNN2)、2 層深度神經(jīng)網(wǎng)絡(luò)(DNN2)、DBN、LSTM與本文方法(LSTM-ResNet)。
由表2 可知,本文提出的LSTM-ResNet 檢測(cè)模型取得的準(zhǔn)確率最高,為92.3%,而LSTM 網(wǎng)絡(luò)在未經(jīng)ResNet 結(jié)構(gòu)優(yōu)化之前,取得的檢測(cè)準(zhǔn)確率只有87.6%,與傳統(tǒng)DNN2 模型取得的準(zhǔn)確率相近。其余各檢測(cè)方法取得的準(zhǔn)確率都比較低,這是由數(shù)據(jù)集龐大且算法本身存在的過(guò)擬合問(wèn)題導(dǎo)致的,本文通過(guò)改進(jìn)殘差神經(jīng)網(wǎng)絡(luò)進(jìn)行優(yōu)化LSTM,因此分類(lèi)效果最好。

表2 各方法的準(zhǔn)確率對(duì)比結(jié)果
除準(zhǔn)確率外,表3 給出了精確率、召回率、誤報(bào)率、F-measure 值及AUC 值對(duì)二分類(lèi)進(jìn)行實(shí)驗(yàn)對(duì)比。由表 3 可知,對(duì)于測(cè)試精確率對(duì)比,LSTM-ResNet 檢測(cè)模型的性能遠(yuǎn)優(yōu)于BP、LR、KNN、DT、RF、RDF 及SVM。這是由于這幾種檢測(cè)方式為傳統(tǒng)機(jī)器學(xué)習(xí)方法,對(duì)網(wǎng)絡(luò)流量數(shù)據(jù)處理的效果整體一般,同時(shí)傳統(tǒng)方法在訓(xùn)練過(guò)程中,學(xué)習(xí)深度不夠會(huì)導(dǎo)致檢測(cè)精確率較低;而CNN2、DNN2、DBN 及LSTM 這4 種檢測(cè)方法取得的檢測(cè)精確率雖比前述幾種方法高,但對(duì)Normal 流量數(shù)據(jù)的檢測(cè)精確率較低,因此泛化性能一般。本文的LSTM-ResNet 檢測(cè)模型取得的精確率平均為90.772%,相比其他幾種方法取得了一定程度的提高,性能較好。對(duì)于召回率的對(duì)比,基于傳統(tǒng)機(jī)器學(xué)習(xí)的分類(lèi)方法其召回率都較低,因此分類(lèi)性能一般。而基于深度學(xué)習(xí)的幾種檢測(cè)方法召回率基本都在85%以上,其中本文方法雖在檢測(cè)Attack 流量數(shù)據(jù)時(shí)取得的召回率略低于DBN 方法,但在檢測(cè)Normal 數(shù)據(jù)時(shí)取得的召回率卻高于DBN 方法,平均召回率在所有方法中最高,為94.610%。對(duì)于誤報(bào)率的對(duì)比,每種方法在檢測(cè)Attack 流量時(shí)取得的誤報(bào)率都高于Normal 流量數(shù)據(jù)。這是由于測(cè)試集是隨機(jī)選取的數(shù)據(jù)組合,其Attack 類(lèi)型數(shù)據(jù)所占比重較大,因此誤報(bào)率較高。而相比其他檢測(cè)方法,本文方法檢測(cè)取得的誤報(bào)率最低,平均為2.053%,遠(yuǎn)低于7 種傳統(tǒng)的機(jī)器學(xué)習(xí)方法,同時(shí)也比CNN2 低2.71%,比DNN2 低1.563%,比DBN 低1.924%,比LSTM 低0.689%。因?yàn)楸疚氖褂酶倪M(jìn)殘差神經(jīng)網(wǎng)絡(luò)對(duì)模型做了優(yōu)化,所以總體誤報(bào)率最低。對(duì)于F-measure 的對(duì)比,幾種傳統(tǒng)的機(jī)器學(xué)習(xí)方法取得的值都較小,其中LR 方法最差,平均僅為 67.494%,本文模型取得的F-measure 值最好,在4 種深度學(xué)習(xí)方法中平均調(diào)和值是最大的,平均為92.645%,比CNN2 與DNN2 方法分別高9.858%與8.525%,比DBN 與LSTM 方法分別高3.712%與4.684%。由表3 可知,無(wú)論檢測(cè) Normal 還是 Attack 流量數(shù)據(jù),LSTM-ResNet 的AUC 值均較優(yōu),但比DBN 的正常數(shù)據(jù)檢測(cè)差0.006。在大多數(shù)情況下,LSTM 的AUC 值在4 種深度學(xué)習(xí)方法中是最低的,而且平均AUC 值比SVM 方法低0.083,這充分說(shuō)明,LSTM在經(jīng)過(guò)網(wǎng)絡(luò)異常流量檢測(cè)時(shí)存在網(wǎng)絡(luò)過(guò)擬合與梯度消失的缺點(diǎn),突出了改進(jìn)殘差神經(jīng)網(wǎng)絡(luò)優(yōu)化的必要性。通過(guò)上述參數(shù)對(duì)比,驗(yàn)證了本文方法網(wǎng)絡(luò)異常流量二分類(lèi)下的良好性能。

表3 各方法的性能評(píng)價(jià)指標(biāo)
4.4.4多分類(lèi)性能對(duì)比分析
更進(jìn)一步地,為了驗(yàn)證本文在多分類(lèi)任務(wù)中的分類(lèi)性能,實(shí)驗(yàn)將 NSL-KDD 混合數(shù)據(jù)集中的Normal、Probe、DoS、R2L 及U2R 分為一類(lèi),首先分析Normal 分別與4 種攻擊流量數(shù)據(jù)的ROC 曲線對(duì)比,如圖14 所示。
由圖14(a)和圖14(b)可知,用LSTM-ResNet在對(duì)Probe 流量數(shù)據(jù)進(jìn)行分類(lèi)時(shí),ROC 曲線中的AUC 值較好。因?yàn)镹ormal 與Probe 數(shù)據(jù)在樣本數(shù)據(jù)集中占的比重較大,同時(shí)2 種流量數(shù)據(jù)類(lèi)型特征差異也較大,所以分類(lèi)較準(zhǔn)確;而采用LSTM-ResNet 方法在對(duì)DoS 數(shù)據(jù)進(jìn)行分類(lèi)時(shí),ROC曲線中的AUC 值較Probe 類(lèi)型差了一點(diǎn),但是相差不大,因?yàn)镈oS 與Probe 數(shù)據(jù)的特征類(lèi)型較為相近,所以有時(shí)會(huì)導(dǎo)致錯(cuò)誤分類(lèi)。

圖14 數(shù)據(jù)訓(xùn)練ROC 曲線對(duì)比
由 圖 14(c) 和 圖 14(d) 可 知,采 用LSTM-ResNet 方法在對(duì)R2L 與U2R 流量數(shù)據(jù)進(jìn)行分類(lèi)時(shí),ROC 曲線中的AUC 均一般,這2 種流量數(shù)據(jù)在樣本數(shù)據(jù)集中占的比重較小,且2 種流量數(shù)據(jù)類(lèi)型特征相近,所以有時(shí)會(huì)導(dǎo)致錯(cuò)誤分類(lèi)。但是綜合下來(lái),LSTM-ResNet 方法對(duì)4 種攻擊類(lèi)型流量取得的AUC 值都比較好,錯(cuò)誤分類(lèi)的概率在可接受范圍之內(nèi),由此驗(yàn)證了本文方法在ROC 曲線上的優(yōu)勢(shì)。
表4 給出了幾種檢測(cè)模型的準(zhǔn)確率在多分類(lèi)任務(wù)下的平均準(zhǔn)確率對(duì)比。從表 4 可以看出,LSTM-ResNet 的準(zhǔn)確率最高,為89.3%。幾種傳統(tǒng)的機(jī)器學(xué)習(xí)方法中性能最差的是LR 方法,準(zhǔn)確率僅為72.6%。這是由于對(duì)于多分類(lèi)任務(wù)來(lái)說(shuō),LR 方法容易欠擬合,在數(shù)據(jù)特征有缺失或者特征空間很大時(shí)分類(lèi)效果不好。

表4 幾種檢測(cè)模型的準(zhǔn)確率在多分類(lèi)任務(wù)下的平均準(zhǔn)確率對(duì)比
為了進(jìn)一步驗(yàn)證本文方法的多分類(lèi)任務(wù)性能,圖15~圖19 給出了5 種流量在精確率、召回率、誤報(bào)率、F-measure 值下的實(shí)驗(yàn)對(duì)比結(jié)果。

圖15 各算法在Normal 上的性能評(píng)價(jià)指標(biāo)
由圖15 可知,BP 和LR 對(duì)于Normal 流量類(lèi)型數(shù)據(jù)綜合檢測(cè)性能最差,召回率僅為4.357%和4.723%,召回率與F-measure 值等參數(shù)也較差。在多分類(lèi)任務(wù)中,LSTM-ResNet 的分類(lèi)性能在4 種深度學(xué)習(xí)方法中是最好的,同時(shí)相比較于其他幾種傳統(tǒng)機(jī)器學(xué)習(xí)方法,本文方法取得的參數(shù)值均有所提升,但由于LSTM-ResNet 將大量正常數(shù)據(jù)誤判為攻擊類(lèi)型,會(huì)導(dǎo)致精確率與誤報(bào)率略差。
由圖16 可知,對(duì)于Probe 類(lèi)型攻擊,BP、LR、KNN 及DT 這4 種方法的整體檢測(cè)性能都比較差,其檢測(cè)的精確率都低于75%。這是由于傳統(tǒng)的機(jī)器學(xué)習(xí)方法提取異常流量特征時(shí)易造成信息丟失;而RF、RDF 及SVM 這3 種機(jī)器學(xué)習(xí)方法取得的性能參數(shù)值與深度學(xué)習(xí)方法比較相近,但還是比LSTM-ResNet 檢測(cè)模型的性能差。

圖16 各算法在Probe 上的性能評(píng)價(jià)指標(biāo)

圖17 各算法在DoS 上的性能評(píng)價(jià)指標(biāo)
由圖 17 可知,對(duì)于 DoS 類(lèi)型攻擊,LSTM-ResNet 的檢測(cè)性能最優(yōu),LR 檢測(cè)性能最差,KNN 和 DT 的召回率較差,僅為 24.273%和56.109%,其余各方法的性能評(píng)價(jià)指標(biāo)均較優(yōu)。這是由于DoS 攻擊數(shù)目最多,各種方法在檢測(cè)時(shí)能夠識(shí)別的數(shù)據(jù)樣本特征較豐富,因此檢測(cè)的性能指標(biāo)參數(shù)都比較良好。本文方法取得的精確率為85.642%,召回率為89.321%,誤報(bào)率為3.127%,F(xiàn)-measure 值為87.443%,AUC 為0.849,相較其他方法,本文方法最優(yōu)。
由圖18 可知,對(duì)于R2L 攻擊類(lèi)型,在大多數(shù)情況下,BP、LR、KNN、DT 的性能相近,效果均較差。而RF、RDF、SVM 取得的精確率最低,基本上無(wú)法正確識(shí)別R2L 攻擊類(lèi)型。這是由于R2L 入侵是一種利用自身偽裝,將其變?yōu)楹戏ㄓ脩簦蛊涮卣髋c正常數(shù)據(jù)包類(lèi)似,造成檢測(cè)精度較低。4 種深度學(xué)習(xí)方法雖比前述幾種方法有一定提高,但是誤報(bào)率較高。本文方法性能較優(yōu),相比于DBN 與LSTM,精確率分別有一定的提高,這是由于本文采用的殘差網(wǎng)絡(luò)結(jié)構(gòu)很好地學(xué)習(xí)了R2L 的特征,將其正確分類(lèi)。

圖18 各算法在R2L 上的性能評(píng)價(jià)指標(biāo)
由圖19 可知,對(duì)于U2R 類(lèi)型攻擊,RDF、SVM及4 種深度學(xué)習(xí)方法的性能相近,效果較優(yōu)。BP、LR、KNN、DT 及RF 的性能相近,效果較差,且本文方法相比于RDF、SVM 及4 種深度學(xué)習(xí)方法的分類(lèi)性能均有所提高,AUC 分別提高了0.247、0.387、0.087 2、0.067 1、0.033 4 及0.029。

圖19 各算法在U2R 上的性能評(píng)價(jià)指標(biāo)
從圖15~圖19 的各項(xiàng)性能參數(shù)對(duì)比來(lái)看,本文檢測(cè)模型無(wú)論是對(duì)Normal 數(shù)據(jù)還是4 種Attack數(shù)據(jù),取得的性能指標(biāo)值都比較好。雖在一些參數(shù)對(duì)比上低于DBN 方法,但是總體對(duì)比,本文方法檢測(cè)及其分類(lèi)性能最好,能夠?qū)SL-KDD 混合數(shù)據(jù)集進(jìn)行有效分類(lèi)。由此驗(yàn)證了本文方法對(duì)于多分類(lèi)任務(wù)的有效性與優(yōu)越性。
4.4.5總體分類(lèi)性能對(duì)比
通過(guò)與7 種傳統(tǒng)機(jī)器學(xué)習(xí)方法、4 種深度神經(jīng)網(wǎng)絡(luò)方法進(jìn)行分類(lèi)對(duì)比后,本節(jié)選取了當(dāng)前較流行的4 種網(wǎng)絡(luò)入侵檢測(cè)方法[22-25],通過(guò)整體性能分析來(lái)更進(jìn)一步驗(yàn)證本文方法的性能。同時(shí)為了全面分析各種方法,在NSL-KDD 混合數(shù)據(jù)集的測(cè)試集與驗(yàn)證集分別進(jìn)行實(shí)驗(yàn),具體結(jié)果如表5 所示。由表5 可知,在驗(yàn)證集中,所有方法都達(dá)到了不錯(cuò)的效果,本文方法達(dá)到了94.09%的精確率,雖比文獻(xiàn)[25]低,但是其他指標(biāo)均優(yōu)于文獻(xiàn)[25]。同時(shí)與其他3 種方法相比,本文方法的性能也均是最好的。但是在測(cè)試集中,所有方法性能都有所下降。因?yàn)闇y(cè)試集中存在訓(xùn)練集不曾出現(xiàn)過(guò)的攻擊特征,NSL-KDD 與Fsecrurify 的基于Http 的開(kāi)源WAF 請(qǐng)求數(shù)據(jù)集混合后,數(shù)據(jù)分布仍存在一定差異。但是總體對(duì)比下來(lái),本文方法取得的各項(xiàng)性能指標(biāo)還是最優(yōu)的,與其他方法相比還是具有很好的檢測(cè)性能。

表5 與當(dāng)前方法的總體分類(lèi)性能對(duì)比
為了驗(yàn)證本文方法的穩(wěn)健性與復(fù)雜環(huán)境適用性,實(shí)驗(yàn)分別在被測(cè)數(shù)據(jù)屬性特征破壞率為0.15、0.25 及0.35 時(shí),對(duì)比4 種深度網(wǎng)絡(luò)與文獻(xiàn)[22-25](由于篇幅原因,不再對(duì)比傳統(tǒng)機(jī)器學(xué)習(xí)方法)在分類(lèi)場(chǎng)景下的檢測(cè)準(zhǔn)確率。同時(shí)也對(duì)比了不同方法的訓(xùn)練與測(cè)試時(shí)間,每個(gè)實(shí)驗(yàn)做20 次取平均值,結(jié)果如表6 所示。
由表6 可知,當(dāng)輸入的被測(cè)樣本數(shù)據(jù)遭到噪聲破壞時(shí),基于CNN2 方法的異常檢測(cè)模型準(zhǔn)確率最差,隨破壞率增大,其準(zhǔn)確率也會(huì)持續(xù)下降;基于DNN2 與DBN 的異常流量檢測(cè)模型準(zhǔn)確率下降幅度較前者小,但加大特征破壞率會(huì)進(jìn)一步降低準(zhǔn)確率,且降低幅度較大;文獻(xiàn)[22-25]方法在遭到含噪聲流量破壞時(shí),性能較相近,但是性能相對(duì)較好的是文獻(xiàn)[25];而基于LSTM 的異常檢測(cè)模型受特征破壞率影響較小,隨著破壞率增大其準(zhǔn)確率雖持續(xù)下降,但下降幅度不大,尤其是在經(jīng)過(guò)改進(jìn)殘差網(wǎng)絡(luò)優(yōu)化后,其下降幅度繼續(xù)減小。因此說(shuō)明改進(jìn)殘差網(wǎng)絡(luò)可有效降低噪聲數(shù)據(jù)對(duì)提取流量特征準(zhǔn)確性的影響,模型穩(wěn)健性最強(qiáng),其檢測(cè)準(zhǔn)確率最高,具有不錯(cuò)的泛化能力。LSTM-ResNet 網(wǎng)絡(luò)的訓(xùn)練時(shí)間與測(cè)試時(shí)間雖比LSTM 較長(zhǎng),但是相差不大,在可接受范圍之內(nèi)。本文方法比文獻(xiàn)[22-25]方法的測(cè)試時(shí)間都短,說(shuō)明本文方法能夠?qū)崟r(shí)進(jìn)行網(wǎng)絡(luò)異常流量入侵檢測(cè),且效率較高。

表6 不同方法檢測(cè)含噪流量的準(zhǔn)確率及訓(xùn)練與測(cè)試時(shí)間
本文提出了一種基于LSTM 與改進(jìn)殘差網(wǎng)絡(luò)優(yōu)化的異常流量檢測(cè)方法,有效解決了現(xiàn)有方法存在的準(zhǔn)確率、精確率及誤報(bào)率等參數(shù)較差的問(wèn)題。檢測(cè)模型在公開(kāi)的網(wǎng)絡(luò)數(shù)據(jù)集NSL-KDD 與開(kāi)源WAF請(qǐng)求數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證,主要結(jié)論如下:三層堆疊的LSTM 網(wǎng)絡(luò)相比單層LSTM 網(wǎng)絡(luò),特征選擇性能更好,能夠解決其單層網(wǎng)絡(luò)的適應(yīng)性弱問(wèn)題;基于Inception 結(jié)構(gòu)與空洞殘差塊設(shè)計(jì)的改進(jìn)殘差神經(jīng)網(wǎng)絡(luò)能夠解決LSTM 的缺陷,使檢測(cè)模型泛化能力更佳;無(wú)論是二分類(lèi)實(shí)驗(yàn)還是多分類(lèi)實(shí)驗(yàn),本文方法在各種評(píng)價(jià)指標(biāo)上取得的性能最好,與傳統(tǒng)的機(jī)器學(xué)習(xí)方法、現(xiàn)有的深度神經(jīng)網(wǎng)絡(luò)及當(dāng)前的網(wǎng)絡(luò)入侵檢測(cè)方法對(duì)比,本文方法都具有明顯優(yōu)勢(shì),穩(wěn)健性較好,且測(cè)試時(shí)間最短。