王家寶 繆祥華,b
(昆明理工大學(xué)a.信息工程與自動(dòng)化學(xué)院;b.云南省計(jì)算機(jī)技術(shù)應(yīng)用重點(diǎn)實(shí)驗(yàn)室)
隨著網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大和網(wǎng)絡(luò)技術(shù)的不斷更迭, 給網(wǎng)絡(luò)安全帶來(lái)了更多的問(wèn)題和挑戰(zhàn),國(guó)內(nèi)外的網(wǎng)絡(luò)安全事件頻發(fā),網(wǎng)絡(luò)安全問(wèn)題得到了更多的重視。 近年來(lái),入侵檢測(cè)技術(shù)作為保護(hù)網(wǎng)絡(luò)的有效安全技術(shù)被廣泛研究,許多研究者引入了神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)等來(lái)予以解決,并且取得了較好的效果。 但是在面對(duì)海量復(fù)雜數(shù)據(jù)時(shí),傳統(tǒng)機(jī)器學(xué)習(xí)方法在特征學(xué)習(xí)時(shí)易受時(shí)間復(fù)雜度和空間復(fù)雜度制約,導(dǎo)致入侵檢測(cè)識(shí)別攻擊數(shù)據(jù)的準(zhǔn)確率低、誤報(bào)率高[1]。而深度學(xué)習(xí)在面對(duì)海量數(shù)據(jù)分析時(shí)有突出的表現(xiàn),可用于復(fù)雜網(wǎng)絡(luò)環(huán)境下的入侵檢測(cè)問(wèn)題。
深度置信網(wǎng)絡(luò)(Deep Belief Network,DBN)是深度學(xué)習(xí)中的一個(gè)經(jīng)典模型,是一個(gè)由多層受限玻爾茲曼機(jī)(Restricted Boltzmann Machine,RBM)和一個(gè)反向傳播神經(jīng)網(wǎng)絡(luò)(Backpro Pagation Neural Network,BPNN)構(gòu)成的深度學(xué)習(xí)分類器,通過(guò)非線性的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)擬合復(fù)雜函數(shù),來(lái)提高分類和預(yù)測(cè)的準(zhǔn)確率[2]。 DBN的網(wǎng)絡(luò)結(jié)構(gòu)指的是網(wǎng)絡(luò)層層數(shù)和每層的神經(jīng)元數(shù)。 DBN的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)置對(duì)DBN的性能有著重要的影響。 DBN作為深度學(xué)習(xí)的經(jīng)典模型,常被應(yīng)用在入侵檢測(cè)領(lǐng)域。 但DBN的網(wǎng)絡(luò)結(jié)構(gòu)一般由科研人員憑經(jīng)驗(yàn)設(shè)定,如果DBN的網(wǎng)絡(luò)結(jié)構(gòu)未達(dá)到最優(yōu),則無(wú)法完全發(fā)揮DBN的性能。 因此,筆者提出采用麻雀搜索算法(Sparrow Search Algorithm,SSA)對(duì)DBN的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行優(yōu)化,以提高DBN模型的性能。
DBN由數(shù)個(gè)RBM堆疊構(gòu)成,通常會(huì)在頂層加入一個(gè)BPNN來(lái)實(shí)現(xiàn)有監(jiān)督的分類,DBN中下一層的隱藏層就是上一層的可見(jiàn)層[3]。 圖1所示的DBN即由兩個(gè)RBM和頂層一個(gè)BPNN構(gòu)成。
DBN模型的訓(xùn)練分兩個(gè)階段[4]:第1階段是預(yù)訓(xùn)練階段,自下而上分別對(duì)每一個(gè)RBM進(jìn)行無(wú)監(jiān)督訓(xùn)練, 得到每一層之間的權(quán)重w和每一層的偏置b;第2階段是微調(diào)階段,自上而下對(duì)整個(gè)DBN中的參數(shù)進(jìn)行微調(diào),以提高模型性能。 頂層BPNN接收下一層RBM輸出的特征向量作為輸入,可以進(jìn)行無(wú)監(jiān)督訓(xùn)練,也可以在輸入層中加入標(biāo)簽實(shí)現(xiàn)有監(jiān)督訓(xùn)練。
DBN在特征提取方面的性能較好,通過(guò)頂層BPNN的有監(jiān)督訓(xùn)練可以學(xué)習(xí)已知攻擊類型的網(wǎng)絡(luò)流量特征,對(duì)于未知的攻擊類型也可以通過(guò)它在特征提取方面的優(yōu)勢(shì)提高檢測(cè)率,適用于需要處理大量網(wǎng)絡(luò)數(shù)據(jù)的入侵檢測(cè)。
RBM是一種隨機(jī)神經(jīng)網(wǎng)絡(luò),由一層可見(jiàn)層和一層隱藏層構(gòu)成,一般可見(jiàn)層為輸入層,隱藏層為輸出層。 RBM同一網(wǎng)絡(luò)層的神經(jīng)元無(wú)連接,相鄰網(wǎng)絡(luò)層間的神經(jīng)元全連接。 RBM的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
用向量v表示可見(jiàn)層的狀態(tài),向量h表示隱藏層的狀態(tài),可見(jiàn)層有m個(gè)神經(jīng)元,隱藏層有n′個(gè)神經(jīng)元,vi表示可見(jiàn)層第i個(gè)神經(jīng)元,hj表示隱藏層第j個(gè)神經(jīng)元,RBM的參數(shù)θ={wij,ai,bj},wij為兩層神經(jīng)元之間的權(quán)重值,ai表示可見(jiàn)層第i個(gè)神經(jīng)元的偏置值,bj表示隱藏層第j個(gè)神經(jīng)元的偏置值。 則RBM的能量函數(shù)E[5]定義為:
當(dāng)參數(shù)確定時(shí),基于能量函數(shù)E可得(v,h)的聯(lián)合概率分布:
其中,Z(θ)為所有可能情況下的能量和,稱為配分因子。
因此,可以得到兩層的激活概率分別為:
其中,σ(x)為sigmoid激活函數(shù)。
為了盡快得到最大概率,采用對(duì)比散度算法訓(xùn)練RBM。 該算法通常僅需要1次迭代就可以得到最大概率。 對(duì)比散度算法利用訓(xùn)練數(shù)據(jù)初始化可見(jiàn)層,通過(guò)條件分布概率得到隱藏層,再通過(guò)條件分布概率得到最終的可見(jiàn)層,最終得到的可見(jiàn)層就是輸入數(shù)據(jù)的重建。
SSA是于2020年由薛建凱和沈波根據(jù)麻雀的覓食行為和反捕食行為提出的一種新型群智能優(yōu)化算法。 SSA[6]將麻雀分為發(fā)現(xiàn)者和加入者,麻雀中發(fā)現(xiàn)者和加入者的身份可以互相轉(zhuǎn)換,但是總體比例不變。 發(fā)現(xiàn)者負(fù)責(zé)在全局中搜尋食物資源豐富的區(qū)域,加入者會(huì)監(jiān)視發(fā)現(xiàn)者,靠近發(fā)現(xiàn)者的區(qū)域進(jìn)行覓食或者搶奪發(fā)現(xiàn)者的食物。 當(dāng)麻雀種群發(fā)現(xiàn)危險(xiǎn)時(shí),處在邊緣區(qū)域的麻雀會(huì)迅速向安全區(qū)域靠攏,處在中心區(qū)域的麻雀則會(huì)隨機(jī)移動(dòng)。 SSA的步驟如下:
a. 初始化麻雀種群,定義其相關(guān)參數(shù),計(jì)算所有麻雀?jìng)€(gè)體的適應(yīng)度并進(jìn)行排序,找出全局適應(yīng)度值最優(yōu)的麻雀,記錄其適應(yīng)度值及其全局最優(yōu)位置;
b. 迭代更新發(fā)現(xiàn)者、加入者和意識(shí)到危險(xiǎn)的麻雀的位置,若當(dāng)前全局最優(yōu)適應(yīng)度值比上一代最優(yōu)值高就進(jìn)行更新操作, 否則不進(jìn)行更新操作,繼續(xù)迭代;
c. 適應(yīng)度函數(shù)收斂或達(dá)到滿足條件,獲得全局最優(yōu)值和最優(yōu)適應(yīng)度值。
SSA與其他傳統(tǒng)優(yōu)化算法相比, 具有收斂速度快、 精度高和不易陷入局部最優(yōu)值的優(yōu)勢(shì),更容易獲得優(yōu)化問(wèn)題中的全局最優(yōu)解。 因此,筆者采用SSA對(duì)DBN進(jìn)行優(yōu)化。
DBN在特征提取方面具有較好的性能,適用于入侵檢測(cè)技術(shù)。 DBN的網(wǎng)絡(luò)結(jié)構(gòu)是否為最優(yōu)決定了DBN的性能是否為最佳。 但是研究者憑借經(jīng)驗(yàn)設(shè)定的DBN網(wǎng)絡(luò)結(jié)構(gòu)無(wú)法完全發(fā)揮DBN的性能。 因此,筆者用SSA優(yōu)化DBN得到新的入侵檢測(cè)模型SSA-DBN。 使用SSA優(yōu)化DBN的核心思想就是得到位置最優(yōu)的麻雀, 也就是適應(yīng)度最高的麻雀?jìng)€(gè)體, 在迭代結(jié)束時(shí)根據(jù)此麻雀的參數(shù)設(shè)置DBN的最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu),得到最優(yōu)的入侵檢測(cè)模型?;赟SA-DBN的入侵檢測(cè)模型框架如圖3所示。
圖3 SSA-DBN入侵檢測(cè)模型框架
SSA-DBN入侵檢測(cè)模型分為數(shù)據(jù)預(yù)處理模塊和SSA-DBN模塊。 數(shù)據(jù)預(yù)處理模塊的功能是處理原始數(shù)據(jù),使處理后的數(shù)據(jù)可以輸入SSA-DBN模塊。 SSA-DBN模塊的功能是對(duì)輸入數(shù)據(jù)進(jìn)行分類,識(shí)別攻擊類型的數(shù)據(jù)。
數(shù)據(jù)預(yù)處理共分為3個(gè)步驟:
a. 字符型數(shù)據(jù)轉(zhuǎn)換為數(shù)值型數(shù)據(jù)。由于入侵檢測(cè)數(shù)據(jù)集中的某些特征是字符型數(shù)據(jù),而DBN只能處理數(shù)值型數(shù)據(jù),因此將該數(shù)據(jù)集中的字符型數(shù)據(jù)轉(zhuǎn)換成數(shù)值型數(shù)據(jù)。
SSA-DBN模塊的功能是對(duì)輸入的數(shù)據(jù)進(jìn)行識(shí)別分類,可分為兩個(gè)步驟:
a. 使用訓(xùn)練數(shù)據(jù)集對(duì)SSA-DBN模塊進(jìn)行訓(xùn)練和參數(shù)調(diào)優(yōu),得到最優(yōu)入侵檢測(cè)模型;
b. 將測(cè)試數(shù)據(jù)集輸入到訓(xùn)練好的SSA-DBN模塊中得到分類結(jié)果。
該模塊基本步驟偽代碼如圖4所示,其中,I為最大迭代次數(shù),PD為麻雀中發(fā)現(xiàn)者的數(shù)量,SD為發(fā)現(xiàn)危險(xiǎn)的麻雀的數(shù)量,A為警戒值,s為麻雀種群的數(shù)量,F(xiàn)(X)為適應(yīng)度函數(shù),X表示DBN的網(wǎng)絡(luò)結(jié)構(gòu)。
該算法首先隨機(jī)初始化麻雀種群的數(shù)量并定義相關(guān)參數(shù),計(jì)算并找出當(dāng)前適應(yīng)度函數(shù)的最優(yōu)值。 然后更新麻雀的位置,再次計(jì)算當(dāng)前適應(yīng)度函數(shù)的最優(yōu)值,若為最優(yōu),則X為DBN最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù),否則繼續(xù)更新麻雀位置直到獲得最優(yōu)值或達(dá)到最大迭代次數(shù)。 最后根據(jù)最優(yōu)參數(shù)構(gòu)建最優(yōu)入侵檢測(cè)模型進(jìn)行識(shí)別分類操作。
本次實(shí)驗(yàn)采用UNSW-NB15入侵檢測(cè)數(shù)據(jù)集,該數(shù)據(jù)集中共包含10種類型的數(shù)據(jù), 其中1種為普通類型的數(shù)據(jù),9種為攻擊類型的數(shù)據(jù),每條數(shù)據(jù)共有49種特征。 9種攻擊類型的數(shù)據(jù)分別為模糊攻擊(Fuzzers)、分析攻擊(Analysis)、后門攻擊(Backdoors)、拒絕服務(wù)攻擊(DoS)、漏洞攻擊(Exploits)、 泛型攻擊(Generic)、 偵察攻擊(Reconnaissance)、惡意代碼攻擊(Shellcode)和蠕蟲(chóng)攻擊(Worms)。該數(shù)據(jù)集中共包含2 540 044條數(shù)據(jù),在該數(shù)據(jù)集中已經(jīng)進(jìn)行了訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集的劃分,訓(xùn)練集中共有175 341條數(shù)據(jù),測(cè)試集中共有82 332條數(shù)據(jù)。
實(shí)驗(yàn)使用Python V3.6作為編程語(yǔ)言,并使用Tensorflow框架進(jìn)行實(shí)驗(yàn)。
使用4個(gè)評(píng)價(jià)指標(biāo)對(duì)本次實(shí)驗(yàn)進(jìn)行評(píng)估,分別是P(精度)、AC(準(zhǔn)確率)、R(召回率)和F1(F1-measure)。
在實(shí)驗(yàn)中,根據(jù)預(yù)測(cè)和實(shí)際是否一致可以分為真陽(yáng)性(TP)、真陰性(TN)、假陽(yáng)性(FP)和假陰性(FN)。 真陽(yáng)性為預(yù)測(cè)和實(shí)際都為真;真陰性為預(yù)測(cè)和實(shí)際都為假;假陽(yáng)性為預(yù)測(cè)為真,實(shí)際為假;假陰性為預(yù)測(cè)為假,實(shí)際為真。
精度為正確預(yù)測(cè)為真的占全部預(yù)測(cè)為真的比重,其公式為:
準(zhǔn)確率為所有正確預(yù)測(cè)的占全部預(yù)測(cè)的比重,其公式為:
召回率為正確預(yù)測(cè)為真的占全部實(shí)際為真的比重,其公式為:
F1-measure的公式為:
為使結(jié)果更加客觀, 進(jìn)行多次重復(fù)實(shí)驗(yàn),結(jié)果顯示,多次實(shí)驗(yàn)的差值較小,實(shí)驗(yàn)數(shù)據(jù)較穩(wěn)定。
對(duì)多次實(shí)驗(yàn)結(jié)果求平均值進(jìn)行分析,結(jié)果如圖5所示, 可以看出,SSA-DBN模型的準(zhǔn)確率為92.05%, 召回率為90.62%, 精度為94.23%,F(xiàn)1-measure 值 為92.38% ;DBN 模 型 的 準(zhǔn) 確 率 為90.86%, 召回率為88.65%, 精度為93.31%,F(xiàn)1-measure值為90.91%。SSA-DBN模型對(duì)比未優(yōu)化的DBN模型的4個(gè)評(píng)價(jià)指標(biāo)均有所提高, 說(shuō)明SSADBN模型有效提升了入侵檢測(cè)的效率。
圖5 模型性能評(píng)估結(jié)果
SSA-DBN、RepTree、LR-RFE和HMC 4種模型的準(zhǔn)確率對(duì)比如圖6所示,可以看出,文獻(xiàn)[7]提出的RepTree模型準(zhǔn)確率為88.95%,文獻(xiàn)[8]提出的LR-RFE模型準(zhǔn)確率為88.27%,文獻(xiàn)[9]提出的HMC模型準(zhǔn)確率為80.78%,而SSA-DBN模型的準(zhǔn)確率達(dá)到了92.05%。 說(shuō)明SSA-DBN模型比其他3種模型在UNSW-NB15數(shù)據(jù)集上的準(zhǔn)確率具有明顯優(yōu)勢(shì)。
圖6 4種模型的對(duì)比結(jié)果
DBN的網(wǎng)絡(luò)結(jié)構(gòu)對(duì)其性能起到重要的作用,筆者提出用SSA優(yōu)化DBN,通過(guò)找到麻雀的最優(yōu)適應(yīng)度值確定DBN的網(wǎng)絡(luò)結(jié)構(gòu),使SSA-DBN模型達(dá)到最優(yōu),提高了模型的檢測(cè)性能。 通過(guò)實(shí)驗(yàn)分析,SSA-DBN模型相比傳統(tǒng)DBN模型在各項(xiàng)評(píng)價(jià)指標(biāo)上都有更優(yōu)異的表現(xiàn), 與RepTree、LR-RFE和HMC3種模型相比也具有一定的優(yōu)勢(shì)。 如何解決數(shù)據(jù)集中各種類型數(shù)據(jù)的平衡問(wèn)題, 繼續(xù)提高模型的檢測(cè)性能, 是筆者需要進(jìn)一步研究的方向。