黎佳玥,趙 波,李 想,劉 會,劉一凡,鄒建文
武漢大學(xué) 國家網(wǎng)絡(luò)安全學(xué)院 空天信息安全與可信計算教育部重點(diǎn)實(shí)驗室,武漢430072
隨著近年來網(wǎng)絡(luò)安全和人工智能的重要性日益增加,越來越多關(guān)于入侵檢測系統(tǒng)(IDS)的研究正在積極研究如何結(jié)合深度學(xué)習(xí)的優(yōu)勢。
網(wǎng)絡(luò)入侵檢測系統(tǒng)(NIDS)被創(chuàng)建用來有效地防御各種類型的網(wǎng)絡(luò)攻擊,并進(jìn)一步保護(hù)網(wǎng)絡(luò)系統(tǒng)正常運(yùn)行。目前,NIDS 主要通過分析網(wǎng)絡(luò)關(guān)鍵節(jié)點(diǎn)的網(wǎng)絡(luò)流量來識別惡意攻擊行為。在過去幾年中,深度學(xué)習(xí)在解決語音圖像識別、對象檢測和語義翻譯等應(yīng)用場景下的人工智能問題方面取得了重大進(jìn)展。許多研究表明,在異常檢測分類和預(yù)測方面,深度學(xué)習(xí)的表現(xiàn)已經(jīng)能夠優(yōu)于傳統(tǒng)方法。但是,IDS 性能高度依賴于功能設(shè)計,同時基于異常的IDS 具有較高的誤報率,在實(shí)際應(yīng)用中表現(xiàn)不佳。因此,針對NIDS 怎樣能夠準(zhǔn)確表征網(wǎng)絡(luò)流量仍是一個值得研究的問題。
同時,當(dāng)下針對IDS 流量預(yù)測的研究較少,而在實(shí)際情況下,準(zhǔn)確的時間序列預(yù)測和對預(yù)測不確定性的可靠估計對于異常檢測至關(guān)重要。目前迫切需要采用有效的流量預(yù)測模型實(shí)現(xiàn)NIDS 網(wǎng)絡(luò)安全事件的預(yù)警功能,以防止攻擊事件對真實(shí)世界造成更加嚴(yán)重的危害。因此,一種能夠預(yù)測網(wǎng)絡(luò)狀態(tài)并提供詳細(xì)的流量特征信息的新機(jī)制應(yīng)該添加到當(dāng)前的NIDS 中,使得該NIDS在實(shí)時檢測中可以根據(jù)預(yù)測網(wǎng)絡(luò)安全事件發(fā)生的可能性做出相應(yīng)的響應(yīng)策略。
為了解決上述問題,本文提出了一種基于深度學(xué)習(xí)的網(wǎng)絡(luò)流量異常預(yù)測方法。該方法通過訓(xùn)練來自NIDS遭受典型攻擊事件的大規(guī)模網(wǎng)絡(luò)流量公共數(shù)據(jù)集,用以預(yù)測來自網(wǎng)絡(luò)流量信號的典型異常攻擊事件出現(xiàn)概率。網(wǎng)絡(luò)流量數(shù)據(jù)隨時間記錄,并包含時間和空間信息,因而可根據(jù)數(shù)據(jù)包時間戳排序成為連續(xù)性的時間序列。
為了計算網(wǎng)絡(luò)安全事件發(fā)生的概率,本文提出的方法構(gòu)建了由三個主要階段組成的神經(jīng)網(wǎng)絡(luò)模型:在第一階段,對NIDS 中網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行時間序列預(yù)處理和長期短期記憶(LSTM)網(wǎng)絡(luò)學(xué)習(xí)時間特征。在第二階段,卷積神經(jīng)網(wǎng)絡(luò)(CNN)學(xué)習(xí)網(wǎng)絡(luò)流量的空間特征。在第三階段,基于前面步驟得到訓(xùn)練后的LSTM 模型用以預(yù)測后續(xù)時間戳中的網(wǎng)絡(luò)流量時間序列,訓(xùn)練后的CNN 模型對該時間序列進(jìn)行安全事件分類,用以估計下一時間段中網(wǎng)絡(luò)安全事件的出現(xiàn)概率。整個特征學(xué)習(xí)過程是基于深度學(xué)習(xí)自動進(jìn)行的。實(shí)驗結(jié)果證明了NIDS 中對網(wǎng)絡(luò)安全事件預(yù)警功能實(shí)現(xiàn)的可行性,將本文設(shè)計的預(yù)測模塊加入到NIDS中能夠在系統(tǒng)運(yùn)行中有效減少異常網(wǎng)絡(luò)流量的誤報率,得到準(zhǔn)確度較高的網(wǎng)絡(luò)安全事件預(yù)測效果。
入侵檢測的目的是識別各種活動,尤其是惡意活動,它是目前保護(hù)計算機(jī)網(wǎng)絡(luò)和系統(tǒng)最重要的策略。過去的三十年中,對IDS 的研究一直在積極進(jìn)行并產(chǎn)生了大量成熟的應(yīng)用,其中一些已經(jīng)商業(yè)化。目前,根據(jù)觀察對象的不同可分為兩種類型的入侵檢測系統(tǒng)[1]。
第一種技術(shù)是基于簽名的入侵檢測,稱為誤用檢測[2]。該技術(shù)是基于已知特征和模式的知識檢測攻擊,而這些特征和模型也稱為簽名。它通過將這些簽名與新檢測到的網(wǎng)絡(luò)流量進(jìn)行比較來檢測入侵行為。誤用檢測的優(yōu)點(diǎn)在于它對已知攻擊具有高檢測率和低誤報率,但它無法檢測到任何未知攻擊。
第二種技術(shù)是基于行為的入侵檢測,稱為異常檢測[3]。它通過將異常行為與正常行為進(jìn)行比較來捕獲攻擊,目前主要采用機(jī)器學(xué)習(xí)的方法實(shí)現(xiàn)。在這種方法中,首先設(shè)置目標(biāo)環(huán)境中的網(wǎng)絡(luò)流量,并用流量特性的數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)數(shù)據(jù)存儲,再基于特性結(jié)構(gòu)利用有監(jiān)督或無監(jiān)督的學(xué)習(xí)方法建立識別模型。異常檢測的優(yōu)點(diǎn)是能夠檢測未知攻擊,對于工業(yè)界和學(xué)術(shù)界都有很大的吸引力。
根據(jù)輸入數(shù)據(jù)的來源,IDS 又通常被分類為基于主機(jī)的入侵檢測系統(tǒng)(HIDS)和基于網(wǎng)絡(luò)的入侵檢測系統(tǒng)(NIDS)[4]。NIDS 收集并分析網(wǎng)絡(luò)流量數(shù)據(jù),并確定當(dāng)前事件是否是正常活動。HIDS 由主機(jī)上的代理組成,該代理通過分析系統(tǒng)調(diào)用、應(yīng)用程序日志、文件系統(tǒng)修改等方式來識別入侵。由于HIDS基本上使用存儲在主機(jī)中的審計數(shù)據(jù),因此它可以比NIDS 更準(zhǔn)確地檢測異常活動[5]。但日前互聯(lián)網(wǎng)攻擊變得越來越復(fù)雜,而NIDS可以使用關(guān)于系統(tǒng)整體網(wǎng)絡(luò)信息的安全策略來執(zhí)行入侵檢測,更能有效地檢測這些攻擊,因此系統(tǒng)安全保障對它的依賴性更大。
NIDS中基于異常的檢測方法是入侵檢測領(lǐng)域的主要研究方向。該方法通過分析網(wǎng)絡(luò)流量來學(xué)習(xí)正常和異常行為,并可以檢測未知和新的攻擊。近年來,大多數(shù)研究人員嘗試將機(jī)器學(xué)習(xí)應(yīng)用到入侵檢測中,尤其是通過機(jī)器學(xué)習(xí)來解決高誤報率的問題。同時,一些研究試圖將深度學(xué)習(xí)應(yīng)用于網(wǎng)絡(luò)流量預(yù)測。許多研究表明,深度學(xué)習(xí)在異常識別和預(yù)測方面的表現(xiàn)已經(jīng)能夠優(yōu)于傳統(tǒng)方法。但是,NIDS性能高度依賴于功能設(shè)計,同時基于異常的檢測方法具有較高的誤報率,在實(shí)際應(yīng)用中表現(xiàn)不佳。因此,針對NIDS 怎樣能夠準(zhǔn)確表征網(wǎng)絡(luò)流量仍是一個值得研究的問題。
同時,由于互聯(lián)網(wǎng)攻擊的分階段廣泛傳播,NIDS具有預(yù)測網(wǎng)絡(luò)安全事件并提前警告攻擊功能變得愈加重要。但是,主流系統(tǒng)機(jī)制只有在網(wǎng)絡(luò)攻擊造成一定程度的破壞后才能進(jìn)行響應(yīng),當(dāng)前的NIDS 不能提前進(jìn)行攻擊檢測預(yù)警。同時,目前針對NIDS 流量預(yù)測的研究較少,而在實(shí)際情況下,準(zhǔn)確的時間序列預(yù)測和對預(yù)測不確定性的可靠估計對于異常檢測至關(guān)重要。目前迫切需要采用有效的流量預(yù)測模型實(shí)現(xiàn)NIDS對未來網(wǎng)絡(luò)安全事件的預(yù)警功能,以防止攻擊事件對真實(shí)世界造成更加嚴(yán)重的危害。
近年來,深度神經(jīng)網(wǎng)絡(luò)在需要大數(shù)據(jù)分析領(lǐng)域的各種場景中取得了大范圍推廣[6],引發(fā)了深度學(xué)習(xí)的熱潮[7]。深度學(xué)習(xí)是機(jī)器學(xué)習(xí)中的一種算法研究分支,通過將線性或非線性模型轉(zhuǎn)換序列組織為特定數(shù)據(jù)結(jié)構(gòu)并不斷地學(xué)習(xí)和收斂,訓(xùn)練出目標(biāo)特征模型。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)在圖像和語音領(lǐng)域表現(xiàn)優(yōu)異,其中實(shí)現(xiàn)手寫數(shù)字識別的卷積神經(jīng)網(wǎng)絡(luò)LeNet-5模型在MNIST 測試集上取得了低誤報率[8]。同時,循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)中長短時記憶網(wǎng)絡(luò)(LSTM)克服了原始RNN對時間序列建模訓(xùn)練后梯度消失或梯度爆炸的問題,并通過長期狀態(tài)保存和前向計算,使用基于反向傳播算法訓(xùn)練時間序列預(yù)測模型[9]。通過在多個維度上提供大量與時間相關(guān)的序列數(shù)據(jù),已經(jīng)表明LSTM 方法可以通過非線性特征融合來模擬復(fù)雜的極端事件[10-11]。
近幾年,一些研究已經(jīng)在利用深度神經(jīng)網(wǎng)絡(luò)的優(yōu)勢來完成入侵檢測任務(wù)。Wang 等[12]使用CNN 來學(xué)習(xí)網(wǎng)絡(luò)流量的空間特征,并使用圖像分類方法實(shí)現(xiàn)對惡意網(wǎng)絡(luò)流量分類識別。Torres等[13]首次將網(wǎng)絡(luò)流量特征轉(zhuǎn)換為一系列字符,然后使用RNN 來了學(xué)習(xí)它們的時間特征,這些特征進(jìn)一步用于檢測惡意網(wǎng)絡(luò)流量。Wang等[14]進(jìn)一步使用CNN 和LSTM 學(xué)習(xí)流量的時空特征用以提高流量檢測率。這些研究方法的共同點(diǎn)是單獨(dú)使用CNN 或RNN 或兩者結(jié)合,學(xué)習(xí)了單一或多種類型的網(wǎng)絡(luò)流量特征。
在時間序列預(yù)測的研究工作中,以標(biāo)準(zhǔn)R 預(yù)測[15]包模型為代表的經(jīng)典時間序列模型提供了單變量序列預(yù)測的通用方法。雖然有時間序列模型可以包含外生變量[16],但通常這些模型不僅需要手動設(shè)置時序和其他參數(shù),而且具有維度詛咒問題和頻繁重訓(xùn)練問題[17]。這對于數(shù)百萬個時間序列來說是無法完成的任務(wù),亟待解決。
為克服自動提取特征和頻繁訓(xùn)練序列模型,一些研究將機(jī)器學(xué)習(xí)運(yùn)用在流量預(yù)測的特征訓(xùn)練中。例如,Ye等[18]用馬爾可夫鏈模型來學(xué)習(xí)和評估EWMA方法對入侵檢測活動的預(yù)測。Shin 等[19]使用馬爾可夫鏈對網(wǎng)絡(luò)系統(tǒng)中的異常事件概率進(jìn)行建模,有效地預(yù)測和檢測網(wǎng)絡(luò)入侵。但這些研究方法的共同點(diǎn)都是只能針對單一維度下的網(wǎng)絡(luò)流量特征進(jìn)行訓(xùn)練。
近幾年,深度學(xué)習(xí)在時間序列預(yù)測領(lǐng)域上的成績也受到了人們越來越多的關(guān)注。RNN 在某些任務(wù)需要能夠處理序列信息時,相比于全連接神經(jīng)網(wǎng)絡(luò)和CNN 的單個輸入處理,能發(fā)揮出對應(yīng)的時間序列處理優(yōu)勢。RNN 改進(jìn)結(jié)構(gòu)長短期記憶網(wǎng)絡(luò)(LSTM)是Hochreiter 和Schmidhuber[20]提出的一種體系結(jié)構(gòu)。LSTM 和原始RNN 一樣也具有循環(huán)連接,主要特點(diǎn)是在原始RNN 中添加隱藏層LSTM 單元,用于學(xué)習(xí)基于網(wǎng)絡(luò)包向量序列的時間特征。LSTM 神經(jīng)網(wǎng)絡(luò)中對序列數(shù)據(jù)進(jìn)行前向計算得到特征向量值,再反向計算出每個時刻的誤差項并向上傳播,最后使用梯度下降算法更新權(quán)重[21]。實(shí)驗表明,LSTM通過算法結(jié)構(gòu)設(shè)計克服了RNN訓(xùn)練中梯度爆炸和梯度消失的困難[22]。當(dāng)前LSTM 主要應(yīng)用于股市走向預(yù)測[23]、交通流量預(yù)測[24]以及電力負(fù)荷預(yù)測[25]等領(lǐng)域。
本章將詳細(xì)介紹提出的網(wǎng)絡(luò)流量異常預(yù)測方法。該方法利用深度學(xué)習(xí)方法在時間序列預(yù)測和空間特征分類中挖掘網(wǎng)絡(luò)流量數(shù)據(jù)特征,實(shí)現(xiàn)預(yù)測入侵檢測系統(tǒng)中攻擊事件的發(fā)生概率。首先介紹融合了時間序列和圖像數(shù)據(jù)的網(wǎng)絡(luò)流量預(yù)測方法模型,然后解釋了該結(jié)構(gòu)下的預(yù)測網(wǎng)絡(luò)模塊和分類網(wǎng)絡(luò)模塊。
本文所提出的預(yù)測方法模型主要由時間序列預(yù)測模型和攻擊分類模型組成,如圖1 所示。其中時間序列預(yù)測模塊由LSTM 實(shí)現(xiàn),攻擊分類模型由LetNet 實(shí)現(xiàn)。該方法自動學(xué)習(xí)連續(xù)網(wǎng)絡(luò)流量數(shù)據(jù)的時空特征,將訓(xùn)練得到的模型用于流量序列數(shù)據(jù)的預(yù)測和分類,旨在提高網(wǎng)絡(luò)安全事件分類效率并滿足NIDS對安全事件的預(yù)測要求。

