何春蓉,朱 江,張 欣
(重慶郵電大學(xué) 通信與信息工程學(xué)院,重慶 400065)
近年來,隨著云計算、5G通信、人工智能等技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)技術(shù)突飛猛進,人們對網(wǎng)絡(luò)的需求大幅度增加。然而,由于網(wǎng)絡(luò)收集和存儲了大量用戶的隱私數(shù)據(jù),網(wǎng)絡(luò)安全治理問題引起了各行各業(yè)的廣泛關(guān)注。網(wǎng)絡(luò)安全態(tài)勢感知[1]主要是獲取、理解、評估導(dǎo)致網(wǎng)絡(luò)環(huán)境中網(wǎng)絡(luò)態(tài)勢變化的網(wǎng)絡(luò)安全要素信息,并預(yù)測其發(fā)展趨勢,從而實現(xiàn)主動、動態(tài)的安全防御。態(tài)勢要素獲取是進行大規(guī)模網(wǎng)絡(luò)安全態(tài)勢感知的重要前提和基礎(chǔ),通過對網(wǎng)絡(luò)中各種網(wǎng)絡(luò)設(shè)備產(chǎn)生的具有海量、異構(gòu)、多維等特征的數(shù)據(jù)進行統(tǒng)計分析和識別,并最終形成態(tài)勢要素。
態(tài)勢要素分類處理的數(shù)據(jù)是異構(gòu)、多維的,直接處理會導(dǎo)致實時性差、分類精度較低。特征降維方法能夠很好地降低高維數(shù)據(jù)、提取重要特征、消除冗余特征。因此,解決態(tài)勢要素獲取的關(guān)鍵是找到一種數(shù)據(jù)降維的方法,在低維空間進行分類,提高分類精度[2]。如文獻[3]提出一種基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的網(wǎng)絡(luò)入侵檢測模型,采用不同的降維方法去除網(wǎng)絡(luò)流量數(shù)據(jù)中的冗余和不相關(guān)特征,利用CNN自動提取降維數(shù)據(jù)的特征,通過監(jiān)督學(xué)習(xí)提取更有效的入侵識別信息;文獻[4]提出一種基于反向傳播的深度自編碼網(wǎng)絡(luò)(deep auto-encoder network-back propagation,DAN-BP)的入侵檢測模型,訓(xùn)練DAN獲得低維特征數(shù)據(jù)集,然后利用BP算法對學(xué)習(xí)到的低維數(shù)據(jù)進行分類識別;文獻[5]提出一種結(jié)合集成K-means聚類和自編碼器(ensemble K-means and auto-encoder,EKM-AE)的入侵檢測方法,該方法利用訓(xùn)練好的自編碼器進行入侵檢測;文獻[6]提出結(jié)合深度堆棧編碼器和反向傳播算法的安全態(tài)勢要素提取方法,利用編碼器提取數(shù)據(jù)集特征進行降維。以上方法雖然在一定程度上解決了網(wǎng)絡(luò)數(shù)據(jù)冗余的問題,卻沒有考慮到現(xiàn)實中收集到的網(wǎng)絡(luò)攻擊數(shù)據(jù)中各類攻擊記錄存在數(shù)量不平衡的問題,從而導(dǎo)致小樣本訓(xùn)練不充分,分類精度遠遠低于大類樣本的問題。
深度神經(jīng)網(wǎng)絡(luò)通過組合低層特征形成抽象的高層表示,可以自動提取高級潛在特征并進行分類,無需人工干預(yù)[7-9]。為了更好地處理異構(gòu)、多維的網(wǎng)絡(luò)安全數(shù)據(jù),提升復(fù)雜樣本的分類精度,本文提出一種基于條件變分自編碼(conditional variational auto-encoder,CVAE)[10]網(wǎng)絡(luò)的安全態(tài)勢要素分類架構(gòu)。CVAE是一種重要的生成模型,主要包括編碼網(wǎng)絡(luò)和生成網(wǎng)絡(luò),且結(jié)構(gòu)是對稱的。在編碼網(wǎng)絡(luò)中嵌入一個獨熱編碼的標(biāo)簽向量進行監(jiān)督學(xué)習(xí);將指定標(biāo)簽的低維隱變量輸入生成網(wǎng)絡(luò)中,生成指定的新攻擊樣本,提高復(fù)雜樣本的分類精度。同時混合密度模型的使用優(yōu)化了條件變分自編碼網(wǎng)絡(luò)的特征提取能力,提高了生成網(wǎng)絡(luò)重構(gòu)數(shù)據(jù)的相似性[11]。本文的主要研究內(nèi)容如下。
1)訓(xùn)練基于混合密度模型的深度條件變分自編碼網(wǎng)絡(luò)(mixture density networks-deep conditional variational auto-encoder,MDN-DCVAE),使用訓(xùn)練樣本訓(xùn)練MDN-DCVAE,并記錄訓(xùn)練數(shù)據(jù)集中每類攻擊樣本的最大重構(gòu)損失值。
2)利用MDN-DCVAE生成網(wǎng)絡(luò)生成指定類別的新攻擊樣本,根據(jù)1)中保存下來的類別最大重構(gòu)損失篩選新攻擊樣本,將符合條件的新生成的攻擊樣本合并到原始訓(xùn)練數(shù)據(jù)集中。
3)進行分類、合并后的訓(xùn)練數(shù)據(jù)集用于訓(xùn)練分類器,訓(xùn)練后的分類器用于識別測試數(shù)據(jù)集中的攻擊。
為了解決網(wǎng)絡(luò)環(huán)境中采集到的大規(guī)模復(fù)雜安全數(shù)據(jù)的分類問題,本文提出一種面向復(fù)雜樣本,基于深度條件變分自編碼網(wǎng)絡(luò)的安全態(tài)勢要素分類架構(gòu),并從網(wǎng)絡(luò)架構(gòu)、模型訓(xùn)練、樣本擴充和樣本分類進行詳細介紹。
本文所提具體網(wǎng)絡(luò)架構(gòu)如圖1所示,該架構(gòu)中CVAE網(wǎng)絡(luò)的關(guān)鍵問題是如何采樣隱變量z去重構(gòu)原始樣本,而隱變量z是一個未知且復(fù)雜的分布,因此,無法隨意選擇它的分布。一個可行的方案是在生成網(wǎng)絡(luò)之前加一個編碼網(wǎng)絡(luò),將訓(xùn)練樣本及其標(biāo)簽c一起輸入編碼網(wǎng)絡(luò)進行訓(xùn)練來獲得隱變量z的分布[12],根據(jù)不同的樣本標(biāo)簽將訓(xùn)練樣本強制分配到不同的分布中,即隱變量z在低維特征空間中按類別分布。生成網(wǎng)絡(luò)擁有同編碼網(wǎng)絡(luò)對稱的網(wǎng)絡(luò)結(jié)構(gòu),將隱變量z盡可能地重構(gòu)為原始樣本。比較重構(gòu)樣本和原始樣本的區(qū)別,通過損失函數(shù)衡量網(wǎng)絡(luò)訓(xùn)練的程度,得到最佳的網(wǎng)絡(luò)權(quán)值等參數(shù)。
圖1 安全態(tài)勢要素分類架構(gòu)
1)樣本的擴充。該部分主要由生成網(wǎng)絡(luò)和混合密度模型組成,通過輸入指定樣本標(biāo)簽生成攻擊樣本,從而平衡訓(xùn)練數(shù)據(jù),提高少數(shù)攻擊的分類精度?;旌厦芏饶P蛯颖緮U充的貢獻主要體現(xiàn)在模型的損失函數(shù)上。
2)樣本的分類。采用MDN-DCVAE中的編碼網(wǎng)絡(luò)作為分類器,由編碼網(wǎng)絡(luò)去掉最后一層后加上一層softmax網(wǎng)絡(luò)組成,其訓(xùn)練過程分2步進行:①采用編碼網(wǎng)絡(luò)的權(quán)值初始化基分類器的隱藏層權(quán)值;②生成網(wǎng)絡(luò)生成新的攻擊記錄與原始訓(xùn)練集合并后對分類器進行監(jiān)督學(xué)習(xí),微調(diào)分類器權(quán)值,訓(xùn)練好后的分類器用于復(fù)雜樣本的分類。
分類架構(gòu)中,主要包括2個操作:樣本的擴充和樣本的分類。采用訓(xùn)練好的生成網(wǎng)絡(luò)用于樣本擴充,編碼網(wǎng)絡(luò)用于樣本的分類,因此,需要對模型進行預(yù)訓(xùn)練,得到最優(yōu)的網(wǎng)絡(luò)參數(shù)并保存下來,直接加載訓(xùn)練好的模型進行樣本的擴充和分類。下面對該模型的主要訓(xùn)練過程及原理進行詳細介紹。
1.2.1 DCVAE模型
深度條件變分自編碼網(wǎng)絡(luò)主要包含2部分:編碼網(wǎng)絡(luò)和生成網(wǎng)絡(luò)。使用深度神經(jīng)網(wǎng)絡(luò)主要是利用其自動提取高級特征的特性,可以更好地解決復(fù)雜、大規(guī)模、非線性的網(wǎng)絡(luò)攻擊樣本的分類問題。模型訓(xùn)練的具體過程如下。
步驟1本文的訓(xùn)練數(shù)據(jù)為多維的攻擊數(shù)據(jù)和對應(yīng)的標(biāo)簽,假設(shè)輸入的安全樣本集為x=[x1,x2,…,xi],對應(yīng)的標(biāo)簽集為c=[c1,c2,…,ci],則神經(jīng)網(wǎng)絡(luò)輸入i個樣本,每個樣本有n個維度,具體表示為
(1)
(2)
(1)—(2)式中:xi為單個的多維網(wǎng)絡(luò)攻擊數(shù)據(jù)點;ci為該網(wǎng)絡(luò)攻擊數(shù)據(jù)點對應(yīng)的標(biāo)簽;n、k為數(shù)據(jù)預(yù)處理后的維度。由于攻擊數(shù)據(jù)具有多個屬性,屬性中存在離散變量和連續(xù)變量,預(yù)處理中對所有的離散變量進行獨熱編碼,對所有的連續(xù)變量進行歸一化操作。
步驟2將訓(xùn)練數(shù)據(jù)輸入編碼網(wǎng)絡(luò),求得編碼網(wǎng)絡(luò)的概率分布參數(shù)(均值和方差)并從中采樣出低維隱變量z的采樣值。將采樣后的隱變量z及其相應(yīng)的標(biāo)簽輸入進生成網(wǎng)絡(luò)進行數(shù)據(jù)的重構(gòu)。
步驟3根據(jù)模型的損失函數(shù)不斷優(yōu)化網(wǎng)絡(luò)參數(shù),為了簡單處理,將網(wǎng)絡(luò)的損失函數(shù)分解為多個數(shù)據(jù)點損失的總和。單個數(shù)據(jù)點xi的損失函數(shù)lDCVAE(xi,ci,φ,θ)表示為
logp(xi|ci)≥lDCVAE(xi,ci,φ,θ)=
-DKL(qφ(z|xi,ci)‖pθ(z|ci))+
Eqφ(z|xi,ci)(logpθ(xi|z,ci))=
-DKL(qφ(z|xi,ci)‖pθ(z|ci))+
(3)
(3)式中,φ和θ為編碼網(wǎng)絡(luò)和生成網(wǎng)絡(luò)中需要學(xué)習(xí)的參數(shù);qφ(z|xi,ci)為編碼網(wǎng)絡(luò)的概率分布;pθ(xi|z,ci)為生成網(wǎng)絡(luò)的概率分布,用于衡量通過隱變量z重建出原始樣本x的可能性。該損失函數(shù)包含2個部分:正則化和重構(gòu)損失項。第1項為近似概率qφ(z|xi,ci)和條件概率pθ(xi|z,ci)的KL散度(正則化),用于衡量這2個不同分布的相似性。其中,qφ(z|xi,ci)為均值為μ,方差為δ2的正態(tài)分布,記為N(μ,δ2),通過該分布在給定樣本及標(biāo)簽的情況下獲得重構(gòu)該樣本的隱變量z;pθ(xi|z,ci)是均值為μc,方差為1的標(biāo)準(zhǔn)正態(tài)分布,記為N(μc,1)。如果編碼網(wǎng)絡(luò)輸出的近似分布qφ(z|xi,ci)和標(biāo)準(zhǔn)正態(tài)分布pθ(xi|z,ci)不同,它在損失函數(shù)中將受到懲罰。第2項為生成網(wǎng)絡(luò)的重構(gòu)損失項,迫使生成網(wǎng)絡(luò)pθ(xi|z,ci)盡可能地將隱變量z重構(gòu)為原始樣本,否則將在損失函數(shù)中受到相應(yīng)的懲罰。
1.2.2 基于混合密度模型的DCVAE模型
DCVAE模型訓(xùn)練的損失函數(shù)越小,說明模型訓(xùn)練得越好,其中,損失函數(shù)的重構(gòu)損失項衡量了重構(gòu)樣本的準(zhǔn)確性。MDN可以通過對每個混合成分求取權(quán)重系數(shù)并進行線性組合來建模目標(biāo)數(shù)據(jù)的條件概率分布,得到每個輸出值的概率,以獲得數(shù)據(jù)的完整表示[12-14]。本文提出生成網(wǎng)絡(luò)聯(lián)合MDN來生成重構(gòu)樣本,利用混合密度模型優(yōu)化條件變分自編碼器的特征提取能力,提高重構(gòu)數(shù)據(jù)的準(zhǔn)確性,得到更準(zhǔn)確的重構(gòu)樣本,其貢獻主要體現(xiàn)在模型訓(xùn)練的損失函數(shù)中,具體的實施方法如下。
在給定輸入隱變量z時,通過生成網(wǎng)絡(luò)和混合密度模型得到重構(gòu)數(shù)據(jù)的概率密度函數(shù),其具體定義為
(4)
(4)式中:m為高斯分布中混合成分的個數(shù);αj為第j個成分的權(quán)重系數(shù);μj和δj分別為混合高斯分布第j個成分的均值和方差。
為了確?;旌厦芏饶P偷妮敵鰠?shù)能夠形成有效的分布,需要將輸出參數(shù)通過適當(dāng)?shù)暮瘮?shù)進行處理以確保其值在有意義的范圍內(nèi)。(5)式使用softmax函數(shù)約束混合權(quán)重為正且和為1,(6)式約束標(biāo)準(zhǔn)差為正。具體的處理方式為
(5)
(6)
(7)
(5)—(7)式中,αj、δj、μj分別為混合密度模型輸出的第j個分布的混合權(quán)重、方差和均值。因此,基于混合密度模型的DCVAE的損失函數(shù)重新定義為
logp(xi|ci)≥lMDN-DCVAE(xi,ci,φ,θ)=
-DKL(qφ(z|xi,ci)‖pθ(z|ci))+
Eqφ(z|xi,ci)(logpθ(xi|z,ci))=
-DKL(qφ(z|xi,ci)‖pθ(z|ci))+
(8)
在網(wǎng)絡(luò)的訓(xùn)練過程中,使用Adam算法訓(xùn)練MDN-DCVAE,最小化模型損失函數(shù)以得到最優(yōu)的網(wǎng)絡(luò)參數(shù)φ和θ。由于梯度下降算法的反向傳播過程無法處理從中采樣得到的隱變量z,因此,對其采用重采樣操作將z重新參數(shù)化為確定性函數(shù),具體方法為
z=μ+δζ,ζ~N(0,1)
(9)
(9)式中:μ為編碼器輸出的均值;δ為方差。
采用訓(xùn)練好的生成網(wǎng)絡(luò)用于樣本擴充,然而生成網(wǎng)絡(luò)生成的新攻擊樣本可能存在較大差異,新生成的樣本可能會偏離原來的攻擊樣本分布。為了更好地選擇新生成的攻擊樣本,該架構(gòu)根據(jù)類別計算每個訓(xùn)練樣本的重構(gòu)損失,然后以每個類的最大重構(gòu)損失作為篩選標(biāo)準(zhǔn),挑選適合的樣本數(shù)據(jù),其具體操作如下。
生成網(wǎng)絡(luò)pθ(xi|z,ci)聯(lián)合MDN,其概率密度函數(shù)為
(10)
數(shù)據(jù)的對數(shù)似然函數(shù)為
l(xi,ci)=logpθ(xi|z,ci)=
(11)
(4)式中,L為隱變量z的采樣個數(shù),通常為1。
生成網(wǎng)絡(luò)輸出MDN的混合權(quán)重、方差和均值,然后求得該類別生成樣本的損失值。將損失值與訓(xùn)練模型時保存的每類攻擊樣本的最大重構(gòu)損失值進行對比。假設(shè)某類別的最大重構(gòu)損失為
maxL=max(l(xi,ci))
(12)
以該類別的最大重構(gòu)損失值maxL作為選取新攻擊樣本的篩選標(biāo)準(zhǔn)。若新生成的樣本的重構(gòu)損失大于該類的最大損失,則丟棄此樣本,反之,將其融入新訓(xùn)練樣本集中對編碼網(wǎng)絡(luò)進行微調(diào)。
采用訓(xùn)練好的DCVAE網(wǎng)絡(luò)中的編碼網(wǎng)絡(luò)作為基礎(chǔ),去掉最后一層神經(jīng)網(wǎng)絡(luò)用softmax網(wǎng)絡(luò)代替。作為一種有監(jiān)督的分類器,softmax網(wǎng)絡(luò)可以很好地學(xué)習(xí)類別同數(shù)據(jù)之間的特征關(guān)系,對編碼網(wǎng)絡(luò)提取到的低維態(tài)勢特征向量進行分類并微調(diào)整個分類器。softmax將多個神經(jīng)元的輸出映射為(0,1)的實數(shù),并保證它們的和為1,通過softmax函數(shù)就可以將多分類的輸出值轉(zhuǎn)換為(0,1)且和為1的概率分布。假設(shè)編碼網(wǎng)絡(luò)輸出的低維矢量為X,其類別為c,則屬于該類別的概率計算式為
yc=p(Y=c|X,W,b)=
(13)
式(13)中,W和b為最后邏輯回歸層的權(quán)重和偏置值;I為輸出節(jié)點的個數(shù),即分類的類別個數(shù)。
本文針對網(wǎng)絡(luò)安全數(shù)據(jù)的特點,采用深度神經(jīng)網(wǎng)絡(luò)作為分類器對獲取的網(wǎng)絡(luò)安全樣本進行分類識別。針對其高維性,采用條件變分自編碼網(wǎng)絡(luò)中的編碼網(wǎng)絡(luò)進行降維處理,同時生成網(wǎng)絡(luò)聯(lián)合混合密度模型用于擴充樣本數(shù)量較少的攻擊數(shù)據(jù),提高生成數(shù)據(jù)的準(zhǔn)確性,其貢獻主要體現(xiàn)在模型訓(xùn)練的損失函數(shù)中。算法流程如圖2所示,主要包含3個步驟。
圖2 態(tài)勢要素獲取算法流程
步驟1MDN-DCVAE模型訓(xùn)練。該模型主要由編碼網(wǎng)絡(luò)、生成網(wǎng)絡(luò)、混合密度模型3部分組成。
步驟2樣本的擴充。利用生成網(wǎng)絡(luò)生成新的攻擊樣本,將符合的樣本與原始訓(xùn)練集合并形成新的訓(xùn)練集。
步驟3樣本的分類。訓(xùn)練好的編碼網(wǎng)絡(luò)去掉最后一層,然后加上一層softmax網(wǎng)絡(luò)組成分類器,通過反向傳播微調(diào)分類器,得到最優(yōu)的分類模型,將測試數(shù)據(jù)集輸入分類器得到分類結(jié)果。
本文實驗使用的是NSL-KDD數(shù)據(jù)集,它是KDD-CUP99數(shù)據(jù)集的改進版本。訓(xùn)練集主要由21種攻擊類型組成,并且測試集中額外有16種訓(xùn)練集不包含的攻擊類型,攻擊主要分為4大類:DOS攻擊、U2R攻擊、R2L攻擊和Probe攻擊,其余為正常數(shù)據(jù),每類樣本都有相應(yīng)的標(biāo)簽。NSL-KDD訓(xùn)練集和測試集中每個類別的具體個數(shù)如表1所示。
表1 NSL-KDD數(shù)據(jù)集類別分布
NSL-KDD數(shù)據(jù)集有41個特征,其中有9維連續(xù)變量,32維離散變量。對所有的離散變量進行獨熱編碼,對所有的連續(xù)變量進行歸一化操作,然后將每條記錄擴展為121維特征向量。采用下面的方法對連續(xù)變量進行歸一化處理
(14)
(14)式中:x′為歸一化后的數(shù)據(jù);xmin、xmax為輸入數(shù)據(jù)每個特征的最小值和最大值。
本文的實驗環(huán)境為:Windows 10操作系統(tǒng),python3.7環(huán)境下采用Keras深度學(xué)習(xí)框架進行模型訓(xùn)練和測試。硬件配置為:64位操作系統(tǒng),處理器為Inter(R)Core(TM)i5-8500 CPU 4.00 GHz。
基于深度神經(jīng)網(wǎng)絡(luò)的條件變分自編碼器,其降維效果依賴于深度神經(jīng)網(wǎng)絡(luò)(deep neural network,DNN)的結(jié)構(gòu)。隨著層數(shù)的增加,編碼網(wǎng)絡(luò)對于原始數(shù)據(jù)的特征提取能力逐漸增強,但層數(shù)過多也可能會降低模型的泛化能力。同時通過文獻[15]可知,隱含層的節(jié)點數(shù)對于分類結(jié)果同樣非常重要。由于DNN具有自動提取特征的能力,因此,隱藏層的節(jié)點數(shù)量以2的倍數(shù)遞減的方式進行設(shè)置,其值為{100,80,60,40,10}。為了得到最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu),設(shè)置不同深度和不同隱藏層節(jié)點數(shù)的條件變分自編碼器進行對比實驗,選取性能最優(yōu)的結(jié)構(gòu)設(shè)置作為最終的模型結(jié)構(gòu)。由于本文模型使用的誤差函數(shù)是根據(jù)模型的優(yōu)化情況進行改進的,因此,本文采用計算得到的誤差函數(shù)來評價模型訓(xùn)練的好壞,實驗結(jié)果如表2所示。
表2 不同結(jié)構(gòu)的模型分類精度
從實驗結(jié)果得知,該模型在NSL-KDD數(shù)據(jù)集上的最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)為121-80-40-10-5,其中,訓(xùn)練數(shù)據(jù)通過預(yù)處理后的維度為121維,需要分類的攻擊類型為5類。網(wǎng)絡(luò)結(jié)構(gòu)中,輸入層有121個神經(jīng)元,低維輸出層有5個神經(jīng)元。5層網(wǎng)絡(luò)結(jié)構(gòu)的DNN具有更小的訓(xùn)練誤差,層數(shù)過深或過淺都會導(dǎo)致誤差增加,因此,選取5層的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)作為條件變分自編碼器的基本網(wǎng)絡(luò)結(jié)構(gòu)進行數(shù)據(jù)降維和分類。
分別訓(xùn)練具有以上4種網(wǎng)絡(luò)結(jié)構(gòu)的MDN-DCVAE,并將訓(xùn)練好的編碼網(wǎng)絡(luò)作為分類器比較不同網(wǎng)絡(luò)結(jié)構(gòu)對攻擊的分類效果,結(jié)果如圖3所示。從圖3可以看出,模型在未進行數(shù)據(jù)平衡之前,每種網(wǎng)絡(luò)結(jié)構(gòu)計算出來的攻擊的分類精度都不同。具有5層深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的模型具有更好的分類精度。隱含層較多會降低模型的泛化能力,提高模型的抽象能力,數(shù)據(jù)處理時反而會曲解原始信息,從而降低分類精度;隱含層過少,模型的抽象能力較差,無法高度概括數(shù)據(jù)的隱含特征,也會降低模型的分類精度。
圖3 各模型分類精度比較
本文提出條件變分自編碼器用于高維數(shù)據(jù)的降維,同時迫使多類別的數(shù)據(jù)在低維空間根據(jù)類別聚類。為了更清楚地突出MDN-DCVAE的降維優(yōu)勢,將其同主成分分析(principal component analysis,PCA)法、傳統(tǒng)自編碼(auto-encoder,AE)網(wǎng)絡(luò)的降維效果進行比較,得到的可視化效果圖如圖4所示。實驗中使用以上方法將輸入的高維數(shù)據(jù)降維并投影至2維空間。在圖4中,相同顏色的圓點為同一類別的數(shù)據(jù)。如果相同顏色的圓點靠得越近,能夠輕易地與其他顏色的圓點分開,則降維效果越好。
圖4 各模型降維效果對比圖
對比圖4的圖片可以看出,本文所提出的MDN-DCVAE相比其他模型具有更好的降維效果。由于MDN-DCVAE的方法為非線性降維,深度神經(jīng)網(wǎng)絡(luò)可以將高維數(shù)據(jù)轉(zhuǎn)換為低維數(shù)據(jù),隨著網(wǎng)絡(luò)層數(shù)的增加,能夠提取更多數(shù)據(jù)的抽象特征,因此,提供了比主成分分析更強大的非線性泛化能力。而PCA是線性降維方法,將其用于非線性數(shù)據(jù)的特征提取將會損失大部分的特征信息,如果需要使用PCA用于非線性數(shù)據(jù)特征的提取,應(yīng)該對其進行改進或與其他模型進行結(jié)合,彌補其處理數(shù)據(jù)的缺陷。傳統(tǒng)的AE網(wǎng)絡(luò)相比深度自編碼網(wǎng)絡(luò)具有較少的隱藏層,因此,對數(shù)據(jù)抽象特征的提取能力遠不及MDN-DCVAE,降維效果不理想。
從表1可以看出,NSL-KDD數(shù)據(jù)集是不平衡的,其中U2R和R2L只有少量記錄。分別用MDN-DCVAE和DCVAE的生成網(wǎng)絡(luò)生成指定類別的多條記錄來平衡訓(xùn)練數(shù)據(jù),使得每種類別的數(shù)據(jù)數(shù)量相同,結(jié)果如表3所示。
表3 NSL-KDD數(shù)據(jù)集平衡后的樣本數(shù)
平衡數(shù)據(jù)后微調(diào)模型再做分類處理,將數(shù)據(jù)輸入微調(diào)后的分類器進行分類精度的比較,結(jié)果如圖5所示。
圖5 平衡數(shù)據(jù)前后精度對比圖
從圖5可以看出,在樣本擴充前,由于U2R和R2L記錄較少,模型并未很好地提取到該類別的特征,導(dǎo)致分類精度較低,但MDN-DCVAE相對于DCVAE具有較高的分類精度,說明本文所提模型中混合密度模型的使用可以提高重構(gòu)數(shù)據(jù)的相似性,得到更準(zhǔn)確的重構(gòu)樣本。樣本擴充后,每個類別數(shù)據(jù)的數(shù)量相同,模型可以公平地捕捉每個類別的特征,因此,較少數(shù)量樣本的分類精度有所提高。
本文采用MDN-DCVAE的編碼網(wǎng)絡(luò)作為分類器,其網(wǎng)絡(luò)結(jié)構(gòu)為3.3節(jié)確定下來的5層神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。圖6為分類器的誤差變化情況,圖7為分類精度變化情況。從圖6、圖7可以看出,隨著迭代次數(shù)的增加,誤差逐漸降低,分類精度逐漸增大,網(wǎng)絡(luò)達到收斂。說明本文提出的模型框架具有較好訓(xùn)練效果和泛化能力。
圖6 誤差隨迭代次數(shù)的變化曲線
圖7 精度隨迭代次數(shù)的變化曲線
為了評估本文所提模型的攻擊分類能力,將本文方法同傳統(tǒng)AE、未做任何改進的CVAE、基于支持向量機的核主成分分析法(kernelized principal component analysis-support vector machine,KPCA-AVM)[16]和DAN-BP[4]進行比較,其中,AE和CVAE均采用本文網(wǎng)絡(luò)結(jié)構(gòu)的確定方法,采用3層感知機結(jié)構(gòu),以交叉熵作為損失函數(shù),激活函數(shù)為relu,迭代次數(shù)、學(xué)習(xí)率和本文方法相同;DAN-BP[4]使用DAN獲得新的低維特征數(shù)據(jù)集,利用BP算法對學(xué)習(xí)到的低維數(shù)據(jù)進行分類識別;DAN采用5層網(wǎng)絡(luò)結(jié)構(gòu);BP采用4層網(wǎng)絡(luò)結(jié)構(gòu);KPCA-AVM[16]中,SVM的核函數(shù)采用高斯函數(shù),正則化參數(shù)設(shè)置為1.35。將測試集輸入進訓(xùn)練好的模型后得出分類結(jié)果,如表4所示。
表4 不同方案的態(tài)勢要素獲取精度
針對網(wǎng)絡(luò)安全數(shù)據(jù)具有多維、異構(gòu)和冗余等問題,本文提出一種面向復(fù)雜樣本的態(tài)勢要素分類架構(gòu),以深度神經(jīng)網(wǎng)絡(luò)作為基本網(wǎng)絡(luò)框架,與傳統(tǒng)的多層感知器相比,具有更快的學(xué)習(xí)速度,可以從訓(xùn)練數(shù)據(jù)集中自動提取高級抽象數(shù)據(jù)。同時深度條件變分自編碼網(wǎng)絡(luò)的生成網(wǎng)絡(luò)能夠根據(jù)指定的攻擊類別生成攻擊樣本,平衡訓(xùn)練數(shù)據(jù)集。該分類架構(gòu)將特征提取、樣本擴充和分類集成到一個無需大量啟發(fā)式規(guī)則和人工經(jīng)驗即可自動提取特征并分類的系統(tǒng)中,提高了系統(tǒng)的效率。采用NSL-KDD數(shù)據(jù)集對本文所提模型進行仿真實驗,證實了該態(tài)勢要素分類架構(gòu)的有效性和準(zhǔn)確性。