劉海燕,呂 涵,2
(1.陸軍裝甲兵學(xué)院, 北京 100072;2.中國人民解放軍94452部隊(duì), 河南 平頂山 467331)
入侵檢測系統(tǒng)是保護(hù)網(wǎng)絡(luò)安全的重要手段,它可以在網(wǎng)絡(luò)受到攻擊時(shí)及時(shí)發(fā)現(xiàn)并作出響應(yīng)。隨著網(wǎng)絡(luò)數(shù)據(jù)量不斷增多,基于機(jī)器學(xué)習(xí)算法的入侵檢測技術(shù)應(yīng)運(yùn)而生。機(jī)器學(xué)習(xí)與入侵檢測技術(shù)的結(jié)合能夠有效降低檢測的漏報(bào)率和誤報(bào)率,提高檢測的準(zhǔn)確率等。深度學(xué)習(xí)技術(shù)是機(jī)器學(xué)習(xí)領(lǐng)域的一個(gè)重要分支,研究表明:它在計(jì)算機(jī)視覺、自然語言處理和惡意軟件檢測等多個(gè)領(lǐng)域取得了優(yōu)于傳統(tǒng)機(jī)器學(xué)習(xí)算法的性能[1]。目前,隨著攻擊手段日益智能化和復(fù)雜化,傳統(tǒng)的機(jī)器學(xué)習(xí)方法在入侵檢測中應(yīng)用的有效性在下降,而基于深度學(xué)習(xí)的入侵檢測系統(tǒng)達(dá)到了很高的檢測精度并且已廣泛應(yīng)用[2]。
但對抗樣本的出現(xiàn),使得神經(jīng)網(wǎng)絡(luò)模型的安全問題受到威脅。對抗樣本[3]是指在原始樣本中加入細(xì)微擾動并使模型錯(cuò)誤分類的一種合成樣本。對抗樣本會極大地干擾分類器,降低深度學(xué)習(xí)算法在對抗環(huán)境下的魯棒性[4]。關(guān)于對抗樣本的研究最初主要是在圖像分類領(lǐng)域[5],但隨著研究的深入和拓展,其他領(lǐng)域的對抗樣本研究逐漸受到關(guān)注,包括網(wǎng)絡(luò)安全領(lǐng)域。
Rigaki[6]研究了惡意軟件檢測中的對抗樣本,用FGSM和JSMA方法成功生成了能夠逃避入侵檢測系統(tǒng)的對抗性流量樣本。Wang[7]應(yīng)用了更多對抗攻擊算法包括FGSM、JSMA、DeepFool和C&W針對NSL-KDD數(shù)據(jù)集生成對抗樣本。這些工作是基于掌握目標(biāo)模型的內(nèi)部信息而進(jìn)行的白盒攻擊。然而在實(shí)際場景中,攻擊者很可能無法獲得模型的內(nèi)部信息,只能通過對目標(biāo)模型輸入樣本得到輸出。Yang等[8]進(jìn)行了針對入侵檢測系統(tǒng)的黑盒攻擊的研究,使用生成對抗網(wǎng)絡(luò)針對NSL-KDD數(shù)據(jù)集生成了對抗樣本,但并未針對網(wǎng)絡(luò)流量的特殊性進(jìn)行添加擾動的限制,更改了數(shù)據(jù)的功能特征導(dǎo)致攻擊效果失效。此外,這種靜態(tài)的對抗攻擊方法不能很好地學(xué)習(xí)到數(shù)據(jù)特征。
針對以上問題,本文提出了一種基于生成對抗網(wǎng)絡(luò)的對抗攻擊模型,一方面在生成對抗樣本時(shí)設(shè)計(jì)了針對入侵檢測數(shù)據(jù)集的特征約束機(jī)制,保留了網(wǎng)絡(luò)流量的真實(shí)有效性和不可察覺性;另一方面利用動態(tài)查詢黑盒模型的輸出,更好地學(xué)習(xí)和適應(yīng)入侵檢測模型,生成了高質(zhì)量的對抗樣本。該模型在訓(xùn)練完成后,可以一步生成對抗樣本并實(shí)施攻擊,提高了對抗攻擊的效率。
NSL_KDD數(shù)據(jù)集是網(wǎng)絡(luò)流量入侵檢測領(lǐng)域的公開基準(zhǔn)數(shù)據(jù)集,本文將該數(shù)據(jù)集作為實(shí)驗(yàn)數(shù)據(jù)集。NSL_KDD數(shù)據(jù)集中的每個(gè)樣本由41個(gè)特征和1個(gè)類標(biāo)識組成[9]。41個(gè)特征分為4種類型,包括網(wǎng)絡(luò)連接的基本特征、網(wǎng)絡(luò)連接的內(nèi)容特征、基于時(shí)間的流量統(tǒng)計(jì)特征和基于主機(jī)的流量統(tǒng)計(jì)特征。類標(biāo)識即為標(biāo)簽用來表示該條網(wǎng)絡(luò)連接的類型,分為正常和攻擊,攻擊樣本共有四大類共39種攻擊類型,包括Probe、Dos、U2R和R2L攻擊。其中,訓(xùn)練集包含22種攻擊類型,另外17種在測試集中,用來驗(yàn)證分類器的泛化性能。
與圖像不同,網(wǎng)絡(luò)流量的每個(gè)特征具有其特定的含義,且取值各不相同,如若在對抗樣本生成時(shí)不對特征值進(jìn)行約束,生成的對抗樣本則不能保證符合真實(shí)流量的特性,以至于在網(wǎng)絡(luò)入侵檢測系統(tǒng)的中間環(huán)節(jié)即被丟棄,或在通過檢測繼而攻擊網(wǎng)絡(luò)時(shí)喪失入侵功能。
為了使得生成的對抗樣本能夠更加真實(shí)有效,我們對NSL-KDD數(shù)據(jù)集進(jìn)行了特征分析并提出了一種特征約束機(jī)制。其中,保證功能特征不變,是為了對抗樣本能保留真實(shí)流量入侵行為的特性,其他特征約束是為了更加接近真實(shí)網(wǎng)絡(luò)流量的特點(diǎn),使其不被察覺而丟棄。
1) 保證功能特征不變:根據(jù)攻擊的原理和目的,不同攻擊類型的網(wǎng)絡(luò)流量都有其特定的功能特征,代表了該攻擊的基本功能[10]。基本特征對于任何網(wǎng)絡(luò)流量的有效性來說都是必需的,如若更改則網(wǎng)絡(luò)流量無效。Probe攻擊利用基于主機(jī)的流量特征和基于時(shí)間的流量特征來表現(xiàn);DOS攻擊體現(xiàn)在基于時(shí)間的流量特征部分;而U2R和R2L攻擊一般體現(xiàn)在內(nèi)容特征部分[11]。在添加對抗擾動時(shí),針對不同攻擊類型要保證其功能特征不被改動。
2) 保證特征類型一致:NSL-KDD數(shù)據(jù)集中,有3種不同的特征類型,包括字符型特征,離散型特征和連續(xù)型特征,攻擊者在生成對抗樣本的過程中,應(yīng)該保持特征的數(shù)據(jù)類型不變。數(shù)據(jù)集中的字符向量包括protocol_type、service和flag不做改動。特征向量中的離散型數(shù)據(jù)為二值特征,經(jīng)過生成器處理后,將修改后的二值特征的值轉(zhuǎn)換為以0.5為閾值的二值。我們將高于閾值的值轉(zhuǎn)換為1,低于閾值的值轉(zhuǎn)換為0。
3) 保證特征取值一致:數(shù)據(jù)預(yù)處理后,每個(gè)特征向量都?xì)w一到(0,1)之間,為使生成的對抗樣本與原始樣本取值范圍相同,設(shè)定添加噪聲的取值是(0,1),生成后的特征向量將1以上的元素設(shè)為1,0以下的元素設(shè)為0。此外,num_outbound_cmds這一特征表示ftp會話中帶外命令的數(shù)量,原數(shù)據(jù)集中該特征值均為0。若修改該特征,則會被察覺到流量含有外部命令,因此在生成對抗樣本時(shí),此項(xiàng)不做修改。
4) 保證特征間關(guān)系一致:wrong_fragment代表錯(cuò)誤分段的數(shù)量,duration代表連接的長度。當(dāng)數(shù)據(jù)包中存在錯(cuò)誤分段,則該連接無法正常持續(xù),所以duration的值會為0。說明這2個(gè)特征間存在著x*y=0的條件約束。
生成對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)是由Goodfellow[12]首次提出的深度學(xué)習(xí)模型,由生成模型G和判別模型D兩部分組成。生成模型學(xué)習(xí)真實(shí)數(shù)據(jù)分布生成偽數(shù)據(jù),判別模型區(qū)分真實(shí)數(shù)據(jù)和生成數(shù)據(jù)。生成對抗網(wǎng)絡(luò)的生成模型和判別模型不斷進(jìn)行對抗訓(xùn)練和優(yōu)化。在這種模式下,GAN能夠生成看似接近原始數(shù)據(jù)的偽數(shù)據(jù)。設(shè)x為真實(shí)數(shù)據(jù),G(z)為生成的偽數(shù)據(jù),D(x)表示x被分類為真實(shí)樣本的概率,p表示數(shù)據(jù)的概率分布。GAN的優(yōu)化問題可描述為G與D的極大極小博弈問題:
Ez-pz[log(1-D(G(z)))]
(1)
但是,GAN也存在一些問題,主要是訓(xùn)練不穩(wěn)定,以及容易陷入坍塌模式導(dǎo)致生成樣本缺乏多樣性。針對這些問題,Arjovsky在GAN的基礎(chǔ)上提出了改進(jìn)算法WassersteinGAN[13],它用Wasserstein距離來衡量2個(gè)概率分布之間的差異,可以提供有效的梯度信息,使訓(xùn)練更加穩(wěn)定,生成樣本與原始樣本深度特征差異更小。下式為WGAN的目標(biāo)函數(shù):
(2)
本文在WGAN的基礎(chǔ)上對模型進(jìn)行改進(jìn),提出了一種對抗樣本生成模型,稱為AdvWGAN。該模型旨在生成逃避入侵檢測系統(tǒng)且真實(shí)有效的對抗性流量樣本,并對入侵檢測模型進(jìn)行黑盒攻擊。
訓(xùn)練階段:AdvWGAN動態(tài)地學(xué)習(xí)黑盒IDS的輸出結(jié)果,并根據(jù)損失函數(shù)更新生成器和判別器的參數(shù),最后訓(xùn)練出能夠基于輸入數(shù)據(jù)生成逃避檢測的對抗樣本的生成模型。
測試階段:向生成模型中輸入測試集中的流量樣本,驗(yàn)證生成的對抗樣本是否能夠逃避目標(biāo)模型的檢測。
實(shí)際應(yīng)用:在捕獲到網(wǎng)絡(luò)流量后,送入訓(xùn)練后的生成模型,即可將其構(gòu)建為帶有對抗性的網(wǎng)絡(luò)流量,并用其對入侵檢測系統(tǒng)實(shí)施攻擊。
圖1為構(gòu)建的AdvWGAN對抗樣本生成模型的訓(xùn)練框架,該框架主要由3個(gè)部分組成,包括生成器G、判別器D和目標(biāo)IDS。
本文設(shè)計(jì)了3神經(jīng)網(wǎng)絡(luò)模型作為目標(biāo)IDS,針對NSL-KDD數(shù)據(jù)集進(jìn)行二分類訓(xùn)練,來模擬真實(shí)場景中的網(wǎng)絡(luò)入侵檢測系統(tǒng)。在不了解目標(biāo)IDS模型的參數(shù)和結(jié)構(gòu)等信息時(shí),假設(shè)可以通過查詢來獲得黑盒IDS的分類結(jié)果。
在AdvWGAN模型中,生成器不再直接輸入噪聲生成虛假樣本,而是通過原始樣本與噪聲串聯(lián)輸入生成器,并使用特征約束機(jī)制控制特征的修改。生成器的目標(biāo)是生成對抗性樣本,使得分類器將對抗性惡意樣本誤判為正常樣本,生成器的梯度由判別器來反向傳播。判別器不再是區(qū)分正常樣本和對抗樣本,而是通過動態(tài)地學(xué)習(xí)和模仿目標(biāo)模型的預(yù)測輸出,使得生成的對抗樣本與預(yù)測的正常樣本更加相似。
訓(xùn)練集被分為正常流量和惡意流量,生成器輸入惡意樣本和噪聲來生成對抗性樣本,再將正常樣本和生成的對抗樣本分別送入目標(biāo)IDS和判別器D。判別器D將目標(biāo)IDS實(shí)時(shí)預(yù)測的標(biāo)簽作為目標(biāo)進(jìn)行訓(xùn)練,并將分類結(jié)果反饋給生成器G。
AdvWGAN生成模型的訓(xùn)練算法如下,學(xué)習(xí)率設(shè)置為0.000 1,共訓(xùn)練20個(gè)輪次,每訓(xùn)練1次生成器,訓(xùn)練5次判別器。
參數(shù)α=0.0001,epochs=20,critic_iters=5
for epoch in range(epochs):
foriin range(每輪次迭代次數(shù)):
輸入Xattack和N到G,經(jīng)過C,生成Xadv;
D對Xadv進(jìn)行判別;
根據(jù)生成器的目標(biāo)函數(shù)LG更新G的參數(shù);
foriin range (critic_iters):
將D的裁剪閾值設(shè)置為[-c,c];
輸入Xattack和N到G,經(jīng)過C,生成Xadv;
IDS對(Xnormal,Xadv)進(jìn)行分類,得到預(yù)測標(biāo)簽;
D對IDS預(yù)測的標(biāo)簽對應(yīng)的數(shù)據(jù)集進(jìn)行判別;
根據(jù)判別器的目標(biāo)函數(shù)LD更新D的參數(shù)。
end for
end for
end for
生成器G將惡意流量和噪聲作為輸入,并進(jìn)行特征約束限制,生成對抗性樣本Xadv。將正常樣本和生成的對抗樣本送入判別器D,根據(jù)判別器D的預(yù)測結(jié)果計(jì)算損失更新生成器G的參數(shù)。
判別器D設(shè)置權(quán)重裁剪閾值,目標(biāo)IDS對輸入的正常樣本和對抗樣本進(jìn)行分類,判別器D輸入目標(biāo)IDS的數(shù)據(jù)進(jìn)行判別,根據(jù)判別的結(jié)果計(jì)更新判別器D的參數(shù)。
G的目標(biāo)是生成對抗性樣本,使得分類器將對抗性惡意樣本誤判為正常樣本。D的目的是通過動態(tài)地學(xué)習(xí)和模仿黑盒模型的預(yù)測輸出,使之無法區(qū)分正常樣本和生成樣本。以下分別為G和D的目標(biāo)函數(shù):
LG=-Ex∈XadvD(x)
(3)
LD=Ex∈PattackD(x)-Ex∈PnormalD(x)
(4)
其中,LG為生成器的目標(biāo)函數(shù),Xadv表示生成的對抗性樣本,最小化LG。LD為判別器的目標(biāo)函數(shù),Pattack為目標(biāo)IDS預(yù)測的攻擊樣本,Pnormal為目標(biāo)IDS預(yù)測的正常樣本,最小化LD,使得判別器與目標(biāo)模型結(jié)果相似。
本文實(shí)驗(yàn)選用NSL-KDD數(shù)據(jù)集,KDDTrain+作為訓(xùn)練集分為2部分,一半用來訓(xùn)練分類模型,一半用來訓(xùn)練對抗樣本生成模型,KDDTest+作為測試集用于驗(yàn)證對抗攻擊效果。
數(shù)據(jù)集中有多種攻擊類型,為方便起見,將數(shù)據(jù)集的標(biāo)簽二元化,本文實(shí)驗(yàn)將所有異常樣本標(biāo)簽設(shè)為1,正常樣本標(biāo)簽設(shè)為0。對非數(shù)值型數(shù)據(jù)特征protocol_type、service和flag進(jìn)行獨(dú)熱編碼,編碼處理后的數(shù)據(jù)集每條記錄變?yōu)?22維的特征向量。針對部分特征取值空間過大的問題,將各個(gè)特征取值范圍歸一化到[0,1]之間[14]。
本文使用深度神經(jīng)網(wǎng)絡(luò),卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)[15]這3種經(jīng)典的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搭建了3個(gè)神經(jīng)網(wǎng)絡(luò)模型,分別是DNN模型、CNN模型和RNN模型。根據(jù)經(jīng)驗(yàn)分析,我們對各模型的網(wǎng)絡(luò)層數(shù)、神經(jīng)單元數(shù)、激活函數(shù)、優(yōu)化算法、學(xué)習(xí)率和批尺寸等參數(shù)的選擇做了對比實(shí)驗(yàn),最終確定了3種檢測性能較好的神經(jīng)網(wǎng)絡(luò)模型,它們在驗(yàn)證集上分別得到了99.64%、99.49%和99.39%的檢測準(zhǔn)確率。
3個(gè)模型訓(xùn)練時(shí)批尺寸設(shè)置為128,共40個(gè)輪次。使用網(wǎng)絡(luò)輸出與標(biāo)簽的交叉熵作為損失函數(shù),Adam作為優(yōu)化器,學(xué)習(xí)率設(shè)置為0.001。激活函數(shù)選擇ReLu函數(shù),輸出層激活函數(shù)使用Sigmoid函數(shù)。DNN模型隱藏層的結(jié)點(diǎn)數(shù)分別為:128、256、128、64;
CNN模型包含2個(gè)卷積層和2個(gè)最大池化層,卷積核分別為16@3*3和32@3*3;RNN模型使用一個(gè)LSTM層,以20條網(wǎng)絡(luò)流量記錄作為一個(gè)序列。
生成器G和判別器D分別采用4層和5層全連接神經(jīng)網(wǎng)絡(luò),隱藏層的激活函數(shù)選取ReLu,G的隱藏層結(jié)點(diǎn)數(shù)分別為128、64、128,D的隱藏層結(jié)點(diǎn)數(shù)分別為128、256、128、64。訓(xùn)練過程中設(shè)置批尺寸為256,使用的優(yōu)化器為RMSprop。判別器的權(quán)重裁剪閾值設(shè)置為0.01。
在實(shí)驗(yàn)指標(biāo)上,我們選擇了攻擊成功率和約束滿足率。
攻擊成功率(attack success rate,ASR)是指生成的對抗樣本使分類器分類錯(cuò)誤的比例。攻擊成功率越高,代表對抗樣本生成方法越好。
約束滿足率(constraint satisfaction rate,CSR)是指滿足特征約束機(jī)制的對抗樣本所占的比例,CSR越大,說明生成的對抗樣本與真實(shí)網(wǎng)絡(luò)流量越相似。
本節(jié)針對基于深度學(xué)習(xí)的入侵檢測系統(tǒng)進(jìn)行對抗攻擊實(shí)驗(yàn),分別輸入測試集中各類型攻擊流量來生成對抗樣本并對黑盒IDS進(jìn)行對抗攻擊。
表1顯示了不同對抗攻擊方法針對不同黑盒IDS的對抗成功率的對比,包括Yang提出的基于GAN的靜態(tài)算法和本文提出的AdvWGAN算法。實(shí)驗(yàn)結(jié)果顯示,與靜態(tài)GAN攻擊算法相比,在AdvWGAN算法的作用下,針對各種攻擊類型流量樣本和不同神經(jīng)網(wǎng)絡(luò)模型進(jìn)行的對抗攻擊都達(dá)到了高攻擊成功率,表明AdvWGAN在逃避IDS模型檢測的對抗攻擊中具有良好的有效性和泛化性。
表1 攻擊成功率的對比Table 1 The comparison of attack success rate %
此外,還比較了生成的對抗性流量樣本的約束滿足率,實(shí)驗(yàn)結(jié)果如表2所示:靜態(tài)GAN攻擊算法由于沒有對特征修改進(jìn)行限制,其構(gòu)建的對抗樣本只有很低的約束滿足率,而在特征約束的作用下,AdvWGAN模型生成的對抗樣本均達(dá)到了100%的約束滿足率,說明該模型生成的對抗樣本滿足了真實(shí)網(wǎng)絡(luò)流量的特性,與原始流量樣本相似度高。
表2 約束滿足率的對比Table 2 The comparison of constraint satisfaction rate %
AdvWGAN是基于生成對抗網(wǎng)絡(luò)的對抗攻擊方法,該方法在完成生成模型的訓(xùn)練后,能夠在黑盒場景中,在保證網(wǎng)絡(luò)流量真實(shí)有效的前提下實(shí)現(xiàn)面向入侵檢測系統(tǒng)的逃避攻擊。實(shí)驗(yàn)證明,通過該生成模型構(gòu)建的對抗性流量樣本絕大多數(shù)都能逃避入侵檢測系統(tǒng)的檢測,并且滿足真實(shí)網(wǎng)絡(luò)流量的特性,與原始樣本更加相似。
在生成對抗網(wǎng)絡(luò)中,判別器和生成器均為神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),容易學(xué)習(xí)到基于深度學(xué)習(xí)的入侵檢測系統(tǒng)輸出的數(shù)據(jù),從而對于此類IDS具有很好的攻擊效果,但若面對基于其他機(jī)器學(xué)習(xí)的入侵檢測系統(tǒng)時(shí)可能達(dá)不到理想的效果。而且,本文實(shí)驗(yàn)使用的是已知的開源數(shù)據(jù)集,在面對現(xiàn)實(shí)中未知類型的網(wǎng)絡(luò)流量時(shí)如何在保證流量真實(shí)有效的前提下實(shí)現(xiàn)對抗攻擊還有待研究。