圖1 整體方法模型
該模型主要包含三個步驟。首先,對實(shí)時收集到的t 時段下IDS 的實(shí)時流量數(shù)據(jù)進(jìn)行數(shù)據(jù)的預(yù)處理,基于時間序列的預(yù)測器根據(jù)Seq()t 預(yù)測下一時段網(wǎng)絡(luò)流量序列Seq_p( )t+1。然后,對預(yù)測的網(wǎng)絡(luò)流量序列做網(wǎng)絡(luò)安全事件分類,得到下一時間戳下網(wǎng)絡(luò)安全事件的發(fā)生概率,有助于系統(tǒng)提前做出響應(yīng)。具體模塊在后面進(jìn)行介紹。
RNN 在傳統(tǒng)前饋神經(jīng)網(wǎng)絡(luò)進(jìn)行擴(kuò)展實(shí)現(xiàn)了循環(huán)連接,因而擅長對序列進(jìn)行建模。其中,RNN 使用反向傳播算法(BTPP)來處理可變長度序列輸入[26]。將輸入序列、隱藏向量序列和輸出向量序列分別用In、Hid 和Out表示,即輸入序列為,隱藏向量序列和 輸 出 向 量 序 列,序列計算方法如下:

其中,t=1,2,…,T,σ 是非線性函數(shù),W 是權(quán)重矩陣,b是偏置項。訓(xùn)練過程中在每個時間步都保存輸出誤差梯度。但當(dāng)誤差傳遞很多時刻后在向前傳播,會導(dǎo)致誤差項的值增長或縮小非常快,這樣會導(dǎo)致相應(yīng)的梯度爆炸或梯度消失[27]。
LSTM 神經(jīng)網(wǎng)絡(luò)在原始RNN 中添加隱藏層LSTM單元,用于學(xué)習(xí)基于網(wǎng)絡(luò)包向量序列的時間特征,如圖2所示。

