夏景明,丁春健+,談 玲
(1.南京信息工程大學(xué) 電子與信息工程學(xué)院,江蘇 南京 210044;2.南京信息工程大學(xué) 計算機(jī)與軟件學(xué)院,江蘇 南京 210044)
入侵檢測是互聯(lián)網(wǎng)安全體系中的一個重要部分,它通過對網(wǎng)絡(luò)中各種數(shù)據(jù)的收集與分析而檢測出異常信息[1]。隨著互聯(lián)網(wǎng)技術(shù)的日益發(fā)展,傳統(tǒng)的網(wǎng)絡(luò)入侵檢測技術(shù)已經(jīng)無法應(yīng)對更為復(fù)雜的信息防護(hù)問題,其檢測效果及水平的不足給網(wǎng)絡(luò)安全帶來的巨大隱患,因此,如何提高網(wǎng)絡(luò)入侵檢測技術(shù)對與網(wǎng)絡(luò)安全具有重大意義。
目前,與機(jī)器學(xué)習(xí)等領(lǐng)域相關(guān)的入侵檢測技術(shù)已成為國內(nèi)外學(xué)者的一個重點研究方面,相關(guān)人員也提出了一些有效的入侵檢測方法。張曉峰等[2]利用K均值聚類算法對數(shù)據(jù)集劃分為不同的簇,再由SVM標(biāo)記異常集群進(jìn)行詳細(xì)分類,完成了對入侵攻擊的有效檢測并降低了誤報率;BlancoR等[3]利用遺傳算法重新排列輸入要素而優(yōu)化卷積神經(jīng)網(wǎng)絡(luò),實現(xiàn)對數(shù)據(jù)集良好的入侵檢測;郝孫等[4]在分析BP神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上引入了粒子群算法優(yōu)化網(wǎng)絡(luò)的初始權(quán)值和閾值,提高了入侵檢測的整體性能;高妮等[5]利用深度信念網(wǎng)絡(luò)的特性提出了一種面向入侵檢測系統(tǒng)的深度信念網(wǎng)絡(luò)模型,即通過無監(jiān)督學(xué)習(xí)對數(shù)據(jù)進(jìn)行訓(xùn)練及特征提取,再由監(jiān)督學(xué)習(xí)微調(diào)網(wǎng)絡(luò)參數(shù),提高了檢測水平。綜上所述,這些基于機(jī)器學(xué)習(xí)的檢測方法可以彌補傳統(tǒng)網(wǎng)絡(luò)入侵檢測技術(shù)的不足,并達(dá)到很好的效果,但仍可能存在一些問題:例如在使用常用機(jī)器學(xué)習(xí)方法或使用種群方法優(yōu)化訓(xùn)練過程時,可能會出現(xiàn)參數(shù)需要多次調(diào)節(jié)或陷入局部最優(yōu)等問題而導(dǎo)致訓(xùn)練過程不穩(wěn)定[6];又如利用深度信念網(wǎng)絡(luò)可以提高入侵檢測水平,但在訓(xùn)練數(shù)據(jù)集時無法確定網(wǎng)絡(luò)節(jié)點數(shù)而需增加訓(xùn)練次數(shù)手動調(diào)節(jié)次數(shù),從而造成對整個網(wǎng)絡(luò)訓(xùn)練過程的影響等。
針對傳統(tǒng)網(wǎng)絡(luò)入侵技術(shù)的不足及上述方法可能會出現(xiàn)的問題,提出了一種改進(jìn)的深度信念網(wǎng)絡(luò)應(yīng)用于入侵檢測之中,即通過引入灰狼算法對深度信念網(wǎng)絡(luò)隱含層節(jié)點數(shù)進(jìn)行全局尋優(yōu)而近似確定網(wǎng)絡(luò)結(jié)構(gòu),并在網(wǎng)絡(luò)參數(shù)更新階段增加動量學(xué)習(xí)率,在提高入侵檢測效果的同時保證了網(wǎng)絡(luò)訓(xùn)練的穩(wěn)定性,最后利用NSL-KDD數(shù)據(jù)集[7]進(jìn)行仿真驗證該方法的可行性,并與多種檢測方法進(jìn)行對比。實驗結(jié)果表明,基于灰狼算法的深度信念網(wǎng)絡(luò)入侵檢測方法提高了入侵檢測的檢測效果。
深度信念網(wǎng)絡(luò)(deep belief network,DBN)[8]由多層受限玻爾茲曼機(jī)(restricted Boltzmann machine,RBM)及一層BP神經(jīng)網(wǎng)絡(luò)堆疊而成,它訓(xùn)練時分為無監(jiān)督學(xué)習(xí)與有監(jiān)督學(xué)習(xí)兩部分:首先采用自下而上的貪婪算法對RBM逐層進(jìn)行無監(jiān)督學(xué)習(xí),并將底層RBM的輸出作為高層RBM的輸入,經(jīng)過多次訓(xùn)練迭代后得到無監(jiān)督的DBN;其次在DBN的最后附加一層BP神經(jīng)網(wǎng)絡(luò),將最后一層RBM的輸出作為BP神經(jīng)網(wǎng)絡(luò)的輸入而達(dá)到自上而下的監(jiān)督學(xué)習(xí),完成對網(wǎng)絡(luò)中訓(xùn)練參數(shù)的微調(diào)。
受限玻爾茲曼機(jī)是深度信念網(wǎng)絡(luò)的主要組成部分[9],由可見層和隱含層兩部分構(gòu)成,其結(jié)構(gòu)特點是可見層與隱含層節(jié)點之間存在連接,而兩層之間的自身節(jié)點不存在連接,且所有可見層單元和隱含層單元都有兩種狀態(tài):處于激活狀態(tài)時值為1,未激活狀態(tài)值為0,因此可表示為一個二分圖模型,如圖1所示。
圖1 RBN網(wǎng)絡(luò)結(jié)構(gòu)
RBM進(jìn)行無監(jiān)督訓(xùn)練設(shè)定為以下3個步驟:
(1)參數(shù)初始化求解。設(shè)v、h為RBM的可見層單元和隱含層單元,一個RBM網(wǎng)絡(luò)有n個可見層節(jié)點、m個隱含層節(jié)點,對于一組給定狀態(tài)并服從伯努利下的(v,h)值,每一個可見層節(jié)點與隱含層節(jié)點的取值之間都存在一個能量值,可通過計算求出整個聯(lián)合組態(tài)的能量E,即
(1)
其中,ai、bj表示第i、j個可見層節(jié)點的閾值,vi、hj表示可見層和隱含層的第i、j個節(jié)點,Wij則表示第i個可見層節(jié)點數(shù)和第j個隱含層節(jié)點數(shù)之間的權(quán)值;然后通過對能量進(jìn)行指數(shù)化和正則化,便可得到可見層節(jié)點與隱含層節(jié)點集合分別處于某種狀態(tài)下(v,h)聯(lián)合概率分布公式,也可描述為可視層和隱含層單元激活的概率
(2)
(3)
其中,Z(θ)表示對可見層和隱含層節(jié)點集合的所有可能狀態(tài)的能量指數(shù)求和函數(shù)。
(2)訓(xùn)練算法的選擇。為了使RBM在訓(xùn)練時擬合樣本的分布并減少訓(xùn)練時間,使用k步對比散度算法(CD-k)[10]作為RBM模型的標(biāo)準(zhǔn)算法,首先通過極大似然函數(shù)求導(dǎo)得到權(quán)值w,并使當(dāng)前樣本在該分布下的概率最大,即
(4)
(5)
(6)
最終進(jìn)行權(quán)值的更新。
(3)網(wǎng)絡(luò)的評估。一般使用重構(gòu)誤差法作為RBM的評判標(biāo)準(zhǔn),即以訓(xùn)練數(shù)據(jù)作為初始狀態(tài),經(jīng)過RBM的分布進(jìn)行一次Gibbs采樣,然后得到與原始數(shù)據(jù)的差異,若差異減小滿足條件,則訓(xùn)練結(jié)束,否則返回總誤差進(jìn)行網(wǎng)絡(luò)參數(shù)微調(diào)直到滿足誤差條件。
灰狼算法[11]是一種模擬自然界中灰狼群捕食與狩獵的群體智能優(yōu)化方法,其中灰狼群內(nèi)部具有明顯的社會等級制度,按職能可分為4類而構(gòu)成金字塔結(jié)構(gòu),分別是具有領(lǐng)頭作用的首領(lǐng)狼、協(xié)助首領(lǐng)狼的副首領(lǐng)狼、負(fù)責(zé)其它工作的小頭目狼及普通灰狼,可表示為α、β、δ、ω,結(jié)構(gòu)如圖2所示。
圖2 灰狼等級金字塔結(jié)構(gòu)
整個算法可描述為3個部分:包圍、追捕和攻擊,最終成功捕獲獵物(即得到全局最優(yōu)解)。
定義灰狼與獵物之間的距離為D,迭代次數(shù)為t,整個算法步驟如下所述:
(1)包圍獵物?;依侨焊鶕?jù)獵物大概位置對其包圍,距離為
D=C·Xp(t)-X(t)
(7)
X(t+1)=Xp(t)-A·D
(8)
其中,Xp(t)、X(t)可表示第t次迭代后獵物的位置(全局最優(yōu)解位置)與灰狼群的位置(全局潛在解位置),而A與C為系數(shù)因子,計算公式為
A=2a·r1-a
(9)
C=2r2
(10)
其中,a從2到0線性遞減,與迭代次數(shù)有關(guān);r1、r2為0~1之間的隨機(jī)數(shù)。
(2)追捕獵物。定義Dα、Dβ、Dδ為灰狼個體之間的距離,在該過程中灰狼群個體之間的位置會隨著獵物的位置改變而發(fā)生變化,根據(jù)灰狼群更新后的位置后便可重新確定獵物位置(即全局最優(yōu)解),整個更新方程如下所示
(11)
(12)
(13)
(3)攻擊獵物。最終狼群對獵物進(jìn)行攻擊并捕獲即可得到全局最優(yōu)解。
由RBM訓(xùn)練過程可知,DBN在訓(xùn)練過程中一般通過重構(gòu)誤差對網(wǎng)絡(luò)參數(shù)進(jìn)行微調(diào)從而確定網(wǎng)絡(luò)整體結(jié)構(gòu),當(dāng)返回總誤差較小并趨于穩(wěn)定數(shù)值時,表示目前DBN結(jié)構(gòu)較好。由于在構(gòu)建DBN模型時無法具體確定其網(wǎng)絡(luò)隱含層節(jié)點數(shù),只能類似BP神經(jīng)網(wǎng)絡(luò)通過經(jīng)驗公式或試湊法等大概確定[12],因此在訓(xùn)練過程中需增加訓(xùn)練次數(shù)及手動調(diào)節(jié)網(wǎng)絡(luò)節(jié)點數(shù)次數(shù),為了避免在訓(xùn)練過程中出現(xiàn)網(wǎng)絡(luò)性能損耗等問題,本文將根據(jù)特征向量的維度關(guān)系,在DBN模型搭建之后引入灰狼算法對DBN隱含層節(jié)點數(shù)進(jìn)行尋優(yōu)而近似確定網(wǎng)絡(luò)結(jié)構(gòu),使得重構(gòu)誤差最小,并且為了避免由于引入灰狼算法可能導(dǎo)致DBN在訓(xùn)練時與網(wǎng)絡(luò)設(shè)定的學(xué)習(xí)率沖突而造成收斂速度變慢、陷入局部最優(yōu)等問題,在網(wǎng)絡(luò)參數(shù)更新階段引入了動量學(xué)習(xí)率[13],以保證網(wǎng)絡(luò)收斂速度而達(dá)到最佳訓(xùn)練效果。公式如下
(14)
灰狼算法優(yōu)化DBN模型可分為以下幾個步驟:
(1)構(gòu)建一個DBN入侵檢測模型并初始化網(wǎng)絡(luò)參數(shù),根據(jù)特征維度選擇適當(dāng)?shù)木W(wǎng)絡(luò)節(jié)點數(shù);
(2)將DBN模型的網(wǎng)絡(luò)隱含層節(jié)點數(shù)作為灰狼算法的求解對象并對其進(jìn)行全局搜索而尋得最優(yōu)解;
(3)判斷是否達(dá)到最大迭代次數(shù),若符合要求,則將此時灰狼個體對應(yīng)的隱含層節(jié)點數(shù)為全局最優(yōu)解;
(4)設(shè)定DBN神經(jīng)網(wǎng)絡(luò)的隱含層節(jié)點數(shù),對其進(jìn)行訓(xùn)練并評估,判斷重構(gòu)誤差是否減小;
(5)如果誤差減小到一定程度則滿足最優(yōu)解條件,將最終求得的隱含層節(jié)點數(shù)作為DBN模型的初始訓(xùn)練參數(shù)并近似確定DBN網(wǎng)絡(luò)結(jié)構(gòu),結(jié)束訓(xùn)練;否則返回第(3)步,更新灰狼群個體位置并重新計算。整個流程如圖3所示。
圖3 灰狼算法優(yōu)化DBN訓(xùn)練過程
實驗的數(shù)據(jù)來源于NSL-KDD數(shù)據(jù)集,是KDDCup99數(shù)據(jù)集的一部分,其中KDDCup99數(shù)據(jù)集由美國麻省理工學(xué)院實驗室真實模擬美國空軍局域網(wǎng)9個星期的網(wǎng)絡(luò)連接數(shù)據(jù),分成具有標(biāo)識的訓(xùn)練數(shù)據(jù)和未加標(biāo)識的測試數(shù)據(jù),雖然該數(shù)據(jù)集是在1999年發(fā)布,但由于其數(shù)據(jù)集的有效性仍可以評估入侵檢測模型的性能。NSL-KDD數(shù)據(jù)集去除了KDDCup99數(shù)據(jù)集中的冗余部分并重新調(diào)整了訓(xùn)練測試集比例,并將異常數(shù)據(jù)類型分為4大類,分別為:DOS(拒絕服務(wù)攻擊)、R2L(來自遠(yuǎn)程主的未授權(quán)訪問)、U2R(未授權(quán)的本地超級用戶特權(quán)訪問)、PROBE(端口監(jiān)視或掃描),Normal則表示為正常數(shù)據(jù),這在一定程度上對不同入侵檢測技術(shù)的準(zhǔn)確評估更為有效,其分布情況見表1。
由于NSL-KDD數(shù)據(jù)集的總特征由38個數(shù)字型特征和3個字符型共同構(gòu)成,無法直接用于入侵檢測算法,為了便于進(jìn)行后續(xù)實驗可對其進(jìn)行編碼處理。例如數(shù)據(jù)的第二列protcol_type包含tcp、udp、icmp這3種不同字符類型,實驗采用One-Hot編碼[14]方法將其分別表示為[0 0 1]、[0 1 0]、[1 0 0];同理,可將DOS、R2L、U2R、Probe、Normal這幾種數(shù)據(jù)進(jìn)行作為決策項進(jìn)行編碼操作并作為DBN網(wǎng)絡(luò)的輸出,決策表見表2。
表2 決策
在編碼完成之后,使用標(biāo)準(zhǔn)化方法[15]對原始數(shù)據(jù)進(jìn)行歸一化處理,使結(jié)果落到之間,目的是減少數(shù)據(jù)量綱的影響并提高算法收斂速度。轉(zhuǎn)換函數(shù)為
(15)
其中,xmin、xmax分別表示數(shù)據(jù)最小值和最大值。
實驗硬件平臺為搭載Windows10的PC機(jī),軟件平臺為Matlab2018a。設(shè)定RBM訓(xùn)練迭代次數(shù)為100,BP神經(jīng)網(wǎng)絡(luò)微調(diào)參數(shù)迭代次數(shù)為300,動量學(xué)習(xí)率取0.5,由數(shù)據(jù)集的41個特征維度可設(shè)定輸入層節(jié)點數(shù)為122。初始參數(shù)設(shè)定之后根據(jù)2.2節(jié)使用灰狼算法對DBN進(jìn)行隱含層節(jié)點數(shù)多次尋優(yōu),可近似得到每層隱含層節(jié)點數(shù)為94-58-27-10時效果較好,然后構(gòu)建其它幾種不同的DBN網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行對比驗證,每一種DBN網(wǎng)絡(luò)都包含不同的RBM層數(shù)及網(wǎng)絡(luò)節(jié)點數(shù),可表示為122-60-10、122-90-30-1、122-100-80-40-20-10,122-110-90-70-50-30-10,將它們分別編號為進(jìn)行訓(xùn)練,最后利用準(zhǔn)確率與檢測率作為評判指標(biāo),其中
(16)
(17)
結(jié)果見表3。
表3 不同結(jié)構(gòu)對應(yīng)的準(zhǔn)確率與檢測率/%
實驗結(jié)果表明,隨著DBN網(wǎng)絡(luò)層數(shù)的增加,入侵檢測的綜合準(zhǔn)確率與檢測率都有了明顯的提高,當(dāng)網(wǎng)絡(luò)結(jié)構(gòu)為122-94-58-27-10時檢測效果最佳,綜合準(zhǔn)確率達(dá)到98.53%,并且檢測率也達(dá)到97.23%,但隨著網(wǎng)絡(luò)層數(shù)進(jìn)一步增加,準(zhǔn)確率與檢測率反而有所下降。為了進(jìn)一步探索本文方法的優(yōu)越性,在對DBN網(wǎng)絡(luò)隱含層節(jié)點數(shù)進(jìn)行尋優(yōu)之后,實驗綜合文獻(xiàn)資料并與其它幾種主流入侵檢測算法進(jìn)行檢測效果對比,并且為了保證實驗的公平性,對每一種常用方法都在同一環(huán)境進(jìn)行多次實驗,盡量保證檢測率達(dá)到最佳效果,最后并引入誤報率(FA)作為評判標(biāo)準(zhǔn),其中
(18)
對比結(jié)果見表4。
根據(jù)表4可求出不同入侵檢測方法的平均檢測率分別達(dá)到92.64%、94.87%、92.47%、95.73%、97.23%,如圖4所示,不同方法對各種入侵?jǐn)?shù)據(jù)的誤報率對比如圖5所示。從實驗結(jié)果不難看出,與常用的入侵檢測方法相比,基于深度信念的入侵檢測方法在一定程度上提高了檢測效果,對于5種不同類型數(shù)據(jù)的檢測率都有了一定程度的提升,并且經(jīng)過灰狼算法對DBN隱含層節(jié)點數(shù)尋優(yōu)過后,DBN訓(xùn)練過程得到了進(jìn)一步優(yōu)化,相比一般DBN檢測方法平均檢測率增高了2個百分點;從圖5折線走向可得,面對同一數(shù)據(jù)集時所有檢測方法對其它4種數(shù)據(jù)類型處理較好,但對U2R類型的數(shù)據(jù)集的誤報率稍有欠缺,但相對而言本文方法將誤報率降至一個比較好的層面,總體平均水平達(dá)到2.77%,也驗證了本文方法的有效性。
表4 不同算法檢測率與誤報率對比結(jié)果/%
圖4 平均檢測率及誤報率
圖5 誤報率對比
針對傳統(tǒng)入侵檢測方法在檢測效果上的不足,提出了一種基于灰狼算法的深度信念網(wǎng)絡(luò)入侵檢測方法,在面對海量數(shù)據(jù)集時,利用灰狼算法強大的搜索能力對DBN網(wǎng)絡(luò)隱含層節(jié)點數(shù)全局尋優(yōu)從而增加DBN模型的入侵檢測效果,實驗結(jié)果表明,與多種常用的入侵檢測方法相比,該方法有效提高了入侵檢測的檢測率并降低了誤報率。雖然該方法具有良好的檢測能力,但面對數(shù)據(jù)集較少的U2R類型時檢測效果仍需進(jìn)一步優(yōu)化。