楊 杰 趙俊杰 張國興
(中南民族大學,湖北 武漢 430074)
在入侵檢測研究中[1],隨著網(wǎng)絡數(shù)據(jù)流量來源愈發(fā)復雜,研究數(shù)據(jù)集的維度也在不斷增加,傳統(tǒng)檢測算法漸漸難以滿足現(xiàn)實需求,研究工作者引入深度學習提升其檢測性能[2]。深度學習通過數(shù)據(jù)集訓練,獲取特征間的深層關系,執(zhí)行分類任務與預測任務。
針對基于深度學習的入侵檢測系統(tǒng),常見的攻擊方法有如下幾種:(1)污染攻擊:通過偽裝成普通用戶上傳虛假數(shù)據(jù)或截取并篡改數(shù)據(jù)等方式擾亂數(shù)據(jù)集的特征分布。(2)中毒攻擊:篡改部分標簽信息,干擾模型訓練。(3)對抗攻擊:對輸入樣本添加輕微擾動,使得深度學習對其進行錯誤分類[3]。
上述攻擊方法難以適配如今基于深度學習入侵檢測系統(tǒng)的高速發(fā)展。生成式對抗網(wǎng)絡(Generative Adversarial Networks,GAN)能夠學習數(shù)據(jù)的特征分布,生成高質量的數(shù)據(jù)樣本[4]。本文構建了一個由GAN、轉換器與DBN 構成的模型框架,針對基于深度信念網(wǎng)絡(Deep Belief Network,DBN)的入侵檢測系統(tǒng)進行攻擊。GAN 生成符合一般網(wǎng)絡流量數(shù)據(jù)特征分布的數(shù)據(jù)樣本。轉換器保留生成樣本的非攻擊特征,與攻擊行為數(shù)據(jù)的攻擊特征結合,形成具備攻擊能力的新的攻擊樣本。攻擊特征與非攻擊特征的劃分使用隨機森林算法進行篩選。DBN 作為本文的攻擊目標,設置相關模塊能對攻擊性能進行有效評估。
2.1 DBN-SVM?;谥С窒蛄繖C (Support Vector Machine,SVM)算法的DBN 在應用實踐中,檢測率更高,分類更加準確[5]。本文選取基于此類算法入侵檢測系統(tǒng)作為攻擊目標,并作為檢測模塊,衡量攻擊性能[6]。
DBN 基本組成是受限制玻爾茲曼機(Restricted Boltzmann Machine,RBM)。RBM 根據(jù)以下能量函數(shù)求解參數(shù):
多個RBM 按照順序依次連接構成DBN。通過訓練,使得每個RBM 都能夠獲取最優(yōu)的模型參數(shù),該步驟稱為預訓練。通過預訓練可以得到以下權重參數(shù)矩陣:
在最頂層的RBM 上構建一個分類算法以完成分類任務,該算法不拘泥于某個特定的分類算法,本文使用SVM算法[7]。
預訓練獲取的模型參數(shù)是每個RBM 的最優(yōu)參數(shù)傳給SVM 算法。通過SVM 的訓練神經(jīng)元的參數(shù)進行調(diào)整參數(shù),最終優(yōu)化整個DBN 的特征映射,該步驟稱為微調(diào),見圖1。
圖1 基于SVM 網(wǎng)絡DBN 的基本結構
2.2 WGAN-GP。GAN 的思想基礎是零和博弈,GAN 的結構示意圖如圖2。
圖2 GAN 基本結構
生成器反應隨機變量z 到真實的數(shù)據(jù)樣本x 的映射關系,z 服從正態(tài)分布,經(jīng)過生成器得到微分函數(shù)g(z),參數(shù)為θg。判別器使用參數(shù)θd定義判別函數(shù)f(x),表示x 是真實數(shù)據(jù)的概率。由此得出價值函數(shù):
固定生成器的模型參數(shù),最符合要求的判別函數(shù)值為:
將固定的判別函數(shù)f*(x)代入價值函數(shù),使用JS 散度表達最終函數(shù)為:
Pr(x)和Pg(x)的概率分布相等時,生成樣本完全符合真實數(shù)據(jù)的特征分布,價值函數(shù)L 的值為最小值,符合求解價值函數(shù)最小值的期望目標。
WGAN 通過引入Wasserstein 距離的數(shù)學概念,添加一個Lipschitz 約束,能夠有效地解決傳統(tǒng)GAN 存在的梯度消失梯度消失問題。Wasserstein 距離的特點是即便兩個分布沒有重疊,Wasserstein 距離仍然能夠反映它們的遠近。因此,WGAN 不會發(fā)生JS 散度或KL 散度引起的梯度消失問題。研究人員使用梯度懲罰(gradient penalty)的概念,對梯度信息進行抑制,避免梯度爆炸的問題。得到如下的價值函數(shù):
GAN 的生成器和判別器不拘泥于算法,許多研究引入了高效的算法模型或者是其改進模型作為GAN 的生成器和判別器,滿足多領域、多問題的任務需求。
3.1 數(shù)據(jù)集。CIC-IDS2018 數(shù)據(jù)集是加拿大網(wǎng)絡安全研究所通過建立模擬正常網(wǎng)絡行為和各類網(wǎng)絡攻擊的系統(tǒng)采集的數(shù)據(jù)流量特征信息。數(shù)據(jù)集包含80 個網(wǎng)絡流量特征和Bruteforce、Botnet、Dos、Web Attacks、Infiltration 和DDos等攻擊行為。不同的攻擊根據(jù)使用攻擊工具的不同細化為多種類別,使用數(shù)據(jù)標簽為這些類別標注。
經(jīng)過對11 種網(wǎng)絡數(shù)據(jù)集研究后發(fā)現(xiàn),其他數(shù)據(jù)集存在年代較久、數(shù)據(jù)不平衡、攻擊樣本種類不充分等問題,無法滿足現(xiàn)今的網(wǎng)絡需求。CIC-IDS2018 數(shù)據(jù)集更貼合當代網(wǎng)絡數(shù)據(jù)特征分布,本文選取該數(shù)據(jù)集作為攻擊數(shù)據(jù)集。
3.2 數(shù)據(jù)集優(yōu)化處理。CIC-IDS2018 數(shù)據(jù)集存在如下問題:存在少量空值數(shù)據(jù)和無窮值數(shù)據(jù);包含重復冗余數(shù)據(jù);數(shù)據(jù)樣本分布不均,難以訓練模型。對CIC-IDS2018 數(shù)據(jù)集進行如下處理:(1)清除異常數(shù)據(jù)樣本。(2)去重。(3)數(shù)據(jù)均衡,Web Attacks 數(shù)據(jù)樣本過少,對其進行刪除。其他數(shù)據(jù)樣本均勻采樣。(4)Timestamp 數(shù)據(jù)類型由日期型數(shù)據(jù)轉換為時間戳類型。(5)采用歸一化方法對數(shù)據(jù)值進行標準化處理。(6)對Label 屬性進行獨熱編碼。
3.3 模型基礎架構設計?;贕AN 入侵檢測攻擊方法相關模型架構圖如圖3 所示。
圖3 基于GAN 網(wǎng)絡的入侵檢測系統(tǒng)攻擊框架設計
生成模塊是一個完整的WGAN-GP 網(wǎng)絡,以生成高質量的攻擊樣本。輸入為隨機的噪聲變量,輸出為79 維的數(shù)據(jù)樣本。該樣本學習正常數(shù)據(jù)樣本的特征分布,原則上,不具備相應的攻擊能力。通過轉換器結合攻擊數(shù)據(jù)中的攻擊特征,使其具備攻擊能力。判別器將判別結果交給生成器,對生成器優(yōu)化訓練。
轉換器模塊由基于隨機森林算法的特征優(yōu)先選擇算法和組建新攻擊樣本的轉換器構成。攻擊行為的數(shù)據(jù)樣本,如果直接修改其重要的相關特征,會造成樣本失去相應的攻擊能力。而對不重要的相關特征進行改動,數(shù)據(jù)樣本依然具備攻擊能力。將重要的相關特征稱為攻擊特征,其他特征稱為非攻擊特征。通過隨機森林算法對預處理后的CIC-IDS2018 數(shù)據(jù)集進行訓練學習,得到對除Label 屬性外的79 個數(shù)據(jù)特征的排序,最終選取評分在0.03 以上的特征集作為具備攻擊能力的攻擊特征,見表1。
表1 評分在0.03 以上的特征屬性
選定上述特征作為攻擊特征,其余的特征作為非攻擊特征。轉換器將生成樣本的非攻擊特性與攻擊行為數(shù)據(jù)的攻擊特征結合。形成新的攻擊樣本,送入判別器訓練。
檢測模塊是基于DBN-SVM 的入侵檢測算法。將基于該網(wǎng)絡的入侵檢測系統(tǒng)作為本文的攻擊目標,并將其作為模型框架的檢測模塊,檢測最終的攻擊性能。該實驗流程中,DBN-SVM 對優(yōu)化處理的數(shù)據(jù)集進行訓練,記錄其檢測準確率。在GAN 訓練穩(wěn)定后,將攻擊樣本輸入?yún)?shù)訓練好的DBN-SVM,對比前后的檢測準確率,評估生成式對抗網(wǎng)絡生成攻擊樣本的質量。
4.1 實驗流程設置?;谏鲜瞿P图軜嫞O置如圖4 的實驗流程。(1)對CIC-IDS2018 數(shù)據(jù)集進行優(yōu)化處理。(2)預處理的數(shù)據(jù)集劃分訓練集和測試集,將訓練集輸入DBN-SVM 訓練,使用測試集進行測試,記錄穩(wěn)定的DBN-SVM 的準確率信息。(3)預處理的數(shù)據(jù)集使用隨機森林算法進行特征排序,劃分攻擊特征和非攻擊特征。(4)隨機生成的噪聲變量數(shù)據(jù)作為WGAN-GP 中生成器的輸入,生成數(shù)據(jù)樣本。(5)將生成樣本的非攻擊特征與攻擊行為數(shù)據(jù)的攻擊特征進行結合,產(chǎn)生新的攻擊樣本。(6)將從預處理的數(shù)據(jù)集中選取正常網(wǎng)絡行為數(shù)據(jù)與轉換器結合的新的攻擊樣本作為WGAN-GP 中判別器的輸入,輸出結果傳回生成器,進行迭代訓練。(7)對攻擊樣本進行測試,對DBN-SVM 進行測試,記錄其準確率信息,與第二步中的準確率比較,分析實驗結果。
圖4 基于GAN 網(wǎng)絡的入侵檢測系統(tǒng)攻擊方案流程圖
4.2 實驗結果。實驗環(huán)境設置如下,操作系統(tǒng)為64 位Windows10,使用的CPU 是AMD Ryzen 7 5800H,RAM 為16GB。 開 發(fā) 環(huán) 境 是 TensorFlow1.13.0,CUDA10.0 和CuDNN7.4。生成式對抗網(wǎng)絡的學習率設置為0.0005,DBN-SVM 的學習率設置為0.5。
實驗表明,基于DBN-SVM 的入侵檢測系統(tǒng)在模型訓練穩(wěn)定的狀況下,測試集的準確率達到83.48%,錯誤率為16.52%,見表2。
表2 原始數(shù)據(jù)經(jīng)DBN-SVM 測試的混淆矩陣結果
經(jīng)過生成式對抗網(wǎng)絡的穩(wěn)定訓練,選取1200 條生成攻擊樣本數(shù)據(jù)交由入侵檢測系統(tǒng)檢測。經(jīng)過檢測,準確率為36.26%,錯誤率為63.74%。
對比兩次檢測結果,錯誤率差值為47.22%,GAN 的epoch 設置為3000,每學習300 個樣本的特征分布產(chǎn)生一次數(shù)據(jù)樣本,生成攻擊樣本時間為3.1s,見表3。
表3 基于GAN 生成攻擊樣本與正常網(wǎng)絡行為數(shù)據(jù)經(jīng)DBN-SVM 測試的混淆矩陣結果
4.3 對比實驗及分析。為進一步分析本文提出的攻擊方法的性能,選取C&W 和DeepFool 兩種對抗樣本攻擊方法在CIC-IDS2018 數(shù)據(jù)集上進行實驗對比。下表匯總了三種攻擊方法的錯誤率差值和生成攻擊樣本的時間,見表4。
表4 GAN、DeepFool 和C&W 三種攻擊方法的錯誤率差值及攻擊樣本生成時間對比
本文提出的攻擊方法與DeepFool 方法使得錯誤率差值基本維持在30%以上,說明產(chǎn)生的攻擊樣本都能對基于DBN-SVM 入侵檢測系統(tǒng)進行有效地攻擊?;贕AN 入侵檢測系統(tǒng)攻擊方法生成攻擊樣本時間遠遠低于其他兩種攻擊方法。
本文提出了基于GAN 的入侵檢測系統(tǒng)攻擊方法。該方法通過WGAN-GP 生成數(shù)據(jù)樣本,使用隨機森林算法劃分攻擊特征與非攻擊特征,并以此為依據(jù)將生成樣本的非攻擊特征與攻擊行為數(shù)據(jù)的攻擊特征結合,保留生成樣本攻擊能力,來規(guī)避檢測系統(tǒng)的分類,成功地降低其檢測效率。通過設置對抗樣本攻擊中的C&W 和DeepFool 兩類攻擊方法進行對比實驗,表明本文提出的攻擊方法對基于深度信念網(wǎng)絡的入侵檢測系統(tǒng)的攻擊更為有效,攻擊樣本生成時間更快。