圖2 LSTM單元結(jié)構(gòu)
LSTM 關(guān)鍵在于如何控制長期狀態(tài)的添加和權(quán)重,它使用門來控制LSTM 單元輸入中信息流的加權(quán)函數(shù)。圖2 所示的LSTM 單元有三個門,即輸入門、遺忘門和輸出門,它們分別控制通過不同階段中神經(jīng)元和神經(jīng)網(wǎng)絡(luò)的信息流。
在時刻t 下,輸入為xt,隱藏層輸出為ht,前輸出為ht-1,單元輸入狀態(tài)為,單元輸出狀態(tài)為Ct,前狀態(tài)為Ct-1,三個門的狀態(tài)為it、ft和ot。LSTM 單元中Ct和ht都被傳輸?shù)较乱粋€神經(jīng)元。為了計算Ct和ht,按順序使用以下等式。
首先,計算三個門的狀態(tài)和單元輸入狀態(tài)。輸入門決定輸入中的哪些值以更新存儲器狀態(tài):

遺忘門決定從單元格中丟棄哪些信息:

輸入門和遺忘門用于更新內(nèi)部狀態(tài)。輸出門根據(jù)輸入和單元的內(nèi)存決定輸出內(nèi)容:

輸出門限制了單元實(shí)際輸出。則當(dāng)前輸入的單元狀態(tài)為:

