張翼英,王德龍,渠慧穎,張 傲,張 磊
(天津科技大學(xué)人工智能學(xué)院,天津300457)
入侵檢測系統(tǒng)[1]能夠及時(shí)發(fā)現(xiàn)已知的網(wǎng)絡(luò)攻擊,是一種積極主動(dòng)的網(wǎng)絡(luò)安全防御技術(shù),在網(wǎng)絡(luò)安全領(lǐng)域備受關(guān)注,是該領(lǐng)域研究的熱點(diǎn)之一[2]。入侵檢測的關(guān)鍵是對網(wǎng)絡(luò)流量進(jìn)行正常與異常的分類[3],并根據(jù)分類的結(jié)果采取相應(yīng)的應(yīng)對措施以保障網(wǎng)絡(luò)的安全運(yùn)行,減少受害者的財(cái)產(chǎn)損失。
迄今為止,國內(nèi)外學(xué)者和研究人員已經(jīng)提出了大量的入侵檢測方法對網(wǎng)絡(luò)攻擊進(jìn)行檢測,其中有兩個(gè)問題成為研究熱點(diǎn),一是如何解決數(shù)據(jù)不平衡的問題以提高入侵檢測的準(zhǔn)確率,二是如何進(jìn)行特征提取才能更好地獲取數(shù)據(jù)的特征,從而提高對網(wǎng)絡(luò)攻擊識別的準(zhǔn)確率。針對數(shù)據(jù)不平衡問題,羅文華等[4]首先利用KNN(K-nearest neighbor)算法選出了與多數(shù)類樣本距離最近的少數(shù)類樣本,之后使用 DBSCAN (density-based spatial clustering of applications,with noise)算法對選出的樣本進(jìn)行聚類,形成新的數(shù)據(jù)集,提高了模型的召回率。汪祖民等[5]提出了一種基于DBSCAN_GAN_XGBoost 的入侵檢測模型,該方法對數(shù)量較少的攻擊樣本進(jìn)行了擴(kuò)充,并利用DBSCAN 算法對擴(kuò)充后的樣本數(shù)據(jù)進(jìn)行聚類,極大提高了稀有攻擊類別的檢測準(zhǔn)確率,但對多數(shù)量的攻擊類型的檢測準(zhǔn)確率較低。章縉等[6]在傳統(tǒng)隨機(jī)森林的基礎(chǔ)上加入了上采樣和加權(quán)投票等優(yōu)化手段,大大提高了模型的檢測能力,但優(yōu)化后的隨機(jī)森林(optimized random forest,ORF)依然存在模型訓(xùn)練時(shí)間較長及檢測準(zhǔn)確率不高的問題。Hamid 等[7]提出了一種基于人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)和小波變換(wavelet transform,WTF)的方法解決數(shù)據(jù)不完備的問題,提高了少量攻擊類別的檢測準(zhǔn)確率。
針對特征提取,葛繼科等[8]利用多層卷積神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)集進(jìn)行特征選擇,去除了數(shù)據(jù)的冗余特征,之后使用sigmoid 激活函數(shù)對攻擊行為進(jìn)行二分類預(yù)測,減少了檢測時(shí)間,提高了準(zhǔn)確率。夏棟梁等[9]利用蟻群算法(ant colony optimization,ACO)對數(shù)據(jù)進(jìn)行降維,提高了分類精度,減小了誤報(bào)率,但降維所用時(shí)間較長。劉輝[10]提出了一種基于主成分分析(principal component analysis,PCA)和多層感知機(jī)(multi-layer perceptron,MLP)的入侵檢測模型,該模型首先采用PCA 對數(shù)據(jù)進(jìn)行降維,然后將降維后的數(shù)據(jù)送入MLP 神經(jīng)網(wǎng)絡(luò)分類器,對網(wǎng)絡(luò)入侵行為進(jìn)行分類,提高了入侵檢測系統(tǒng)的準(zhǔn)確率,但PCA 只能進(jìn)行線性降維,對非線性特征描述不夠全面,以至于誤報(bào)率較高。趙荷等[11]憑借深度信念網(wǎng)絡(luò)(deep belief network,DBN)對入侵特征進(jìn)行提取,并利用遞歸特征(recursive feature addition,RFA)對影響模型檢測性能的特征進(jìn)行選擇,有效降低了模型訓(xùn)練時(shí)間。
上述方法雖然都解決了數(shù)據(jù)不平衡或者數(shù)據(jù)特征冗余的問題,但普遍存在檢測準(zhǔn)確率不高及對網(wǎng)絡(luò)攻擊分類不夠精確的問題?;诖?,本文提出一種結(jié)合 SMOTE(synthetic minority over-sampling technique)算法采樣的SDAE-LSTM(stacked deep autoencoder-long short term memory)入侵檢測模型,旨在解決攻擊類別不平衡的問題,降低數(shù)據(jù)的維度,提高準(zhǔn)確率,實(shí)現(xiàn)對入侵行為的精準(zhǔn)捕獲,為網(wǎng)絡(luò)入侵檢測提供一種行之有效的方法。
SMOTE 算法的核心是通過線性變換函數(shù)在一些距離較近的少數(shù)類數(shù)據(jù)中獲得新數(shù)據(jù),使原數(shù)據(jù)集類別間的數(shù)量相對平衡[12]。對少數(shù)類中的每個(gè)樣本x,計(jì)算歐氏距離,得到與其距離較近的K 條數(shù)據(jù)。之后,根據(jù)不平衡率對樣本集的采樣比例進(jìn)行設(shè)置,然后確定采樣倍率N。接下來隨機(jī)選取樣本x 的K 近鄰中的多個(gè)樣本,記所選樣本為y。對于所選樣本y,按照式(1)利用原始樣本x 構(gòu)造新樣本z。
其中rand(0,1)表示生成0~1 之間的隨機(jī)數(shù)。
網(wǎng)絡(luò)入侵檢測數(shù)據(jù)具有維度高、數(shù)據(jù)量大的特 點(diǎn)[13],因此在構(gòu)建入侵檢測模型時(shí)所要面臨的一個(gè)重要任務(wù)便是對所用數(shù)據(jù)集進(jìn)行特征降維。自編碼器(auto-encoder,AE)擁有極強(qiáng)的非線性擬合能力,這使它能夠逼近任何擁有非線性特征的函數(shù),除此之外,AE 還能夠自動(dòng)學(xué)習(xí)數(shù)據(jù)特征?;诖?,本文選擇堆疊式深度自編碼器(stacked deep auto-encoder,SDAE)進(jìn)行特征降維,這樣既能自動(dòng)進(jìn)行深層特征提取,又同時(shí)保持了數(shù)據(jù)的一致[14],得到最有用的特征。
堆疊式深度自編碼器由多個(gè)自編碼器相互疊加構(gòu)成[15],其憑借上一層隱藏層的表示作為下一層的輸入,獲得更加抽象的表示。圖1 為兩個(gè)稀疏自編碼器相互級聯(lián)而成的兩層堆疊式深度自編碼器。
圖1 堆疊式深度自編碼器Fig.1 Stacked deep auto-encoder
SDAE 是一種無監(jiān)督的神經(jīng)網(wǎng)絡(luò)模型,能夠通過不斷學(xué)習(xí)得到輸入數(shù)據(jù)的深層表示。將輸入層數(shù)據(jù)x進(jìn)行轉(zhuǎn)換,便可以得到其隱藏層的表示h(x),之后由隱藏層對其進(jìn)行重構(gòu),還原出新的輸入數(shù)據(jù)。使重構(gòu)后的數(shù)據(jù)能夠盡量還原x 便是SDAE 的訓(xùn)練目標(biāo)。通常情況下會定義均方誤差描述SDAE 的損失函數(shù),如式(2)所示。
式中:w 表示網(wǎng)絡(luò)權(quán)重系數(shù),b 表示隱藏層偏置,c 表示輸出層偏置。
為了防止過擬合,通常會在損失函數(shù)上加權(quán)重衰減,如式(3)所示。
權(quán)重衰減的公式為
式中:||W||F為權(quán)重矩陣W 的F-范數(shù),W*為W 的轉(zhuǎn)置矩陣,λ為權(quán)重衰減系數(shù)。模型的最優(yōu)參數(shù)w、b、c通過梯度下降算法求解得出。
長短期記憶(long short term memory,LSTM)神經(jīng)網(wǎng)絡(luò)是循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)的一種優(yōu)化模型,其單元結(jié)構(gòu)如圖2 所示。LSTM 的關(guān)鍵是細(xì)胞(cell)的狀態(tài)Ct,為了刪除或增加cell 中的相關(guān)信息,LSTM 利用輸入門、輸出門和遺忘門控制信息的通過方式,并保護(hù)和控制cell 的 狀態(tài)。
圖2 LSTM單元結(jié)構(gòu)Fig.2 LSTM unit structure
遺忘門cell 狀態(tài)中的信息是否需要?jiǎng)h除由一個(gè)sigmoid 層決定,計(jì)算方法如式(5)所示。對于輸入xt和ht-1,遺忘門會輸出一個(gè)值域?yàn)閇0,1]的數(shù)字,并將其放入cell 狀態(tài)Ct-1中。當(dāng)值為1 時(shí),盡數(shù)保留;當(dāng)值為0 時(shí),則全部清除。
式中:xt為LSTM 神經(jīng)網(wǎng)絡(luò)在t 時(shí)刻的輸入,ht為t 時(shí)刻隱藏層的狀態(tài),ft為t 時(shí)刻遺忘門的輸出狀態(tài),σ為sigmoid 激活函數(shù),Wf為權(quán)重矩陣,bf為偏置向量。cell 通過兩個(gè)階段增加新信息。第一階段是決定信息的棄留,該階段由一個(gè)包含sigmoid 層的輸入門完成,計(jì)算過程見式(6)。第二階段LSTM 會為上一步保留的信息生成一個(gè)向量,對細(xì)胞狀態(tài)進(jìn)行更新,此過程由tanh 函數(shù)實(shí)現(xiàn),計(jì)算過程見式(7)。
在輸入門和遺忘門的基礎(chǔ)之上,按照式(8)將細(xì)胞狀態(tài)Ct-1進(jìn)行更新。
式中:ft·Ct-1表示想要?jiǎng)h除的信息,表示新增加的信息。
LSTM 的輸出內(nèi)容是由輸出門決定的,計(jì)算過程如式(9)和式(10)所示。首先利用sigmoid 函數(shù)決定要輸出的內(nèi)容,然后用tanh 函數(shù)把cell 的狀態(tài)值轉(zhuǎn)換到-1~1 之間,并憑借sigmoid 函數(shù)的非線性作用得到最終輸出。
針對傳統(tǒng)的網(wǎng)絡(luò)入侵檢測技術(shù)因數(shù)據(jù)不平衡及特征冗余而導(dǎo)致檢測準(zhǔn)確率不高的問題,提出了一種結(jié)合SMOTE 采樣的SDAE-LSTM 入侵檢測模型,如圖3 所示。檢測流程共分為3 個(gè)階段:第一階段,針對數(shù)據(jù)不平衡問題,使用SMOTE 采樣方法,對數(shù)據(jù)中的低頻攻擊樣本進(jìn)行增量處理,以達(dá)到各類別數(shù)據(jù)量平衡的目的,從而使入侵檢測數(shù)據(jù)能夠得到更加充分的訓(xùn)練,憑借此解決數(shù)據(jù)在傳輸過程中出現(xiàn)的丟失問題;第二階段,利用堆疊式深度自編碼器對采樣后的數(shù)據(jù)進(jìn)行特征降維,既能自動(dòng)進(jìn)行深層特征提取,又能夠保持?jǐn)?shù)據(jù)的一致,得到最有用的特征;第三階段,將提取的深度特征送入LSTM 進(jìn)行網(wǎng)絡(luò)異常檢測、特征識別、分類并將分類結(jié)果輸出。模型訓(xùn)練流程如圖4 所示,具體如下:
圖3 結(jié)合SMOTE采樣的SDAE-LSTM入侵檢測模型Fig.3 SDAE-LSTM intrusion detection model combined with SMOTE sampling
圖4 模型訓(xùn)練流程Fig.4 Model training process
(1)初始化SDAE 的權(quán)重參數(shù)w 和隱藏層偏置b。
(2)將經(jīng)過預(yù)處理和SMOTE 平衡化后的數(shù)據(jù)x送入SDAE 模型。
(3)計(jì)算各層的輸出值,并通過誤差反向傳播方法對SDAE 進(jìn)行微調(diào)。
(4)更新各層參數(shù),直至達(dá)到最優(yōu)。
(5)LSTM 訓(xùn)練。
(6)對損失函數(shù)進(jìn)行計(jì)算。
(7)觀察訓(xùn)練結(jié)果并進(jìn)行參數(shù)調(diào)整,直到模型效果達(dá)到最優(yōu)。
訓(xùn)練完成后,將測試集送入模型中進(jìn)行網(wǎng)絡(luò)異常檢測,并得出分類結(jié)果。
實(shí)驗(yàn)所用數(shù)據(jù)集為UNSW-NB15,其擁有真實(shí)的網(wǎng)絡(luò)攻擊行為和正常行為,可以全方位地反映當(dāng)前網(wǎng)絡(luò)攻擊的多樣性[16]。該數(shù)據(jù)集包含9 種攻擊類型和正常數(shù)據(jù)Normal,分為訓(xùn)練集和測試集,各類數(shù)據(jù)分布見表1。
表1 UNSW-NB15數(shù)據(jù)集各類數(shù)據(jù)分布Tab.1 UNSW-NB15 datasets distribution of various data
為合理評價(jià)本文入侵檢測模型的性能,本實(shí)驗(yàn)采用準(zhǔn)確率(A)、精確率(P)、召回率(R)、誤報(bào)率(F)和F1值作為本文模型的評價(jià)標(biāo)準(zhǔn)。精確率和召回率可以在一定程度上表征模型的查準(zhǔn)率與查全率。準(zhǔn)確率為預(yù)測正確的樣本個(gè)數(shù)占全部樣本個(gè)數(shù)的比例,其比值越大意味著模型的檢測能力越好。誤報(bào)率為所有誤報(bào)樣本占正常樣本的比例。
其中:NTP表示實(shí)例是正例并被預(yù)測為正例的數(shù)量,NFP表示實(shí)例是負(fù)例但被預(yù)測為正例的數(shù)量,NFN表示實(shí)例是正例但被預(yù)測為負(fù)例的數(shù)量,NTN表示實(shí)例是負(fù)例并被預(yù)測為負(fù)例的數(shù)量。
(1)屬性映射
網(wǎng)絡(luò)入侵檢測數(shù)據(jù)多為字符型[17],不能直接輸入,需要對其進(jìn)行處理后才能使用。屬性映射便是將數(shù)據(jù)集中的符號特征轉(zhuǎn)換為數(shù)字型特征,使所有數(shù)據(jù)均為數(shù)值型,便于入侵檢測模型進(jìn)行處理。UNSWNB15 數(shù)據(jù)集共有45 個(gè)特征屬性,其中state、proto、attack_cat 和service 是字符型特征,它們無法直接輸入,需要對其進(jìn)行數(shù)值化處理。本實(shí)驗(yàn)選用one-hot獨(dú)熱編碼對字符型特征進(jìn)行數(shù)值化轉(zhuǎn)換。
(2)數(shù)據(jù)歸一化
入侵檢測數(shù)據(jù)集進(jìn)行屬性映射后需要進(jìn)行歸一化處理[18],以消除不同特征間的量綱給檢測結(jié)果帶來的負(fù)面影響,便于對模型進(jìn)行綜合評價(jià)。例如dur的取值有0.655 618,而sload 的取值有124 104.4,如此巨大的量綱差異會對模型的訓(xùn)練及收斂速度造成很大影響。此外,數(shù)據(jù)集經(jīng)歸一化處理后能夠有效避免奇異樣本造成的不良影響。本文選取min~max 標(biāo)準(zhǔn)化方法進(jìn)行數(shù)據(jù)歸一化處理,將數(shù)據(jù)映射到[0,1]區(qū)間內(nèi),如式(16)所示。
式中:x 為經(jīng)過轉(zhuǎn)換后的數(shù)據(jù),x′為經(jīng)過歸一化處理后的數(shù)據(jù),xmin和xmax分別為特征最小值和特征最大值。
鑒于UNSW-NB15 數(shù)據(jù)集存在數(shù)據(jù)不平衡的問題,本研究選用SMOTE 采樣算法對數(shù)據(jù)集中的稀有攻擊類型樣本進(jìn)行擴(kuò)充,以使各類別樣本比例變得均衡[19]。采樣前后各類型訓(xùn)練集樣本數(shù)對比見表2。
表2 采樣前后各類型訓(xùn)練集樣本數(shù)對比Tab.2 Comparison of various types of data before and after sampling
由于神經(jīng)網(wǎng)絡(luò)模型中參數(shù)較多,故在進(jìn)行實(shí)驗(yàn)之前需要對參數(shù)進(jìn)行設(shè)置,本實(shí)驗(yàn)通過對比分析,將SDAE 的結(jié)構(gòu)及LSTM 的參數(shù)進(jìn)行設(shè)置。
SDAE 結(jié)構(gòu)設(shè)置:本文所用SDAE 模型深度為4,每層神經(jīng)元個(gè)數(shù)分別設(shè)置為128、64、64、32,激活函數(shù)為ReLU 函數(shù)。
LSTM 模型參數(shù)設(shè)置:本文所用LSTM 模型層數(shù)為兩層,每層節(jié)點(diǎn)個(gè)數(shù)為128,學(xué)習(xí)率為0.002,批大小為128,訓(xùn)練次數(shù)為500,優(yōu)化器選用Adam。
3.4.1 SMOTE 算法性能分析
為了驗(yàn)證本文所用采樣方法的性能,實(shí)驗(yàn)對稀有攻擊樣本采樣前后各類型的召回率和精確率進(jìn)行了對比,結(jié)果如圖5 和圖6 所示。
圖5 稀有攻擊類型樣本采樣前后的召回率對比Fig.5 Comparison of recall before and after sampling rare attack samples
圖6 稀有攻擊類型樣本采樣前后的精確率對比Fig.6 Comparison of precision before and after sampling rare attack samples
實(shí)驗(yàn)結(jié)果表明,對稀有攻擊類型樣本進(jìn)行SMOTE 采樣后,Shellcode、Worms、Backdoor 和Analysis 的召回率及精確率都有明顯提高。攻擊類型Analysis 和Backdoor 在進(jìn)行SMOTE 采樣之前,其召回率都普遍較低,這是因?yàn)槎邩颖緮?shù)量過少,數(shù)據(jù)不能充分學(xué)習(xí),使其行為難以檢測,從而導(dǎo)致召回率較低。分別對稀有攻擊類型的數(shù)據(jù)樣本進(jìn)行采樣,其樣本數(shù)量得到增加,提高了稀有攻擊類別數(shù)據(jù)的占比,使其能夠充分被分類器學(xué)習(xí),從而使召回率得以提高。使用SMOTE 技術(shù)對所用樣本進(jìn)行平衡化處理,能夠有效提高稀有攻擊類型的召回率和精確率,從而使模型獲得更優(yōu)異的入侵檢測性能。
3.4.2 SDAE 特征提取模型性能分析
為了驗(yàn)證堆疊式深度自編碼器SDAE 優(yōu)異的深層特征提取能力,本文以UNSW-NB15 數(shù)據(jù)集為基礎(chǔ),以準(zhǔn)確率、召回率和誤報(bào)率為評價(jià)指標(biāo),在LSTM、BP、KNN 和 CNN 這 4 種分類器上,將SDAE、主成分分析(PCA)、深度信念網(wǎng)絡(luò)(DBN)和隨機(jī)森林(RF)這4 種特征提取模型的性能進(jìn)行了對比,如圖7 所示。由實(shí)驗(yàn)結(jié)果可知,當(dāng)對某一種分類器進(jìn)行固定時(shí),以上4 種特征提取模型都表現(xiàn)出了較好的性能,分類準(zhǔn)確率和召回率均較高,誤報(bào)率較小,但相比較而言SDAE 特征提取模型的準(zhǔn)確率最高,其次是DBN 和RF,最差為PCA。SDAE 準(zhǔn)確率之所以高是因?yàn)槠渚哂袕?qiáng)大的特征提取能力,使冗余特征被消除,留下的是數(shù)據(jù)最有用的特征,能夠讓分類器進(jìn)行精準(zhǔn)學(xué)習(xí),使模型更好地識別出各種攻擊類型數(shù)據(jù)的類別,提高檢測準(zhǔn)確率。
圖7 不同特征提取模型在不同分類器上的準(zhǔn)確率、召回率和誤報(bào)率Fig.7 Accuracy,recall and false alarm of different feature extraction models on different classifiers
3.4.3 模型整體性能分析
為了進(jìn)一步驗(yàn)證本文所提出的結(jié)合SMOTE 采樣的SDAE-LSTM 模型在網(wǎng)絡(luò)入侵檢測方面的整體性能,本文選取文獻(xiàn)綜述中所提到的ORF[6]、ANNWTF[7]、PCA-MLP[10]、DBN-RFA[11]這4 種入侵檢測模型作為對比模型,以UNSW-NB15 數(shù)據(jù)集為基礎(chǔ),以準(zhǔn)確率、精確率、召回率和F1值為評價(jià)指標(biāo),對比結(jié)果見表3。
表3 不同入侵檢測模型的性能Tab.3 Performance of different intrusion detection models
由表3 可知:本文模型對網(wǎng)絡(luò)攻擊分類的準(zhǔn)確率、精確率與F1值均高于其他模型。本文模型的召回率高于PCA-MLP 模型和ORF 模型,稍低于DBNRFA 模型與ANN-WTF 模型。DBN-RFA 和ANNWTF 兩種入侵檢測模型的總體性能優(yōu)于PCA-MLP模型,但遜色于本文模型,那是因?yàn)殡m然DBN 和ANN 都能夠?qū)?shù)據(jù)進(jìn)行降維,但卻無法實(shí)現(xiàn)數(shù)據(jù)的深度特征提取,而SDAE 能夠?qū)?shù)據(jù)進(jìn)行深度特征提取,使分類器可以精準(zhǔn)學(xué)習(xí),故而性能優(yōu)于二者。在對比結(jié)果中,PCA-MLP 模型分類性能較差,一方面是因?yàn)镻CA 只能進(jìn)行線性降維,無法對非線性特征進(jìn)行全面描述,另一方面是因?yàn)镸LP 是單一的神經(jīng)網(wǎng)絡(luò)模型,分類效果不及其他幾種模型,從而導(dǎo)致其性能較差。ORF 模型在5 種對比模型中性能最差,雖然作者對其進(jìn)行了優(yōu)化,但隨機(jī)森林仍存在一些分類能力較差的決策樹,使檢測模型的分類準(zhǔn)確率變低。從以上5 種模型的對比結(jié)果可以看出,本文模型的精確率及對網(wǎng)絡(luò)攻擊識別的準(zhǔn)確率較高,召回率稍有不足,總體上優(yōu)于其他對比模型。
本文提出一種結(jié)合 SMOTE 采樣的 SDAELSTM 入侵檢測算法,對網(wǎng)絡(luò)異常行為進(jìn)行了檢測。針對數(shù)據(jù)不平衡問題,采用SMOTE 采樣方法,在少量攻擊類樣本點(diǎn)之間隨機(jī)插入樣本,增加其數(shù)量,以達(dá)到類間平衡的目的。針對特征冗余問題,利用堆疊式深度自編碼器進(jìn)行數(shù)據(jù)降維,得到數(shù)據(jù)的主要特征,讓分類器進(jìn)行精準(zhǔn)學(xué)習(xí),使模型更好地識別出各種攻擊類型數(shù)據(jù)的類別。最后,基于LSTM 神經(jīng)網(wǎng)絡(luò),精準(zhǔn)捕獲網(wǎng)絡(luò)入侵特征,準(zhǔn)確地實(shí)現(xiàn)入侵檢測。實(shí)驗(yàn)結(jié)果表明,通過SMOTE 采樣與SDAE 深層特征提取,大大降低了數(shù)據(jù)的冗余度,模型準(zhǔn)確率達(dá)到0.958,為網(wǎng)絡(luò)入侵檢測提供了一種行之有效的方法。