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