其中,Wxi、Wxf、Wxo、WxC是連接xt到三個門和單元輸入的權(quán)重矩陣,Whi、Whf、Who、WhC是連接ht-1到三個門和單元輸入的權(quán)重矩陣,bi、bf、bo、bC是三個門和單元輸入的偏差項。σ 表示門使用的激活函數(shù),其中輸入門和遺忘門為sigmoid函數(shù),輸出門為tanh函數(shù)。
然后,計算單元輸出狀態(tài):


時間序列是在等時間間隔下某類變量的有序序列,具有自相關(guān)性和時序性。序列預(yù)測正是利用了時間序列特點(diǎn),對訓(xùn)練模型按照時間順序保留學(xué)習(xí)結(jié)果并進(jìn)行排序,因而可從一組時間序列中估計數(shù)據(jù)流的未來變化行為和發(fā)生概率。
為了進(jìn)行網(wǎng)絡(luò)流量預(yù)測,該模型使用LSTM 單元構(gòu)建了如圖3所示的LSTM神經(jīng)網(wǎng)絡(luò)。在時間t,網(wǎng)絡(luò)的輸入是觀察到的歷史數(shù)據(jù)xt,輸出是預(yù)測的未來數(shù)據(jù)。通過上述LSTM計算,得到ht,計算網(wǎng)絡(luò)輸出:
其中,W 是輸出層和隱藏層之間的權(quán)重矩陣,b是輸出層的偏置項。該網(wǎng)絡(luò)使用了具有多層LSTM 單元的編碼器-解碼器框架(圖3)[28]:將提取特征以時間序列{xt}輸t入,預(yù)測網(wǎng)絡(luò)由編碼器和解碼器組成,其中編碼器讀入前T 個時間戳{ x1, x2,…,xT}對LSTM 單元進(jìn)行訓(xùn)練,解碼器在{ xT-F+1,xT-F+2,…,xT}通過訓(xùn)練好的LSTM單元輸出預(yù)測的下一時間序列{ xT+1,xT+2,…,xT+F},將其作為預(yù)測結(jié)果輸出。

