陳 虹,陳建虎,肖成龍,萬廣雪,肖振久
遼寧工程技術(shù)大學(xué) 軟件學(xué)院,遼寧 葫蘆島 125105
隨著信息化及互聯(lián)網(wǎng)的高速發(fā)展,網(wǎng)絡(luò)已遍布生活中的各個角落,伴隨而來的就是網(wǎng)絡(luò)安全問題,其中,如何有效識別網(wǎng)絡(luò)攻擊行為是網(wǎng)絡(luò)安全中的核心問題。入侵檢測(intrusion detection)技術(shù)作為解決該核心問題的解決方案之一,一直以來是網(wǎng)絡(luò)安全人員研究的熱點(diǎn),也取得了很好的檢測效果。但近些年,隨著網(wǎng)絡(luò)信息的爆炸性增長,傳統(tǒng)入侵檢測方法很難在海量數(shù)據(jù)環(huán)境下取得較好的檢測效果,因此,如何在海量數(shù)據(jù)環(huán)境下構(gòu)建一種有效的入侵檢測模型成為亟待解決的重要問題。
目前,基于機(jī)器學(xué)習(xí)(machine learning)的入侵檢測是該領(lǐng)域的一個重要研究課題[1],但將單一的機(jī)器學(xué)習(xí)算法應(yīng)用于入侵檢測分類過程往往難以直接獲得一個有較強(qiáng)泛化能力的分類器。集成學(xué)習(xí)(ensemble learning)的出現(xiàn)很好地解決了這一問題。研究表明,集成學(xué)習(xí)能夠提高分類器的泛化能力[2]。1991年由Freund提出的提升算法(Boosting)[3-4]是最具代表性的集成學(xué)習(xí)算法之一,該算法用于分類問題中首先通過改變訓(xùn)練樣本的權(quán)重學(xué)習(xí)多個弱分類器,然后將這些分類器進(jìn)行線性組合得到強(qiáng)分類器,但該過程要求事先知道弱分類器分類正確率的下限。針對這一缺陷,1995年Freund和Schipare改進(jìn)了Boosting算法,提出AdaBoost算法。該算法將指數(shù)函數(shù)作為損失函數(shù),且不需要任何弱分類器的先驗知識,被廣泛應(yīng)用于各種實際問題中[5-6]。2001年,F(xiàn)riedman在AdaBoost算法的基礎(chǔ)上,對AdaBoost算法進(jìn)行改進(jìn),提出了Gradient Boosting框架算法。該算法的損失函數(shù)除指數(shù)函數(shù)外,還可為平方損失函數(shù)、對數(shù)函數(shù)[7-8]。Gradient Boosting通常將決策樹作為基礎(chǔ)模型,因此往往被稱為梯度提升決策樹(gradient boosting decision tree,GBDT)。GBDT由多棵決策樹累加而成,其令模型損失函數(shù)總是沿著梯度下降方向,通過不斷迭代最終使得殘差趨近于0。該模型每次訓(xùn)練都可得到一棵決策樹,其過程簡單、高效,且對訓(xùn)練數(shù)據(jù)有著很好的解釋性。同時將訓(xùn)練好的基礎(chǔ)決策樹進(jìn)行累加得到的強(qiáng)分類器對數(shù)據(jù)有著穩(wěn)定且高的分類精度。其次相較于傳統(tǒng)的機(jī)器學(xué)習(xí)方法需經(jīng)過繁瑣的調(diào)參、訓(xùn)練、驗證等流程才能得到較強(qiáng)的分類模型,GBDT只需訓(xùn)練若干弱分類器便可,大大降低了計算資源的消耗。因此,GBDT被廣泛應(yīng)用于解決分類及回歸問題[9-10]。但目前很少有文章將GBDT應(yīng)用于入侵檢測領(lǐng)域,本文充分利用GBDT的強(qiáng)泛化能力,對數(shù)據(jù)的可解釋性,模型簡單、高效且對數(shù)據(jù)分類精度高、實用性強(qiáng)等特性,將其應(yīng)用于入侵檢測的分類中。然而,現(xiàn)有網(wǎng)絡(luò)入侵檢測數(shù)據(jù)呈現(xiàn)海量、高維的特性,利用該數(shù)據(jù)訓(xùn)練GBDT分類器時,如果數(shù)據(jù)的輸入特征數(shù)目過大,則會嚴(yán)重影響分類器的性能,造成分類性能較差。同時該數(shù)據(jù)中可能存在一些無意義或有相互依賴關(guān)系的特征,大量此類特征的存在容易引發(fā)“維數(shù)災(zāi)難”且使得模型內(nèi)部結(jié)構(gòu)變得復(fù)雜,計算難度增大,不利于實際應(yīng)用[11]。因此,如何解決這些問題是將GBDT應(yīng)用于入侵檢測分類中的前提。
2006年,Hinton等人提出了一種深度信念網(wǎng)絡(luò)(deep belief networks,DBN)的深度學(xué)習(xí)模型,該模型通過組合低層特征形成更加抽象的高層表示屬性類別,以發(fā)現(xiàn)數(shù)據(jù)的分布式特征表示,其以強(qiáng)大的自動特征提取能力在語音識別、圖像識別等領(lǐng)域取得了巨大的成就[12-15]。通過這些領(lǐng)域的研究發(fā)現(xiàn)DBN在處理海量、高維的復(fù)雜數(shù)據(jù)方面比傳統(tǒng)神經(jīng)網(wǎng)絡(luò)更加優(yōu)異。將DBN應(yīng)用于復(fù)雜入侵檢測數(shù)據(jù)的處理過程具有以下優(yōu)勢:(1)利用DBN強(qiáng)大的特征提取能力,從高維的數(shù)據(jù)中自動提取特征,降低了數(shù)據(jù)各特征之間的依賴關(guān)系,同時實現(xiàn)了對高維數(shù)據(jù)的降維;(2)DBN模型通過建立各層之間的數(shù)據(jù)映射,能夠很好地表征原始特征數(shù)據(jù)與所提取特征數(shù)據(jù)之間復(fù)雜的映射關(guān)系,非常適用于對海量、高維數(shù)據(jù)的處理,具有一定的實用性。目前,將DBN應(yīng)用于入侵檢測領(lǐng)域仍處于探索階段[16],文獻(xiàn)[17]提出一種基于DBN的混合入侵檢測模型,該文將DBN與其他非深度結(jié)構(gòu)的特征學(xué)習(xí)方法進(jìn)行對比,并利用SVM(support vector machine)分類器進(jìn)行分類,從而驗證了DBN較傳統(tǒng)淺層機(jī)器學(xué)習(xí)方法的學(xué)習(xí)效率更高。文獻(xiàn)[18]提出一種DBN-MSVM(deep belief nets based multiclass support vector machine)的入侵檢測模型,該模型在DBN的基礎(chǔ)上利用二叉樹結(jié)構(gòu)構(gòu)造SVM分類器,取得了很好的分類效果。文獻(xiàn)[19]首先利用概率質(zhì)量函數(shù)(probability mass function,PMF)對數(shù)據(jù)進(jìn)行編碼,然后利用DBN進(jìn)行分類,該方法在一定程度上提高了DBN模型的分類精度。文獻(xiàn)[20]對深度學(xué)習(xí)應(yīng)用于網(wǎng)絡(luò)安全的現(xiàn)狀以及發(fā)展趨勢進(jìn)行了詳細(xì)的闡述及展望,對入侵檢測方法的探索有指導(dǎo)意義。
本文將GBDT應(yīng)用于入侵檢測領(lǐng)域,針對GBDT在入侵檢測分類過程中存在的問題,充分利用DBN對海量、高維數(shù)據(jù)處理的優(yōu)勢,提出一種深度信念網(wǎng)絡(luò)下一對一梯度提升樹的多分類器(multi-classifier for one-to-one gradient boosting decision tree under deep belief network,DBN-OGB)入侵檢測方法。該方法首先利用海量入侵?jǐn)?shù)據(jù)經(jīng)預(yù)訓(xùn)練、微調(diào)構(gòu)建出較優(yōu)的深度信念網(wǎng)絡(luò)。然后,利用該網(wǎng)絡(luò)從輸入數(shù)據(jù)中自動提取出低維、具有代表性的特征數(shù)據(jù)。接著,將得到的特征數(shù)據(jù)根據(jù)對應(yīng)的標(biāo)簽每兩類分為一組分類器訓(xùn)練數(shù)據(jù),并利用GBDT對各組數(shù)據(jù)進(jìn)行訓(xùn)練,得到對應(yīng)的二分類分類器模型。最后,通過訓(xùn)練得到的所有二分類器便可對數(shù)據(jù)進(jìn)行分類,分類過程中使用一對一法,即數(shù)據(jù)在所有分類器中出現(xiàn)最多的類別為該數(shù)據(jù)的分類類別。利用NSL-KDD數(shù)據(jù)集[21]進(jìn)行仿真實驗表明,DBN-OGB方法在海量數(shù)據(jù)中有著穩(wěn)定且高的準(zhǔn)確率和檢測率,為海量數(shù)據(jù)下入侵檢測模型的構(gòu)建提出了一種新的方法。
深度信念網(wǎng)絡(luò)是一種由多層受限玻爾茲曼機(jī)(restricted Boltzmann machines,RBM)堆疊構(gòu)成的無監(jiān)督的層級產(chǎn)生式模型(hierarchical generative model)。該模型旨在將學(xué)習(xí)到的信息進(jìn)行逐層傳遞,從而在最高層得到信息的低維特征表示。其模型如圖1所示。
由圖1可知,DBN模型學(xué)習(xí)過程可分為預(yù)訓(xùn)練(pre-training)和微調(diào)(fine-tuning)兩個階段。在預(yù)訓(xùn)練階段,各RBM層獨(dú)立訓(xùn)練,并將低層RBM的輸出作為高一層RBM的輸入,直至最后一層RBM訓(xùn)練結(jié)束。該過程只是保證數(shù)據(jù)各RBM層的訓(xùn)練達(dá)到最優(yōu),為了讓DBN模型達(dá)到全局最優(yōu),在預(yù)訓(xùn)練過程結(jié)束后對模型進(jìn)行微調(diào)。微調(diào)過程通常選用BP(back propagation)算法,采用有監(jiān)督的學(xué)習(xí)方式,利用模型實際輸出與期望輸出之間的誤差進(jìn)行反向傳播,從而對DBN模型參數(shù)進(jìn)行全局調(diào)優(yōu)。
2.1.1 RBM訓(xùn)練過程
受限玻爾茲曼機(jī)(RBM)本質(zhì)上是一種基于能量的、由可視層(visible layer)和隱藏層(hidden layer)中的神經(jīng)元彼此相互連接構(gòu)成的具有兩層結(jié)構(gòu)且無自反饋的生成式隨機(jī)神經(jīng)網(wǎng)絡(luò)。
圖2給出了一個具體的RBM模型,其中可視層、隱藏層分別有n、m個神經(jīng)元,vi、hj分別為可視層和隱藏層的第i個和第j個神經(jīng)元節(jié)點(diǎn)的狀態(tài)值,ai、bj分別為對應(yīng)神經(jīng)元的偏置(bias),w為層間連接權(quán)值,用wij表示可視層第i個神經(jīng)元與隱藏層第j個神經(jīng)元之間的權(quán)值,θ=(w,a,b)表示模型整體參數(shù)。算法1給出了k為1時利用CD-k快速學(xué)習(xí)算法[22]訓(xùn)練RBM模型的過程。其中S表示訓(xùn)練數(shù)據(jù)集,S(t)表示該集合中的第t條數(shù)據(jù),T表示數(shù)據(jù)總量,η為學(xué)習(xí)率,error為訓(xùn)練過程中產(chǎn)生的誤差。
Fig.2 RBM model圖2 RBM模型
算法1RBM訓(xùn)練過程
2.1.2 BP反向傳播
BP神經(jīng)網(wǎng)絡(luò)在訓(xùn)練過程中可根據(jù)訓(xùn)練數(shù)據(jù)輸出結(jié)果與期望結(jié)果之間的誤差進(jìn)行誤差反向傳播,從而對網(wǎng)絡(luò)中各層權(quán)值進(jìn)行更新。根據(jù)這一特性,在DBN模型最高層添加一層實際輸出結(jié)果,這樣便可根據(jù)輸出結(jié)果的誤差值利用BP反向傳播對DBN模型中的參數(shù)進(jìn)行微調(diào)。BP神經(jīng)網(wǎng)絡(luò)通過誤差信號的求解來進(jìn)行誤差反向傳播,假設(shè)BP網(wǎng)絡(luò)中h表示第h個隱層,各隱層按前向輸出分別記為y1,y2,…,yh。d表示期望輸出,o表示實際輸出,j表示前層第j個神經(jīng)元,k表示后層第k個神經(jīng)元,w為各層權(quán)值,c為各層偏置,μ表示學(xué)習(xí)率。則輸出層的誤差信號為:
第h隱層的誤差信號為:
則各層權(quán)值調(diào)整為:
根據(jù)式(3)便可對DBN模型中的參數(shù)進(jìn)行微調(diào)。
GBDT是一種利用Gradient Boosting方法迭代地生成多個弱分類器并整合成一個強(qiáng)分類器的決策樹累加模型,其思想如圖3所示。
Fig.3 GBDT iteration model圖3 GBDT迭代模型
由圖3可知,GBDT模型的訓(xùn)練過程是線性的。假設(shè)輸入向量值x和輸出值y之間存在著未知的數(shù)量關(guān)系,目的是學(xué)習(xí)一個函數(shù)F(x)來預(yù)測數(shù)值結(jié)果y。訓(xùn)練過程中,首先通過訓(xùn)練數(shù)據(jù)F訓(xùn)練第一棵決策樹,得到其預(yù)測值F1(x),然后根據(jù)F1(x)與F的殘差訓(xùn)練第二棵決策樹,得到其預(yù)測值F2(x),以此類推,模型最終結(jié)果是將各棵決策樹進(jìn)行累加,即F(x)=F1(x)+F2(x)+…。
在每個弱分類器的訓(xùn)練過程中,都是對殘差進(jìn)行擬合,即為損失函數(shù)的反向梯度。假設(shè)m表示第m個弱分類器,則殘差擬合后,前一次迭代預(yù)測值Fm-1(x)加上本輪擬合殘差hm(x)便可得到Fm(x)。對于給定損失函數(shù)L(y,F(x)),學(xué)習(xí)率為ρ,共有M個弱分類器的GBDT模型,其訓(xùn)練過程如算法2所示。
算法2GBDT training process
本文提出的深度信念網(wǎng)絡(luò)下一對一梯度提升樹的多分類器入侵檢測方法的詳細(xì)實現(xiàn)過程如圖4所示,包括訓(xùn)練和測試兩個過程,每個過程都通過三個步驟實現(xiàn),實驗過程中利用NSL-KDD數(shù)據(jù)集進(jìn)行仿真。
Fig.4 DBN-OGB method圖4DBN-OGB方法
選取帶有標(biāo)簽的數(shù)據(jù)集(train data)對模型進(jìn)行訓(xùn)練,圖4所示的DBN-OGB方法訓(xùn)練過程如下:
步驟1將訓(xùn)練數(shù)據(jù)集中的特征數(shù)據(jù)和對應(yīng)的標(biāo)簽進(jìn)行分離,并對特征數(shù)據(jù)進(jìn)行標(biāo)準(zhǔn)化(data standardization)和歸一化(data normalization),對標(biāo)簽數(shù)據(jù)進(jìn)行數(shù)據(jù)映射,這樣便可利用映射數(shù)據(jù)對DBN模型進(jìn)行微調(diào)。其詳細(xì)處理過程見4.2節(jié)。
步驟2訓(xùn)練DBN模型(train DBN)分為預(yù)訓(xùn)練和微調(diào)兩個階段。
預(yù)訓(xùn)練過程如下:
(1)初始化訓(xùn)練總次數(shù)為P,p=1為第p次訓(xùn)練,將步驟1中處理后的特征數(shù)據(jù)作為第一層RBM的輸入。
(2)輸入所訓(xùn)練RBM層的訓(xùn)練數(shù)據(jù)。
(3)根據(jù)算法1訓(xùn)練RBM模型。
(4)若error的值小于所規(guī)定的誤差值或p>P,則該RBM層訓(xùn)練結(jié)束,保存該層參數(shù),并將該層的輸出作為下一RBM層的輸入,執(zhí)行(2);否則,執(zhí)行(5)。
(5)根據(jù)算法1訓(xùn)練RBM模型,但本次訓(xùn)練過程中RBM模型的參數(shù)θ由上一次訓(xùn)練得到。
(6)p+=1,執(zhí)行(4)。
微調(diào)過程如下:
(1)在DBN模型的最高層添加一層輸出層,初始化其與最高RBM層之間的權(quán)值。初始化訓(xùn)練總次數(shù)為Q,q=1為第q次訓(xùn)練,輸出誤差bp_error=0。步驟1中處理后的特征數(shù)據(jù)為BP模型的輸入數(shù)據(jù)。假設(shè)該數(shù)據(jù)總數(shù)為T,t=1為第t條數(shù)據(jù)。BP模型初始化參數(shù)為預(yù)訓(xùn)練過程中得到的參數(shù)θ。
(2)輸入第t條數(shù)據(jù),根據(jù)模型參數(shù)θ結(jié)合式(1)計算各層的輸出。
(3)計算輸出層期望輸出與實際輸出的誤差,假設(shè)BP模型中變量定義如2.1.2小節(jié)所示,則bp_error+=sum((dk-ok)2)。
(4)根據(jù)式(3)對模型參數(shù)θ進(jìn)行更新。
(5)若t<T,則t=t+1,執(zhí)行(2);否則執(zhí)行(6)。
(6)若bp_error=bp_error/T小于規(guī)定的誤差或q>Q,則微調(diào)過程結(jié)束,保存模型參數(shù);否則執(zhí)行(7)。
(7)q+=1,t=1,bp_error=0,執(zhí)行(2)。
通過上述兩個過程的訓(xùn)練,便可得到訓(xùn)練好的DBN模型(trained DBN)。由于本文所采用的GBDT模型只能對數(shù)據(jù)進(jìn)行二分類,因此在該模型中利用一對一法進(jìn)行分類器的訓(xùn)練。一對一法訓(xùn)練分類器指對多個類別的數(shù)據(jù)每兩類分為一組進(jìn)行分類器的訓(xùn)練,即假設(shè)有k類數(shù)據(jù),則需訓(xùn)練k(k-1)/2個分類器。因此,將訓(xùn)練數(shù)據(jù)通過DBN模型逐層傳遞,直至最高RBM層輸出其對應(yīng)的特征數(shù)據(jù)后,利用各條特征數(shù)據(jù)對應(yīng)的標(biāo)簽將數(shù)據(jù)每兩類分為一組分類器訓(xùn)練數(shù)據(jù)(feature data classification),其分類結(jié)果分別為D1,D2,…,Dn。
步驟3利用步驟2中得到的各組數(shù)據(jù)訓(xùn)練分類器(classifier)的過程如下:
(1)初始化弱分類器的個數(shù)M,學(xué)習(xí)率ρ,i=1,采用L(y,F(x))=ln(1+e(-2yF(x))),其為負(fù)二項對數(shù)似然函數(shù)。
(2)輸入第i份訓(xùn)練數(shù)據(jù)Di,并將Di中的兩種數(shù)據(jù)類別標(biāo)簽分別映射為-1和1。
(3)根據(jù)算法2訓(xùn)練強(qiáng)分類器Ci。
(4)i+=1,執(zhí)行(2),直至所有的分類器訓(xùn)練數(shù)據(jù)訓(xùn)練完畢,執(zhí)行(5)。
(5)保存各個強(qiáng)分類器,模型訓(xùn)練結(jié)束。
利用訓(xùn)練好的分類器對帶有標(biāo)簽的數(shù)據(jù)(test data)進(jìn)行測試,圖4所示DBN-OGB方法測試過程如下:
步驟1同訓(xùn)練過程中的步驟1,但該過程中對數(shù)據(jù)標(biāo)簽不做處理。測試過程中的數(shù)據(jù)標(biāo)簽只是為了與測試結(jié)果進(jìn)行比較,從而驗證入侵檢測方法的性能。
步驟2將步驟1中處理過的特征數(shù)據(jù)輸入訓(xùn)練好的DBN模型(trained DBN)中,經(jīng)最高RBM層輸出優(yōu)化處理后的測試數(shù)據(jù)。
步驟3將優(yōu)化后的各條測試數(shù)據(jù)分別輸入到訓(xùn)練好的各個二分類器中,將分類結(jié)果(-1,1)映射為對應(yīng)二分類器的數(shù)據(jù)標(biāo)簽,對該條測試數(shù)據(jù)的標(biāo)簽進(jìn)行投票,票數(shù)最多的標(biāo)簽便為該條數(shù)據(jù)的分類結(jié)果,待所有數(shù)據(jù)測試完畢,輸出測試結(jié)果(test result)。
本文采用NSL-KDD數(shù)據(jù)集中的訓(xùn)練數(shù)據(jù)(Train)和20%的訓(xùn)練數(shù)據(jù)(20Train)作為仿真實驗數(shù)據(jù)。NSLKDD是在KDD99數(shù)據(jù)集的基礎(chǔ)上去除冗余、不合理的數(shù)據(jù)所得到的數(shù)據(jù)集。該數(shù)據(jù)集能夠很好地分析入侵檢測方法的性能,且對于不同的入侵檢測方法其評價結(jié)果是一致的,具有可比性。所選數(shù)據(jù)集中各種不同攻擊的數(shù)據(jù)分布如圖5所示。
Fig.5 Attack data distribution圖5 攻擊數(shù)據(jù)分布
NSL-KDD數(shù)據(jù)集中,數(shù)據(jù)分為前41維的特征數(shù)據(jù)和第42維的數(shù)據(jù)標(biāo)簽(label)。特征數(shù)據(jù)中包含38個數(shù)值(numeric)類型特征和3個字符(nominal)類型特征,而在實際應(yīng)用過程中往往需要統(tǒng)一的數(shù)據(jù)類型,其處理過程如下:
(1)標(biāo)簽分離。將數(shù)據(jù)中的特征數(shù)據(jù)和其對應(yīng)的標(biāo)簽進(jìn)行分離,對于訓(xùn)練數(shù)據(jù),需對標(biāo)簽進(jìn)行數(shù)值映射。本文采用五維整數(shù)進(jìn)行映射,過程如下:將Normal映射為1,0,0,0,0;將Probe映射為0,1,0,0,0;將Dos映射為0,0,1,0,0;將R2L映射為0,0,0,1,0;將U2R映射為0,0,0,0,1。
(2)標(biāo)準(zhǔn)化。將特征數(shù)據(jù)中的3類字符類型(protocol_type、service、flag)標(biāo)準(zhǔn)化為數(shù)值類型,過程如下:protocol_type類型中3種字符tcp、udp、icmp對應(yīng)的數(shù)值編碼分別為1,0,0、0,1,0、0,0,1;同理,service類型中有70個不同的字符值,其對應(yīng)的數(shù)值分別為從1到70對應(yīng)位置取1,其余位置取0的二值編碼;flag類型中有11個不同的字符值,其對應(yīng)的數(shù)值分別為從1到11對應(yīng)位置取1,其余位置取0的二值編碼。特征數(shù)據(jù)經(jīng)標(biāo)準(zhǔn)化后為122維的數(shù)據(jù)。
在入侵檢測領(lǐng)域,準(zhǔn)確率(accuracy,AC)、檢測率(detection rate,DR)和誤報率(false alarm,F(xiàn)A)是評價入侵檢測模型好壞的幾個重要指標(biāo)。準(zhǔn)確率用于評價模型整體的識別能力;檢測率用于評價模型對攻擊數(shù)據(jù)的識別能力;誤報率用于評價模型對正常數(shù)據(jù)的識別能力。本文所采用的實驗環(huán)境及評價標(biāo)準(zhǔn)如下。
(1)實驗環(huán)境
操作系統(tǒng),Windows 10;處理器,Intel?CoreTMi5-4200M CPU@2.50 GHz;內(nèi)存(RAM),4.00 GB;系統(tǒng)類型,64位操作系統(tǒng);編程環(huán)境,python3.5。
(2)評價標(biāo)準(zhǔn)
準(zhǔn)確率、檢測率及誤報率的定義如下:
經(jīng)過多次實驗,結(jié)合參考文獻(xiàn)[18],選取一組較優(yōu)的DBN-OGB方法參數(shù),詳見表1。NSL-KDD數(shù)據(jù)集經(jīng)處理后輸入數(shù)據(jù)的維數(shù)為122維,即DBN模型的輸入層神經(jīng)元個數(shù)為122,選取3層RBM結(jié)構(gòu),其神經(jīng)元個數(shù)依次為90、60、30,模型輸出層神經(jīng)元個數(shù)與標(biāo)簽映射數(shù)值維數(shù)相同為5。RBM訓(xùn)練過程中將訓(xùn)練數(shù)據(jù)每50條作為一個批次進(jìn)行訓(xùn)練,所有批次數(shù)據(jù)訓(xùn)練完畢記為1次預(yù)訓(xùn)練,共訓(xùn)練300次。微調(diào)階段,訓(xùn)練迭代次數(shù)為100,RBM和BP訓(xùn)練過程的終止誤差值都為0.01。訓(xùn)練GBDT分類器過程中,弱分類器的個數(shù)為100。
4.5.1 DBN-OGB方法驗證分析
為驗證DBN-OGB方法的有效性,本文采用十折交叉法進(jìn)行驗證,首先將20%的訓(xùn)練數(shù)據(jù)(20%Train)隨機(jī)分成10份,每次將其中1份作為測試數(shù)據(jù),剩下9份作為訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,這樣便得到10份驗證結(jié)果,見表2。
Table 1 Parameter settings表1 參數(shù)設(shè)置
Table 2 10-fold cross-validation表2 十折交叉驗證
由表2可知,除第1、5組數(shù)據(jù)的檢測率低于99%外,其余各組數(shù)據(jù)的準(zhǔn)確率、檢測率都高于99%。這10組數(shù)據(jù)的平均準(zhǔn)確率、平均檢測率分別為99.26%和99.21%,說明DBN-OGB方法具有穩(wěn)定的檢測性能,且其平均誤報率為0.72%。這些數(shù)據(jù)說明該方法對于入侵?jǐn)?shù)據(jù)的檢測是有效的。
4.5.2 整體對比
為進(jìn)一步分析DBN-OGB方法,本文從Train數(shù)據(jù)集中隨機(jī)抽取如表3所示的5組實驗數(shù)據(jù)對該方法進(jìn)行驗證,同時與DBN-MSVM方法、直接使用DBN方法及GBDT方法進(jìn)行對比,具體實驗結(jié)果如圖6~圖8所示,這5組數(shù)據(jù)的平均準(zhǔn)確率、平均檢測率、平均誤報率見表4。
由表4中的數(shù)據(jù)可知,DBN-OGB方法整體上較對比方法中效果最好的DBN-MSVM方法的準(zhǔn)確率和檢測率分別提升了0.56%和1.03%,且該方法的性能明顯優(yōu)于直接使用DBN和GBDT方法。由圖6、圖7可知,對于不同的訓(xùn)練和測試數(shù)據(jù),DBN-OGB方法的準(zhǔn)確率和檢測率較高且趨于穩(wěn)定,其余三種方法的準(zhǔn)確率和檢測率都有一定的波動性,特別是DBN方法的準(zhǔn)確率和GBDT方法的檢測率波動較大。對于各組數(shù)據(jù)的誤報率,采用DBN方法得到的實驗數(shù)據(jù)分別為15.87%、16.69%、17.75%、9.67%和13.48%,該方法的誤報率高,結(jié)合圖8可知DBN-OGB方法的誤報率波動較小,且優(yōu)于DBN-MSVM方法。對以上數(shù)據(jù)分析說明本文所提出的DBN-OGB是一種穩(wěn)定且性能優(yōu)異的入侵檢測方法。
Table 3 Experimental data表3 實驗數(shù)據(jù)
Fig.6 Accuracy圖6 準(zhǔn)確率
Fig.7 Detection rate圖7 檢測率
Fig.8 False alarm圖8 誤報率
Table 4 Average results表4 平均結(jié)果 %
4.5.3 性能對比
為驗證DBN-OGB方法對不同攻擊類型的識別能力,本文從Train數(shù)據(jù)集中隨機(jī)抽取了兩份數(shù)據(jù)集,分別用一份訓(xùn)練,一份測試,其實驗結(jié)果與對比實驗結(jié)果見表5。
由表5可知,DBN-OGB方法和DBN-MSVM方法對于不同攻擊類型的檢測率基本持平,但DBNOGB對于U2R攻擊類型的識別能力優(yōu)于DBNMSVM。GBDT方法僅對Normal類型和Dos攻擊類型的識別能力較強(qiáng),但對于數(shù)量較少的U2R攻擊類型的識別能力較差。對DBN方法而言,不同的訓(xùn)練數(shù)據(jù)對于不同類型攻擊的檢測率差別較大,如對于第一份數(shù)據(jù),其對Normal、R2L類型的檢測率分別為97.48%、58.31%,但對于第二份數(shù)據(jù),其對應(yīng)的檢測率又為89.11%和100.00%。綜上分析可知,本文所提出的DBN-OGB方法對不同攻擊類型的數(shù)據(jù)也具有穩(wěn)定且高的識別能力。
Table 5 Performance comparison表5 性能對比
針對傳統(tǒng)智能化入侵檢測方法對海量入侵檢測數(shù)據(jù)檢測性能較差的問題,本文充分利用GBDT的強(qiáng)泛化能力,對數(shù)據(jù)的分類精度高且穩(wěn)定、實用性強(qiáng)等特性將其應(yīng)用于入侵檢測的分類過程。但由于目前入侵檢測數(shù)據(jù)呈現(xiàn)高維、復(fù)雜的特性,直接利用GBDT進(jìn)行分類的效果不理想。進(jìn)而本文利用DBN對海量、高維復(fù)雜數(shù)據(jù)優(yōu)異的處理能力,從原始數(shù)據(jù)中自動提取特征數(shù)據(jù)訓(xùn)練對應(yīng)的GBDT分類器,從而提出了一種DBN-OGB入侵檢測方法,該方法有一定的實用價值。采用NSL-KDD數(shù)據(jù)集的驗證結(jié)果顯示DBN-OGB方法的平均準(zhǔn)確率和檢測率都高于99.00%,說明該方法有著穩(wěn)定且優(yōu)異的檢測性能,其很好地解決了傳統(tǒng)智能化入侵檢測方法檢測性能較差的問題。同時,在對比實驗中,該方法的準(zhǔn)確率和檢測率相較于其他方法都有較為明顯的提升,也說明DBN-OGB是一種有效、可行的入侵檢測方法。雖然該方法具有穩(wěn)定且較強(qiáng)的檢測性能,但其誤報率也較高,實驗中其平均值達(dá)到0.65%,因此,如何在保證現(xiàn)有檢測性能的基礎(chǔ)上,降低該方法的誤報率是需進(jìn)一步解決的問題。