李登輝,葛麗娜,王 哲,樊景威,張 壕
(廣西民族大學(xué) 人工智能學(xué)院,南寧 530006) (廣西混雜計(jì)算與集成電路分析設(shè)計(jì)重點(diǎn)實(shí)驗(yàn)室,南寧 530006)
隨著網(wǎng)絡(luò)空間日益發(fā)展,國家和個(gè)人的隱私、財(cái)產(chǎn)安全也隨之受到巨大威脅[1],新型網(wǎng)絡(luò)攻擊層出不窮[2],如何迅速、準(zhǔn)確地在復(fù)雜的網(wǎng)絡(luò)空間中檢測和識別出網(wǎng)絡(luò)攻擊,并及時(shí)做出應(yīng)對,成為越來越多企業(yè)所要面對的問題.入侵檢測系統(tǒng)是信息安全綜合防御系統(tǒng)的重要組成部分,通過監(jiān)測網(wǎng)絡(luò)流量判斷是否存在入侵行為,識別出正在發(fā)生的入侵企圖或已經(jīng)發(fā)生的入侵活動.
由于科技發(fā)展和計(jì)算機(jī)算力提升等原因,機(jī)器學(xué)習(xí)在入侵檢測領(lǐng)域變得更加火熱[3].隨機(jī)森林[4]、XGBoost[5]、決策樹[6]、樸素貝葉斯[7]、支持向量機(jī)[8]等這些傳統(tǒng)機(jī)器學(xué)習(xí)方法已經(jīng)廣泛應(yīng)用到入侵檢測系統(tǒng)中,均取得了不錯(cuò)的效果,達(dá)到了入侵檢測系統(tǒng)高準(zhǔn)確率和低誤報(bào)率的要求,但是傳統(tǒng)機(jī)器學(xué)習(xí)方法需要復(fù)雜的特征工程[9],選擇最佳特征,才能達(dá)到理想的效果,特征選擇是傳統(tǒng)機(jī)器學(xué)習(xí)方法的重中之重.
深度學(xué)習(xí)只需將網(wǎng)絡(luò)流量的初始特征直接傳遞到神經(jīng)網(wǎng)絡(luò)中,通常就可以實(shí)現(xiàn)良好的入侵檢測效果.面對更復(fù)雜的網(wǎng)絡(luò)環(huán)境,更龐大的網(wǎng)絡(luò)流量,深度學(xué)習(xí)比傳統(tǒng)機(jī)器學(xué)習(xí)更能適應(yīng)不同的領(lǐng)域和應(yīng)用[10].因此利用深度學(xué)習(xí)方法設(shè)計(jì)入侵檢測系統(tǒng)是繼傳統(tǒng)機(jī)器學(xué)習(xí)方法后的新潮流[11].為了提升入侵檢測模型的性能表現(xiàn),研究人員或選擇學(xué)習(xí)網(wǎng)絡(luò)流量的概率分布,空間特征和時(shí)序特征[12],或集合多方數(shù)據(jù)構(gòu)建入侵檢測模型[13],增強(qiáng)網(wǎng)絡(luò)流量特征的表達(dá)能力,或針對現(xiàn)存入侵檢測領(lǐng)域數(shù)據(jù)集間存在特征差異大導(dǎo)致模型泛化能力差、缺乏可靠的評價(jià)體系等問題,提出標(biāo)準(zhǔn)數(shù)據(jù)集,以衡量訓(xùn)練模型的泛化能力和有效性[14].
以往的入侵檢測模型主要關(guān)注點(diǎn)是改進(jìn)特征提取能力,提高已知攻擊的檢測精度.當(dāng)網(wǎng)絡(luò)中產(chǎn)生與任何已知攻擊完全不同行為模式的未知攻擊時(shí),大多數(shù)入侵檢測系統(tǒng)會將其誤分類為正常流量,產(chǎn)生極具誤導(dǎo)性的信息,因此需要能夠識別未知攻擊的深度學(xué)習(xí)模型來幫助構(gòu)建入侵檢測系統(tǒng)[15].
入侵檢測系統(tǒng)如果簡單地將網(wǎng)絡(luò)流量粗粒度分類為正常流量或惡意網(wǎng)絡(luò)攻擊,安全專業(yè)人員無法獲得更準(zhǔn)確的診斷信息以有效指導(dǎo)解決安全威脅,而細(xì)粒度分類可以獲得更詳細(xì)的診斷信息降低對惡意網(wǎng)絡(luò)攻擊的反應(yīng)時(shí)間,減少給企業(yè)帶來難以估計(jì)的損失.所以通過將判別條件變分自編碼器(Discriminative Conditional Variational Auto-Encoder,DCVAE)與密度峰值聚類(Density Peak Clustering,DPC)算法[16]結(jié)合提出新的模型,相比于現(xiàn)在流行的方法有更好的性能表現(xiàn),文章的主要貢獻(xiàn)如下:
1)提出的模型具有檢測未知攻擊的能力,降低未知攻擊造成的安全風(fēng)險(xiǎn).
2)提出的模型具有細(xì)粒度分類的能力,能夠幫助安全專業(yè)人員迅速判段惡意網(wǎng)絡(luò)攻擊的精準(zhǔn)類別,并對其進(jìn)行及時(shí)反應(yīng).
3)實(shí)驗(yàn)結(jié)果證明所提出的模型可以一定程度應(yīng)對當(dāng)前復(fù)雜的網(wǎng)絡(luò)環(huán)境.
本文的其余內(nèi)容安排如下.第1部分討論入侵檢測相關(guān)工作,第2部分介紹了所提出的模型涉及到的背景知識,第3部分對提出的模型進(jìn)行詳細(xì)介紹,第4部分展示了模型的實(shí)驗(yàn)結(jié)果,并與其他入侵檢測模型對比,第5部分對所做工作做出總結(jié),并指出了模型不足和未來研究方向.
衡量入侵檢測系統(tǒng)的重要特征之一是檢測未知攻擊的能力,未知攻擊也被稱為零日攻擊,許多組織和研究人員對未知攻擊高度關(guān)注.入侵檢測中的未知攻擊檢測主要定義為單類問題,即只學(xué)習(xí)正常流量的行為模式,將異常網(wǎng)絡(luò)流量識別為未知攻擊.
以往主要利用傳統(tǒng)機(jī)器學(xué)習(xí)模型完成未知攻擊識別,文獻(xiàn)[17]中在物聯(lián)網(wǎng)領(lǐng)域比較Kmeans、單類支持向量機(jī)(One-Class Support Vector Machine,OCSVM)、隨機(jī)森林、自編碼器(AutoEncoder,AE)等模型檢測未知攻擊的能力,發(fā)現(xiàn)基于機(jī)器學(xué)習(xí)的入侵檢測模型即使沒有未知攻擊的作為訓(xùn)練樣本,也能取得良好的檢測結(jié)果.文獻(xiàn)[18]中提出結(jié)合支持向量機(jī)與極限學(xué)習(xí)機(jī)的多層混合模型,利用支持向量機(jī)尋找正常流量與惡意網(wǎng)絡(luò)攻擊數(shù)據(jù)分布的超平面,在對網(wǎng)絡(luò)流量進(jìn)行多分類的同時(shí)具有識別未知攻擊的能力.文獻(xiàn)[19]中利用k最近鄰算法尋找網(wǎng)絡(luò)流量k個(gè)最近距離的數(shù)據(jù),通過這些數(shù)據(jù)投票確定是否為未知攻擊.文獻(xiàn)[20]中利用決策樹對已知網(wǎng)絡(luò)攻擊進(jìn)行過濾,然后利用單類支持向量機(jī)對正常流量進(jìn)行訓(xùn)練找出異常攻擊.文獻(xiàn)[21]中針對網(wǎng)絡(luò)流量樣本單一、數(shù)據(jù)維度高、相關(guān)性強(qiáng)、異常點(diǎn)多的特點(diǎn),利用改進(jìn)的主成分分析算法去除訓(xùn)練樣本中的異常值,并使用粒子群算法對單分類支持向量機(jī)的參數(shù)進(jìn)行優(yōu)化,提高模型檢測未知攻擊的性能.文獻(xiàn)[22]中采用KKT條件加強(qiáng)增量學(xué)習(xí)速率,提高了單類支持向量機(jī)的學(xué)習(xí)率和模型的可擴(kuò)展性.文獻(xiàn)[23]中借鑒軟間隔支持向量機(jī)優(yōu)化單類支持向量機(jī)的超平面,模型的誤報(bào)率得到顯著降低.文獻(xiàn)[24]中利用孤立森林、局部離群因子檢測的方法,探測網(wǎng)絡(luò)流量間的局部密度,對離群的孤立點(diǎn)判定為惡意網(wǎng)絡(luò)攻擊.文獻(xiàn)[25]中針對未知攻擊行為特征不明顯的問題,根據(jù)網(wǎng)絡(luò)流量的統(tǒng)計(jì)特征構(gòu)造doc-word矩陣,分析潛在語義信息,從而判斷是否為未知攻擊.
這些方法對未知攻擊檢測的性能得到一定程度提高,但傳統(tǒng)機(jī)器學(xué)習(xí)模型在面對大量的網(wǎng)絡(luò)流量時(shí),不能自主學(xué)習(xí)特征從而使一部分有效特征遺漏,而且檢測模型的穩(wěn)定性也不高,導(dǎo)致不能取得更好的識別效果.
隨著計(jì)算機(jī)算力的不斷提升和深度學(xué)習(xí)不斷發(fā)展,入侵檢測領(lǐng)域研究重心也逐漸從傳統(tǒng)的機(jī)器學(xué)習(xí)轉(zhuǎn)向深度學(xué)習(xí).不同于傳統(tǒng)機(jī)器學(xué)習(xí)模型,深度學(xué)習(xí)沒有復(fù)雜的特征工程,更適合處理高維、大型數(shù)據(jù),表達(dá)能力更強(qiáng),文獻(xiàn)[26]中對主成分分析法、孤立森林、OCSVM、AE模型在未知攻擊檢測中的性能進(jìn)行對比,AE從計(jì)算復(fù)雜度和分類能力等方面相比于傳統(tǒng)機(jī)器學(xué)習(xí)模型性能均有很大提升.文獻(xiàn)[27]中改進(jìn)了AE模型神經(jīng)網(wǎng)絡(luò)的隱藏層數(shù),探索不同深度神經(jīng)網(wǎng)絡(luò)在分類時(shí)的性能表現(xiàn).文獻(xiàn)[28]中在AE中引入丟棄法來解決神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)較易發(fā)生過擬合的問題,并利用未知攻擊使用正常流量訓(xùn)練出的單類自編碼器(One-Class AutoEncoder,OCAE)重建樣本時(shí)會產(chǎn)生更大誤差的原理,達(dá)到識別未知攻擊的目的.文獻(xiàn)[29]中對OCSVM、AE、變分自編碼器(Variational AutoEncoder,VAE)在未知攻擊檢測中的性能對比,并分析不同閾值下VAE方法的性能,實(shí)驗(yàn)結(jié)果表明,VAE的性能在很大程度上優(yōu)于AE和OCSVM.文獻(xiàn)[30]中利用雙向生成對抗網(wǎng)絡(luò)(Bidirectional Generative Adversarial Networks,BiGAN)平衡網(wǎng)絡(luò)流量各類樣本訓(xùn)練占比,同時(shí)利用BiGAN中的判別器,對超出分類結(jié)果閾值的樣本判定為未知攻擊.文獻(xiàn)[31]中將BiGAN中的生成器的迭代訓(xùn)練與判別器的訓(xùn)練分離,改進(jìn)生成器和判別器的性能,提高了模型識別未知攻擊的能力.文獻(xiàn)[32]中基于網(wǎng)絡(luò)流量間的密度、距離等特征提出混合聚類方法識別網(wǎng)絡(luò)攻擊.文獻(xiàn)[33]中利用改進(jìn)的DPC算法將網(wǎng)絡(luò)流量劃分為多個(gè)子集,求出對應(yīng)子集的分布,能有效識別未知攻擊.文獻(xiàn)[34]將一維卷積自編碼器和OCSVM組合,定義重構(gòu)誤差與分類誤差結(jié)合的目標(biāo)函數(shù),學(xué)習(xí)網(wǎng)絡(luò)流量的緊湊表示.文獻(xiàn)[35]中利用自編碼器對正常流量與未知攻擊進(jìn)行對比學(xué)習(xí),根據(jù)攻擊數(shù)據(jù)的重建誤差大于正常流量的假設(shè),達(dá)到識別未知攻擊的目的.
以上深度學(xué)習(xí)模型使用了各種方案探索提升未知攻擊識別的準(zhǔn)確率,也因?yàn)榫W(wǎng)絡(luò)環(huán)境逐漸復(fù)雜,網(wǎng)絡(luò)攻擊種類逐漸增多,模型也從簡單的二分類模型逐漸轉(zhuǎn)變?yōu)楦?xì)的多類分類模型,因此為了快速應(yīng)對層出不窮的網(wǎng)絡(luò)攻擊,未來的入侵檢測模型一定是面向未知攻擊識別和細(xì)粒度分類的.
DCVAE在CVAE基礎(chǔ)上加入判別網(wǎng)絡(luò)[37],復(fù)用訓(xùn)練模型中的隱變量z與原始樣本x的標(biāo)簽y,模型如圖1所示.CVAE多作為生成模型用于構(gòu)建基于異常的入侵檢測系統(tǒng),DCVAE利用打上細(xì)粒度標(biāo)簽的網(wǎng)絡(luò)流量訓(xùn)練判別網(wǎng)絡(luò),使得模型具有細(xì)粒度分類的能力.經(jīng)過訓(xùn)練的DCVAE可以根據(jù)樣本標(biāo)簽類別生成指定類別樣本[38],被誤分類的樣本利用解碼器生成的新樣本后會比原樣本產(chǎn)生更大的重建誤差[37].因此,本文利用DCVAE得到正常流量重建誤差,并利用DPC算法學(xué)習(xí)重建誤差的分布,達(dá)到識別未知攻擊的目的.
圖1 DCVAE模型Fig.1 DCVAE model
DPC[39]是基于樣本密度的聚類算法,不受類簇的形狀和大小影響.聚類的目的是根據(jù)屬性相似性將數(shù)據(jù)組織成組,使同一簇中的數(shù)據(jù)具有相似的屬性,而不同簇中的數(shù)據(jù)彼此不同.其中的關(guān)鍵是根據(jù)簇中心的特征繪制決策圖,以快速識別準(zhǔn)確的簇中心.簇中心有兩個(gè)特征:1)局部密度相對較大;2)簇中心的位置相對遠(yuǎn)離具有較高局部密度的任何其他對象.
為求出每個(gè)類簇的密度峰值,引入兩個(gè)概念:基于數(shù)據(jù)點(diǎn)i的局部密度ρi和相對距離δi.其中對于局部密度ρi,有兩種計(jì)算方式,分別是截止核和高斯核,如公式(1)和公式(2)所示:
(1)
(2)
其中dij是數(shù)據(jù)點(diǎn)i到數(shù)據(jù)點(diǎn)j的歐幾里得距離,dc是截止距離.
對于截止核,數(shù)據(jù)點(diǎn)i的局部密度是點(diǎn)i的dc大小的鄰域中的數(shù)據(jù)點(diǎn)個(gè)數(shù).當(dāng)兩個(gè)數(shù)據(jù)點(diǎn)的dc鄰域中的數(shù)據(jù)點(diǎn)個(gè)數(shù)相同時(shí),兩個(gè)數(shù)據(jù)點(diǎn)的密度數(shù)據(jù)點(diǎn)相等,忽略了dc鄰域的數(shù)據(jù)分布因素對局部密度的影響.因此,提出了高斯核來解決這個(gè)問題.
對于相對距離δi是通過計(jì)算數(shù)據(jù)點(diǎn)i與其他具有較高局部密度和最近距離的點(diǎn)之間的歐幾里得距離來計(jì)算的,δi定義為:
(3)
對于密度最大的點(diǎn),取δi為最大值:
(4)
DPC算法為每個(gè)數(shù)據(jù)點(diǎn)定義決策值γi:
γi=ρi·δi
(5)
DPC算法選擇將局部密度高而且距離遠(yuǎn)的數(shù)據(jù)點(diǎn)視為密度峰,即找到γi較大的點(diǎn)作為聚類中心,將剩余的數(shù)據(jù)點(diǎn)分配給距離最近的密度峰.
DPC算法在入侵檢測領(lǐng)域的研究主要是將網(wǎng)絡(luò)流量的密度屬性加入到網(wǎng)絡(luò)流量特征中,找到正常流量的分布特征[33],且正常流量與惡意網(wǎng)絡(luò)攻擊間使用DCVAE產(chǎn)生的重建誤差分布有顯著不同[37],因此利用DPC算法學(xué)習(xí)正常流量的分布,可以幫助識別未知網(wǎng)絡(luò)攻擊.
針對許多基于深度學(xué)習(xí)的入侵檢測模型識別未知攻擊能力不強(qiáng)的問題,本文提出DCVAE-DPC模型,并賦予模型細(xì)粒度分類能力,提供更準(zhǔn)確的診斷信息,以有效指導(dǎo)安全人員解決安全威脅.
DCVAE-DPC模型框架如圖2所示,圖2(a)是DCVAE-DPC模型的訓(xùn)練過程,圖2(b)是DCVAE-DPC模型完整的入侵檢測過程.
圖2 DCVAE-DPC入侵檢測模型Fig.2 DCVAE-DPC intrusion detection model
模型訓(xùn)練首先是細(xì)粒度攻擊分類訓(xùn)練,將訓(xùn)練數(shù)據(jù)集預(yù)處理,打上細(xì)粒度標(biāo)簽,輸入DCVAE模型后,使得模型分類的結(jié)果最大概率地接近真實(shí)值y,即最大化概率P(y|x).然后是未知攻擊識別訓(xùn)練,最小化未知攻擊的識別風(fēng)險(xiǎn),利用DCVAE模型的編碼器學(xué)習(xí)正常流量的固有分布z,解碼器的生成樣本最大概率接近x,即最大化概率P(x|y,z).利用輸入實(shí)例與生成樣本間的重建誤差,使用DPC算法找出正常流量重建誤差的分布,當(dāng)輸入實(shí)例的重建誤差超出閾值時(shí),即可判別為未知攻擊.
模型入侵檢測過程首先對輸入實(shí)例x進(jìn)行細(xì)粒度攻擊分類,判斷是y∈N={B,A1,…,Ak}中的正常流量或已知攻擊,其中B代表正常流量,A1至Ak代表k種已知攻擊,若實(shí)例x判斷為正常流量,則進(jìn)入未知攻擊識別階段,計(jì)算x的重建誤差與正常流量重建誤差的中心點(diǎn)間的距離,若超過設(shè)定閾值,則給網(wǎng)絡(luò)流量重新打上Ak+1標(biāo)簽,Ak+1代表未知攻擊,模型最后的輸出結(jié)果是y∈N={B,A1,…,Ak+1},因此模型具有識別未知攻擊的能力.
NSL-KDD初始數(shù)據(jù)集并不能直接用來進(jìn)行模型訓(xùn)練,需要進(jìn)行預(yù)處理:
1)數(shù)字化.NSL-KDD數(shù)據(jù)集中包含41種特征,其中有3種是字符型特征Protocol_Type、Service和Flag,分別包含3、70和11種類別的狀態(tài),因此使用one-hot編碼將這些特征值進(jìn)行數(shù)字化,通過one-hot編碼可以將41維的特征擴(kuò)展為122維.
2)歸一化.經(jīng)過獨(dú)熱編碼的同一特征的特征值間差異較大,容易造成模型訓(xùn)練收斂速度慢,將特征值進(jìn)行歸一化后,可以幫助提高模型的精度,采用最大最小歸一化方法將數(shù)據(jù)集中的數(shù)據(jù)變換為[0,1]區(qū)間,公式如下:
(6)
其中x是需要進(jìn)行歸一化的數(shù)值,x*是歸一化后的數(shù)值,xmin是y所在特征中最小數(shù)值,xmax是x所在特征值中最大數(shù)值.
本階段的訓(xùn)練目標(biāo)有兩個(gè),在訓(xùn)練樣本集ST上,使DCVAE模型分類結(jié)果的概率最大化地接近真實(shí)值y,目標(biāo)公式如公式(7):
(7)
其中x是訓(xùn)練樣本集ST中的輸入實(shí)例,y∈{0,1}k是輸入實(shí)例經(jīng)過獨(dú)熱編碼后的類別標(biāo)簽.
同時(shí)需將學(xué)習(xí)到的隱變量z應(yīng)用到未知攻擊識別訓(xùn)練中去,所以設(shè)z的真實(shí)概率分布是PC(z|x,y),利用函數(shù)QC(z|x,y)盡可能接近z的真實(shí)分布,并利用KL散度來衡量兩個(gè)分布間的距離,目標(biāo)公式如公式(8)所示:
(8)
結(jié)合公式(7)、公式(8)則有公式(9):
(9)
又由公式(8)則公式(9)可以化簡為公式(10):
(10)
將公式(10)重寫,本階段最終目標(biāo)公式為公式(11):
(11)
由公式(11),目標(biāo)公式由3部分神經(jīng)網(wǎng)絡(luò)構(gòu)建,用DCVAE模型中的編碼器網(wǎng)絡(luò)來擬合概率分布QC(z|x,y),用先驗(yàn)網(wǎng)絡(luò)來擬合概率分布PC(z|x),用判別網(wǎng)絡(luò)來擬合概率分布PC(y|x,z).
公式(11)的前半部分使用高斯函數(shù)得到QC(z|x,y)和PC(z|x)分布的結(jié)果如公式(12)、公式(13)所示:
即z|x,y~N(μ1(x,y),∑1(x,y))
(12)
z|x~N(μ2(x),∑2(x))
(13)
其中(μ1,∑1)和(μ2,∑2)是兩個(gè)分布的均值和方差,因此公式(11)的前半部分可以復(fù)寫為公式(14):
(14)
公式(11)的第2部分可以實(shí)現(xiàn)為編碼器網(wǎng)絡(luò)QC(z|x,y)和判別網(wǎng)絡(luò)PC(y|x,z)與重參數(shù)技巧的結(jié)合.也就是說,判別網(wǎng)絡(luò)PC(y|x,z)輸入的隱變量z是從編碼器網(wǎng)絡(luò)QC(z|x,y)的高斯函數(shù)中采樣得到的如公式(15)所示:
(15)
由于標(biāo)簽y是一個(gè)由1和0組成的二值向量,使用softmax函數(shù)求得PC(y|x,z)的結(jié)果如公式(16)所示:
yi|z,x~Bernoulli(pi(z,x))
(16)
其中yi是標(biāo)簽y的第i個(gè)值,因此公式(11)的第2個(gè)部分可以復(fù)寫為公式(17):
(17)
所以細(xì)粒度已知攻擊分類訓(xùn)練階段的損失函數(shù)公式為(18):
(18)
首先在正常流量標(biāo)簽條件下使解碼器的生成實(shí)例概率最大化接近輸入實(shí)例,目標(biāo)公式為(19):
(19)
為了提升DCVAE模型解碼器的表現(xiàn),選擇利用編碼器學(xué)習(xí)到的隱變量z結(jié)合實(shí)例真實(shí)標(biāo)簽y得到解碼器網(wǎng)絡(luò)PI(x|y,z),所以目標(biāo)函數(shù)更新為公式(20):
(20)
其中QC(z|x,y)是復(fù)用細(xì)粒度已知分類訓(xùn)練階段的編碼器網(wǎng)絡(luò),使用高斯函數(shù)擬合生成的結(jié)果,如公式(21)所示:
x|y,z~N(μ(y,z),∑)
(21)
使用μ(y,z)的均值來代表重建的實(shí)例,而∑作為方差在這里并不需要,因此上式可以復(fù)寫為公式(22):
Ez[logPI]=-k‖x-μ(z,y)‖2-C
(22)
其中k,C均為常數(shù).
所以解碼器網(wǎng)絡(luò)損失函數(shù)如公式(23)所示:
Lr(x,y)=‖x-μ(z,y)‖2
(23)
設(shè)R={r1(x1,y1),r2(x2,y2),…,rn(xn,yn)}代表正常流量的重建誤差集,ri是每個(gè)輸入實(shí)例xi的重建誤差.
然后利用DPC算法找出正常流量的重建誤差的聚類中心,并求出所有正常流量的重建誤差與聚類中心間的歐式距離,如公式(24)所示:
di=‖rc-ri‖2
(24)
其中rc代表正常流量的重建誤差的聚類中心,以下簡稱為聚類中心,di代表第i個(gè)輸入實(shí)例的重建誤差與rc間的距離.
被誤分類的輸入實(shí)例打上錯(cuò)誤的標(biāo)簽后,利用解碼器生成的新樣本會比原樣本產(chǎn)生更大的重建誤差,設(shè)定合適的閾值e,保證正常網(wǎng)絡(luò)流量高分類準(zhǔn)確率的同時(shí),使得模型具有一定識別未知攻擊的能力,入侵檢測模型的訓(xùn)練過程總結(jié)在算法1中.
算法1.訓(xùn)練DCVAE-DPC入侵檢測系統(tǒng)
輸出:訓(xùn)練完成的DCVAE模型,聚類中心rc,閾值e
1.對數(shù)據(jù)集進(jìn)行預(yù)處理
2.首先進(jìn)行細(xì)粒度已知分類訓(xùn)練,設(shè)置訓(xùn)練的epoch值E以及batch_size,則M=n/batch_size
3.for i in E do
4. for i in M do
5. 利用編碼器網(wǎng)絡(luò)QC(z|x,y)以及先驗(yàn)網(wǎng)絡(luò)PC(z|x)根據(jù)公式(12)、(13)得到兩個(gè)分布的均值與方差,μ1,∑1,μ2,∑2,并通過重參數(shù)化分別采樣得到隱變量z
6. 將編碼器網(wǎng)絡(luò)QC(z|x,y)中采樣得到的隱變量z輸入判別網(wǎng)絡(luò)PC(y|x,z),結(jié)合特征xi,得到預(yù)測類別yi*
7. 根據(jù)損失函數(shù)公式(18)更新先驗(yàn)網(wǎng)絡(luò)PC(z|x),編碼器網(wǎng)絡(luò)QC(z|x,y)以及判別網(wǎng)絡(luò)PC(y|x,z)
8. end for
9.end for
10.進(jìn)行未知攻擊識別訓(xùn)練
11.for i in E do
12. for j in N do
13. 將編碼器網(wǎng)絡(luò)QC(z|x,y)復(fù)用到未知攻擊識別訓(xùn)練,得到編碼器網(wǎng)絡(luò)QI(z|x,y)的均值μ與方差∑,并采樣隱變量z
14. 將隱變量z結(jié)合正常流量的類別標(biāo)簽y輸入解碼器網(wǎng)絡(luò)PI(x|y,z)中,得到重建后的網(wǎng)絡(luò)流量x*
15. 根據(jù)損失函數(shù)公式(23)更新解碼器網(wǎng)絡(luò)PI(x|y,z)
16. end for
17.end for
19.利用DPC算法根據(jù)重建誤差計(jì)算γ值和δ值,求出聚類中心rc及閾值e
DCVAE-DPC入侵檢測系統(tǒng)在得到網(wǎng)絡(luò)流量輸入實(shí)例x后,首先進(jìn)行預(yù)處理,然后進(jìn)入細(xì)粒度已知分類部分,由先驗(yàn)網(wǎng)絡(luò)PC(z|x)得到當(dāng)前網(wǎng)絡(luò)流量x服從高斯分布中的均值μ1和方差∑1,從高斯分布中采樣z結(jié)合x即可利用判別網(wǎng)絡(luò)PC(y|x,z)得到這一階段的分類結(jié)果如公式(25)所示:
(25)
其中z=E[z|x]=μ1,由于細(xì)粒度已知分類階段會將未知攻擊誤分類為正常流量,所以在未知攻擊識別階段將x與網(wǎng)絡(luò)流量的預(yù)測標(biāo)簽y*,輸入到編碼器網(wǎng)絡(luò)QI(z|x,y)中采樣z,然后從解碼器網(wǎng)絡(luò)PI(x|y,z)中得到重建后的網(wǎng)絡(luò)流量x*,如公式(26)所示:
x*=PI(x|y*,z)
(26)
其中z=E[z|x,y*]=μ2.
利用在訓(xùn)練階段求得的正常流量的聚類中心rc,計(jì)算輸入實(shí)例的重建誤差與rc的距離d,當(dāng)超過預(yù)定的閾值e后,即可判定為未知攻擊.
DCVAE-DPC入侵檢測系統(tǒng)的完整檢測過程如算法2所示.
算法2.DCVAE-DPC入侵檢測系統(tǒng)
輸入:網(wǎng)絡(luò)流量特征x
輸出:網(wǎng)絡(luò)流量的預(yù)測標(biāo)簽y
1.在已知攻擊識別階段,利用先驗(yàn)網(wǎng)絡(luò)PC(z|x)采樣得到網(wǎng)絡(luò)流量的隱變量z
2.將z與x結(jié)合輸入判別網(wǎng)絡(luò)PC(x|z)得到網(wǎng)絡(luò)流量的預(yù)測標(biāo)簽y*
3.若網(wǎng)絡(luò)流量被判定為正常流量,則進(jìn)入未知攻擊識別階段,輸入解碼器網(wǎng)絡(luò)PI(x|y,z),重建網(wǎng)絡(luò)流量得到x*
4.計(jì)算得到重建誤差r=x-x*
5.計(jì)算重建誤差與聚類中心rc的距離d=rc-r
6.將d與預(yù)設(shè)閾值e進(jìn)行對比cmp(d,e)
7.對超過e的網(wǎng)絡(luò)流量判定為未知網(wǎng)絡(luò)攻擊,結(jié)合預(yù)測標(biāo)簽y*得到最終的預(yù)測結(jié)果y
對提出的入侵檢測系統(tǒng)模型進(jìn)行評估,使用準(zhǔn)確率、精確率、回歸率、F1-score作為評估指標(biāo):
準(zhǔn)確率(Accuracy):正確分類正樣本和負(fù)樣本的比率,如公式(27)所示:
(27)
其中P代表正樣本數(shù)量,N代表負(fù)樣本數(shù)量.
精確率(Precision):識別出的樣本中正例占的比率,如公式(28)所示:
(28)
回歸率(Recall):樣本所有真正的正例中,識別正確的正例所占的比率,如公式(29)所示:
(29)
F1-score:精確率和召回率的調(diào)和平均值,F1 score越高,說明模型越穩(wěn)健,如公式(30)所示:
(30)
NSL-KDD數(shù)據(jù)集[40]:KDD CUP99數(shù)據(jù)集中大約78%和75%的網(wǎng)絡(luò)數(shù)據(jù)包在訓(xùn)練和測試數(shù)據(jù)集中重復(fù),于是對KDD CUP99數(shù)據(jù)集中的冗余數(shù)據(jù)進(jìn)行了清洗,合理的選擇訓(xùn)練集和測試集的記錄數(shù)量,使得實(shí)驗(yàn)數(shù)據(jù)無需因?yàn)閿?shù)據(jù)量過大而進(jìn)行隨機(jī)選取,保證了不同研究工作的評價(jià)結(jié)果具有一致性和可比性.NSL-KDD的訓(xùn)練數(shù)據(jù)集中包含有大約12萬個(gè)樣本,測試數(shù)據(jù)集包含有大約2萬個(gè)樣本,NSL-KDD數(shù)據(jù)集包含拿了4種主要類型的攻擊分別是Dos、Probe、R2L、U2R,并且數(shù)據(jù)集中初始特征有41種.
為了實(shí)現(xiàn)細(xì)粒度攻擊分類,DCVAE-DPC模型選擇使用細(xì)粒度標(biāo)簽,將標(biāo)簽細(xì)化,NSL-KDD數(shù)據(jù)集中將Dos攻擊細(xì)化為Back、Land、Neptune、Pod、Smurf、Teardrop,Probe攻擊細(xì)化為IPsweep、Portsweep、Nmap、Satan,R2L攻擊細(xì)化為FTP Write、Guess Password、Imap、Multihop、Phf、Spy、Warezclient、Warezmaster,U2R攻擊細(xì)化為Rootkit、Buffer Overflow、LoadModule、Perl.為了測試提出的模型的表現(xiàn),在NSL-KDD數(shù)據(jù)集中,隨機(jī)抽取80%的數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)集,20%的數(shù)據(jù)作為測試數(shù)據(jù)集,為了測試DCVAE-DPC模型未知類型攻擊識別的效果,選擇測試數(shù)據(jù)集作為未知攻擊,未知攻擊不參與模型的訓(xùn)練階段,只會參與到模型的測試階段.
DCVAE-DPC模型的在細(xì)粒度已知分類訓(xùn)練中,輸入層有122維網(wǎng)絡(luò)流量特征和9維類別標(biāo)簽,先驗(yàn)網(wǎng)絡(luò)、編碼器網(wǎng)絡(luò)、判別網(wǎng)絡(luò)均采用多層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),隱藏層均為100,60,20個(gè)神經(jīng)元,其中編碼器網(wǎng)絡(luò)利用KL散度幫助擬合出先驗(yàn)網(wǎng)絡(luò),得到具有類別特征的隱變量為3維,不僅可以輸入到判別網(wǎng)絡(luò)幫助提高網(wǎng)絡(luò)流量識別準(zhǔn)確率,也可在未知攻擊識別階段輸入解碼器網(wǎng)絡(luò)幫助生成特定類別的網(wǎng)絡(luò)流量,判別器網(wǎng)絡(luò)接收到網(wǎng)絡(luò)流量特征輸入和隱變量共125維,輸出層的結(jié)果為經(jīng)過softmax函數(shù)的9維類別標(biāo)簽.
在未知攻擊識別訓(xùn)練中,解碼器網(wǎng)絡(luò)輸入層為122維網(wǎng)絡(luò)流量特征和正常流量類別標(biāo)簽,隱藏層為五層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),分別有500,1000,800,600,200個(gè)神經(jīng)元,輸出結(jié)果為重建后的網(wǎng)絡(luò)流量為122維.
模型訓(xùn)練時(shí)把所有訓(xùn)練數(shù)據(jù)完整訓(xùn)練一次為一個(gè)輪次(epoch),輪次的大小對模型分類準(zhǔn)確率有很大的影響,隨著輪次的增加,當(dāng)epoch設(shè)置為200,batch_size設(shè)置為100,學(xué)習(xí)率設(shè)置為0.001時(shí),DCVAE-DPC模型的準(zhǔn)確率逐漸升高,并趨于穩(wěn)定.
在實(shí)驗(yàn)僅有未知攻擊識別階段時(shí),通過DCVAE模型計(jì)算正常流量的重建誤差,并利用DPC算法尋找重建誤差的聚類中心點(diǎn)rc,結(jié)果如圖3所示,選取圖中γ值和δ值均大的點(diǎn)作為聚類中心,圖中有一個(gè)點(diǎn)符合要求,因此可以確定為中心點(diǎn)rc.
圖3 利用DPC算法求出正常流量重建誤差中心點(diǎn)rcFig.3 Using DPC algorithm to find the reconstruction error center rc of normal network traffic
求得測試集樣本與重建誤差中心點(diǎn)rc間的距離,結(jié)果如圖4所示,其中淺灰色直方圖代表正常流量重建誤差的分布,濃灰色直方圖代表未知攻擊重建誤差的分布.
圖4 正常流量和未知攻擊重建誤差與rc距離分布Fig.4 Reconstruction error distance distribution of normal network traffic and unknown attacks with rc
由圖4可知,在NSL-KDD數(shù)據(jù)集中正常流量的重建誤差與中心點(diǎn)rc之間的距離大多集中在0~4之間,而未知攻擊大多集中在4~6之間,所以設(shè)定好合適的閾值,將超過閾值的網(wǎng)絡(luò)流量打上未知攻擊的標(biāo)簽,即可識別出未知攻擊.
設(shè)定不同閾值e后,模型的分類表現(xiàn)結(jié)果如表1所示,其中取閾值為3.9時(shí),模型的表現(xiàn)最好.
表1 不同閾值e下DCVAE-DPC模型分類表現(xiàn)Table 1 Classification performance of DCVAE-DPC model under different threshold e
模型分類結(jié)果如圖5所示,其中混淆矩陣中的行表示真實(shí)標(biāo)簽,列表示預(yù)測標(biāo)簽,顏色越深的區(qū)域表示預(yù)測結(jié)果越集中,混淆矩陣對角線上的區(qū)域顏色越深代表分類準(zhǔn)確率越高.可以看到只經(jīng)過未知攻擊識別階段時(shí),DCVAE-DPC模型已經(jīng)將未知攻擊從正常流量中分離開,但是對正常流量的分類準(zhǔn)確率較低,只有91%,因此模型可能會導(dǎo)致較高的誤報(bào)率,所以需要細(xì)粒度分類階段幫助提高模型的分類準(zhǔn)確率.
圖5 未知攻擊識別結(jié)果混淆矩陣Fig.5 Confusion matrix of unknown attack identification result
在實(shí)驗(yàn)中加入細(xì)粒度已知分類階段后,預(yù)設(shè)Back攻擊和R2L攻擊為未知攻擊,在NSL-KDD數(shù)據(jù)集上測試階段分類結(jié)果的混淆矩陣如圖6和圖7所示,從圖6中可以看出,模型在細(xì)粒度已知分類階段實(shí)現(xiàn)了很高的分類準(zhǔn)確率,對于NSL-KDD數(shù)據(jù)集,Ipsweep、Namp、Portsweep、Satan攻擊均為Probe類型的攻擊,Neptune、Smurf、Teardrop攻擊均為Dos類型的攻擊,相比于只進(jìn)行Probe攻擊與Dos攻擊的粗粒度分類,DCVAE-DPC模型在更細(xì)分的領(lǐng)域最高能達(dá)到100%的準(zhǔn)確率.由于模型沒有未知攻擊的先驗(yàn)知識,只能將未知攻擊分類為正常流量或已知攻擊.從未出現(xiàn)過的未知攻擊在細(xì)粒度已知分類階段被誤分類是正?,F(xiàn)象.
圖6 細(xì)粒度已知分類結(jié)果混淆矩陣Fig.6 Confusion matrix of fine-grained known classification result
圖7 細(xì)粒度已知分類+未知攻擊識別結(jié)果Fig.7 Fine grained known classification and unknown attack identification result
從圖7中可以看出,經(jīng)過細(xì)粒度分類階段后,在未知攻擊識別階段不僅對正常流量的分類達(dá)到97%準(zhǔn)確率,而且對未知攻擊的識別也達(dá)到了較高的準(zhǔn)確率.
因此DCVAE-DPC模型有大多數(shù)深度學(xué)習(xí)模型沒有的未知攻擊識別的能力,并可以經(jīng)過細(xì)粒度分類可以給安全人員提供更準(zhǔn)確的診斷信息,以有效指導(dǎo)解決安全威脅,可以應(yīng)對當(dāng)前復(fù)雜的網(wǎng)絡(luò)環(huán)境.
入侵檢測領(lǐng)域流行的研究方法中基于深度學(xué)習(xí)的方法占比較高,DCVAE-DPC模型通過學(xué)習(xí)正常流量的隱空間表示,生成更具偏向性的樣本,未知攻擊在以正常流量建模的自編碼器中生成樣本會產(chǎn)生更大的重建誤差,因此DCVAE-DPC模型通過其他自編碼器模型少有的對重建誤差的再學(xué)習(xí),找到正常流量的分布,在未知攻擊識別中取得了更好的效果.
將DCVAE-DPC模型與入侵檢測領(lǐng)域未知攻擊識別的流行方法在NSL-KDD數(shù)據(jù)集中對比,結(jié)果如表2所示,可以發(fā)現(xiàn),所提出的DCVAE-DPC模型與這些流行方法相比,DCVAE-DPC模型各項(xiàng)性能參數(shù)都達(dá)到了更優(yōu)的效果,其中模型分類準(zhǔn)確率更是達(dá)到了97.08%,且具備了大多數(shù)深度學(xué)習(xí)模型都沒有的細(xì)粒度分類的能力.
表2 DCVAE-DPC模型與流行模型實(shí)驗(yàn)結(jié)果對比Table 2 Comparison of experimental results between DCVAE-DPC model and state-of-art models
所以DCVAE-DPC模型比其他的流行方法在面對復(fù)雜網(wǎng)絡(luò)環(huán)境時(shí)具有更強(qiáng)的競爭力.
針對當(dāng)前入侵檢測系統(tǒng)識別未知攻擊能力不夠的問題,且面對當(dāng)前復(fù)雜網(wǎng)絡(luò)環(huán)境需要及時(shí)應(yīng)對網(wǎng)絡(luò)攻擊,結(jié)合DCVAE和DPC提出了入侵檢測模型DCVAE-DPC.
該模型利用DCVAE增加正常流量與未知攻擊間的特征區(qū)分度,并對網(wǎng)絡(luò)流量進(jìn)行細(xì)粒度分類,獲得更精準(zhǔn)的攻擊診斷信息,并利用DPC找到正常流量的重建誤差的分布,從而使模型能夠識別未知攻擊.
實(shí)驗(yàn)結(jié)果表明,DCVAE-DPC模型具有更高的未知攻擊識別率,同時(shí)能夠保證細(xì)粒度攻擊分類的高準(zhǔn)確率,與流行入侵檢測模型比較,顯著提高了入侵檢測的性能,具有更高的性能表現(xiàn).但是由于實(shí)驗(yàn)數(shù)據(jù)集存在數(shù)據(jù)不平衡,初始特征表達(dá)能力不夠強(qiáng),導(dǎo)致對少數(shù)類惡意網(wǎng)絡(luò)攻擊檢測率仍有待提高,需進(jìn)一步研究.