樊景威 葛麗娜 張 壕 李登輝
(1.廣西民族大學(xué)電子信息學(xué)院 南寧 530006)(2.廣西民族大學(xué)人工智能學(xué)院 南寧 530006)(3.廣西民族大學(xué)網(wǎng)絡(luò)通信工程重點(diǎn)實(shí)驗(yàn)室 南寧 530006)
隨著網(wǎng)絡(luò)流量變得越來(lái)越龐大,網(wǎng)絡(luò)攻擊手段也變得也越來(lái)越新穎,這就對(duì)構(gòu)建一個(gè)高效的入侵檢測(cè)系統(tǒng)提出了更高的要求[1]。入侵檢測(cè)系統(tǒng)用于檢測(cè)系統(tǒng)的內(nèi)外部入侵、潛在入侵和可疑活動(dòng)的異常[2]。根據(jù)檢測(cè)所用數(shù)據(jù)的來(lái)源不同,可將入侵檢測(cè)系統(tǒng)分為三類(lèi):基于主機(jī)的入侵檢測(cè)系統(tǒng)(Host-based Intrusion Detection System,HIDS);基于網(wǎng)絡(luò)的入侵檢測(cè)系統(tǒng)(Network-based Intrusion Detection System,NIDS);基于混合數(shù)據(jù)源的入侵檢測(cè)系統(tǒng)(HIDS+NIDS)[3]。
隨著機(jī)器學(xué)習(xí)技術(shù)的發(fā)展,機(jī)器學(xué)習(xí)技術(shù)被廣泛用于入侵檢測(cè)系統(tǒng)中。一些研究人員在入侵檢測(cè)模型中使用k-均值算法[4]、決策樹(shù)[5]、隨機(jī)森林[6]和支持向量機(jī)(Support Vector Machine,SVM)[7]等機(jī)器學(xué)習(xí)算法,取得不錯(cuò)的效果。但是淺層機(jī)器學(xué)習(xí)的方法無(wú)法應(yīng)對(duì)日益嚴(yán)峻的網(wǎng)絡(luò)安全挑戰(zhàn),而深度學(xué)習(xí)技術(shù)在降維和分類(lèi)任務(wù)方面顯示出了其有效性,深度網(wǎng)絡(luò)可以自動(dòng)降低網(wǎng)絡(luò)流量復(fù)雜度,無(wú)需人工干預(yù)就能發(fā)現(xiàn)數(shù)據(jù)之間的相關(guān)性,當(dāng)下熱門(mén)的卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)[8]、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)[9]門(mén)控循環(huán)單元(Gate Recurrent Unit,GRU)已經(jīng)被使用在入侵檢測(cè)模型中。
GRU和LSTM都屬于RNN類(lèi)型的神經(jīng)網(wǎng)絡(luò),許多研究人員把它們放在了入侵檢測(cè)模型中。文獻(xiàn)[10]使用CNN、RNN 和自動(dòng)編碼器(autoencoder,AE)等不同神經(jīng)網(wǎng)絡(luò)架構(gòu)來(lái)構(gòu)建分類(lèi)模型,實(shí)驗(yàn)表明,CNN 和LSTM 在入侵檢測(cè)的分類(lèi)中表現(xiàn)良好。文獻(xiàn)[11]提出在物聯(lián)網(wǎng)領(lǐng)域使用GRU 進(jìn)行入侵檢測(cè)研究,但實(shí)驗(yàn)僅在KDD-Cup 99 數(shù)據(jù)上進(jìn)行,未實(shí)現(xiàn)應(yīng)用于物聯(lián)網(wǎng)相關(guān)數(shù)據(jù)集的設(shè)想。文獻(xiàn)[12]提出一種基于CNN 與BiGRU 融合的神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)模型,通過(guò)綜合采樣(SMOTE-Tomek)方法完成對(duì)數(shù)據(jù)集的平衡處理,將CNN 和BiGRU 模型進(jìn)行特征融合并引入注意力機(jī)制進(jìn)行特征提取,從而提高模型的總體檢測(cè)性能。文獻(xiàn)[13]提出一種新的特征驅(qū)動(dòng)的入侵檢測(cè)模型X2-BiLSTM,模型集成了X2統(tǒng)計(jì)模型和BiLSTM。統(tǒng)計(jì)模型用于特征排序,并使用最佳搜索算法搜索最優(yōu)子集,BiLSTM模型對(duì)最優(yōu)子集進(jìn)行分類(lèi)。文獻(xiàn)[14]提出一種結(jié)合CNN 和BiGRU 的網(wǎng)絡(luò)入侵檢測(cè)模型,使用一種結(jié)合自適應(yīng)合成采樣的混合采樣算法和逆向工程神 經(jīng) 網(wǎng) 絡(luò)(Reverse Engineering Neural Networks,RENN)相結(jié)合的算法進(jìn)行采樣處理,采用隨機(jī)森林算法和皮爾遜相關(guān)系數(shù)(Pearson Correlation Co?efficient)相結(jié)合方法進(jìn)行特征選擇,并用CNN 提取空間特征、BiGRU提取遠(yuǎn)距離相關(guān)特征。
來(lái)自谷歌的機(jī)器翻譯團(tuán)隊(duì)在2017 年發(fā)表的一篇論文中提出了一種包括self-attention 和multi-head attention 的神經(jīng)網(wǎng)絡(luò)架構(gòu)[15],該架構(gòu)在機(jī)器翻譯任務(wù)中取得了優(yōu)異的成績(jī)。之后,許多研究人員將注意力機(jī)制應(yīng)用于入侵檢測(cè)模型。文獻(xiàn)[16]提出一種基于LSTM 和注意力機(jī)制的檢測(cè)模型,并使用卡方分布(chi-square distribution)、統(tǒng)一流形近似與投影(uniform manifold approximation and projection for dimension reduction,UMAP)、主成分分析(principal component analysis)和互信息(mu?tual information)四種約簡(jiǎn)算法,實(shí)驗(yàn)在NSL-KDD數(shù)據(jù)集上評(píng)估了所提出的方法,實(shí)驗(yàn)表明,使用具有所有特征注意力和03 成分的主成分分析具有最好的性能。為了檢測(cè)更多的攻擊類(lèi)型,文獻(xiàn)[17]提出一種基于多頭注意力機(jī)制,其結(jié)構(gòu)更適合捕獲網(wǎng)絡(luò)流量中的分散證據(jù),該模型整體檢測(cè)性能提高29%。
盡管許多研究已經(jīng)將深度學(xué)習(xí)應(yīng)用于入侵檢測(cè)系統(tǒng),但仍然存在一些問(wèn)題。例如,一些入侵檢測(cè)模型難以處理復(fù)雜和高維的網(wǎng)絡(luò)流量,導(dǎo)致特征提取不佳,還有一些模型在二分類(lèi)的時(shí)候準(zhǔn)確率普遍很高,但處理多分類(lèi)問(wèn)題時(shí)的效果不佳。針對(duì)這些問(wèn)題,本文提出了一種融合多頭注意力和雙向門(mén)控循環(huán)單元的入侵檢測(cè)模型。
所提模型主要由兩部分組成:數(shù)據(jù)預(yù)處理模塊和神經(jīng)網(wǎng)絡(luò)模塊,模型結(jié)構(gòu)如圖1所示。
圖1 模型流程圖
在數(shù)據(jù)預(yù)處理模塊中,由于數(shù)據(jù)集中存在缺失值,首先使用缺失值所在列的均值進(jìn)行填充,接著使用獨(dú)熱編碼對(duì)字符數(shù)據(jù)進(jìn)行數(shù)值化處理,再對(duì)所有數(shù)據(jù)進(jìn)行最大最小標(biāo)準(zhǔn)化以減少冗余。最后考慮到UNSW-NB15 數(shù)據(jù)集中的Worms 攻擊種類(lèi)樣本數(shù)據(jù)較少,遂使用隨機(jī)過(guò)采樣方法以解決數(shù)據(jù)不平衡的問(wèn)題。最大最小標(biāo)準(zhǔn)化公式如下:
1)輸入層:輸入層使用LeakyReLU 激活函數(shù),他是修正線(xiàn)性單元的改進(jìn)版本,它的提出就是為了解決神經(jīng)元“死亡”問(wèn)題。LeakyReLU 與ReLU 僅在輸入小于0的部分有差別,ReLU輸入小于0的部分值都為0,而LeakyReLU 輸入小于0 的部分值為負(fù),且有微小的梯度。
2)最大池化層(MaxPooling1D)和批量標(biāo)準(zhǔn)化(BatchNormalization):使用一維最大池化層對(duì)時(shí)域一維信號(hào)進(jìn)行最大值池化,最大池化層的池化大?。╬ool_size)可以成倍的降低數(shù)據(jù)維度,減少參數(shù)數(shù)量,去除冗余信息,從而對(duì)特征進(jìn)行壓縮以簡(jiǎn)化網(wǎng)絡(luò)的復(fù)雜。使用批量標(biāo)準(zhǔn)化對(duì)最大池化層的輸出數(shù)據(jù)進(jìn)行規(guī)范化,進(jìn)一步提高模型性能和減少訓(xùn)練時(shí)間。
3)融合多頭注意力和BiGRU 的包裝層(wrap?per layer):該層使用多頭注意力包裝了4 層BiGRU網(wǎng)絡(luò),GRU 是在LSTM 的變種[18],雙向GRU 是由兩個(gè)GRU 組成的序列處理模型,一個(gè)是正向輸入,一個(gè)是反向輸入??紤]到網(wǎng)絡(luò)數(shù)據(jù)作為一種時(shí)間序列,狀態(tài)是相關(guān)的,所以使用BiGRU 代替GRU 可以更好地處理數(shù)據(jù)。雖然BiGRU 可以很好地處理長(zhǎng)期序列,但仍然無(wú)法并行計(jì)算,因此BiGRU 很難單獨(dú)處理海量數(shù)據(jù)的網(wǎng)絡(luò)流量。多頭注意力可以用來(lái)捕捉輸入和輸出的關(guān)系,計(jì)算單元的數(shù)量由模型決定,從而實(shí)現(xiàn)高性能的并行計(jì)算。多頭注意力機(jī)制的計(jì)算過(guò)程如下。
Step1:初始化向量Query、Key、Value,將輸入序列每一個(gè)字符對(duì)應(yīng)的embedding向量與已經(jīng)訓(xùn)練的三個(gè)矩陣Wq、Wk、Wv相乘得到Query 向量、Key向量、Value向量:
Step2:計(jì)算Attention Score 與Softmax Score。Attention Score 反映了此字符和其他位置字符的相關(guān)程度,同樣就反映了對(duì)其他位置的“關(guān)注程度”。對(duì)Attention Score 進(jìn)行縮放和歸一化操作,得到Softmax Score,公式中dk表示維度:
Step3:最后將每個(gè)Value 向量乘以Softmax Score 得到加權(quán)的V1和V2,將V1和V2求和就可以得到第一個(gè)輸入的Attention Value,再對(duì)原始的向量Query、Key、Value 做多次的線(xiàn)性映射,把每次的結(jié)果映射到多個(gè)空間中去,重復(fù)進(jìn)行上面的過(guò)程,每次得到的結(jié)果稱(chēng)作一個(gè)“頭”。簡(jiǎn)言之,多頭注意力機(jī)制就是讓每一個(gè)注意力去關(guān)注輸入信息的不同部分,然后進(jìn)行拼接。
如圖2 所示,包裝層用多頭注意力機(jī)制包裝了4 層BiGRU 層后,在每一層的每一個(gè)輸入輸出的時(shí)間步都對(duì)數(shù)據(jù)計(jì)算注意力值,并行化后形成一種多通道結(jié)構(gòu),這樣在每個(gè)通道都可用來(lái)在輸入輸出中對(duì)特征加權(quán),并且每一個(gè)通道輸出不同的結(jié)果,最后將其連接起來(lái)進(jìn)行推斷。
圖2 MultiHead-BiGRU包裝層
引入多頭注意力機(jī)制后,模型能夠更加方便的捕獲序列中任意位置的字符之間的關(guān)聯(lián)關(guān)系,從數(shù)據(jù)整體計(jì)算目標(biāo),信息能夠使用不同序列位置的不同子空間的表征信息來(lái)進(jìn)行序列數(shù)據(jù)處理;而且,多頭注意力機(jī)制使用權(quán)重求和的方式產(chǎn)生輸出向量,使其梯度在網(wǎng)絡(luò)模型中的傳播更加容易。
4)平展層(flatten layer)和全連接層(dense lay?er):使用平展層用來(lái)連接包裝層和全連接層,將上一層包裝層的輸出“壓平”,即把多維的輸入一維化輸出給全連接層,全連接層的最后一層作為輸出層,輸出類(lèi)別的概率。
實(shí)驗(yàn)在UNSW-NB15 與CIC-IDS2017 數(shù)據(jù)集上進(jìn)行,并使用分層k 折交叉驗(yàn)證(stratified k-fold cross validation)方法來(lái)尋找最佳模型,使用控制變量的方法,對(duì)比池化層的池化大小對(duì)模型產(chǎn)生的影響,最終選擇一個(gè)最優(yōu)模型,并將模型與其他入侵檢測(cè)模型進(jìn)行比較。
實(shí)驗(yàn)使用準(zhǔn)確率(Accuracy,Acc)、精確度(Pre?cision,Pr)、召回率(Recall,R)和F1 分?jǐn)?shù)(f1-score)衡量模型分類(lèi)的結(jié)果,在下方公式中,TP 表示正確預(yù)測(cè)流量數(shù)據(jù)為正常的數(shù)量,TN 表示正確預(yù)測(cè)流量為攻擊的數(shù)量,F(xiàn)P 表示錯(cuò)誤預(yù)測(cè)流量數(shù)據(jù)為正確的數(shù)量,F(xiàn)N 表示錯(cuò)誤預(yù)測(cè)數(shù)據(jù)流量為攻擊的數(shù)量。
實(shí)驗(yàn)在UNSW-NB15 數(shù)據(jù)集和CIC-IDS2017數(shù)據(jù)集上進(jìn)行測(cè)試。將UNSW-NB15 的訓(xùn)練集和測(cè)試集用panda 的concat 方法結(jié)合在一起,提高樣本數(shù)量,結(jié)合后的數(shù)據(jù)共有257673 條數(shù)據(jù),CI?CIDS2017 數(shù)據(jù)集的分類(lèi)包括Portscan,Dos,DDoS,Web,BENIGH 四種,最終的數(shù)據(jù)集有1042557 條數(shù)據(jù)。
本文設(shè)置以下實(shí)驗(yàn):
實(shí)驗(yàn)一:分層k 折交叉驗(yàn)證模型性能分析試驗(yàn)。
實(shí)驗(yàn)二:不同池化大小對(duì)模型性能影響分析實(shí)驗(yàn)。
實(shí)驗(yàn)三:模型性能對(duì)比實(shí)驗(yàn)。
實(shí)驗(yàn)使用Python 語(yǔ)言,Python 版本為3.8,使用Tensorflow 2.20在Jupyter Notebook下開(kāi)發(fā)。試驗(yàn)基于Windows11 系統(tǒng)進(jìn)行,硬件參數(shù)為CPU 為Intel Core i7-9700,內(nèi)存為32GB。
模型的基本參數(shù)設(shè)置如表1所示。
表1 模型設(shè)置參數(shù)
本節(jié)所做的工作是進(jìn)行分層k 折交叉驗(yàn)證模型性能實(shí)驗(yàn),模型分別進(jìn)行二分類(lèi)和多分類(lèi)實(shí)驗(yàn)。
3.3.1 分層k折交叉驗(yàn)證模型性能分析實(shí)驗(yàn)
UNSW-NB15和CIC-IDS2017數(shù)據(jù)集上的二分類(lèi)召回率和f1 分?jǐn)?shù)隨k 值的變化趨勢(shì)如圖3 和圖4所示。從中可以看出,隨著k 值的增加,兩個(gè)數(shù)據(jù)集二分類(lèi)的召回率和f1 分?jǐn)?shù)整體呈上升趨勢(shì)。這是因?yàn)殡S著值的增大,數(shù)據(jù)集被分割的越來(lái)越多,作為訓(xùn)練集的數(shù)據(jù)也越來(lái)越多,所以準(zhǔn)確率也更高。對(duì)于CIC-IDS2017 數(shù)據(jù)集,當(dāng)k 為4 時(shí),召回率和f1分?jǐn)?shù)取得了不錯(cuò)的效果,k取5的時(shí)候,模型穩(wěn)定性較差。對(duì)于UNSW-NB15數(shù)據(jù)集,k值取7、8和9 時(shí),對(duì)應(yīng)模型識(shí)別正常流量和攻擊流量的效果較好。
圖3 二分類(lèi)召回率
圖4 二分類(lèi)f1分?jǐn)?shù)
UNSW-NB15 數(shù)據(jù)集多分類(lèi)實(shí)驗(yàn)各類(lèi)別檢出的精確率和f1 分?jǐn)?shù)如表2 和表3 所示。從表中可以看出,在k 取2、5 和10 的時(shí)候,模型無(wú)法識(shí)別出Analysis 和Backdoor 攻擊,這是由于k 較小時(shí),訓(xùn)練樣本較少,交叉驗(yàn)證容易有較高的誤差,k 偏大時(shí),模型總體方差變大,模型性能下降。
表2 UNSW-NB15數(shù)據(jù)集的多分類(lèi)精確率
表3 UNSW-NB15數(shù)據(jù)集的多分類(lèi)f1分?jǐn)?shù)
在k 取8 時(shí),Backdoor 攻擊能很好地被檢測(cè)到,且Reconnaissance、Fuzzers、Shellcode、Worms 和Ge?neric 攻擊的精確率和f1 分?jǐn)?shù)也能取得不錯(cuò)的結(jié)果。針對(duì)攻擊類(lèi)型Worms使用隨機(jī)過(guò)采樣后,該類(lèi)的檢測(cè)效果有了很大的提升,在k 為8 的模型實(shí)驗(yàn)中,該類(lèi)的f1 分?jǐn)?shù)達(dá)到36.04%。實(shí)驗(yàn)表明,使用隨機(jī)過(guò)采樣可以在一定程度上解決數(shù)據(jù)不平衡的問(wèn)題。
圖5 和圖6 是CIC-IDS2017 數(shù)據(jù)集的多分類(lèi)的精確率和f1分?jǐn)?shù),從圖中可以看出所有類(lèi)別的檢測(cè)精度和f1 分?jǐn)?shù)均高于98.5%。當(dāng)k 為3 時(shí),模型對(duì)正常流量和DDos、PortScan攻擊的檢出都取得了很好的效果。k 值為10 時(shí)Dos 攻擊的檢測(cè)精度最好,達(dá)到99.906%,k 值為5 時(shí)Dos 攻擊的f1 分?jǐn)?shù)最高,達(dá)到99.858%。
圖5 CIC-IDS2017多分類(lèi)精確率
圖6 CIC-IDS2017數(shù)據(jù)集的多分類(lèi)f1得分
不同k值的模型在UNSW-NB15和CIC-IDS2017數(shù)據(jù)集上實(shí)現(xiàn)了上述實(shí)驗(yàn)結(jié)果,根據(jù)上面的分析可以看出,為了保證多分類(lèi)和二分類(lèi)的性能以及每個(gè)攻擊類(lèi)別都能被模型檢出,應(yīng)選擇k 值為8 的模型。
3.3.2 不同池化大小對(duì)模型性能影響分析實(shí)驗(yàn)
從表4可以看出,當(dāng)池化大小設(shè)置為4時(shí),模型在兩個(gè)數(shù)據(jù)集的多分類(lèi)下可以達(dá)到最好的準(zhǔn)確率。當(dāng)池化大小設(shè)置過(guò)大時(shí),神經(jīng)網(wǎng)絡(luò)的參數(shù)減少,特征減少,導(dǎo)致模型性能下降。池化大小設(shè)置過(guò)大也違背了最大池化層的初衷,即最大池化層不僅是為了數(shù)據(jù)降維,也是為了維護(hù)數(shù)據(jù)的邊緣紋理信息,以方便模型提取數(shù)據(jù)邊緣特征。
表4 不同池化大小對(duì)應(yīng)準(zhǔn)確率
3.3.3 模型性能對(duì)比實(shí)驗(yàn)
在本節(jié)中,基于UNSW-NB15 和CIC-IDS2017數(shù)據(jù)集,在相同的實(shí)驗(yàn)條件下,我們選擇k-means算法[4]、決策樹(shù)算法[5]、隨機(jī)森林算法[6]和GRURNN[18],CNN-BiLSTM[20]和WaveNet-BiGRU[20]模型與本文提出的模型進(jìn)行比較。設(shè)置對(duì)比實(shí)驗(yàn)是為了進(jìn)一步驗(yàn)證該網(wǎng)絡(luò)入侵檢測(cè)模型的綜合性能。表5 和表6 是不同模型的多分類(lèi)總體準(zhǔn)確率、精確率、召回率和f1分?jǐn)?shù)比較。
從表5 和表6 可以看出,所提出的模型在準(zhǔn)確率、準(zhǔn)確率、召回率和f1 分?jǐn)?shù)這四個(gè)指標(biāo)上都能取得較好的表現(xiàn)。與決策樹(shù)、隨機(jī)森林和k-means 等傳統(tǒng)機(jī)器學(xué)習(xí)方法相比,由于神經(jīng)網(wǎng)絡(luò)具有很強(qiáng)的非線(xiàn)性擬合能力,可以映射任何復(fù)雜的非線(xiàn)性關(guān)系,因此本文模型具有更強(qiáng)的特征提取能力。
表5 UNSW-NB15數(shù)據(jù)集多分類(lèi)性能比較
表6 CIC-IDS2017數(shù)據(jù)集多分類(lèi)性能比較
與GRU-RNN 和CNN-BiLSTM 模型相比,本文的模型融合了注意力機(jī)制和BiGRU,可以捕捉網(wǎng)絡(luò)流量中任意位置的序列之間的關(guān)系,使整個(gè)模型更容易學(xué)習(xí)上下文長(zhǎng)句的依賴(lài)。最大池化層可以進(jìn)一步提取邊緣特征,從而獲得更好的分類(lèi)結(jié)果。在UNSW-NB15數(shù)據(jù)集的實(shí)驗(yàn)中,WaveNet-BiGRU 模型的整體效果優(yōu)于所提模型,但在CIC-IDS2017 數(shù)據(jù)集的實(shí)驗(yàn)中,所提模型在精確率、召回率和f1 分?jǐn)?shù)優(yōu)于WaveNet-BiGRU。
為解決一般入侵檢測(cè)系統(tǒng)難以處理復(fù)雜、高維的網(wǎng)絡(luò)流量,特征提取效果不佳導(dǎo)致網(wǎng)絡(luò)入侵檢測(cè)效果不佳的問(wèn)題。本文提出了一種融合多頭注意力和BiGRU 的入侵檢測(cè)模型,模型使用隨機(jī)過(guò)采樣來(lái)解決入侵檢測(cè)中的數(shù)據(jù)不平衡問(wèn)題,融合多頭注意力和BiGRU 處理長(zhǎng)距離序列,使用最大池化層平衡模型訓(xùn)練速度和性能,同時(shí)提取序列邊緣特征,論文使用k 折交叉驗(yàn)證的方法選擇最佳模型,模型在精確率、準(zhǔn)確率、召回率和f1 得分都有一定提高。通過(guò)對(duì)比實(shí)驗(yàn)證明了多頭注意力和BiGRU相結(jié)合的入侵檢測(cè)模型具有研究前景。然而對(duì)比WaveNet-BiGRU 所提模型的多分類(lèi)能力仍有進(jìn)一步提升的空間,處理不平衡數(shù)據(jù)的能力也有待進(jìn)一步提升。針對(duì)這兩個(gè)問(wèn)題,下一階段我們將重點(diǎn)關(guān)注數(shù)據(jù)集的處理和分類(lèi)模型的優(yōu)化。