王 竹,趙建新,張宏映,李亞軍,冷 丹
(北方自動控制技術研究所,太原 030006)
由于云計算、大數據等新興網絡技術的應用,計算機網絡環(huán)境變得愈發(fā)復雜,這也造成了攻擊手段迭代速度變快這一現(xiàn)象的出現(xiàn),維護網絡安全變得更加重要也更加困難。如何在大量的網絡流量數據中快速識別出入侵數據是面臨的主要問題。入侵檢測系統(tǒng)(intrusion detection system,IDS)能夠對終端進行有效的主動防護,一直受到廣泛的關注。IDS 通過獲取網絡流量特征對接收到的網絡流量包分類,判斷是否為異常流量,進一步判斷是否受到入侵。具體步驟分為網絡流量獲取、特征提取、識別模塊進行識別,針對識別結果作出響應。IDS 核心技術就在于識別模塊根據接收的網絡流量特征對流量包進行分類檢驗。
近年來,深度學習技術的快速發(fā)展,許多專家嘗試利用深度學習技術改進入侵檢測技術并取得一定的效果。常衛(wèi)東等在2007 年就驗證了神經網絡在入侵檢測系統(tǒng)中的可行性,但引入的網絡模型為淺層網絡,識別準確率有限。劉月峰等在2018年發(fā)表引入多尺度卷積模型,將CNN 模型方法應用到網絡入侵檢測中,模型對特征提取進行改進對特征表征能力更強改善了識別的準確率。Lirim Ashiku 等在2021 年發(fā)表論文利用DNN 網絡進行入侵檢測訓練,在CNN 網絡基礎上進行改進,加深了網絡深度,提高了識別準確率。通過觀察提取到的數據特征可以發(fā)現(xiàn),許多特征之間是有關聯(lián)關系的。但上述模型均未考慮特征之間的關聯(lián)關系對分類識別產生的影響,模型仍有進一步的改進空間。YIN 等在2016 提出了利用RNN 構建IDS 檢測模型進行識別,考慮到了時序關系進行特征提取,但針對高維特征RNN 相較于CNN 特征提取能力存在明顯不足,使模型運行效果較差。高忠石等在2019 利用主成分分析法進行降維,并用改進RNN模型進行訓練,但對高維數據的訓練效果較CNN 網絡仍有不足。
針對上述模型存在的問題,提出一種VDCNN網絡和LSTM 網絡的融合模型。模型可以從原始數據中提取更高維度的特征,并對特征間的關聯(lián)關系進行提取。通過實驗驗證,模型能達到更加良好的分類效果。
卷積神經網絡是一種包含卷積計算且具有深度結構的前饋神經網絡,其本質是一種能夠在訓練過程中學習和抽象數據特征的人工神經網絡模型。卷積神經網絡具有按階層結構對輸入信息進行平移不變分類的能力。從深度學習的理論被提出后,卷積神經網絡的表征學習能力被廣泛關注,在生物特征識別,自然語言處理上得到了廣泛的應用。卷積神經網絡主要包括如下幾個計算過程:卷積、池化、全連接與識別運算?;镜哪P徒Y構如圖1 所示。
圖1 卷積神經網絡結構
其中,每個卷積層與相鄰的采樣層構成一個卷積組,進行數據特征提取,然后將提取到的特征傳入到若干全連接層中進行分類。卷積神經網絡利用池化操作和共享權值的方法減少網絡參數,提高網絡效率,完成對特征的提取,最終完成分類任務。
卷積神經網絡雖然能夠很好地獲取輸入信息特征,在計算過程中可以發(fā)現(xiàn)卷積網絡神經元之間是相互獨立沒有循環(huán)關系的,但是,網絡流量數據特征間是存在一定聯(lián)系的。為了能夠反映這種特征間的前后關聯(lián),以提高識別的準確率,在通過卷積網絡提取特征之后,可以增加一層LSTM 網絡。
長短時記憶網絡是在傳統(tǒng)的循環(huán)神經網絡(recurrent neural network,RNN)的基礎上進行改進,加入了時序的概念得來的。LSTM 網絡中每一個時間時刻會執(zhí)行1 次循環(huán)計算。在每次執(zhí)行運算時,網絡結構中的節(jié)點會結合當前的輸入和上一時間節(jié)點的狀態(tài)進行計算,這樣的計算過程使之前時間段所保留的歷史信息能夠被后面的節(jié)點使用,進而獲取到特征之間的關聯(lián)關系。LSTM 的模型單元在RNN 模型單元的基礎上增加記憶單元和輸出門、輸入門、遺忘門。通過門電路來控制多路輸入到本單元數據的通斷,使輸入數據變成之前的輸出數據與輸入數據的混合,達到保留訓練歷史數據,并從中提取特征間關聯(lián)關系的目的。
本文所提出模型整體框架如下頁圖2 所示。
圖2 模型整體框圖
模型整體流程包括:數據預處理、基礎模型訓練、特征融合、分類識別4 個部分。
由于入侵檢測需要實際的網絡流量數據做檢測,而且數據集的好壞會明顯的影響。通過對比,選用了CES-CIC-IDS2018 數據集作為模型的訓練集對模型進行訓練和檢測。
該入侵檢測數據由加拿大通信安全機構提供,包含了更多新型攻擊手段用于對模型的檢測訓練。所提供的模擬網絡流量包含7 類攻擊場景在7 天的固定時間運行產生真實流量數據。數據集以pcap文件和csv 文件的方式提供。這里利用csv 文件進行人工智能相關分析,利用CICFlowMeter-V3 工具提取獲得流量的83 個統(tǒng)計特征。經過統(tǒng)計包含有14 類攻擊流量標簽和一類正常標簽,具體標簽名稱和占比如表1 所示。
表1 數據標簽及占比
由于文件數據集過大,這里要對數據進行預處理,分為:數據清洗、數據集平衡、特征篩選、數據歸一化和分割等步驟。通過分析數據發(fā)現(xiàn)數據集具有10 個全0 特征全部刪掉,剩下68 個特征進行進一步處理。由于數據報文已經被人為標注出標簽,而且數據集模擬是由一段時間正常運行,然后持續(xù)進行攻擊,再正常運行的模式進行模擬,所以,同類標簽相對集中,先對數據依據各標簽進行分離。分離后的每一類標簽下的數據均為同類網絡報文,且分布相對均勻,再用分層抽樣的方式對每一類進行等量抽樣獲取需要處理的基礎數據集。在抽樣結束后,檢查數據發(fā)現(xiàn)存在一部分特征為空值或無窮值的數據,經過檢驗這類數據只占數據集極小一部分,且均為正常數據。這部分數據在進行歸一化處理時會產生異常,將這部分數據剔除對剩下的數據進行進一步處理。
先對port,協(xié)議類別等數字大小無數量意義的特征進行自然序號編碼,這樣可以減少取值域,便于對數據進行歸一化。歸一化處理就是將每一維特征的值映射到[0,1]之間?;驹砜杀硎緸椋?/p>
其中,'是歸一化之后的特征值,是歸一化之前特征值,和分別表示當前維度特征的最小值和最大值。
將處理后的數據進行隨機排序,數據集的分割比例為7∶3,分別用于模型的訓練和測試。
2.3.1 VDCNN 網絡模型
相較于應用在圖像處理等領域的神經網絡結構,純文本數據分類的模型深度較淺,較淺層的網絡特征提取能力較差。受啟發(fā)于VDCNN 在自然語言處理上的良好表現(xiàn),嘗試將VDCNN 引入到入侵檢測模型中,對真實網絡流量數據進行特征提取,達到更準確地分類。
傳統(tǒng)神經網絡結構中會出現(xiàn)隨著深度增大造成難以確定卷積核大小的問題。VDCNN 的結構可以有效解決這一問題。VDCNN 由VGG 以及ResNets(殘差神經網絡)模型演化過來,在運行深度網絡模型時,內存的占用情況有明顯地改善。VDCNN 在設置時定義兩條規(guī)則:
1)若卷積之后輸出的向量不變,則卷積核數目和特征圖像的大小與上一層相同;
2)若卷積之后輸出向量減半,則卷積核數目和特征圖像的大小是上一層的兩倍。
這樣能夠保證網絡的復雜程度,同時通過對層數和池化層的設計,模型的卷積塊之間由池化層連接,兩次池化操作間卷積塊的卷積層數可以人為設置,提高卷積網絡的深度。
該模型為了進行特征降維、盡可能對內存占用進行優(yōu)化,同時避免模型訓練過擬合,每一個卷積組后進行平均值池化處理。本文在模型每層進行池化操作時的下采樣因子設置為2,同時把輸出向量進行減半處理。模型中每個卷積塊的卷積核數目和特征圖像的大小會增加,為了剔除冗余特征,在模型末尾的卷積塊之后進行k-max 下采樣策略,對采樣區(qū)選取個局部最優(yōu)值,保證生成的特征向量維度不變。
2.3.2 VDCNN 模型中的Shortcut
在實際的模型實踐中觀察到這樣一種現(xiàn)象,隨著層數的增加,系統(tǒng)精度會快速下滑,而且,應用隨機失活等消除過擬合現(xiàn)象的改進方法模型性能沒有明顯改善。這里參考了Resnet 的處理方式,增加了Shortcut 的結構。由圖3 中結構可以看出,每個卷積塊之間的輸出變?yōu)樵驾斎牒推鋵成涞寞B加,即()()。
圖3 ResNets 基本結構
其中,()是輸出這種設計使網絡本身不需要全連接層(FC 層)和Dropout 層即可完成訓練。這有利于實現(xiàn)更深的網絡結構,能明顯降低模型訓練誤差和測試誤差。
模型基于網絡流量數據序列特征,改變LSTM中每個門的參數,對輸出結果進行調整,從中提取特征間關聯(lián)關系。單個神經元結構如圖4 所示,其中,c表示記憶單元狀態(tài);i表示輸入門,用于控制記憶單元更新的信息量,即當前時刻網絡的狀態(tài)有多少信息需要保存到內部狀態(tài)中;f表示遺忘門,用于控制前一時刻記憶單元c有多少被保存到時刻記憶單元c;O表示輸出門,用于控制c輸出多少到下一隱藏狀態(tài)h。h為在-1 時刻向下輸出的“隱層”狀態(tài)。
圖4 LSTM 神經元圖結構
LSTM 的具體計算過程為:
其中,W 表示參數矩陣,(·)表示sigmoid()函數,i、f、o分別為LSTM 網絡的輸入門、遺忘門、輸出門。c為記憶單元的狀態(tài),h為網絡的隱藏狀態(tài),x為在時刻輸入序列的元素。從結構可以看出,由于每個神經元的權重更新是前一時刻的結果和當前時刻的特征混合經過激活函數進行激活產生的。這個過程中,歷史數據被保存了下來。通過訓練,模型能自發(fā)地學習到各個門最佳的權值,,和偏置項,單元在時間維度上能主動地調節(jié)記憶時常。LSTM 可以較好地聯(lián)系上下文特征,使對數據特征識別更準確。
VDCNN 網絡僅對數據在每一特征上的進行特征表征,并沒有關注特征之間的關聯(lián)關系。網絡入侵數據的特征大多與流量行為有關,在訪問次數,訪問持續(xù)時間等特征間是存在一定的關聯(lián)關系的,獲取這種關聯(lián)關系有利于提高對數據進行分類識別的準確率。所以,引入LSTM 模型與VDCNN 進行混合構成混合網絡。由前文LSTM 網絡可以很好地保存模型訓練的歷史信息,保留特征之間的關聯(lián)關系。設計將兩類網絡模型所提取的特征進行融合,形成嵌套式的復合網絡結構對數據特征進行提取后再分類。
通過分別建立兩類模型,利用keras 提供的融合層(merge)對兩類特征在第一維度上進行拼接,形成新的特征向量用于模型分類。這樣組層的模型為嵌套式模型,模型可分類,基礎模型層和融合層兩大層結構。在基礎模型層左邊為VDCNN 模型,右邊為LSTM 模型,在數據預處理后需要根據模型本身特定的結構設置編碼層傳入訓練,所以,模型為多輸入單輸出模型。融合層進行融合需要數據滿足在除了拼接維度上其他維度的對齊。所以,在基礎模型層的最后增加FC 層進行數據維度的對齊,進行數據形式的轉換,再傳入merge 層進行拼接。利用這種結構能夠既通過深度網絡對數據的邊緣特征進行有效提取,又能兼顧特征間關聯(lián)關系,從而有效提高模型識別的準確率。
本實驗在Windows10 系統(tǒng)下進行,利用Nvidia RTX2060 6 G 的GPU 輔助計算,系統(tǒng)內存為DDR4,16 G。本文模型的神經網絡搭建使用Keras 框架,使用python 編程實現(xiàn)。
本實驗損失函數為categorical_crossentropy,優(yōu)化器設置為RMSProp。該方法設置了一個衰減系數,使每回合按照一定比例進行衰減,參數更新規(guī)則如下所示:
其中,代表的是迭代次數,梯度平方的向量用表示,每個元素為對應參數的梯度平方,設置可調參數為0.9,兩個矩陣或向量對應位置的元素相乘用⊙表示。diag()是根據向量生成對角矩陣函數,Σ是一極小整數,I 是單位陣。
為減少學習周期的同時能使模型快速收斂,選擇使用ReLU 作為卷積層和全連接層的激活函數,具體公式如下:
為了評價混合模型對入侵數據識別的質量,在實驗中采用精確率、對準率和錯誤率作為度量標準對模型進行檢驗。
精確率是指正確識別的數據與總數據之比。精確度是分類性能評價的主要度量指標。公式如下:其中,為正確預測正樣本,為未正確預測負樣本,為未正確預測正樣本,為未正確預測負樣本:
以模型的精確率為主要對比指標,同時結合模型的對準率和錯誤率進行輔助分析判斷模型的運行效果。
目前,許多神經網絡采用的反向傳播算法,梯度會在反傳過程中逐層衰減,隨著網絡層數的加深,傳播的內容會衰減到非常小甚至消失,導致訓練困難。VDCNN 利用Shortcut 結構解決了這一問題,這里設置了不同深度的VDCNN 模型,其運行的分類效果如表2 所示。
表2 不同深度VDCNN 模型運行效果對比
從表2 中可以看出本模型隨著深度的增加,準確率得到了有效提高。這表明本文引入的Shortcut的模型結構能夠可以處理隨著網絡深度增加而導致梯度消減的問題,從而提高數據集識別的精確率。
本文以精確度作為主要的評價指標與其他模型方法進行比較。模型運行結果與傳統(tǒng)分類算法、LSTM 模型、VDCNN 模型的分類結果進行比對。模型訓練均使用CES-CIC-IDS2018 數據集。具體的實驗結果對比如表3 所示。
表3 不同模型運行效果對比
對實驗結果分析可以得出,本文提出的VDCNN 與LSTM混合模型的識別準確率為96.74%。與一般機器學習算法相比,神經網絡的引入可以有效地提高模型的識別準確率,模型識別的準確率能提升2%~4%。
由于VDCNN 是基于殘差神經網絡實現(xiàn)的深層網絡,因此,訓練效果明顯優(yōu)于一般卷積神經網絡,能夠獲取到更多特征信息,同時利用LSTM 對模型的歷史信息進行了有效保留,使數據特征之間關聯(lián)關系反映到提取的特征中。本模型將兩類提取出的特征進行拼接,進行數據分類,使得模型運算時兼顧了兩種模型的特點。結果顯示該模型與LSTM 模型相比模型準確率提升約為3%,對VDCNN 網絡模型相比性能提升了約為1%,說明數據間關聯(lián)關系對模型的分類識別有一定影響。
通過實驗結果可以看出,該模型在處理入侵檢測信息識別問題有一定優(yōu)勢。本文所構建的網絡結構組成的混合神經網絡模型,由于其兼顧了數據的本身特征和特征間的關聯(lián)關系,實現(xiàn)了多維度的特征標識,識別性能明顯強于單一模型的識別性能。同時利用結構上的優(yōu)化,利用殘差網絡的短接結構有效避免了數據過擬合的問題。相較現(xiàn)有的利用神經網絡處理入侵檢測問題的方法有一定改善。
為了解決傳統(tǒng)入侵檢測算法對高維復雜數據集特征解析不完善的問題,提出了一種由VDCNN與LSTM 構成的混合模型。該模型通過VDCNN 的深層網絡結構對數據邊緣特征進行提取,同時利用LSTM 提取數據在時序上的關聯(lián)特征,將兩類特征拼接形成新的時空特征進行分類檢測,從而對具有復雜特征的網絡數據進行準確地識別。
從實驗分析中可以看出,通過在CES-CICIDS2018 數據集上訓練并測試本模型,對異常數據的識別準確率達到96.74%,與已有模型對比,本文模型表現(xiàn)出了更好的性能,說明模型能夠更準確地識別各類新型網絡攻擊手段,對進一步改進入侵檢測技術有一定參考價值。下一步工作主要是優(yōu)化模型結構,通過人為標定或者在此基礎上增加無添加學習的方式,對未知類別的網絡攻擊進行記錄,并據此更新模型,提升模型的自主學習能力,使模型具備自主更新功能。