宗學(xué)軍,宋治文,何 戡,連 蓮
(沈陽化工大學(xué) 信息工程學(xué)院,遼寧 沈陽110142)
隨著工業(yè)控制網(wǎng)絡(luò)(ICN)的高速發(fā)展,ICN安全已經(jīng)是全球性重要問題之一,工業(yè)入侵檢測作為一種ICN安全防護技術(shù)已成為研究熱點。在全球每年的網(wǎng)絡(luò)安全事故中,其中有上百起攻擊都是針對工業(yè)控制系統(tǒng)(Industrial Control System,ICS),雖然所占的比重只是網(wǎng)絡(luò)安全事件的一小部分,但是所造成的影響對國家而言都是巨大的,最為嚴重的就是經(jīng)濟損失[1]。因此如何有效地從入侵數(shù)據(jù)中選擇特征進行多分類,并提高數(shù)據(jù)特征提取的準確度,在整個網(wǎng)絡(luò)信息安全領(lǐng)域具有重要的研究價值。
機器學(xué)習(xí)在入侵檢測中應(yīng)用很多,例如支持向量機(Support Vector Machine,SVM)[2-3]、K均值聚類算法[4]和貝葉斯網(wǎng)絡(luò)模型[5]。上述算法在處理特征維度少時擁有較好的檢測效果,但卻無法滿足當(dāng)今網(wǎng)絡(luò)安全領(lǐng)域中大量、高維的數(shù)據(jù)特征分類精度,因此需要開展深度學(xué)習(xí)的研究。
國內(nèi)外不少學(xué)者將深度學(xué)習(xí)應(yīng)用于網(wǎng)絡(luò)安全領(lǐng)域,文獻[6]首先使用不同的降維方法去除了多余的特征,然后將降維后得到的數(shù)據(jù)傳遞給卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN),但是其忽略了卷積神經(jīng)網(wǎng)絡(luò)的自動提取特征的優(yōu)勢。文獻[7]利用遺傳算法強大的全局尋優(yōu)能力來獲得最優(yōu)參數(shù)從而優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)。文獻[8]提出了一種基于兩層神經(jīng)網(wǎng)絡(luò)的異常流量檢測模型。文獻[9]提出了一種基于膨脹卷積和門控循環(huán)單元組合的入侵檢測模型,并在KDD CUP 99數(shù)據(jù)集和NSL-KDD數(shù)據(jù)集進行了仿真,取得了較高的準確率。文獻[10]對一維卷積神經(jīng)網(wǎng)絡(luò)進行了改進,使用CIC-IDS-2017數(shù)據(jù)集進行了仿真,結(jié)果表明該方法具有較高的檢測性能,能更好地保留流量數(shù)據(jù)的局部特征。
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)在提取特征時只提取重要的特征,會忽略其他特征,而工業(yè)網(wǎng)絡(luò)中的數(shù)據(jù)在使用這種方法進行分類時會導(dǎo)致分類準確率大大降低,因此為了解決提取特征不全這一問題,本文使用多尺度一維卷積神經(jīng)網(wǎng)絡(luò)(1-dimensional Multiscale Convolution Neural Network,1d-MSCNN)與門控循環(huán)單元(Gated Recurrent Unit,GRU)組合模型來對工業(yè)網(wǎng)絡(luò)中的流量數(shù)據(jù)進行分類。
本文的主要貢獻:
(1)提出一種一維多尺度卷積核替代單一尺度卷積核來提取特征,提高數(shù)據(jù)分類的準確度。
(2)使用GRU模塊來獲取數(shù)據(jù)之間的時間關(guān)系的特征,以此提高模型訓(xùn)練速度,解決了很多由于深度學(xué)習(xí)的模型復(fù)雜、參數(shù)過多而導(dǎo)致的訓(xùn)練難度加大、模型的訓(xùn)練速度變慢的問題。
CNN是深度學(xué)習(xí)的一種模型[11],能夠通過權(quán)值共享的方式快速訓(xùn)練模型,并能有效地減少模型中需要訓(xùn)練的參數(shù)。常見的卷積神經(jīng)網(wǎng)絡(luò)往往采用二維卷積核。而一維卷積神經(jīng)網(wǎng)絡(luò)使用的是一維卷積核,下面介紹一維卷積層與池化層:
(1)一維卷積層:一維卷積層中的每個神經(jīng)元只與前一層輸入神經(jīng)元中的局部直接相關(guān)。卷積核的設(shè)置對CNN的性能影響比較大,對于第l層(卷積層),其輸出為xl,那么對應(yīng)第j個卷積核的輸出為:
式中,f為激活函數(shù),Mj表示輸入數(shù)據(jù)集合,為卷積核,*為卷積,為偏置項。本文使用的激活函數(shù)為ReLU函數(shù),能大量節(jié)省訓(xùn)練時間。
(2)池化層:池化方法有兩種,選擇相應(yīng)的池化方法對卷積層的特征圖進行池化,其一般形式為:
式中,f為激活函數(shù),D為采樣函數(shù),為權(quán)值,為偏置項。
GRU模塊是循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)中的一種,能夠?qū)?shù)據(jù)特征進行充分學(xué)習(xí),通過更新門和重置門保存數(shù)據(jù)在時間維度上的信息[12],同時也能解決梯度爆炸的問題[13]。
GRU中有兩個主門,即更新門和重置門。所有的關(guān)系定義如下:
重置門:
更新門:
其中Wr、Wz是權(quán)重參數(shù),br、bz是偏差參數(shù)。圖1顯示了GRU的典型架構(gòu)。
圖1 GRU模型圖
在處理數(shù)據(jù)時,若單純地使用神經(jīng)網(wǎng)絡(luò)會發(fā)現(xiàn)其對特征的捕捉能力有限,收斂太慢,因此本文加入了改進的一維CNN模型,其中卷積部分提取的特征用于訓(xùn)練分類模型。雖然卷積后特征維度減少但通道數(shù)擴張,用reshape函數(shù)重新整形為向量后維度還是很高,所以要求后面的FC層仍然很稠密,收斂依舊很慢,而實際上CNN卷積移動過程就已經(jīng)引入了時序關(guān)系,通道數(shù)對應(yīng)RNN的時間步數(shù),加入GRU剛好可以降維。GRU模塊可以在時間級別上實現(xiàn)數(shù)據(jù)特征的提取。為此,本文提出一種1d-MSCNN+GRU的入侵檢測模型。
當(dāng)前工業(yè)互聯(lián)網(wǎng)的攻擊種類繁多,并且其網(wǎng)絡(luò)數(shù)據(jù)具有海量、高維等特征,因此單一尺度卷積神經(jīng)網(wǎng)絡(luò)在提取特征時容易造成部分特征遺漏這一問題。本文設(shè)計了一維多尺度卷積層(1-dimensional Multiscale Convolution,1d-MC)來取代單一尺度卷積層,其結(jié)構(gòu)如圖2所示。
圖2 一維多尺度卷積層
該模塊由三個分支組成,每個分支所使用的卷積核尺度都和其他卷積核尺度不同,這樣就能從上一層輸出中提取到多尺度的特征,然后將每個分支卷積得到的特征向量進行拼接作為下一層的輸入。其運算過程如式(5)所示,其中Cl為上層輸出激活值,Cl+1為下一層的激活值,和的上標表示所屬分支,下標表示卷積核或偏置矩陣的大小。
本文搭建的一維多尺度卷積神經(jīng)網(wǎng)絡(luò)與GRU混合模型的結(jié)構(gòu)如圖3所示。
圖3 1d-MSCNN+GRU組合模型圖
1d-MSCNN+GRU模型由一維多尺度卷積部分、GRU部分和輸出部分組成。模型的第1層為輸入層,將預(yù)處理好的數(shù)據(jù)傳遞到下一層;第2層和第3層為常規(guī)的一維卷積層和池化層,能迅速縮短向量長度,同時增加通道數(shù);模型的第4、5層為多尺度一維卷積層,該層利用網(wǎng)絡(luò)層堆疊的方式逐步提取數(shù)據(jù)集不同粒度的特征;模型的第6層為全局平均池化層,該層減少數(shù)據(jù)通道便于數(shù)據(jù)輸入到后面的GRU模塊中;第7層為Dropout層防止模型過擬合;GRU模塊在模型的第8層;緊接著是全連接層將各個分類結(jié)果輸出。模型各層參數(shù)如表1所示。
表1 1d-MSCNN+GRU網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù)
本文實驗共分為三個階段:數(shù)據(jù)預(yù)處理階段、模型訓(xùn)練階段和測試分類階段,總體步驟如圖4所示。
圖4 實驗流程圖
本次實驗采用兩個數(shù)據(jù)集,分別是KDD CUP 99數(shù)據(jù)集[14]和密西西比州大學(xué)的天然氣管道數(shù)據(jù)集[15]。KDD CUP 99數(shù)據(jù)集是入侵檢測中常用的數(shù)據(jù)集,本文采用其中10%的訓(xùn)練子集進行算法測試。樣本類別分布如表2所示。
表2 KDD CUP 99數(shù)據(jù)集類別
密西西比州大學(xué)的天然氣管道數(shù)據(jù)集包括1種正常數(shù)據(jù)和7種攻擊類型,共有26個特征屬性。相比于KDD CUP 99數(shù)據(jù)集,密西西比州采集的數(shù)據(jù)是工業(yè)網(wǎng)絡(luò)中采集到的數(shù)據(jù),其維度更高,攻擊類型更多。其數(shù)據(jù)集標簽及描述如表3所示。
表3 密西西比州數(shù)據(jù)集描述
由于數(shù)據(jù)集中的字符型特征屬性無法直接輸入到本文模型中,因此先將KDD CUP 99數(shù)據(jù)集和密西西比州大學(xué)的天然氣管道數(shù)據(jù)集中的每一個字符型特征都轉(zhuǎn)成數(shù)字以便于處理;接著為了縮小數(shù)值之間的差距,對數(shù)據(jù)進行標準化處理,將每個數(shù)據(jù)轉(zhuǎn)換為一維矩陣,使其符合一維多尺度卷積模型的輸入格式;最后對數(shù)據(jù)集進行標準化處理,形成重塑矩陣。
本文實驗中采用分類準確率(Accuracy,ACC)、召回率(Recall,R)、精確率(Precision,P)和綜合評價指標(F1-Measure,F(xiàn))判斷模型分類,具體算法如下:
本實驗的仿真是在Windows 10操作環(huán)境下進行的,CPU為Intel Core i7-10700。
為了實現(xiàn)高效計算,本文使用Adam優(yōu)化算法,因為Adam的默認參數(shù)可以解決絕大部分的問題,所以本文使用默認值。其他實驗參數(shù)設(shè)置如下:學(xué)習(xí)率設(shè)置為0.01,此時模型的學(xué)習(xí)狀態(tài)最佳;Dropout失活率設(shè)置為0.2,防止模型過擬合;迭代次數(shù)由以下仿真實驗獲得。在實驗中改變了訓(xùn)練迭代次數(shù),仿真結(jié)果如圖5所示。
圖5 不同迭代次數(shù)準確率對比圖
由圖5看出,當(dāng)?shù)螖?shù)選取為50次時,準確率達到了最高。
(1)入侵檢測模型實現(xiàn)
將預(yù)處理得到的數(shù)據(jù)輸入到1d-MSCNN+GRU模型中,實驗結(jié)果如表4所示。
表4 基于1d-MSCNN+GRU模型各子類檢測結(jié)果
為了體現(xiàn)1d-MSCNN+GRU模型訓(xùn)練時間的優(yōu)越性,本文將1d-MSCNN+GRU模型與傳統(tǒng)的CNN模型進行了比較,結(jié)果如表5所示,其中可以看出1d-MSCNN+GRU模型的訓(xùn)練時間和測試時間都優(yōu)于傳統(tǒng)的CNN模型。
表5 兩種模型所用的時間對比 (s)
(2)不同的機器學(xué)習(xí)入侵檢測模型
本文將1d-MSCNN+GRU模型與單純CNN模型和GRU模型進行了對比,結(jié)果如表6所示。
表6 不同算法的分類結(jié)果(%)
由表6可以看出,1d-MSCNN+GRU模型準確率為99.16%,召回率為98.34%,F(xiàn)1值為98.30%,明顯高于CNN模型和GRU模型,其中1d-MSCNN+GRU模型的F1值比CNN模型高出3.17%,比GRU模型高出3.74%,由此可以證明該方法的有效性。
另外,本文將1d-MSCNN+GRU模型與經(jīng)典機器學(xué)習(xí)算法進行了比較,基于支持向量機的入侵檢測算法準確率為90.4%,召回率為87.65%,F(xiàn)1值為91.79%?;谏窠?jīng)網(wǎng)絡(luò)入侵算法的準確率為94.98%,召回率為95.60%,F(xiàn)1值為96.38%?;跊Q策樹的入侵檢測算法準確率為91.64%,召回率為96.32%,F(xiàn)1值為95.87%。圖6展示了各個入侵檢測方法的對比結(jié)果。
圖6 各類模型對比圖
由圖6可知,本文提出的1d-MSCNN+GRU模型準確率明顯高于其他傳統(tǒng)機器學(xué)習(xí),召回率、精確度和F1值也優(yōu)于其他算法。因而可以看出本文所提出的1d-MSCNN+GRU模型在收斂性方面表現(xiàn)最好。
為了進一步驗證本文模型的泛化能力,本文又對密西西比州采集的數(shù)據(jù)進行實驗,使用80%的數(shù)據(jù)進行訓(xùn)練,用剩余的20%進行測試,再與其他經(jīng)典機器學(xué)習(xí)算法進行比較,結(jié)果如圖7所示。
從圖7中可以明顯看出本文提出的模型在準確率方面仍然比CNN和SVM算法優(yōu)越,由此可以看出本文模型的泛化能力強。
圖7 不同算法的準確率對比圖
本文提出了一種基于一維多尺度卷積神經(jīng)網(wǎng)絡(luò)和門控循環(huán)單元相結(jié)合的入侵檢測模型。該方法首先通過一維多尺度卷積神經(jīng)網(wǎng)絡(luò)有效地提取數(shù)據(jù)的高級數(shù)據(jù)特征,彌補局部特征提取不全的問題,達到充分獲取輸入數(shù)據(jù)中重要信息的目的;接著使用門控循環(huán)單元保存歷史輸入信息,使前期的輸入信息與當(dāng)前的輸入一起映射到當(dāng)前的輸出,增加了精確度。實驗結(jié)果表明,在使用KDD CUP 99數(shù)據(jù)集仿真實驗時,與其他機器學(xué)習(xí)方法相比,本文模型的準確率較高、訓(xùn)練時間較短。而且1d-MSCNN+GRU模型在經(jīng)過調(diào)試后,可以保存為.h5文件,再次調(diào)用后,可以直接使用,不需要再次訓(xùn)練優(yōu)化,而如果無法滿足要求,可以繼續(xù)訓(xùn)練優(yōu)化。
本文模型1d-MSCNN+GRU僅在當(dāng)前兩個數(shù)據(jù)集上驗證了模型的檢測效果,下一步將會把本文模型應(yīng)用到多種數(shù)據(jù)集上,并繼續(xù)優(yōu)化模型,進一步提高檢測效果。