楊曉文 張 健 況立群 龐 敏
(中北大學(xué)計算機(jī)科學(xué)與技術(shù)學(xué)院 太原 030051)
(機(jī)器視覺與虛擬現(xiàn)實山西省重點實驗室 太原 030051)
(山西省視覺信息處理及智能機(jī)器人工程研究中心 太原 030051)
近年來,網(wǎng)絡(luò)入侵問題愈發(fā)嚴(yán)重,引起公眾的關(guān)注.深度學(xué)習(xí)已經(jīng)被應(yīng)用于網(wǎng)絡(luò)入侵檢測領(lǐng)域,并且取得了一些檢測效果.文獻(xiàn)[1]提出了一種基于云計算的網(wǎng)絡(luò)入侵檢測模型,利用多層感知機(jī)神經(jīng)網(wǎng)絡(luò)和粒子群優(yōu)化算法實現(xiàn)對NSL-KDD和KDD-CUP數(shù)據(jù)集的入侵檢測,但是其預(yù)測結(jié)果的準(zhǔn)確性有待進(jìn)一步提高.文獻(xiàn)[2]提出了一種分布式網(wǎng)絡(luò)安全框架,使用隨機(jī)森林分類技術(shù)對CIC-IDS-2017數(shù)據(jù)集進(jìn)行了網(wǎng)絡(luò)流量的識別和分類,但是所提出的方法并不能識別每一種流量類別.文獻(xiàn)[3]在CIC-IDS-2018數(shù)據(jù)集上使用ReLu作為每個卷積層的激活函數(shù),表明了卷積神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確度高于循環(huán)神經(jīng)網(wǎng)絡(luò),但是針對一些特定類別的網(wǎng)絡(luò)攻擊,其預(yù)測精度還是低于70%.文獻(xiàn)[4]提出RNN-LSTM模型的入侵檢測方法,使用KDD99數(shù)據(jù)集實現(xiàn)了對網(wǎng)絡(luò)流量的分類,但是數(shù)據(jù)集網(wǎng)絡(luò)流量種類少,缺乏說服力.文獻(xiàn)[5]提出了CNN-BiLSTM模型,在數(shù)據(jù)集DARPA1998上進(jìn)行特征提取并且分類,但是在進(jìn)行特征提取時會損失特征的時間特性.文獻(xiàn)[6]使用堆疊LSTM網(wǎng)絡(luò)檢測拒絕服務(wù)攻擊,雖然極大程度地提高了檢測精度,但是由于其模型結(jié)構(gòu)復(fù)雜,參數(shù)較多,整體預(yù)測效率不高.文獻(xiàn)[7]使用長短期記憶循環(huán)神經(jīng)網(wǎng)絡(luò)和門控循環(huán)單元模型針對物聯(lián)網(wǎng)流量數(shù)據(jù)進(jìn)行了有效的檢測和追蹤,但是該模型忽略了不同類型流量數(shù)據(jù)的重要性差異,同等看待不同類型數(shù)據(jù)流量導(dǎo)致分類預(yù)測精度的降低.
根據(jù)以上文獻(xiàn)分析,入侵檢測模型的優(yōu)缺點主要取決于特征提取.在現(xiàn)有研究中,傳統(tǒng)的網(wǎng)絡(luò)入侵檢測方法缺乏獨立學(xué)習(xí)的能力[8],導(dǎo)致檢測的準(zhǔn)確性降低.為了解決這些問題,本文針對網(wǎng)絡(luò)流量數(shù)據(jù)的非線性和時序的特點,提出了一種基于CNN-BiGRU-Attention的網(wǎng)絡(luò)入侵檢測模型,用于檢測常見的網(wǎng)絡(luò)攻擊.
深度學(xué)習(xí)模型在入侵檢測領(lǐng)域取得了良好的研究效果,特別是CNN模型和RNN模型,其變體獨立應(yīng)用和組合應(yīng)用時,在獲取數(shù)據(jù)的時空特征方面具有顯著的優(yōu)勢[9].
CNN模型在深度學(xué)習(xí)領(lǐng)域應(yīng)用十分廣泛:Vinayakumar等人[10]的研究表明,CNN及其變體架構(gòu)在網(wǎng)絡(luò)入侵檢測領(lǐng)域優(yōu)于經(jīng)典的機(jī)器學(xué)習(xí)架構(gòu);文獻(xiàn)[11]的實驗結(jié)果表明,基于CNN的入侵檢測模型展現(xiàn)出了良好的特征提取能力和較高的檢測率,提高數(shù)據(jù)特征的質(zhì)量,為提高網(wǎng)絡(luò)流量入侵檢測的準(zhǔn)確性奠定了基礎(chǔ).鑒于此本文提出的模型引入了CNN架構(gòu).
RNN架構(gòu)在內(nèi)部反饋方面優(yōu)于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò),每層之間都有前饋連接[12],因此可以將CNN與RNN或者其改進(jìn)模型集成在一個模型中,從而提取數(shù)據(jù)的時序特征,有效地針對網(wǎng)絡(luò)流量進(jìn)行特征分類[13].
人們在觀察圖像時通常傾向于更多地關(guān)注圖像的某些局部區(qū)域,而不是圖像的整體.在ImageNet 2017上,Szegedy等人[14]提出了一種基于通道注意力機(jī)制激勵網(wǎng)絡(luò),贏得了圖像分類挑戰(zhàn).卷積注意力模塊(CBAM)[15]是在通道注意力機(jī)制激勵網(wǎng)絡(luò)的基礎(chǔ)上通過添加Maxpool的信道改進(jìn)的,文獻(xiàn)[15]通過大量實驗,表明添加注意力機(jī)制可以有效地提高模型分類的性能.基于此,本文在網(wǎng)絡(luò)流量入侵檢測中引入了注意力機(jī)制來提高分類器的性能.
網(wǎng)絡(luò)流量數(shù)據(jù)集是一種時間序列數(shù)據(jù),本文提出的CNN-BiGRU-Attention模型在公開可用的數(shù)據(jù)源上進(jìn)行訓(xùn)練,利用CNN網(wǎng)絡(luò)的卷積和池化操作提取數(shù)據(jù)局部特征;利用前向GRU和后向GRU對時序數(shù)據(jù)進(jìn)行長期依賴特征提取;并融合注意力機(jī)制對各個特征進(jìn)行不同權(quán)重的分配,提出了一種基于CNN-BiGRU并融合注意力機(jī)制的入侵檢測模型.模型結(jié)構(gòu)如圖1所示:
圖1 網(wǎng)絡(luò)入侵檢測模型結(jié)構(gòu)
在本文的研究中,由于網(wǎng)絡(luò)數(shù)據(jù)集是1維序列數(shù)據(jù),所以使用1維卷積層進(jìn)行特征提取.首先使用CNN網(wǎng)絡(luò)對網(wǎng)絡(luò)入侵流量數(shù)據(jù)提取特征并進(jìn)行分析;CNN模型中交替配置卷積層與池化層,可以提高特征提取的效率[16];卷積層將網(wǎng)絡(luò)流量數(shù)據(jù)連續(xù)映射到高維,并且從這些網(wǎng)絡(luò)流量數(shù)據(jù)中訓(xùn)練出特征數(shù)據(jù),并且及時糾正模型的檢測效果;最后使用Softmax分類器對提取到的網(wǎng)絡(luò)入侵流量特征進(jìn)行分類,即可實現(xiàn)對網(wǎng)絡(luò)入侵流量數(shù)據(jù)的特征提取與分類.
GRU(門控循環(huán)單元)是RNN網(wǎng)絡(luò)的改進(jìn)模型,其內(nèi)部結(jié)構(gòu)簡單,參數(shù)更少,不僅能夠避免反向傳播中的梯度消失問題,而且在計算速度和效率方面優(yōu)于RNN.在GRU單元中,將之前的隱藏狀態(tài)與當(dāng)前的輸入連接,乘以各自的權(quán)重,然后通過sigmoid函數(shù)傳遞.重置門的結(jié)果矢量輸出與之前的隱藏狀態(tài)相乘,將當(dāng)前輸入添加到該狀態(tài),并通過tanh函數(shù)傳遞[17].
(1)
(2)
(3)
(4)
u′=Uv⊙(ht-1),
(5)
ht=r′⊙(1-Uv)+u,
(6)
式中,σ為sigmoid函數(shù),h為輸入的網(wǎng)絡(luò)流量信息,W為更新門與重置門對應(yīng)輸入流量數(shù)據(jù)的權(quán)值矩陣,U為本神經(jīng)元輸出隱狀態(tài)對本神經(jīng)元內(nèi)隱狀態(tài)數(shù)據(jù)ht與上一神經(jīng)元傳遞隱狀態(tài)數(shù)據(jù)的Hadamard乘積所賦的權(quán)重值,b為偏置值,以上學(xué)習(xí)參數(shù)隨著模型的訓(xùn)練而更新.
在本文的網(wǎng)絡(luò)安全態(tài)勢預(yù)測中,由于網(wǎng)絡(luò)流量數(shù)據(jù)具有時間序列的特征,具有時間依賴性[18],因此需要更深入的時間特征提取,盡管GRU在順序數(shù)據(jù)的處理方面表現(xiàn)出強(qiáng)大的能力,但是它的隱藏狀態(tài)只考慮前向連接進(jìn)行信息捕獲,而忽略后向連接進(jìn)行信息捕獲,相比之下,雙向門控循環(huán)單元(BiGRU)能獲取過去的信息并且能預(yù)測未來的狀態(tài),而且BiGRU能充分利用不同類型流量的時間相關(guān)性實現(xiàn)全局檢測并發(fā)現(xiàn)潛在的異常行為.
注意力機(jī)制專注于輸入數(shù)據(jù)的最關(guān)鍵部分,充分挖掘了網(wǎng)絡(luò)流量數(shù)據(jù)的深層次特征信息,聚焦于高影響的流量類別特征,從而實現(xiàn)了對不同類別的流量數(shù)據(jù)基于重要程度分配不同的權(quán)值.注意力機(jī)制的轉(zhuǎn)換過程如式(7)~(10)所示:
(7)
(8)
(9)
(10)
實驗采用的服務(wù)器處理器為Intel?Xeon?W-2245 CPU@3.90GHz,內(nèi)存為64.0GB,顯卡為GeForce RTX 3090,操作系統(tǒng)為Linux,編程語言為python3.8.13,框架為Keras2.4.3,后端采用Tensorflow 2.6.0.
3.2.1 數(shù)據(jù)集清洗
CIC-IDS-2017入侵檢測數(shù)據(jù)集[8]是加拿大網(wǎng)絡(luò)安全研究所發(fā)布的,該數(shù)據(jù)集包含良性流量和惡性攻擊,經(jīng)過數(shù)據(jù)清洗后的數(shù)據(jù)包含78個數(shù)據(jù)特征字段和1個類別標(biāo)簽.
3.2.2 數(shù)據(jù)集平衡
在整個數(shù)據(jù)集中,包含1362行“NULL”和“NaN”值,占比不足整個數(shù)據(jù)集的1%,因此刪除了這些樣本數(shù)據(jù).然后對數(shù)據(jù)進(jìn)行歸一化處理,所用到的方法是min-max歸一化,如式(11)所示:
(11)
式(11)中x表示將要進(jìn)行歸一化的值,Mmin為同一維度下的最小數(shù)值,Mmax為同一維度下的最大數(shù)值.
由實驗可知,清洗過后的數(shù)據(jù)集高度不平衡,因此,刪除了高度不平衡的網(wǎng)絡(luò)流量攻擊分類,并利用隨機(jī)欠采樣技術(shù)減少大多數(shù)類別的大小,完成數(shù)據(jù)集的平衡.經(jīng)過平衡后的數(shù)據(jù)集數(shù)據(jù)按照8∶2的比例拆分為訓(xùn)練集和測試集.同時為了將數(shù)據(jù)集輸入深度學(xué)習(xí)模型,使用從0~10的標(biāo)簽編碼器將分類變量編碼為整數(shù)值.
為了對不同類型的網(wǎng)絡(luò)入侵流量進(jìn)行精準(zhǔn)的預(yù)測與分類,本文對不同類型的網(wǎng)絡(luò)入侵流量分類時,將該網(wǎng)絡(luò)流量類型視為正樣本,其余流量類型均視為負(fù)樣本.實驗采用準(zhǔn)確率(Accuracy)、精確率(Precision)、召回率(Recall)以及F1值(F1-Score)作為模型評價指標(biāo).TP表示正確預(yù)測該網(wǎng)絡(luò)流量類型的樣本數(shù),FP表示錯誤地把其他類型的網(wǎng)絡(luò)流量預(yù)測為該網(wǎng)絡(luò)流量類型的樣本數(shù),TN表示正確地將其他類型的網(wǎng)絡(luò)流量預(yù)測為該網(wǎng)絡(luò)流量類型的樣本數(shù),FN表示錯誤地將該網(wǎng)絡(luò)流量類型預(yù)測為其他類型的網(wǎng)絡(luò)流量類型的樣本數(shù)[19].
Accuracy表示預(yù)測正確網(wǎng)絡(luò)流量類型的樣本數(shù)占總樣本數(shù)的比重,計算公式如下:
(12)
Precision表示被預(yù)測為該類網(wǎng)絡(luò)流量類型的樣本數(shù)中正樣本的比重,計算公式如下:
(13)
Recall表示被預(yù)測為該網(wǎng)絡(luò)流量類型的樣本數(shù)占總的該網(wǎng)絡(luò)流量類型樣本數(shù)的比重,計算公式如下:
(14)
F1-Score表示Recall和Precision的一種調(diào)和平均,計算公式如下:
(15)
3.4.1 對比實驗
為了驗證本文所提出CNN-BiGRU-Attention模型的有效性,在平衡后的數(shù)據(jù)集上進(jìn)行了對比實驗.這些集成模型與本文提出的CNN-BiGRU-Attention模型結(jié)構(gòu)相似.在將本文提出模型中的BiGRU和Attention層進(jìn)行替換或者消除時,保持了替換模型的參數(shù)一致.
由圖2可知,本文提出的CNN-BiGRU-Attention模型在網(wǎng)絡(luò)流量特征提取與分類方面均優(yōu)于對比集成模型,針對Web Attack-Brute Force類型的攻擊流量,本文提出的集成模型對其識別分類的準(zhǔn)確率達(dá)到86%,檢測精度明顯高于對比模型,其次本文提出的集成模型在3個評價指標(biāo)中均獲得最高的得分,各類型攻擊流量類別的總評準(zhǔn)確率比CNN-BiLSTM模型提升了2.24%,總評召回率提升了2.3%,總評F1值比CNN-BiLSTM-Attention模型提升了2.19%.最后在CNN-BiLSTM-Attention模型與本文提出的CNN-BiGRU-Attention模型對比中,針對該數(shù)據(jù)集的網(wǎng)絡(luò)流量入侵檢測,本文模型特征提取更全面,同時準(zhǔn)確率更高.
圖2 對比實驗各模型評估指標(biāo)對比
3.4.2 消融實驗
為了定量評估本文所提出CNN-BiGRU-Attention集成模型的合理性,在平衡后的數(shù)據(jù)集上進(jìn)行了消融實驗.在將本文模型中的BiGRU和Attention層進(jìn)行替換或者消除時保持了替換模型的參數(shù)一致.
由圖3可知,本文模型顯示出良好的特征提取與識別分類能力,CNN-BiGRU模型相較于單一CNN模型,檢測準(zhǔn)確率有一定的提升,印證了BiGRU模型的有效性,同時本文模型在集成BiGRU模型的基礎(chǔ)上,融合了注意力機(jī)制對不同類型攻擊流量的相對重要性,多分類準(zhǔn)確率提升了2.71%,從而印證了融合注意力機(jī)制的合理性.
圖3 消融實驗各模型評估指標(biāo)對比
3.4.3 多角度K折交叉驗證
在本文的實驗中,經(jīng)過平衡后的數(shù)據(jù)集仍然存在整體數(shù)據(jù)量偏小以及不同類別的流量樣本數(shù)差異較大的情況,為了更有效地對比不同特征提取算法之間的性能,避免因為數(shù)據(jù)集本身的流量類別分布帶來算法的過擬合問題[22],在確定了各模型的最優(yōu)參數(shù)的前提下,對該數(shù)據(jù)集進(jìn)行了6折交叉驗證劃分訓(xùn)練集和驗證集,以此驗證不同入侵檢測模型的性能.
圖4示出基于CNN-BiLSTM的K折交叉驗證模型訓(xùn)練效果.同樣隨著系數(shù)K的變化,針對不同流量類別的分類準(zhǔn)確率波動較大,其中DoS Slowhttptest類型的異常流量在K=2時,其檢測精確度達(dá)到最高,但是在其余K值下其檢測精確度較低.
圖5示出基于CNN-BiLSTM-Attention的K折交叉驗證模型訓(xùn)練效果.隨著系數(shù)K的變化,不同流量類別的分類準(zhǔn)確率波動較小,其中DoS Slowhttptest類型的異常流量在K=4時,其檢測準(zhǔn)確度達(dá)到最低.
圖5 基于CNN-BiLSTM-Attention的K折交叉驗證對準(zhǔn)確率的影響
圖6示出基于本文模型CNN-BiGRU-Attention的K折交叉驗證模型訓(xùn)練效果.隨著系數(shù)K的變化,不同流量類別的分類精確率整體浮動很小,趨于平穩(wěn),表明該模型對流量的多分類識別檢測是有效的.其次針對絕大多數(shù)流量類別,隨著K值的逐漸變化,模型的泛化性能逐漸增強(qiáng),同時也有效避免了過擬合現(xiàn)象的發(fā)生,表明本文模型的有效性與穩(wěn)定性.
圖6 基于CNN-BiGRU-Attention的K折交叉驗證對準(zhǔn)確率的影響
本文提出一種基于卷積神經(jīng)網(wǎng)絡(luò)的入侵檢測算法,使用CIC-IDS-2017數(shù)據(jù)集對模型進(jìn)行了訓(xùn)練和測試.
實驗結(jié)果表明,對于不同類型的網(wǎng)絡(luò)攻擊流量,本文模型相較于LSTM網(wǎng)絡(luò)模型單向GRU網(wǎng)絡(luò)模型,提取特征能力更強(qiáng)、分類效果更好、檢測準(zhǔn)確率更高、泛化性能更好.通過對比論證實驗和交叉驗證,印證了本文模型的有效性、合理性和穩(wěn)定性.下一步研究將專注于如何更好地平衡數(shù)據(jù)集以及提高模型檢測效率.