圖3 LSTM神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
綜上所述,本方法使用了雙層LSTM 神經(jīng)網(wǎng)絡(luò)作為該模型的預(yù)測網(wǎng)絡(luò),整體框架如圖4 所示。將NIDS 的網(wǎng)絡(luò)流量數(shù)據(jù)集通過數(shù)據(jù)預(yù)處理構(gòu)造為包含多個連續(xù)流量數(shù)據(jù)的時間序列,每個訓(xùn)練樣本由相鄰時間戳的兩個時間序列組成。通過構(gòu)造好的LSTM 神經(jīng)網(wǎng)絡(luò)模型對樣本集進(jìn)行訓(xùn)練,得到能夠預(yù)測下一時間戳的時間序列預(yù)測器。該預(yù)測方法可用于對NIDS實(shí)時流量的觀測進(jìn)行下一時間戳網(wǎng)絡(luò)流量數(shù)據(jù)的預(yù)測。
卷積神經(jīng)網(wǎng)絡(luò)(CNN)在計算機(jī)視覺領(lǐng)域中表現(xiàn)優(yōu)秀[29],在自然語言處理(NLP)領(lǐng)域也有一些成功的應(yīng)用[30],適用于訓(xùn)練多維數(shù)據(jù)和具有強(qiáng)烈局部相關(guān)性的數(shù)據(jù)[31]。其中,1D-CNN 適用于順序數(shù)據(jù)和語言等數(shù)據(jù),2D-CNN 適用于圖像和音頻譜圖等數(shù)據(jù),3D-CNN 適用于視頻或體積圖像等數(shù)據(jù)。
CNN 能夠?qū)W習(xí)空間特征,由若干卷積層、池化層和全連接層組成,一般的網(wǎng)絡(luò)結(jié)構(gòu)如圖5 所示。經(jīng)典模型LeNet 是卷積神經(jīng)網(wǎng)絡(luò)的提出者LeCun 在1998 年提出,用于解決手寫數(shù)字識別的視覺任務(wù)。如今各大深度學(xué)習(xí)框架中所使用的LeNet都是簡化改進(jìn)過的LeNet-5(-5表示具有5個層)。
在所提出的方法中,CNN 應(yīng)用于整個網(wǎng)絡(luò)流量識別,如圖6所示。本文方法中,將擁有n維特征項的流量數(shù)據(jù)通過獨(dú)熱編碼(OHE)后轉(zhuǎn)換為單個m×m 的流圖像,其中多余位數(shù)置0。圖像通過訓(xùn)練好的CNN 模型進(jìn)行識別,最終輸出代表分類編碼的流向量:由多個標(biāo)簽向量組成,這些分組向量表示各流量包的分類。
本文提出的網(wǎng)絡(luò)流量異常預(yù)測方法,首先利用了卷積神經(jīng)網(wǎng)絡(luò)對圖像數(shù)據(jù)在空間特征提取上的優(yōu)勢,將網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行圖像化處理后進(jìn)行空間特征訓(xùn)練和安全事件識別,解決NIDS 中異常網(wǎng)絡(luò)流量誤報率高的問題;然后結(jié)合長短期記憶網(wǎng)絡(luò)對時間序列的訓(xùn)練場景,將網(wǎng)絡(luò)流量預(yù)測處理為時間序列預(yù)測過程,進(jìn)行時間特征訓(xùn)練和流量數(shù)據(jù)走向預(yù)測,提供了NIDS 對網(wǎng)絡(luò)流量進(jìn)行預(yù)測的可行性;最后將兩種訓(xùn)練模型結(jié)合,對當(dāng)前網(wǎng)絡(luò)流量進(jìn)行預(yù)測識別,實(shí)現(xiàn)實(shí)時自動化監(jiān)控NIDS 的網(wǎng)絡(luò)流量異常預(yù)測功能。

