楊宏宇 王峰巖
摘 要:針對(duì)基于深度學(xué)習(xí)的網(wǎng)絡(luò)入侵檢測(cè)技術(shù)存在檢測(cè)效率低、模型訓(xùn)練易出現(xiàn)過擬合和泛化能力較弱的問題,提出一種基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)(ICNN)的入侵檢測(cè)模型(IBIDM)。與傳統(tǒng)“卷積池化全連接”層疊式網(wǎng)絡(luò)設(shè)計(jì)方式不同,該模型采用跨層聚合網(wǎng)絡(luò)的設(shè)計(jì)方式。首先,將預(yù)處理后的訓(xùn)練集數(shù)據(jù)作為輸入數(shù)據(jù)前向傳播并提取網(wǎng)絡(luò)特征,對(duì)跨層聚合網(wǎng)絡(luò)的輸出數(shù)據(jù)執(zhí)行合并操作;然后,根據(jù)分類結(jié)果計(jì)算訓(xùn)練誤差并通過反向傳播過程進(jìn)行迭代優(yōu)化至模型收斂;最后,利用訓(xùn)練好的分類器對(duì)測(cè)試數(shù)據(jù)集進(jìn)行分類測(cè)試。實(shí)驗(yàn)結(jié)果表明,IBIDM具有較高的入侵檢測(cè)準(zhǔn)確率和真正率,且誤報(bào)率較低。
關(guān)鍵詞:網(wǎng)絡(luò)入侵檢測(cè);卷積神經(jīng)網(wǎng)絡(luò);前向傳播;跨層聚合;迭代優(yōu)化
中圖分類號(hào):TP18;TP393.08
文獻(xiàn)標(biāo)志碼:A
Network intrusion detection model based on improved convolutional neural network
YANG Hongyu*, WANG Fengyan
College of Computer Science and Technology, Civil Aviation University of China, Tianjin 300300, China
Abstract:
Aiming at the problems of deep learning based network intrusion detection technology such as low detection efficiency, easy over-fitting and weak generalization ability of model training, an Improved Convolutional Neural Network (ICNN) based Intrusion Detection Model (IBIDM) was proposed. Different from the traditional “convolution-pooling-full connection” cascading network design method, the model adopted the design method of cross-layer aggregation network. Firstly, the pre-processed training set data was forwardly propagated as input data and the network features were extracted, and the merge operation was performed on the output data of the cross-layer aggregation network. Then, the training error was calculated according to the classification result and the model was iteratively optimized to convergence by the back propagation process. Finally, a classification test experiment was performed on the test dataset using the trained classifier. The experimental results show that IBIDM has high intrusion detection accuracy and true positive rate, and its false positive rate is low.
Key words:
network intrusion detection; convolutional neural network; forward propagation; cross-layer aggregation; iterative optimization
0 引言
隨著新型網(wǎng)絡(luò)攻擊特征的不斷出現(xiàn),適應(yīng)性強(qiáng)且穩(wěn)定有效的入侵檢測(cè)方法成為一項(xiàng)迫切需要。目前,通用的網(wǎng)絡(luò)身份驗(yàn)證機(jī)制和防火墻技術(shù)雖然能夠滿足用戶基本的安全防護(hù)需求,但是防護(hù)能力相對(duì)較弱,一旦遭遇專業(yè)黑客的惡意攻擊,這些防護(hù)措施就形同虛設(shè)。目前以誤用檢測(cè)[1-2]和異常檢測(cè)[3-6]為代表的入侵檢測(cè)方法普遍存在檢測(cè)精度低和特征提取效率低、誤報(bào)率高等不足。隨著人工智能方法在入侵檢測(cè)系統(tǒng)(Intrusion Detection System, IDS)中的應(yīng)用研究,基于人工智能的檢測(cè)方法已經(jīng)成為IDS研究的熱點(diǎn)之一。
目前在入侵檢測(cè)方法中應(yīng)用的人工智能方法主要包括神經(jīng)網(wǎng)絡(luò)、遺傳算法和免疫算法等,例如基于深度反向傳播(Back Propagation, BP)神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)[7]和基于模糊系統(tǒng)的協(xié)同演化網(wǎng)絡(luò)入侵檢測(cè)[8]。這些方法在對(duì)數(shù)據(jù)集的處理過程中容易出現(xiàn)關(guān)鍵信息丟失的情況,造成樣本數(shù)據(jù)集“失真”,數(shù)據(jù)集樣本特征提取效率不高,導(dǎo)致檢測(cè)結(jié)果波動(dòng)性較大。為解決此問題:陳虹等[9]提出基于優(yōu)化數(shù)據(jù)處理的深度置信網(wǎng)絡(luò)入侵檢測(cè)方法;Qu等[10]提出基于深度置信網(wǎng)絡(luò)的入侵檢測(cè)模型;Yin等[11]提出基于遞歸神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)的深度學(xué)習(xí)方法;Shone等[12]提出基于無(wú)監(jiān)督特征學(xué)習(xí)的非對(duì)稱深度自動(dòng)編碼器(Nonsymmetric Deep AutoEncoder, NDAE);袁琴琴等[13]利用遺傳算法和支持向量機(jī)(Support Vector Machine, SVM)建立了一種網(wǎng)絡(luò)入侵檢測(cè)分類器;魏明軍等[14]提出一種多種群克隆選擇算法,通過改變?cè)撍惴ǖ钠ヅ湟?guī)則,進(jìn)行入侵檢測(cè)仿真實(shí)驗(yàn)。上述5種方法在一定程度上提高了入侵檢測(cè)的準(zhǔn)確率,但在實(shí)驗(yàn)過程中參數(shù)調(diào)優(yōu)比較困難,且特征提取效率較低,計(jì)算任務(wù)量大。為了克服上述方法的不足,賈凡等[15]和王明等[16]利用卷積神經(jīng)網(wǎng)絡(luò),分別實(shí)現(xiàn)基于卷積神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)算法(Intrusion Detection Algorithm Based on Convolutional Neural Network, IDABCNN)和網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)(Network Intrusion Detection Model Based on Convolutional Neural Network, NIDMBCNN)。與其他機(jī)器學(xué)習(xí)方法相比,采用卷積神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)方法顯著提高了分類的準(zhǔn)確性,但該方法在模型訓(xùn)練過程中的收斂速度不理想,泛化能力差,導(dǎo)致真正率較低并且誤報(bào)率較高。卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)作為一種半監(jiān)督式神經(jīng)網(wǎng)絡(luò),由于具備將低級(jí)入侵流量數(shù)據(jù)特征抽象表示為高級(jí)特征的能力且特征學(xué)習(xí)能力突出,所以近年來(lái)逐漸被應(yīng)用于入侵檢測(cè)領(lǐng)域。DonghwoonKwon等[17]建立了三個(gè)不同深度的CNN模型,驗(yàn)證了網(wǎng)絡(luò)深度對(duì)入侵檢測(cè)性能的影響;Vinayakumar等[18]通過時(shí)間序列的方法對(duì)網(wǎng)絡(luò)流量進(jìn)行建模,利用CNN及CNN-LSTM等變體架構(gòu)分別進(jìn)行了入侵檢測(cè)實(shí)驗(yàn)。通過對(duì)文獻(xiàn)[17-18]的分析表明,與檢測(cè)效果良好的變分自動(dòng)編碼器(Variational Auto-Encoder, VAE)、多層感知機(jī)(Multi-Layer Perception, MLP)等檢測(cè)模型相比,CNN的特征提取能力優(yōu)勢(shì)明顯且分類效果更好。
上述研究雖然在樣本識(shí)別能力和性能上均有提升,但是在網(wǎng)絡(luò)訓(xùn)練上存在過擬合和泛化能力差等不足,檢測(cè)精度和檢測(cè)效率還有待提高。為了避免網(wǎng)絡(luò)訓(xùn)練過擬合并提升泛化能力,本文利用卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)特性并結(jié)合跨層聚合設(shè)計(jì)理念,提出一種基于深度學(xué)習(xí)的入侵檢測(cè)模型。該模型以本文提出的改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)為基礎(chǔ),結(jié)合跨層設(shè)計(jì)方式,利用預(yù)處理后的原始樣本數(shù)據(jù)集進(jìn)行模型訓(xùn)練,經(jīng)過循環(huán)特征提取和迭代優(yōu)化,使模型達(dá)到良好的收斂效果。通過對(duì)已訓(xùn)練好的分類器進(jìn)行分類測(cè)試,實(shí)驗(yàn)結(jié)果驗(yàn)證了本文方法具有較好的檢測(cè)效果。
1 改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)
1.1 設(shè)計(jì)思路
針對(duì)傳統(tǒng)的分類檢測(cè)算法在訓(xùn)練過程中存在的大量的關(guān)鍵參數(shù)需要人為設(shè)置,且訓(xùn)練過程中容易導(dǎo)致關(guān)鍵特征信息丟失和參數(shù)調(diào)優(yōu)困難等問題,本文考慮利用卷積神經(jīng)網(wǎng)絡(luò)(CNN)的端到端半監(jiān)督式的網(wǎng)絡(luò)訓(xùn)練分類器,利用CNN多層特征檢測(cè)網(wǎng)絡(luò),在數(shù)據(jù)訓(xùn)練過程中自主學(xué)習(xí)樣本特征并發(fā)現(xiàn)其中的規(guī)律,無(wú)需人為設(shè)置大量關(guān)鍵參數(shù),達(dá)到簡(jiǎn)化實(shí)現(xiàn)過程的目的。為此,本文提出一種改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)(Improved Convolutional Neural Network, ICNN),其設(shè)計(jì)思路如下:
1)采用跨層聚合的網(wǎng)絡(luò)設(shè)計(jì)方式,使入侵檢測(cè)模型從第二次卷積操作開始,將卷積后的結(jié)果保存,之后再單獨(dú)進(jìn)行卷積、池化、全連接操作。
2)對(duì)第3次卷積操作的輸出結(jié)果執(zhí)行同樣操作后,使用Tensorflow中的concat()函數(shù)對(duì)跨層聚合網(wǎng)絡(luò)的輸出數(shù)據(jù)執(zhí)行合并操作。
3)根據(jù)Softmax的分類結(jié)果計(jì)算loss值,進(jìn)行反向傳播,通過迭代優(yōu)化網(wǎng)絡(luò)權(quán)值和偏置,直至達(dá)到良好的收斂效果。
1.2 改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)(ICNN)結(jié)構(gòu)如圖1所示。ICNN包含5個(gè)卷積層、2個(gè)池化層、4個(gè)全連接層和1個(gè)Softmax層。其中,Conv1、Conv2、Conv33個(gè)卷積層使用Relu激活函數(shù)以增大網(wǎng)絡(luò)稀疏性。為防止訓(xùn)練過程中出現(xiàn)過擬合現(xiàn)象,在跨層聚合模塊的兩個(gè)全連接層FC1_layer和FC3_layer使用正則化方法Dropout。
該卷積網(wǎng)絡(luò)結(jié)構(gòu)中的concat()是執(zhí)行合并操作的函數(shù),Softmax層(Softmax Layer)用于對(duì)入侵檢測(cè)模型的訓(xùn)練輸出結(jié)果進(jìn)行分類。
圖片
圖1 ICNN結(jié)構(gòu)
Fig. 1 ICNN structure
1.3 模型訓(xùn)練
ICNN的模型訓(xùn)練由前向傳播過程和反向傳播過程組成。
1)前向傳播。
在ICNN中,訓(xùn)練的前向傳播過程設(shè)計(jì)如下:
首先,在網(wǎng)絡(luò)中分批次進(jìn)行訓(xùn)練,每次訓(xùn)練都從預(yù)處理后的訓(xùn)練數(shù)據(jù)集中隨機(jī)選取一個(gè)固定大小的塊(batch)作為輸入,訓(xùn)練時(shí)輸入的數(shù)據(jù)參數(shù)維度按照(batch_size,H,W,channel)四維參數(shù)設(shè)置。每次訓(xùn)練時(shí),從數(shù)據(jù)集選取大小為M的塊(batch),輸入數(shù)據(jù)的高度和寬度分別設(shè)為1和122,通道(channel)為單通道。
在ICNN中(如圖1所示),Input Data首先經(jīng)過兩個(gè)卷積層(Conv1_Relu和Conv2_Relu),利用卷積層的多卷積核對(duì)初始輸入的所有特征圖進(jìn)行卷積運(yùn)算,每一個(gè)卷積核都對(duì)應(yīng)一個(gè)特定特征圖進(jìn)行網(wǎng)絡(luò)權(quán)重學(xué)習(xí)(即網(wǎng)絡(luò)特征提?。?,Conv2_Relu輸出結(jié)果在激活函數(shù)Relu的作用下分別作為Conv3_Relu和Conv4的輸入數(shù)據(jù),卷積運(yùn)算和激活函數(shù)Relu公式定義為:
ylj=σ(∑i∈Mjyl-1iwlij+bli)(1)
Relu(y)=y, y>0
0,y≤0(2)
其中,ylj表示每一個(gè)卷積層經(jīng)過一個(gè)卷積核的處理得到的結(jié)果,l表示卷積層數(shù), j表示卷積核的序列號(hào),σ是激活函數(shù)(兩個(gè)卷積層均使用激活函數(shù)),w表示權(quán)重,b為偏置。
然后,由跨層聚合模塊進(jìn)行處理。對(duì)于卷積層(Conv4)每一個(gè)卷積核輸出的特征圖都會(huì)經(jīng)過池化層(Max_pooling1)進(jìn)行下采樣操作,目的是對(duì)數(shù)據(jù)進(jìn)行降維和區(qū)域最大化特征提取,輸出的結(jié)果在兩個(gè)全連接層FC1_layer,F(xiàn)C2_layer的作用下,得到M/2維數(shù)據(jù)集合。池化層計(jì)算公式為:
zlj=β(wljdown(zl-1j)+blj)(3)
其中:down(z)表示對(duì)矩陣元素z的下采樣操作。池化操作和普通的神經(jīng)元計(jì)算類似,也有其權(quán)重和偏置。
同樣地,第3個(gè)卷積層(Conv3_Relu)的輸出結(jié)果在卷積層(Conv5)、池化層(Max_pooling2)和兩個(gè)全連接層FC3_layer、FC4_layer的作用下,輸出M/2維數(shù)據(jù)集合。
然后利用Tensorflow中的concat()函數(shù)對(duì)FC2_layer和FC4_layer層的輸出結(jié)果執(zhí)行合并操作,產(chǎn)生大小為M維的數(shù)據(jù)集合。
最后,用Softmax層進(jìn)行數(shù)據(jù)分類。
2)反向傳播。
在ICNN中,訓(xùn)練的反向傳播過程設(shè)計(jì)如下:
首先,利用Softmax層對(duì)訓(xùn)練集的樣本分類結(jié)果,計(jì)算出整體的誤差參數(shù)值loss。
最后,根據(jù)loss值進(jìn)行反向傳播(Back Propagation, BP)。反向傳播的目的是根據(jù)實(shí)際輸出值與理想輸出值之間的誤差迭代調(diào)整各層網(wǎng)絡(luò)的權(quán)重和偏置,直至模型達(dá)到良好收斂效果。在反向傳播過程中,為了快速找到最優(yōu)權(quán)重w和偏置b,使網(wǎng)絡(luò)的輸出f(x)能夠擬合所有的訓(xùn)練輸入x,設(shè)定一個(gè)損失函數(shù)C(w,b),用以找出最優(yōu)的參數(shù)組合,以此量化模型擬合程度。而隨
機(jī)梯度下降(Stochastic Gradient Descent, SGD)算法提供了最小化此損失函數(shù)的方式。損失函數(shù)定義為:
C(w,b)≡12n∑xy(x)-a2(4)
其中:w表示網(wǎng)絡(luò)權(quán)重的集合,b為所有偏置的集合,n是訓(xùn)練輸入數(shù)據(jù)的個(gè)數(shù),a表示當(dāng)輸入為x時(shí)輸出的向量。參數(shù)w和b
的定義為:
w → w′k≡wk-ηCwk(5)
b → b′l≡bl-ηCbl(6)
其中:η表示學(xué)習(xí)率,偏導(dǎo)數(shù)Cwk和Cbl表示任意權(quán)重和任意偏置的變化率。
損失函數(shù)值計(jì)算過程如圖2所示。計(jì)算步驟設(shè)計(jì)如下:
步驟1 設(shè)置初始激活值a1并輸入;
步驟2 計(jì)算加權(quán)和zl=wlal-1+bl和各層節(jié)點(diǎn)激活值al=σ(zl),其中l(wèi)=(1,2,…,L),進(jìn)行前向傳播;
步驟3 計(jì)算各網(wǎng)絡(luò)的輸出層誤差δl=ac⊙σ′zL并輸出;
步驟4 根據(jù)獲取的每一項(xiàng)輸出層誤差
δl=((wl+1)Tδl+1⊙σ′zl),其中,l=(L-1,L-2,…),進(jìn)行反向傳播;
步驟5 計(jì)算并輸出損失函數(shù)的任意權(quán)重的變化率Cwljk=al-1kδlj和任意偏置的變化率Cblj=δlj;
步驟6 將步驟5的結(jié)果,分別代入式(5)和(6)獲取權(quán)重w和偏置b,然后根據(jù)式(4)獲取損失函數(shù)值。
圖片
圖2 損失函數(shù)值計(jì)算流程
Fig. 2 Flow chart of loss function calculation
ICNN的反向傳播過程,是從最后一層開始向后計(jì)算誤差向量,這種反向移動(dòng)的進(jìn)行是基于損失函數(shù)在網(wǎng)絡(luò)中的輸出結(jié)果。為了把握損失函數(shù)隨前面層的權(quán)重和偏置變化的規(guī)律,通過隨機(jī)梯度下降的方式和重復(fù)使用鏈?zhǔn)椒▌t,反向獲取所需的表達(dá)式結(jié)果,從而可以得到最優(yōu)的參數(shù)組合(即最小化損失函數(shù))。
在ICNN訓(xùn)練過程中,隨著網(wǎng)絡(luò)層數(shù)的不斷增加和卷積核數(shù)量的不斷增多,網(wǎng)絡(luò)抽取到檢測(cè)樣本的特征信息也不斷增多,網(wǎng)絡(luò)自身通過不斷的特征篩選和參數(shù)優(yōu)化,最終使模型收斂,這體現(xiàn)了ICNN的深度學(xué)習(xí)過程對(duì)入侵檢測(cè)樣本建模的有效性。
2 網(wǎng)絡(luò)入侵檢測(cè)模型
2.1 網(wǎng)絡(luò)入侵檢測(cè)模型框架
以ICNN為基礎(chǔ),本文提出一個(gè)基于ICNN的網(wǎng)絡(luò)入侵檢測(cè)模型(ICNN Based Intrusion Detection Model,IBIDM),該模型主要由數(shù)據(jù)預(yù)處理模塊、ICNN網(wǎng)絡(luò)訓(xùn)練模塊和分類檢測(cè)模塊構(gòu)成,IBIDM的架構(gòu)如圖3所示。
圖片
圖3 IBIDM的架構(gòu)
Fig. 3 IBIDM architecture
2.2 模塊設(shè)計(jì)
1) 數(shù)據(jù)預(yù)處理模塊。
該模塊包括數(shù)值化處理和歸一化處理兩項(xiàng)操作,其目的是為網(wǎng)絡(luò)訓(xùn)練提供規(guī)范的輸入數(shù)據(jù)集,該模塊的處理過程設(shè)計(jì)如下:
首先,采用屬性映射(One-hot)方法對(duì)數(shù)據(jù)集中連續(xù)型和離散型的符號(hào)型數(shù)據(jù)進(jìn)行數(shù)值化處理。
然后,將處理后的數(shù)值型數(shù)據(jù)進(jìn)行特征范圍線性映射,得到規(guī)范的網(wǎng)絡(luò)輸入數(shù)據(jù)集。
2)ICNN訓(xùn)練模塊。
該模塊包括前向傳播特征提取和反向傳播迭代優(yōu)化2個(gè)過程。
前向傳播特征提取:將預(yù)處理后的訓(xùn)練數(shù)據(jù)集作為Input Data進(jìn)行前向傳播,利用ICNN的自主學(xué)習(xí)能力進(jìn)行特征提取。
反向傳播迭代優(yōu)化:根據(jù)ICNN訓(xùn)練得到的loss值進(jìn)行誤差反向傳播,經(jīng)過反復(fù)的參數(shù)優(yōu)化,直至達(dá)到良好收斂效果。
3)分類檢測(cè)模塊。
根據(jù)Probe、DoS、U2R、R2L和Normal 5個(gè)樣本類別為分類標(biāo)簽訓(xùn)練分類器,將預(yù)處理后的測(cè)試數(shù)據(jù)集作為Test Data輸入訓(xùn)練好的分類器,分類器對(duì)檢測(cè)樣本進(jìn)行分類檢測(cè),輸出五維混淆矩陣,即為檢測(cè)結(jié)果。
3 數(shù)據(jù)特征分析及預(yù)處理
3.1 數(shù)據(jù)集選取及特征描述
在本文研究中,選取NSL-KDD CUP數(shù)據(jù)集[19-20]作為基準(zhǔn)數(shù)據(jù)集,用于檢測(cè)模型的訓(xùn)練和性能測(cè)試。與KDD CUP 99數(shù)據(jù)集相比,NSL-KDD CUP數(shù)據(jù)集刪除了大量冗余數(shù)據(jù),使其樣本數(shù)據(jù)的比例分配更加均衡合理、可利用性更高,因此能夠更好滿足本研究的檢測(cè)模型的驗(yàn)證實(shí)驗(yàn)需求。上述兩個(gè)數(shù)據(jù)集的樣本數(shù)據(jù)特征相同,數(shù)據(jù)集中每一項(xiàng)入侵記錄均有42維特征,詳細(xì)分為38維數(shù)字特征、3維符號(hào)特征和1個(gè)攻擊類型標(biāo)簽(label)。NSL-KDD CUP數(shù)據(jù)集數(shù)據(jù)類型主要包含:正常類數(shù)據(jù)(Normal)和4大攻擊類型數(shù)據(jù)(Probe、DoS、U2R、R2L),4大攻擊類型數(shù)據(jù)又可具體細(xì)分為39個(gè)小類。
NSL-KDD CUP數(shù)據(jù)集主要包含訓(xùn)練集(KDDTrain)、測(cè)試集(KDDTest+)和測(cè)試集(KDDTest-21)三個(gè)子數(shù)據(jù)集,其樣本類別分布與特征分類情況分別如表1和表2所示。
表格(有表名)
表1 樣本類別分布
Tab. 1 Sample category distribution
樣本類別訓(xùn)練集(KDDTrain)測(cè)試集(KDDTest+)測(cè)試集(KDDTest-21)
Probe4592724214342
DoS1165674582402
R2L99527542754
U2R52200200
Normal6734397112152
總量1259732254411850
表格(有表名)
表2 特征分類
Tab. 2 Feature classification
序號(hào)樣本特征類型序號(hào)樣本特征類型
1duration連續(xù)
2protocol_type符號(hào)
3service符號(hào)
4flag符號(hào)
5src_bytes連續(xù)
6dst_bytes連續(xù)
7land離散
8wrong_fragment連續(xù)
9urgent連續(xù)
10hot連續(xù)
11num_failed_logins連續(xù)
12root_shell離散
13num_compromised連續(xù)
14root_shell離散
15su_attempted離散
16num_root連續(xù)
17num_file_creations連續(xù)
18num_shells連續(xù)
19num_access_files連續(xù)
20num_outbound_cmds連續(xù)
21is_host_login離散
22is_guest_login離散
23count連續(xù)
24srv_count連續(xù)
25serror_rate連續(xù)
26srv_serror_rate連續(xù)
27rerror_rate連續(xù)
28srv_rerror_rate連續(xù)
29same_srv_rate連續(xù)
30diff_srv_rate連續(xù)
31srv_diff_host_rate連續(xù)
32dst_host_count連續(xù)
33dst_host_srv_count連續(xù)
34dst_host_same_srv_rate連續(xù)
35dst_host_diff_srv_rate連續(xù)
36dst_host_same_src_port_rate連續(xù)
37dst_host_srv_diff_port_rate連續(xù)
38dst_host_serror_rate連續(xù)
39dst_host_srv_serror_rate連續(xù)
40dst_host_rerror_rate連續(xù)
41dst_host_srv_rerror_rate連續(xù)
42label標(biāo)簽
注: 連續(xù)型和離散型特征都屬于數(shù)值特征。
3.2 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理包括數(shù)值化處理和歸一化處理兩個(gè)過程。
1)數(shù)值化處理。
由于ICNN的輸入項(xiàng)為數(shù)字矩陣,因此采用獨(dú)熱(One-hot)編碼方法,將測(cè)試數(shù)據(jù)集中具有符號(hào)型特征的數(shù)據(jù)映射為數(shù)字特征向量。該處理主要針對(duì)以下3個(gè)特征:
特征1 對(duì)于protocol_type型特征的3種類型的屬性:TCP、UDP和ICMP,將其分別編碼為二進(jìn)制向量(1,0,0)、(0,1,0)和(0,0,1);
特征2 將service型特征所包含的70種符號(hào)屬性通過編碼變?yōu)?0維二進(jìn)制特征向量;
特征3 將flag型特征所包含的11種類符號(hào)屬性通過編碼變?yōu)?1維二進(jìn)制特征向量。
經(jīng)過數(shù)值化處理,上述3類符號(hào)型特征變成84維二進(jìn)制特征向量,加上數(shù)據(jù)集本身的38維數(shù)字特征,數(shù)據(jù)集中每一項(xiàng)記錄的42維特征最終變?yōu)?22維二進(jìn)制特征向量。
2)歸一化處理。
在數(shù)據(jù)集中,連續(xù)型特征數(shù)據(jù)之間取值范圍差異明顯,例如,num_root型特征的取值范圍是[0,7468],而num_shells型特征的取值范圍是[0,5],可見兩者的最小值和最大值的范圍差距很大。為了便于運(yùn)算處理和消除量綱,采用歸一化的處理方法,將每個(gè)特征的取值范圍統(tǒng)一線性映射在[0,1]區(qū)間內(nèi)。歸一化計(jì)算公式為:
Xnorm=X-XminXmax-Xmin(7)
其中:Xmax表示特征的最大值,Xmin表示特征的最小值。
4 實(shí)驗(yàn)與結(jié)果
4.1 實(shí)驗(yàn)環(huán)境配置與超參數(shù)設(shè)置
本文研究中,對(duì)檢測(cè)模型的檢測(cè)驗(yàn)證和對(duì)比測(cè)試實(shí)驗(yàn)均在Linux操作系統(tǒng)上進(jìn)行。使用Python的深度學(xué)習(xí)庫(kù)Tensorflow編程實(shí)現(xiàn)本文的ICNN和IBIDM。為提高運(yùn)算效率,減少訓(xùn)練時(shí)間,采用Tensorflow-GPU[21]進(jìn)行并行計(jì)算加速。實(shí)驗(yàn)的軟硬件配置環(huán)境如表3所示。
經(jīng)過多次和小范圍的參數(shù)組合搭配訓(xùn)練,根據(jù)訓(xùn)練和測(cè)試結(jié)果,確定ICNN訓(xùn)練的超參數(shù)設(shè)置如下:
網(wǎng)絡(luò)學(xué)習(xí)率為0.1,此時(shí)網(wǎng)絡(luò)的訓(xùn)練速度最佳,且特征學(xué)習(xí)過程較為詳細(xì);
權(quán)值衰減系數(shù)為0.001,此時(shí)ICNN的復(fù)雜度對(duì)損失函數(shù)的影響最小;
正則化方式Dropout的權(quán)重失活率大小設(shè)為0.5;
實(shí)驗(yàn)總的迭代訓(xùn)練次數(shù)為300次;
實(shí)驗(yàn)過程的每次迭代訓(xùn)練從訓(xùn)練集數(shù)據(jù)中選取的數(shù)據(jù)量大小是1000項(xiàng),每個(gè)batch size迭代訓(xùn)練次數(shù)為50次。
4.2 評(píng)價(jià)指標(biāo)
本文采用準(zhǔn)確率(Accuracy, AC)、真正率(True Positive Rate, TPR)和誤報(bào)率(False Positive Rate, FPR)作為評(píng)估IBIDM檢測(cè)性能的3個(gè)關(guān)鍵指標(biāo)。
指標(biāo)1 AC。分類器準(zhǔn)確預(yù)測(cè)的樣本數(shù)與測(cè)試集總樣本數(shù)的比值。
AC=TPTP+FP(8)
其中,TP(True Positive)為真正類,表示本屬于正類的樣本被準(zhǔn)確預(yù)測(cè)為正類的樣本數(shù);FP(False Positive)為假正類,表示本屬于負(fù)類的樣本被錯(cuò)誤預(yù)測(cè)為正類的樣本數(shù)。
指標(biāo)2 TPR。分類器將正樣本準(zhǔn)確預(yù)測(cè)為正樣本的數(shù)量與所有正樣本數(shù)量的比值。
TPR=TPTP+FN(9)
其中,F(xiàn)N(False Negative)為假負(fù)類,表示本屬于正類的樣本被錯(cuò)誤預(yù)測(cè)為負(fù)類的樣本數(shù)。
指標(biāo)3 FPR。分類器將負(fù)樣本錯(cuò)誤預(yù)測(cè)為正樣本的數(shù)量與所有負(fù)樣本數(shù)量的比值。
FPR=FPFP+TN(10)
其中,TN(True Negative)為真負(fù)類,表示本屬于負(fù)類的樣本被準(zhǔn)確預(yù)測(cè)為負(fù)類的樣本數(shù)。
4.3 實(shí)驗(yàn)設(shè)計(jì)
采用KDDTest+和KDDTest-21測(cè)試集分別開展3個(gè)檢測(cè)實(shí)驗(yàn)。每個(gè)實(shí)驗(yàn)具體設(shè)計(jì)如下:
實(shí)驗(yàn)1 以測(cè)試集KDDTest+和KDDTest-21中的五種數(shù)據(jù)類型Normal、Probe、DoS、U2R、R2L為5類標(biāo)簽,分別進(jìn)行分類檢測(cè),根據(jù)分類檢測(cè)模塊所輸出的五維混淆矩陣(檢測(cè)結(jié)果),計(jì)算IBIDM對(duì)4個(gè)攻擊類型的準(zhǔn)確率、真正率和誤報(bào)率指標(biāo),并根據(jù)評(píng)估指標(biāo)值繪制兩測(cè)試集關(guān)于誤報(bào)率與真正率的ROC曲線圖。
實(shí)驗(yàn)2 應(yīng)用NSL-KDD CUP數(shù)據(jù)集,對(duì)其他3種在入侵檢測(cè)方法中應(yīng)用的典型神經(jīng)網(wǎng)絡(luò)LeNet-5[22]、DBN(Deep Belief Net)[23]和RNN(Recurrent Neural Network)[24]進(jìn)行訓(xùn)練和檢測(cè),將檢測(cè)結(jié)果與IBIDM的檢測(cè)效果進(jìn)行對(duì)比分析。
實(shí)驗(yàn)3 應(yīng)用NSL-KDD CUP數(shù)據(jù)集,對(duì)基于CNN入侵檢測(cè)技術(shù)的2個(gè)典型入侵檢測(cè)模型IDABCNN和NIDMBCNN[15-16]分別進(jìn)行訓(xùn)練和檢測(cè),將檢測(cè)效果與IBIDM的檢測(cè)效果進(jìn)行對(duì)比分析。
4.4 實(shí)驗(yàn)結(jié)果
4.4.1 分類檢測(cè)與結(jié)果
該實(shí)驗(yàn)包括訓(xùn)練和測(cè)試兩個(gè)過程。在訓(xùn)練過程中,ICNN模型的整體訓(xùn)練誤差與迭代次數(shù)的關(guān)系如圖4所示。由圖4可見,隨著迭代次數(shù)的增加訓(xùn)練誤差逐漸減小;當(dāng)?shù)螖?shù)為50時(shí),誤差值最小,這說明ICNN模型結(jié)構(gòu)設(shè)計(jì)和模型訓(xùn)練的超參數(shù)設(shè)置較為合理,能夠滿足檢測(cè)要求。
在測(cè)試過程中,KDDTest +和KDDTest-21測(cè)試集在分類測(cè)試后輸出的五維混淆矩陣分別如表4和表5所示,這兩個(gè)矩陣即為具有五類標(biāo)簽樣本的測(cè)試分類結(jié)果,其中帶下劃線的數(shù)字表示各樣本類別被準(zhǔn)確預(yù)測(cè)的數(shù)量。
測(cè)試集KDDTest +和KDDTest-21四類攻擊類型的分類評(píng)估指標(biāo)結(jié)果分別如圖5所示。
由圖6可見,IBIDM對(duì)U2R型數(shù)據(jù)的檢測(cè)準(zhǔn)確率低于其他3種類型,這是由于U2R的樣本數(shù)據(jù)量太小,致使模型訓(xùn)練過程中,特征提取量較少,因而測(cè)試時(shí)分類器對(duì)其數(shù)據(jù)檢測(cè)能力較弱。
為了更直觀地評(píng)估IBIDM測(cè)試實(shí)驗(yàn),利用測(cè)試集KDDTest +與KDDTest-21分類測(cè)試后的樣本數(shù)據(jù)繪制了關(guān)于誤報(bào)率(FPR)與召回率(TPR)的ROC曲線圖,ROC曲線如圖6所示。
由圖6可見,IBIDM五分類測(cè)試的ROC曲線擬合程度較好,通過計(jì)算得到KDDTest +與KDDTest-21的AUC的值分別為0.9392和0.9020,說明通過ICNN訓(xùn)練的分類模型對(duì)正類樣本的排序能力很強(qiáng)。
4.4.2 對(duì)比實(shí)驗(yàn)與結(jié)果
為了進(jìn)一步驗(yàn)證IBIDM在網(wǎng)絡(luò)入侵檢測(cè)中的有效性,對(duì)在IDS中應(yīng)用的3種典型神經(jīng)網(wǎng)絡(luò)LeNet-5[22]、RNN[23]和DBN[24]檢測(cè)模型進(jìn)行檢測(cè)實(shí)驗(yàn)。分別對(duì)IBIDM和上述3個(gè)模型進(jìn)行了五分類檢測(cè)訓(xùn)練和檢測(cè)測(cè)試。
LeNet-5,RNN、DBN和IBIDM的檢測(cè)實(shí)驗(yàn)結(jié)果對(duì)比如表6所示。由表6可見,在測(cè)試集KDDTest+上,IBIDM與其他3個(gè)模型相比,檢測(cè)準(zhǔn)確率高于LeNet-5和DBN,略低于RNN,真正率略低于DBN并且略高于LeNet-5和RNN,而誤報(bào)率均低于其他3個(gè)模型;在測(cè)試集KDDTest-21上,IBIDM的檢測(cè)準(zhǔn)確率和真正率均高于其他三類模型,誤報(bào)率低于DBN,略高于LeNet-5和RNN,這說明ICNN對(duì)入侵檢測(cè)數(shù)據(jù)樣本的識(shí)別能力較強(qiáng)。
為了更好地驗(yàn)證IBIDM的有效性,對(duì)IDABCNN[15]和NIDMBCNN[16]分別進(jìn)行模型訓(xùn)練和測(cè)試,為保證實(shí)驗(yàn)結(jié)果具有可比性,檢測(cè)樣本均使用NSL-KDD數(shù)據(jù)集,檢測(cè)結(jié)果如表7所示。
由表7可見,在測(cè)試集KDDTest+上,IBIDM的檢測(cè)的準(zhǔn)確率低于NIDMBCNN,略高于IDABCNN,而真正率略高于IDABCNN和NIDMBCNN,誤報(bào)率也更低,側(cè)面表示出NSL-KDD數(shù)據(jù)集對(duì)提升實(shí)驗(yàn)檢測(cè)效果更有幫助。在測(cè)試集KDDTest-21上,IBIDM的檢測(cè)準(zhǔn)確率和真正率均高于其他兩類模型,但誤報(bào)率略高于后兩者,所以IBIDM有進(jìn)一步的提升空間。綜上研究,說明IBIDM的跨層聚合的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)方式能夠保證模型在訓(xùn)練過程中更好地提取特征信息,同時(shí)也反映出IBIDM的擬合程度較為理想,訓(xùn)練出的網(wǎng)絡(luò)模型對(duì)樣本數(shù)據(jù)分類效果較好。
5 實(shí)驗(yàn)與結(jié)果
針對(duì)目前基于深度學(xué)習(xí)技術(shù)的網(wǎng)絡(luò)入侵檢測(cè)方法普遍存在檢測(cè)效率較低、模型訓(xùn)練過程中易出現(xiàn)過擬合和泛化能力較差的情況,本文提出一種基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測(cè)模型,利用預(yù)處理后的訓(xùn)練集和測(cè)試集數(shù)據(jù),在IBIDM中進(jìn)行了分類訓(xùn)練和測(cè)試實(shí)驗(yàn)。實(shí)驗(yàn)結(jié)果表明,IBIDM的入侵檢測(cè)準(zhǔn)確率和真正率較高,誤報(bào)率較低??傮w上看,IBIDM發(fā)揮了深度學(xué)習(xí)模型對(duì)樣本數(shù)據(jù)的特征提取優(yōu)勢(shì)。
雖然本文方法在解決基于深度學(xué)習(xí)的入侵檢測(cè)方法存在的諸多問題上取得了良好效果,但是應(yīng)用深度學(xué)習(xí)技術(shù)進(jìn)行入侵檢測(cè)仍面臨一大難題,即在模型優(yōu)化過程中參數(shù)值無(wú)法收斂到全局最優(yōu),下一步對(duì)IBIDM的改進(jìn)重點(diǎn)集中在以下兩個(gè)方面:1)針對(duì)隨機(jī)梯度下降(SGD)算法在模型訓(xùn)練過程中易出現(xiàn)梯度彌散、損失函數(shù)易陷入局部最優(yōu)解的情況,考慮使用模擬退火、粒子群算法或者蟻群算法等群智能優(yōu)化算法代替其進(jìn)行參數(shù)調(diào)優(yōu)。2)嘗試使用其他數(shù)據(jù)集進(jìn)行訓(xùn)練和測(cè)實(shí)驗(yàn)證實(shí)驗(yàn),根據(jù)實(shí)驗(yàn)結(jié)果對(duì)算法和方法進(jìn)行繼續(xù)改進(jìn),進(jìn)一步提升入侵檢測(cè)模型的泛化能力和有效性。
參考文獻(xiàn)
[1]ZHENG K, CAI Z, ZHANG X, et al. Algorithms to speedup pattern matching for network intrusion detection systems [J]. Computer Communications, 2015, 62(C): 47-58.
[2]SUNG J S, KANG S M, KWON T G. Pattern matching acceleration for network intrusion detection systems [C]// Proceedings of the 2005 International Conference on Embedded Computer Systems: Architectures, Modeling, and Simulation. Berlin: Springer, 2005: 289-298.
[3]李鵬,周文歡.基于K-means和決策樹的混合入侵檢測(cè)算法[J]. 計(jì)算機(jī)與現(xiàn)代化, 2017(12):12-16.(LI P, ZHOU W H. Mixed intrusion detection algorithm based on K-means and decision tree [J]. Computer and Modernization, 2017(12): 12-16.)
[4]戚名鈺,劉銘,傅彥銘. 基于PCA的SVM網(wǎng)絡(luò)入侵檢測(cè)研究[J].信息網(wǎng)絡(luò)安全, 2015(2):15-18.(QI M Y, LIU M, FU Y M. Research on network intrusion detection using support vector machines based on principal component analysis [J]. Netinfo Security, 2015(2): 15-18.)
[5]XU Y, ZHAO H. Intrusion detection alarm filtering technology based on ant colony clustering algorithm [C]// Proceedings of the 2015 6th International Conference on Intelligent Systems Design and Engineering Applications. Washington, DC: IEEE Computer Society, 2016: 470-473.
[6]王秀英. 分布式網(wǎng)絡(luò)時(shí)序關(guān)聯(lián)入侵攻擊行為檢測(cè)系統(tǒng)設(shè)計(jì)[J]. 現(xiàn)代電子技術(shù), 2018, 41(3): 108-114. (WANG X Y. Design of temporal sequence association rule based intrusion detection behavior detection system for distributed network[J]. Modern Electronics Technique, 2018, 41(3): 108-114.)
[7]ROY S S, MALLIK A, GULATI R, et al. A deep learning based artificial neural network approach for intrusion detection [C]// Proceedings of the 2017 International Conference on Mathematics and Computing, CCIS 655. Berlin: Springer, 2017: 44-53.
[8]馬勇.模糊推理結(jié)合Michigan型遺傳算法的網(wǎng)絡(luò)入侵檢測(cè)方案[J].電子設(shè)計(jì)工程,2016,24(11):108-111.(MA Y. A network intrusion detection schemer based on fuzzy inference and Michigan genetic algorithm [J]. Electronic Design Engineering, 2016, 24(11): 108-111.)
[9]陳虹,萬(wàn)廣雪,肖振久.基于優(yōu)化數(shù)據(jù)處理的深度信念網(wǎng)絡(luò)模型 的入侵檢測(cè)方法[J].計(jì)算機(jī)應(yīng)用,2017,37(6):1636-1643.(CHEN H, WAN G X, XIAO Z J. Intrusion detection method of deep belief network model based on optimization of data processing [J]. Journal of Computer Applications, 2017, 37(6): 1636-1643.)
[10]QU F, ZHANG J, SHAO Z, et al. An intrusion detection model based on deep belief network [C]// Proceedings of the 2017 VI International Conference on Network, Communication and Computing. New York: ACM, 2017: 97-101.
[11]YIN C, ZHU Y, FEI J, et al. A deep learning approach for intrusion detection using recurrent neural networks [J]. IEEE Access, 2017, 5: 21954-21961.
[12]SHONE N, NGOC T N, PHAI V D, et al. A deep learning approach to network intrusion detection [J]. IEEE Transactions on Emerging Topics in Computational Intelligence, 2018, 2(1): 41-50.
[13]袁琴琴, 呂林濤. 基于改進(jìn)蟻群算法與遺傳算法組合的網(wǎng)絡(luò)入侵檢測(cè)[J]. 重慶郵電大學(xué)學(xué)報(bào)(自然科學(xué)版), 2017, 29(1): 84-89.(YUAN Q Q, LYU L T. Network intrusion detection method based on combination of improved ant colony optimization and genetic algorithm [J]. Journal of Chongqing University of Posts and Telecommunications (Natural Science Edition), 2017, 29(1): 84-89.
[14]魏明軍,王月月,金建國(guó). 一種改進(jìn)免疫算法的入侵檢測(cè)設(shè)計(jì)[J].西安電子科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2016,43(2):126-131.(WEI M J, WANG Y Y, JIN J G. Intrusion detection design of the impoved immune algorithm [J]. Journal of Xidian University (Natural Science), 2016, 43(2): 126-131.)
[15]賈凡,孔令智.基于卷積神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)算法[J].北京理工大學(xué)學(xué)報(bào),2017,37(12):1271-1275.(JIA F, KONG L Z. Intrusion detection algorithm based on convolutional neural network [J]. Transactions of Beijing Institute of Technology, 2017, 37(12): 1271-1275.)
[16]王明,李劍.基于卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)[J]. 信息安全研究,2017,3(11):990-994.(WANG M, LI J. Network intrusion detection model based on convolutional neural network[J]. Journal of Information Securyity Research, 2017, 3(11): 990-994.)
[17]KWON D K, NATARAJAN K, SUH S C, et al. An empirical study on network anomaly detection using convolutional neural networks [C]// Proceedings of the IEEE 38th International Conference on Distributed Computing Systems. Piscataway, NJ: IEEE, 2018: 1595-1598.
[18]VINAYAKUMAR R, SOMAN K P, POORNACHANDRAN P. Applying convolutional neural network for network intrusion detection [C]// Proceedings of the 2017 International Conference on Advanced Computing, Communications and Informatics. Piscataway, NJ: IEEE, 2017: 1222-1228.
[19]DHANABAL L, PERIYASAMY S S. A study on NSL-KDD dataset for intrusion detection system based on classification algorithms [J]. International Journal of Advanced Research in Computer and Communication Engineering, 2015, 4(6): 446-452.
[20]NSL-KDD dataset [EB/OL]. [2018-07-20]. http://nsl.cs.unb.ca/NSL- KDD/.
[21]TensorFlow-GPU [EB/OL]. [2018-07-20]. https://www.tensorflow. org/.
[22]LECUN Y, BOTTOU L, BENGIO Y, et al. Gradient-based learning applied to document recognition [J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324.
[23]HINTON G E, OSINDERO S, TEH Y. A fast learning algorithm for deep belief nets [J]. Neural Computation, 2006, 18(7): 1527-1554.
[24]CHUNG J, GULCEHRE C, CHO K, et al. Gated feedback recurrent neural networks [C]// Proceedings of the 2015 International Conference on Machine Learning. New York: International Machine Learning Society, 2015: 2067-2075.
This work is partially supported by the Civil Aviation Joint Research Fund Project of National Natural Science Foundation of China (U1833107), the National Science and Technology Major Project (2012ZX03002002).
YANG Hongyu, born in 1969, Ph. D., professor. His research interests include network information security.
WANG Fengyan, born in 1993, M. S. candidate. His research interests include network information security.