張安琳,張啟坤,黃道穎,劉江豪,李建春,陳孝文
(1.鄭州輕工業(yè)大學(xué) 工程訓(xùn)練中心,河南 鄭州 450001;2.鄭州輕工業(yè)大學(xué) 計算機(jī)與通信工程學(xué)院,河南 鄭州 450001)
入侵檢測系統(tǒng)(intrusion detection system,IDS)中常見的深度學(xué)習(xí)方法[1-3]主要有多層感知器(multilayer perceptron, MLP)、卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks, CNN)[4]、循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network, RNN)、自編碼器(autoencoder, AE)等。其中,循環(huán)神經(jīng)網(wǎng)絡(luò)又包含長短期記憶網(wǎng)絡(luò)(long shortterm memory, LSTM)和門控循環(huán)單元(gated recurrent unit, GRU)2種變體。
Roy等[5]將MLP應(yīng)用于入侵檢測,并與支持向量機(jī)進(jìn)行對比,精度有明顯的提升,但在特征數(shù)量較多、維度較高的環(huán)境中,僅MLP通常難以得到良好的訓(xùn)練效果。Wang等[6]將處理過的流量數(shù)據(jù)轉(zhuǎn)換成像素,利用CNN將流量數(shù)據(jù)以圖片的形式進(jìn)行輸入和訓(xùn)練,得到較高的二分類準(zhǔn)確率(100%)和多分類準(zhǔn)確率(99.17%)。Naseer等[7]使用CNN、RNN和AE等不同神經(jīng)網(wǎng)絡(luò)架構(gòu)來構(gòu)建分類模型,實驗結(jié)果表明,CNN和LSTM在入侵檢測的分類中能夠表現(xiàn)出良好的效果。Kim等[8]使用LSTM構(gòu)建檢測系統(tǒng),在KDD-Cup99數(shù)據(jù)集上取得了96.93%的準(zhǔn)確率,但誤報率達(dá)到了10.04%。Putchala[9]提出在物聯(lián)網(wǎng)領(lǐng)域使用GRU進(jìn)行入侵檢測研究,但實驗僅在KDD-Cup99數(shù)據(jù)集上進(jìn)行,未實現(xiàn)應(yīng)用于物聯(lián)網(wǎng)相關(guān)數(shù)據(jù)的設(shè)想。王偉[10]結(jié)合CNN和LSTM對流量數(shù)據(jù)進(jìn)行學(xué)習(xí),在CNN提取流量數(shù)據(jù)空間特征的基礎(chǔ)上再使用LSTM提取數(shù)據(jù)的時序特征,得到了較高的精度并保持較低的誤報率,但該方法在CNN特征提取時可能會損失部分?jǐn)?shù)據(jù)信息的時間特性。研究表明,這些基于深度學(xué)習(xí)的入侵檢測系統(tǒng)在處理大數(shù)據(jù)時性能更好[11],但仍存在一些問題。
(1)數(shù)據(jù)集過時。以往的入侵檢測研究大多基于KDD-Cup99和NSL-KDD數(shù)據(jù)集,距今已有近20年歷史,不能很好地反映當(dāng)下網(wǎng)絡(luò)狀況。
(2)數(shù)據(jù)樣本不平衡。分類研究通常更注重提升模型總體的評價指標(biāo),如準(zhǔn)確率、精確率等,忽視了對少數(shù)類樣本的分類問題。但在真實的網(wǎng)絡(luò)環(huán)境中,這些少數(shù)類攻擊會比多數(shù)類攻擊產(chǎn)生更大的破壞和影響。然而,目前基于KDD-Cup99等數(shù)據(jù)集的研究通常都直接使用官方提供的訓(xùn)練和測試樣本,較少有研究工作涉及入侵檢測問題下的數(shù)據(jù)不平衡問題以及相關(guān)的解決方案[12]。
(3)特征學(xué)習(xí)不全面。以往的研究大多基于單種神經(jīng)網(wǎng)絡(luò):CNN可以學(xué)習(xí)數(shù)據(jù)中的空間特征,精確地提取局部特征,但是學(xué)習(xí)不到時序特征;RNN可以對數(shù)據(jù)中的時序特征進(jìn)行提取,分析信息的長期依賴關(guān)系,但是不能有效提取空間特征[13],且RNN只能學(xué)習(xí)數(shù)據(jù)單一方向的時序特征,沒有充分考慮到流量數(shù)據(jù)前后信息對當(dāng)前狀態(tài)的共同影響。
為了解決入侵檢測研究中出現(xiàn)的上述問題,本文提出一種基于CNN與BiGRU(bidirectional gated recurrent unit)[14]融合神經(jīng)網(wǎng)絡(luò)入侵檢測模型,結(jié)構(gòu)如圖1所示。本文模型主要由數(shù)據(jù)預(yù)處理模塊和融合神經(jīng)網(wǎng)絡(luò)模塊兩部分組成,其特點有:
圖1 基于CNN與BiGRU融合神經(jīng)網(wǎng)絡(luò)入侵檢測模型
(1)使用2018年最新的入侵檢測數(shù)據(jù)集CSE-CIC-IDS2018進(jìn)行模型的訓(xùn)練和測試[15],該數(shù)據(jù)集包含最新的網(wǎng)絡(luò)攻擊,且滿足現(xiàn)實世界攻擊的所有標(biāo)準(zhǔn)[16]。
(2)對數(shù)據(jù)集進(jìn)行清洗,并通過基于平均不純度減少(mean decrease impurity,MDI)的特征選擇算法進(jìn)行特征優(yōu)化降維,降低了計算機(jī)的資源消耗,提高了整體的計算效率。
(3)使用SMOTE-Tomek算法對數(shù)據(jù)集進(jìn)行了數(shù)據(jù)層面的平衡處理,避免了使用一般過采樣方法產(chǎn)生的過擬合、樣本“入侵”以及模糊邊界等問題。
(4)將一維數(shù)據(jù)轉(zhuǎn)化為二維矩陣,使用CNN進(jìn)行二維卷積,充分提取數(shù)據(jù)的空間特征;使用雙向門控循環(huán)單元(BiGRU)進(jìn)行數(shù)據(jù)時序特征的雙向提取,充分學(xué)習(xí)數(shù)據(jù)的時間特征。
(5)引入注意力機(jī)制(attention mechanism, AM)進(jìn)行特征加權(quán),提高模型的整體性能。
數(shù)據(jù)預(yù)處理部分主要包括原始數(shù)據(jù)集的清洗、特征選擇、數(shù)據(jù)集平衡等操作。數(shù)據(jù)集的清洗采用的是常規(guī)方法,限于篇幅,不再介紹。
1.1.1 特征選擇
(1)無用特征刪除。入侵檢測系統(tǒng)應(yīng)該根據(jù)流量信息的行為特征進(jìn)行分類,避免偏向于特定標(biāo)識所附帶的信息,因此需要將涉及特定網(wǎng)絡(luò)標(biāo)識的特征刪除;通過分析數(shù)據(jù),將同一特征下數(shù)值相同的特征列刪除。
(2)特征重要性。特征重要性用來評估數(shù)據(jù)特征對入侵檢測系統(tǒng)分類的影響程度,用其Gini重要性來衡量,通過計算特征重要性評分VIM可以篩選出數(shù)據(jù)的重要特征,從而進(jìn)行特征優(yōu)化。
假設(shè)有m個特征X1,X2,...,Xm,要計算出每個特征Xj的Gini指數(shù)評分VIMj,即第j個特征在隨機(jī)森林所有決策樹中節(jié)點分裂“不純度”的平均改變量,Gini指數(shù)用GI表示:
(1)
式中:K表示有K個特征樣本類別;pmk表示節(jié)點m(將特征m逐個對節(jié)點計算Gini值變化量)中類別k所占的比例。
特征Xj在節(jié)點m的重要性,即節(jié)點m分枝前后的Gini指數(shù)變化量為
VIMjm=GIm-GIl-GIr。
(2)
式中:GIl和GIr分別為節(jié)點m左、右分支的新節(jié)點的Gini指數(shù)。
如果特征Xj在決策樹i中出現(xiàn)的節(jié)點在集合M中,則第i棵樹中特征Xj的重要性為
(3)
在有n棵樹的隨機(jī)森林中,特征Xj的重要性為
(4)
將特征重要性進(jìn)行歸一化處理,得到特征重要性評分:
(5)
所有特征的特征重要性評分之和為1,其特征重要性評分代表了該特征對數(shù)據(jù)分類的貢獻(xiàn)大小。
1.1.2 數(shù)據(jù)集平衡
(1)SMOTE(synthetic minority over-sampling technique)算法。SMOTE算法是數(shù)據(jù)層面應(yīng)用最廣泛的過采樣算法[17]。SMOTE算法有效解決了隨機(jī)過采樣方法產(chǎn)生的過擬合問題,SMOTE算法為解決數(shù)據(jù)不平衡問題提供了新的思路,但存在一定的局限性:SMOTE算法中根樣本與輔助樣本的選擇決定了新樣本的合成,然而在合成少數(shù)類樣本時,忽視了多數(shù)類樣本的分布情況。若根樣本與輔助樣本均處于少數(shù)類所在區(qū)域,則合成的新樣本是符合要求的。但在實際運算中,如果根樣本與輔助樣本中有一個是噪聲樣本,那么合成的新樣本將極有可能出現(xiàn)在多數(shù)類樣本區(qū)域,出現(xiàn)合成的少數(shù)類樣本入侵多數(shù)類樣本空間的問題。此外,若SMOTE算法選定位于類邊界的少數(shù)類樣本合成新樣本,且其k近鄰樣本也處于類的邊界,那么經(jīng)插值合成的少數(shù)類樣本也同樣會出現(xiàn)在兩類的重疊區(qū)域,從而模糊兩類的邊界。
(2)Tomek Links算法。Tomek Links算法是一種數(shù)據(jù)欠采樣算法[18],其基本原理:給定一些樣本對(xi,xj),其中xi∈Smax,xj∈Smin,xi和xj的距離記為d(xi,xj)。若不存在任一樣本xk使得d(xi,xk) 為解決SMOTE算法導(dǎo)致的樣本入侵問題以及模糊邊界問題,將Tomek Links算法和SMOTE算法相結(jié)合,稱之為SMOTE-Tomek算法,來解決數(shù)據(jù)的不平衡問題。首先使用SMOTE算法對原始數(shù)據(jù)進(jìn)行過采樣操作來合成少數(shù)類樣本,然后使用Tomek Links算法對經(jīng)過SMOTE算法處理的數(shù)據(jù)進(jìn)行清洗,移除數(shù)據(jù)集中存在的Tomek Links對,從而過濾掉兩類之間的噪聲數(shù)據(jù)和重疊樣本。 融合神經(jīng)網(wǎng)絡(luò)模塊主要由CNN、BiGRU、注意力機(jī)制以及分類器構(gòu)成。在入侵檢測的數(shù)據(jù)分析及特征提取中,既需要分析空間層面的特征聯(lián)系,也應(yīng)該考慮到時間層面上特征之間的變化規(guī)律。融合神經(jīng)網(wǎng)絡(luò)可以提取局部平行特征,同時能夠分析各特征點前、后信息對該特征點的影響。CNN在圖像處理上表現(xiàn)出更加優(yōu)異的性能,因此,為了充分學(xué)習(xí)流量數(shù)據(jù)的空間特征,在使用CNN進(jìn)行學(xué)習(xí)之前,將一維流量數(shù)據(jù)轉(zhuǎn)化為二維矩陣進(jìn)行輸入,以便CNN將流量數(shù)據(jù)當(dāng)作圖像進(jìn)行卷積處理。使用BiGRU代替普通的GRU,以一維文本數(shù)據(jù)格式進(jìn)行特征提取,充分獲取流量數(shù)據(jù)的雙向時間特征。CNN和BiGRU在本模型中的實現(xiàn)見圖2中對應(yīng)部分,限于篇幅,本文不再展開介紹。 注意力機(jī)制[19]是對輸入信息的加權(quán)求和,根據(jù)信息的重要程度確定權(quán)重。通過注意力機(jī)制可以充分挖掘數(shù)據(jù)的特征信息,提高分類的準(zhǔn)確率[20]。本文CNN和BiGRU中分別添加相應(yīng)的注意力機(jī)制進(jìn)行特征加權(quán),以提高模型的整體性能。注意力機(jī)制的運算過程:使用tanh函數(shù)對經(jīng)過神經(jīng)網(wǎng)絡(luò)處理的隱藏狀態(tài)序列ht進(jìn)行非線性變換,得到ht的隱式表示ut。對ut進(jìn)行加權(quán)處理,得到注意力權(quán)值αt。依據(jù)注意力權(quán)值對序列的隱含向量進(jìn)行加權(quán),得到最終流量的新特征向量v。 ut=tanh(Wtht+bt); (6) (7) (8) 式中:Wt、uw均為權(quán)重矩陣;bt為偏置量。 在CNN和BiGRU中分別引入注意力機(jī)制賦予特征權(quán)重,隨后將兩神經(jīng)網(wǎng)絡(luò)提取的特征信息進(jìn)行融合,通過全連接網(wǎng)絡(luò)進(jìn)行處理,并通過Softmax分類器輸出分類結(jié)果。本文構(gòu)建的融合神經(jīng)網(wǎng)絡(luò)模型結(jié)構(gòu)如圖2所示。 圖2 本文融合神經(jīng)網(wǎng)絡(luò)模型 這樣一來,在入侵檢測的特征提取中,既考慮了空間層面的特征聯(lián)系,也考慮了時間層面上特征之間的變化規(guī)律。該融合神經(jīng)網(wǎng)絡(luò)利用CNN提取局部平行特征,同時利用BiGRU獲取流量數(shù)據(jù)的雙向時間特征,對長距離時間關(guān)聯(lián)依賴特征進(jìn)行特征提取,從而分析各特征點前、后信息對該特征點的影響。由于CNN與LSTM為并聯(lián)處理關(guān)系,而非串聯(lián)處理關(guān)系[10],這樣就避免了文獻(xiàn)[10]方法在最初的CNN特征提取時可能會損失部分?jǐn)?shù)據(jù)信息時間特性的問題,并且可以得到較高的精度和較低的誤報率,與文獻(xiàn)[10]結(jié)果一致,從而較好地解決了單一神經(jīng)網(wǎng)絡(luò)特征學(xué)習(xí)不全面的問題。 實驗采用的微型機(jī)處理器為Intel Core i5,內(nèi)存為16.0 GB,顯卡為GeForce GTX 1650,操作系統(tǒng)為Windows 10,編程語言為Python 3.5.4,框架為Keras 2.4.3,后端采用Tensorflow-GPU 2.2.0,實驗利用CUDA(compute unified device architecture)進(jìn)行GPU加速,加快模型訓(xùn)練。 2.2.1 數(shù)據(jù)集的數(shù)據(jù)清洗 CSE-CIC-IDS2018入侵檢測數(shù)據(jù)集共有83個數(shù)據(jù)特征字段(又稱為標(biāo)簽)和1個類別標(biāo)簽,共計84個標(biāo)簽。由正常流量(標(biāo)簽為Benign)和14種攻擊流量構(gòu)成,包含7種攻擊場景。經(jīng)過數(shù)據(jù)清洗的數(shù)據(jù)集流量類別分布如表1所示。 表1 數(shù)據(jù)集流量類別分布 2.2.2 特征選擇 CSE-CIC-IDS2018入侵檢測數(shù)據(jù)集中每個數(shù)據(jù)包括84個特征字段[15]。在實際入侵檢測系統(tǒng)運用中,數(shù)據(jù)集中包含冗余特征,使用時會增加計算工作量、降低檢測速度、影響入侵檢測的泛化性。入侵檢測系統(tǒng)應(yīng)該根據(jù)網(wǎng)絡(luò)流量的行為特征進(jìn)行分類,不應(yīng)偏向于IP地址等具有特定網(wǎng)絡(luò)標(biāo)識的信息,因此預(yù)處理過程中刪掉了Flow ID、Src IP、Src Port、Dst IP、Timestamp這5個涉及特定網(wǎng)絡(luò)標(biāo)識的特征字段;信息相同的數(shù)據(jù)字段不會對分類提供有效信息,因此刪掉了Bwd PSH Flags、Fwd URG Flags、Bwd URG Flags、CWE Flag Count、Fwd Byts/b Avg、Fwd Pkts/b Avg、Fwd Blk Rate Avg、Bwd Byts/b Avg、Bwd Pkts/b Avg、Bwd Blk Rate Avg這10個數(shù)據(jù)值全為0的特征字段,數(shù)據(jù)集剩余68個特征字段。依據(jù)前述特征重要性評分公式(5),計算得到剩余68個特征字段的特征重要性評分。為了構(gòu)建8×8的卷積神經(jīng)網(wǎng)絡(luò)數(shù)據(jù)矩陣,再按照特征重要性評分大小對特征字段進(jìn)行排序,將特征重要性最低的Fwd PSH Flags、FIN Flag Cnt、SYN Flag Cnt、Active Mean這4個特征字段刪除,數(shù)據(jù)集剩余64個特征字段。 考慮到計算機(jī)性能限制,本次實驗從正常流量中隨機(jī)抽取2×106條流量作為正常流量的總樣本,攻擊類流量樣本不變。經(jīng)過其他處理的數(shù)據(jù)集數(shù)據(jù)按照8∶1∶1的比例拆分為訓(xùn)練集、驗證集和測試集。 在多分類中,使用隨機(jī)采樣對訓(xùn)練集中部分多數(shù)類樣本進(jìn)行下采樣操作,同時使用SMOTE-Tomek算法對部分少數(shù)類樣本進(jìn)行合成和清洗,完成訓(xùn)練集的數(shù)據(jù)平衡。 為了對模型的性能進(jìn)行充分評估,實驗采用準(zhǔn)確率、精確率、召回率以及F1值作為模型評價指標(biāo)。 對于多分類問題,對某種流量類別進(jìn)行分類評估時,將該流量類別視為正樣本,其余流量類別均視為負(fù)樣本。 模型超參數(shù)的選取會直接影響模型的效果。本文模型采用Nadam優(yōu)化算法代替Adam加強對學(xué)習(xí)率的約束[21],使用F1值評價指標(biāo)作為模型超參數(shù)優(yōu)化指標(biāo),得到實驗最佳超參數(shù)設(shè)置:BiGRU隱藏層節(jié)點數(shù)為64;卷積核大小為3×3;丟棄率為0.5;批大小為256;迭代次數(shù)為100;學(xué)習(xí)率為0.002。其中,學(xué)習(xí)率為動態(tài)變化的,初始值為0.002,當(dāng)參數(shù)狀態(tài)越來越逼近全局最優(yōu)點時,學(xué)習(xí)率按一定比例降低。 為了驗證SMOTE-Tomek算法對數(shù)據(jù)平衡的有效性,將經(jīng)過SMOTE-Tomek算法處理和未經(jīng)過SMOTE-Tomek算法處理的數(shù)據(jù)集在本文模型上進(jìn)行對比檢測,得到數(shù)據(jù)集平衡前后各類別識別準(zhǔn)確率如圖3所示。 圖3 數(shù)據(jù)集平衡前后各流量類別識別準(zhǔn)確率 經(jīng)SMOTE-Tomek算法處理的數(shù)據(jù)集較未經(jīng)過處理的數(shù)據(jù)集在少數(shù)類的識別精度上提升明顯。經(jīng)SMOTE-Tomek算法處理,DoS attacks-Slow HTTP Test識別準(zhǔn)確率從0提升至34.66%,SQL Injection識別準(zhǔn)確率從0提升至100%,DDoS attack-LOIC-UDP、Brute Force-Web和Brute Force-XSS分別提升了5.22百分點、6.55百分點和35.71百分點,F(xiàn)TP-BruteForce識別準(zhǔn)確率降低了10.62百分點。通過分析混淆矩陣發(fā)現(xiàn),F(xiàn)TP-BruteForce和DoS attacks-Slow HTTP Test極易發(fā)生混淆,平衡處理前,系統(tǒng)將DoS attacks-Slow HTTP Test全部誤判為FTP-BruteForce,經(jīng)過平衡處理后,雖然FTP-BruteForce識別準(zhǔn)確率有所下降,但可以更好地將兩類區(qū)分。 實驗結(jié)果證明了SMOTE-Tomek數(shù)據(jù)集平衡算法對于提升模型檢測效果的有效性。 選取經(jīng)典的單一深度學(xué)習(xí)模型與本文模型進(jìn)行性能比較,對比實驗為多分類方式。 實驗中,使用CNN、LSTM和GRU單一模型與本文模型進(jìn)行對比。所有模型均使用經(jīng)過SMOTE-Tomek算法處理過的訓(xùn)練集對模型進(jìn)行訓(xùn)練,分別比較這幾種模型對各類別流量分類的性能,以精確率、召回率和F1值為評價指標(biāo)。多分類結(jié)果如表2所示。 表2 CNN、LSTM、GRU模型與本文模型的多分類性能對比 由表2可知,本文模型應(yīng)用于多分類問題時的總體性能良好,除FTP-BruteForce外,模型各類別分類評分均高于CNN、LSTM和GRU模型。因FTP-BruteForce和DoS attacks-Slow HTTP Test極易發(fā)生混淆,故DoS attacks-Slow HTTP Test召回率得到明顯提升后,F(xiàn)TP-BruteForce召回率有所下降,但本文模型中FTP-BruteForce分類取得了更高的精確率和F1值。Infiltration類分類性能較其他幾種神經(jīng)網(wǎng)絡(luò)模型提升明顯,召回率較CNN模型提升了9.38百分點。 本文模型總的分類精確率、召回率以及F1值均高于其他幾種單一神經(jīng)網(wǎng)絡(luò)模型,其中各攻擊流量類別的總評精確率比LSTM模型提升了2.10百分點;總評召回率比LSTM模型提升了1.50百分點;總評F1值比GRU模型提升了1.97百分點。 綜上實驗結(jié)果,之所以取得較好的性能,是由于本文模型利用CNN對局部平行特征進(jìn)行特征提取,避免特征丟失,能夠提取深層次信息;同時,利用BiGRU對長距離時間關(guān)聯(lián)依賴特征進(jìn)行特征提取,充分考慮到數(shù)據(jù)集平衡前后信息對當(dāng)前的影響,有效降低檢測誤報率,較好地解決了單一神經(jīng)網(wǎng)絡(luò)特征學(xué)習(xí)不全面的問題。 針對當(dāng)前深度學(xué)習(xí)入侵檢測中存在的數(shù)據(jù)集不平衡及特征信息學(xué)習(xí)不全面等問題,提出了一種基于CNN與BiGRU融合神經(jīng)網(wǎng)絡(luò)入侵檢測模型。通過SMOTE-Tomek算法完成對數(shù)據(jù)集的平衡處理,使用基于平均不純度減少的特征重要性算法實現(xiàn)特征選擇,將CNN和BiGRU模型進(jìn)行特征融合并引入注意力機(jī)制進(jìn)行特征提取,從而提高模型的總體檢測性能。實驗結(jié)果表明,SMOTE-Tomek算法能夠有效對數(shù)據(jù)進(jìn)行平衡,加強了各檢測模型對少數(shù)類樣本的學(xué)習(xí)。同時,通過與經(jīng)典單一深度學(xué)習(xí)模型的對比實驗表明,該模型能夠在更全面地提取數(shù)據(jù)特征的同時,還能在各項評價指標(biāo)中獲得更好的效果。1.2 融合神經(jīng)網(wǎng)絡(luò)模塊
2 實驗部分
2.1 實驗環(huán)境
2.2 數(shù)據(jù)集預(yù)處理
2.3 數(shù)據(jù)集拆分與平衡
2.4 評價指標(biāo)
2.5 超參數(shù)設(shè)置
3 結(jié)果分析
3.1 SMOTE-Tomek數(shù)據(jù)平衡算法的有效性
3.2 融合神經(jīng)網(wǎng)絡(luò)模型性能分析
4 結(jié)論