◆鄭偉發(fā)
基于CNN-LSTM混合模型的入侵檢測(cè)算法研究
◆鄭偉發(fā)
(廣東財(cái)經(jīng)大學(xué)網(wǎng)絡(luò)信息中心 廣東 510320)
本文通過CNN提取網(wǎng)絡(luò)數(shù)據(jù)連接基本特征,并將卷積運(yùn)算后輸出的高級(jí)特征作為L(zhǎng)STM網(wǎng)絡(luò)的輸入?yún)?shù)進(jìn)行長(zhǎng)序列預(yù)測(cè),有效地解決LSTM的輸入序列特征難題。本文以KDD99訓(xùn)練集進(jìn)行模型訓(xùn)練和測(cè)試,實(shí)驗(yàn)證明本文設(shè)計(jì)CNN-LSTM混合模型有較高的準(zhǔn)確率和F1值。
入侵檢測(cè);CNN;LSTM
近幾年隨著5G通信、移動(dòng)互聯(lián)網(wǎng)、物聯(lián)網(wǎng)、“云計(jì)算”和大數(shù)據(jù)等新興通信和信息技術(shù)的快速發(fā)展,網(wǎng)絡(luò)安全變得越來越重要,而入侵檢測(cè)作為網(wǎng)絡(luò)安全一項(xiàng)重要的研究?jī)?nèi)容一直受到專家學(xué)者的關(guān)注。深度學(xué)習(xí)技術(shù)是目前人工智能領(lǐng)域應(yīng)用最為廣泛的技術(shù)之一,很多專家已經(jīng)將其應(yīng)用到入侵檢測(cè),并取得很好的準(zhǔn)確率。文獻(xiàn)[1]回顧了基于深度學(xué)習(xí)方法的入侵檢測(cè)系統(tǒng),分析遞歸神經(jīng)網(wǎng)絡(luò)、深度神經(jīng)網(wǎng)絡(luò)等七種模型,研究了二進(jìn)制和多類的性能。文獻(xiàn)[2]針對(duì)傳統(tǒng)淺層機(jī)器學(xué)習(xí)方法無法有效解決海量入侵?jǐn)?shù)據(jù)的分類問題,提出了一種基于深度信念網(wǎng)絡(luò)的多類支持“向量機(jī)”入侵檢測(cè)方法。文獻(xiàn)[3]針對(duì)神經(jīng)網(wǎng)絡(luò)在線入侵檢測(cè)模型訓(xùn)練時(shí)易出現(xiàn)過擬合和泛化能力弱的問題,提出基于改進(jìn)的集成降噪自編碼在線入侵檢測(cè)模型以區(qū)分正常和異常的流量模式。文獻(xiàn)[4]針對(duì)傳統(tǒng)機(jī)器學(xué)習(xí)算法不能有效處理時(shí)序性強(qiáng)“網(wǎng)絡(luò)”流量數(shù)據(jù)的問題,提出基于Adam 優(yōu)化門控神經(jīng)網(wǎng)絡(luò)(GRU)的入侵檢測(cè)方法。本文將基于CNN和LSTM模型提出一種基于網(wǎng)絡(luò)特征的入侵檢測(cè)算法。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)是一種前饋神經(jīng)網(wǎng)絡(luò),主要由輸入層、卷積層、池化層、全連接層和輸出層構(gòu)成,卷積層和池化層交替出現(xiàn),不同結(jié)構(gòu)的卷積神經(jīng)網(wǎng)絡(luò)卷積層數(shù)量、激活函數(shù)各不相同(圖1)。

圖1 CNN基本結(jié)構(gòu)圖



池化層跟在卷積層后面,主要是為了減少特征維度,加速網(wǎng)絡(luò)收斂;另外就是去除冗余特征,在一定程度上防止網(wǎng)絡(luò)過擬合。全連接層中的每個(gè)神經(jīng)元與前一層的所有神經(jīng)元進(jìn)行連接,通過全連接層可以將前邊學(xué)習(xí)到的所有局部特征進(jìn)行整合,形成整體特征[5]。全連接層中每一個(gè)神經(jīng)元都會(huì)采用激活函數(shù)進(jìn)行操作,然后傳遞給輸出層。
循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network, RNN)記憶單元沒有衡量信息價(jià)值的能力,對(duì)于每個(gè)時(shí)刻的狀態(tài)信息無法區(qū)分重要程度,導(dǎo)致無用的信息被存儲(chǔ)在記憶單元中,而真正有價(jià)值的信息卻被擠出去。文獻(xiàn)[6]中Hochreiter等在RNN基礎(chǔ)上進(jìn)行優(yōu)化,提出了長(zhǎng)短期記憶網(wǎng)絡(luò)(Long Short-term Memory, LSTM),通過引入記憶單元和門機(jī)制,有效克服RNN在訓(xùn)練過程中出現(xiàn)的梯度消失、梯度爆炸問題。