圖4 網(wǎng)絡(luò)流量預(yù)測網(wǎng)絡(luò)架構(gòu)

圖5 CNN神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)

圖6 攻擊事件分類網(wǎng)絡(luò)架構(gòu)
該方法中流量異常識別準(zhǔn)確度依賴于訓(xùn)練數(shù)據(jù)的數(shù)據(jù)規(guī)模大小,安全事件類型識別準(zhǔn)確性依賴于訓(xùn)練數(shù)據(jù)中流量類型的多樣性,流量變化預(yù)測的準(zhǔn)確度依賴于數(shù)據(jù)規(guī)模大小和時間步長選取。當(dāng)NIDS中受到全新的攻擊模式時,可以實(shí)現(xiàn)對當(dāng)前網(wǎng)絡(luò)流量異常識別的高準(zhǔn)確度,但無法識別安全事件類型以及當(dāng)前攻擊時間下未來流量的變化,此時需要重新收集此類安全事件流量數(shù)據(jù),更新預(yù)測方法模型。
本章實(shí)驗是為證明本文所提出的網(wǎng)絡(luò)流量異常預(yù)測方法的可行性所設(shè)計,對NIDS 中的網(wǎng)絡(luò)流量進(jìn)行了異常識別和預(yù)測模型訓(xùn)練和準(zhǔn)確性驗證。所有研究實(shí)驗均在個人筆記本電腦上進(jìn)行,該電腦具有Intel Core i5-5200U CPU@2.20 GHz,8 GB 內(nèi)存的配置,并且不使用GPU 加速。設(shè)計的兩組實(shí)驗為基于LetNet 的安全事件分類和基于LSTM 的流量特征預(yù)測,它們分別對應(yīng)本文方法中的網(wǎng)絡(luò)安全事件識別和網(wǎng)絡(luò)流量預(yù)測,流量類型包括normal、DoS、DDoS和PortScan。
2017 年,加拿大新布倫瑞克大學(xué)(UNB)信息安全卓越中心(ISCX)發(fā)布了一個名為CICIDS2017 的入侵檢測數(shù)據(jù)集。CICIDS2017 涵蓋了常見的安全網(wǎng)絡(luò)事件的所有11 個必要標(biāo)準(zhǔn),如DoS、DDoS、Bruteforce、XSS,SQL 注入、Infiltration、PortScan 和Botnet。通過使用加拿大網(wǎng)絡(luò)安全研究所網(wǎng)站公開提供的CICFlowMeter 軟件,數(shù)據(jù)集被標(biāo)記為正常和異常并被提取出了80 多個網(wǎng)絡(luò)流量特征。根據(jù)ImanSharafaldin[32],在實(shí)驗中選擇包含了表1 中顯示的每種攻擊對應(yīng)最佳選擇功能特征值,共計33個。
在進(jìn)行實(shí)驗之前,還需要對CICIDS2017 數(shù)據(jù)集進(jìn)行預(yù)處理。標(biāo)簽項為攻擊類型的流量總數(shù)統(tǒng)計如圖7所示,其中Bruteforce、Web 攻擊和Botnet 流量數(shù)據(jù)較少,在實(shí)驗中不單獨(dú)做訓(xùn)練。
因為CICIDS2017未被提供商劃分為訓(xùn)練和測試數(shù)據(jù)集;因此,實(shí)驗中分別使用80%和20%的比例將其劃分為訓(xùn)練和測試數(shù)據(jù)集。此外,這個比例最近被許多研究人員使用。表2 顯示了CICIDS2017 數(shù)據(jù)集的預(yù)處理結(jié)果。
圖8~11 是該數(shù)據(jù)集中以四種流量特征項為代表的四種網(wǎng)絡(luò)流量特征隨時間變化的曲線圖,即分別對應(yīng)特征項Bwd Packet Length Std、SubflowFwd Bytes、Flow Duration和Init_Win_bytes_forward,每張圖中(a)~(d)分別對應(yīng)Benign、DoS、DDoS 和PortScan 四種類型的時間連續(xù)的1 000 個網(wǎng)絡(luò)流量數(shù)據(jù)。從圖中可以看出,不同類型的流量在相同特征項中呈現(xiàn)出了不同的分布規(guī)律。