圖2 LSTM網(wǎng)絡(luò)內(nèi)部結(jié)構(gòu)






更新后的隱藏狀態(tài),計(jì)算公式如下:

LSTM通過門函數(shù)控制歷史數(shù)據(jù)的記憶和遺忘,適合于處理具有時(shí)間序列特性的問題。LSTM能較好地聯(lián)系上下文,但由于其結(jié)構(gòu)復(fù)雜,隨著輸入的數(shù)據(jù)增加,計(jì)算量也隨之增大,從而降低了上下文的聯(lián)系,使得算法的準(zhǔn)確率也隨之降低。CNN通過卷積核操作,可以提取高層特征,在圖像處理領(lǐng)域已經(jīng)有成功應(yīng)用。網(wǎng)絡(luò)連接具有明顯的時(shí)間序列特性,本文利用CNN模型提取網(wǎng)絡(luò)流量高級(jí)特征,將特征作為L(zhǎng)STM 模型的輸入,再進(jìn)行入侵檢測(cè)。

圖3 CNN+LSTM網(wǎng)絡(luò)結(jié)構(gòu)
基于CNN-LSTM的入侵檢測(cè)模型結(jié)構(gòu)如圖3所示,算法步驟如下。
Step 1 數(shù)據(jù)包抓取。通過流量采集模塊采集實(shí)時(shí)網(wǎng)絡(luò)數(shù)據(jù),對(duì)網(wǎng)絡(luò)流量數(shù)據(jù)包進(jìn)行基本特征分析,例如網(wǎng)絡(luò)協(xié)議類型、網(wǎng)絡(luò)服務(wù)類型、網(wǎng)絡(luò)連接狀態(tài)和連接時(shí)間等。
Step 2 數(shù)據(jù)預(yù)處理。對(duì)網(wǎng)絡(luò)協(xié)議、網(wǎng)絡(luò)服務(wù)類型和網(wǎng)絡(luò)連接狀態(tài)文本類型數(shù)據(jù)進(jìn)行One-Hot編碼。同時(shí),對(duì)數(shù)據(jù)包特征中連接時(shí)間等連續(xù)型數(shù)值數(shù)據(jù)按公式7對(duì)進(jìn)行歸一化處理。
Step 3 高級(jí)特征提取。將數(shù)據(jù)預(yù)處理后的數(shù)據(jù)包基本特征送入LeNet進(jìn)行高級(jí)特征提取,通過一維卷積運(yùn)算,輸出高級(jí)特征。每個(gè)卷積層之后伴隨一個(gè)BN層和LeakyReLU激活函數(shù),能夠提高網(wǎng)絡(luò)的速度并且盡可能避免模式崩潰
Step 4 網(wǎng)絡(luò)連接分類。將高級(jí)特征輸入LSTM,經(jīng)過一個(gè)softmax函數(shù)得到網(wǎng)絡(luò)數(shù)據(jù)的分類結(jié)果。
本文采用KDD99數(shù)據(jù)集[9]進(jìn)行算法測(cè)試。KDD99數(shù)據(jù)集,包括500萬條網(wǎng)絡(luò)連接記錄,提供一個(gè)10%的訓(xùn)練子集和測(cè)試子集。KDD99數(shù)據(jù)集中每個(gè)網(wǎng)絡(luò)連接采用TCP連接基本特征、TCP連接內(nèi)容特征、基于時(shí)間的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征、基于主機(jī)的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征共4類41個(gè)特征進(jìn)行描述。其中TCP連接基本特征9個(gè),TCP連接的內(nèi)容特征13個(gè),基于時(shí)間的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征9個(gè),基于主機(jī)的網(wǎng)絡(luò)流量統(tǒng)計(jì)特征10個(gè)。KDD99將攻擊類型分為DoS、R2L、U2R、Probing共4大類,細(xì)分為Teardrop、Guess_passwd、Buffer_overflow、Portsweep等共39小類。在訓(xùn)練集中包括了攻擊類型名被標(biāo)記在訓(xùn)練數(shù)據(jù)集每一行記錄的最后一項(xiàng)。
本文實(shí)驗(yàn)中采用分類準(zhǔn)確率(Precision)、召回率(Recall)和綜合評(píng)價(jià)指標(biāo)(F-Measure)判斷模型分類效果。設(shè)TP表示正確識(shí)別為攻擊類的樣本數(shù),F(xiàn)P表示錯(cuò)誤識(shí)別為攻擊類的樣本數(shù),TN表示正確識(shí)別為正常類的樣本數(shù),F(xiàn)N表示錯(cuò)誤識(shí)別為正常類的樣本數(shù)。







本文使用的軟件環(huán)境為Python3.7,Tensorflow1.15,Keras2.24,實(shí)驗(yàn)硬件條件為Intel Core i7-3520 CPU,8G RAM。
采用Adam優(yōu)化器和Categorical_crossentropy損失函數(shù)對(duì)模型進(jìn)行訓(xùn)練,Adam學(xué)習(xí)率為0.000 1,Epoch均為2000,Batch_size為128,BatchNormalization中的Momentum為0.85, LeakyReLU中alpha設(shè)置為0.2,Dropout設(shè)置為0.4,LSTM中Recurrent_dropout設(shè)置為0.01。實(shí)驗(yàn)從KDD99訓(xùn)練集中選擇300000條數(shù)據(jù)訓(xùn)練模型,剩余194021條用于測(cè)試模型。采用Sklearn工具包對(duì)訓(xùn)練集中的22種攻擊類型進(jìn)行One-Hot編碼。結(jié)果如表1所示。

表1 LSTM與CNN+LSTM入侵檢測(cè)準(zhǔn)確率表
實(shí)驗(yàn)過程中,CNN采用3x3卷積核,步長(zhǎng)為2,每個(gè)卷積層跟隨1個(gè)BN層和Dropout層。表2中Label0表示正常網(wǎng)絡(luò)流量,Label1~Label22代表22種不同的攻擊類型。從實(shí)驗(yàn)結(jié)果看,CNN+LSTM混合模型的準(zhǔn)確率高于LSTM模型,且收斂速度明顯優(yōu)于LSTM模型。模型訓(xùn)練的迭代過程如圖4和圖5所示。

圖4 LSTM模型訓(xùn)練準(zhǔn)確率圖


表2 基于CNN+LSTM入侵檢測(cè)模型各子類檢測(cè)結(jié)果
本文結(jié)合CNN和LSTM提出一種入侵檢測(cè)神經(jīng)網(wǎng)絡(luò)模型。通過卷積神經(jīng)網(wǎng)絡(luò)抽取原始數(shù)據(jù)特征,將處理后的高級(jí)特征作為L(zhǎng)STM網(wǎng)絡(luò)的輸入?yún)?shù)進(jìn)行長(zhǎng)序列預(yù)測(cè),有效地解決LSTM的輸入序列特征難題。本文以KDD99訓(xùn)練集進(jìn)行模型訓(xùn)練和測(cè)試,并對(duì)LSTM、CNN+LSTM兩種模型進(jìn)行比較分析。實(shí)驗(yàn)證明,本文采用的基于CNN+LSTM的對(duì)入侵檢測(cè)的準(zhǔn)確率和F1指標(biāo)均優(yōu)于單純的LSTM模型。
[1]Mohamed Amine Ferrag,Leandros Maglaras,Sotiris Moschoyiannis,Helge Janicke.A Deep Learning Approach for Intrusion Detection Using Recurrent Neural Networks[J]. Journal of Information Security and Applications,Volume 50,F(xiàn)ebruary 2020,https://doi.org/10.1016/j.jisa.2019.102419.
[2]Gao Ni,He Yiyue,Gao Ling. Deep learning method for intrusion detection in massive data[J]. Application Research of Computers,2018,35(4):1197-1200.
[3]吳德鵬,柳毅,基于集成降噪自編碼的在線網(wǎng)絡(luò)入侵檢測(cè)模型[J].計(jì)算機(jī)應(yīng)用研究,2019,37(11).
[4]陳土生,基于Adam優(yōu)化GRU 神經(jīng)網(wǎng)絡(luò)的SCADA 系統(tǒng)入侵檢測(cè)方法[J].現(xiàn)代計(jì)算機(jī),2019(5):13-18.
[5]Sainath T N,Mohamed A,Kingsbury B,et al. Deep convolutional neural networks for LVCSR. Acoustics,speech and signal processing(ICASSP),2013 IEEE international conference on[C]. IEEE,2013:8614-8618.
[6]HOCHREITER S,SCHMIDHUBER J. Long short-term memory[M]//Supervised Sequence Labelling with Recurrent Neural Networks. Springer Berlin Heidelberg,1997:1735-1780.
[7]司念文,王衡軍,李偉,等. 基于注意力長(zhǎng)短時(shí)記憶網(wǎng)絡(luò)的中文詞性標(biāo)注模型[J]. 計(jì)算機(jī)科學(xué),2018,45(04): 66-70+82.
[8]Liu Y,Dong S,LU M,et al. LSTM based reserve prediction for bank outlets[J].Tsinghua Scienceand Technology,2018,24(1):77-85.
[9]KDD cup 1999 data[EB/OL].(1999-10-28).http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html.