表1 特征選項

圖7 CICIDS2017記錄的攻擊總數(shù)分布

表2 CICIDS2017數(shù)據(jù)集預(yù)處理結(jié)果
4.2.1 基于LetNet的安全事件分類

圖8 特征項Bwd Packet Length Std下網(wǎng)絡(luò)流量數(shù)據(jù)變化

圖9 特征項SubflowFwd Bytes下網(wǎng)絡(luò)流量數(shù)據(jù)變化

圖10 特征項Flow Duration下網(wǎng)絡(luò)流量數(shù)據(jù)變化

圖11 特征項Init_Win_bytes_forward下網(wǎng)絡(luò)流量數(shù)據(jù)變化

表3 LetNet模型主要參數(shù)
通常情況下,準(zhǔn)確度(ACC),檢測率(DR)和誤報率(FAR)被用作IDS 評估的度量。準(zhǔn)確度用于評估系統(tǒng)的整體性能。DR表示IDS模型檢測到的入侵實(shí)例的比率。而FAR是錯誤分類的正常情況的比率。基于混淆矩陣度量方程如下(TP:真陽性,TN:真陰性,F(xiàn)P:假陽性,F(xiàn)N:假陰性):

因此,NIDS 能以較低的誤報率獲得高準(zhǔn)確度和檢測率。實(shí)驗中使用多個卷積層和多個連接層來提取網(wǎng)絡(luò)流量特征并傳遞給全連接SoftMax 層,該層的輸出是輸入會話或輸入流的概率分布。表3 描述了實(shí)驗使用的2D-CNN模型LetNet中每一層的主要參數(shù)。
實(shí)驗首先對網(wǎng)絡(luò)流量數(shù)據(jù)按照特征項進(jìn)行了歸一化處理,經(jīng)過OHE 模塊轉(zhuǎn)化為像素大小為m×m 的矩陣圖像。圖12 中顯示隨著輪詢次數(shù)增加,該CNN 模型對攻擊類型分類的loss值和acc值的變化趨勢。從圖中可以看到當(dāng)輪詢次數(shù)達(dá)到7 時,該模型的分類質(zhì)量趨于穩(wěn)定,到達(dá)20 次輪詢時loss值為0.031 2,acc 值為0.997 0,如表4所示。
經(jīng)過測試評估分類效果,表5 顯示了每種攻擊和整體攻擊分類的準(zhǔn)確率、檢測率以及誤報率。實(shí)驗中將為識別為Benign 的對象都分類為anomaly,因此存在部分混淆矩陣變量有未出現(xiàn)對應(yīng)分類實(shí)例的情況。總結(jié)了表5中的結(jié)果,總體準(zhǔn)確度為99.57%。在總攻擊實(shí)例中檢測到真實(shí)攻擊流量的百分比為99.52%,將正常流量分類為異常的總體誤報率為0.26%,表現(xiàn)出了很好的網(wǎng)絡(luò)安全事件識別性能。

圖12 CNN模型訓(xùn)練的時間分布

表4 不同epoch變化下的模型評估值
4.2.2 基于LSTM的流量特征預(yù)測
為了保證預(yù)測性能,實(shí)驗構(gòu)建時間序列預(yù)測LSTM需要定義每個主要神經(jīng)網(wǎng)絡(luò)參數(shù)。關(guān)鍵參數(shù)包括輸入向量和輸出向量維度、h的隱藏層數(shù)、每個隱藏層中的隱藏單元數(shù)以及訓(xùn)練的batch。每個時間步的網(wǎng)絡(luò)輸入和輸出的維度等于每個時間段中的行進(jìn)時間的維度。輸入層大小取決于用于預(yù)測的前一個時間間隔,其他參數(shù)也會顯著影響模型的精度。

表5 使用CNN的不同攻擊類型的檢測率比較%
為確定每個步驟的隱藏層的維度,首先進(jìn)行實(shí)驗精確度對比以確定,結(jié)果表明在給定輸入維度的情況下隱藏層數(shù)為2,隱藏單位的數(shù)量均為64 時R2平均值最大,即預(yù)測值最接近真實(shí)值。考慮到流量包時間序列收集的時間延遲,實(shí)驗使用訓(xùn)練模型預(yù)測最近觀察到的多個時間段的流量特征時間序列以查看模型的執(zhí)行情況,觀測數(shù)據(jù)為{… , xt-1,xt} 以此預(yù)測下一個時間戳的時間序列xt+1。
在實(shí)驗中使用正常訓(xùn)練數(shù)據(jù)集時,首先將所有實(shí)例進(jìn)行歸一化。輸入向量維度為(樣本數(shù)、時間步長、特征數(shù)),輸出向量為下一時間戳的特征值。其中將LSTM體系結(jié)構(gòu)應(yīng)用于隱藏層,使用softmax輸出層,優(yōu)化器為Adam,損失函數(shù)為均方誤差(MSE)。
為了評估所提出的模型的有效性,實(shí)驗使用三個性能指標(biāo),即平均絕對誤差(MAE),均方根誤差(RMSE)和R-Squared(R2)。它們被定義為:


在模型評估部分設(shè)置了預(yù)測多個時間間隔的LSTM 模型,其中的主要參數(shù)為:添加2 層隱藏層,每層有64 個神經(jīng)元,輸入變量和輸出變量是不同時間步長( t-1) 和(t )的特征,損失函數(shù)采用l2_loss,優(yōu)化算法采用Adam。表6 是在不同輸入輸出時間步長比例和batch下,以DDoS 為代表的4 個主要流量特征訓(xùn)練結(jié)果的R2值,結(jié)果顯示實(shí)驗中模型batch 最優(yōu)設(shè)置為128,時間步長(輸入步長∶輸出步長)最優(yōu)為4∶1。
為了查看LSTM 神經(jīng)網(wǎng)絡(luò)的預(yù)測性能,表7 中給出了實(shí)驗預(yù)測包含不同異常流量類型的RMSE、MRE 和R2,選取的流量特征項為Flow Duration、Bwd Packet Length Std、SubflowFwd Bytes、Init_Win_bytes_forward。從表中數(shù)據(jù)可以看出,在DoS流量數(shù)據(jù)中Flow Duration的R2為0.87,預(yù)測模型訓(xùn)練結(jié)果最優(yōu),而在DDoS 流量數(shù)據(jù)中為SubflowFwd Bytes,它的R2為0.695。因此,不同類型的流量類型應(yīng)該對流量特征項預(yù)測分配相應(yīng)的權(quán)重。
在總體流量數(shù)據(jù)中Flow Duration 和Bwd Packet Length Std 的R2分別為0.735 和0.762,均高于其他單個流量類型的預(yù)測效果。由此可得,流量數(shù)據(jù)類型的規(guī)模和數(shù)據(jù)量的大小對預(yù)測模型的訓(xùn)練效果有顯著的影響。圖13~17為不同流量類型中四種特征的預(yù)測效果。
隨著入侵預(yù)測在網(wǎng)絡(luò)入侵檢測系統(tǒng)中的重要性日益突出,本文提出了一種新的基于深度學(xué)習(xí)框架的網(wǎng)絡(luò)流量分類預(yù)測方法,可以有效地預(yù)測潛在的網(wǎng)絡(luò)安全事件出現(xiàn)概率。該方法包括三個主要階段,使用深度學(xué)習(xí)進(jìn)行評估建模。首先,對網(wǎng)絡(luò)流量數(shù)據(jù)進(jìn)行時間序列預(yù)處理和長期短期記憶(LSTM)網(wǎng)絡(luò)學(xué)習(xí)時間特征。接下來,卷積神經(jīng)網(wǎng)絡(luò)(CNN)學(xué)習(xí)網(wǎng)絡(luò)流量的空間特征。最后使用訓(xùn)練后的LSTM 模型預(yù)測出后續(xù)時間戳中的網(wǎng)絡(luò)流量時間序列,訓(xùn)練后的CNN 模型對該時間序列進(jìn)行網(wǎng)絡(luò)安全事件分類,用以估計下一時間段NIDS 受到攻擊的風(fēng)險概率。通過使用CICIDS2017數(shù)據(jù)集的實(shí)驗評估所提出方法的性能。本方法實(shí)現(xiàn)了對多種網(wǎng)絡(luò)攻擊具有高檢測性能的同時,對未來安全事件出現(xiàn)概率進(jìn)行了有效地評估,為NIDS 預(yù)警安全事件功能證明了可行性。

表6 DDoS的模型性能統(tǒng)計

表7 模型性能統(tǒng)計

圖13 Benign預(yù)測與實(shí)際的比較

圖14 DoS預(yù)測與實(shí)際的比較

圖15 DDoS預(yù)測與實(shí)際的比較

圖16 PortScan預(yù)測與實(shí)際的比較

圖17 所有類別預(yù)測與實(shí)際的比較
因此,未來的工作預(yù)計所提出的方法將與現(xiàn)有的NIDS有效地集成,能更好地實(shí)現(xiàn)安全事件的預(yù)警功能。同時未來還需要實(shí)現(xiàn)自動找到本文模型的最佳參數(shù),并將組合各種概率技術(shù)以提高NIDS網(wǎng)絡(luò)安全事件預(yù)測和分類的準(zhǔn)確性。