張克君 鮮 敏
1(北京電子科技學院計算機科學與技術(shù)系 北京 100070)2(西安電子科技大學計算機學院 陜西 西安 710071)
隨著Internet技術(shù)的不斷發(fā)展和互聯(lián)網(wǎng)用戶的飛速增加,網(wǎng)絡(luò)中的安全問題也越來越多樣化。入侵檢測系統(tǒng)[1]IDS(Intrusion Detection Systems)的目標是識別異常的訪問或攻擊以保護內(nèi)部網(wǎng)絡(luò)[2]。它查找網(wǎng)絡(luò)流量中已知或潛在的惡意活動, 并且一旦檢測到可疑活動,就會警報。面對大規(guī)模的網(wǎng)絡(luò)數(shù)據(jù)流量和特征信息,如何選擇有效的特征作為入侵評判的標準,是入侵檢測領(lǐng)域的一大挑戰(zhàn)性難題[3]。
近些年來,研究者們在IDS研究中提出了許多對入侵數(shù)據(jù)識別的方法:基于簽名的IDS[4],基于蜜罐的IDS[5],基于貝葉斯、決策樹和模糊邏輯模型等IDS,還有基于機器學習的IDS。入侵檢測領(lǐng)域中常用到的機器學習方法有:支持向量機[6]SVM(Support Vec-tor Machine)、遺傳算法GA(Genetic Algorithm)和人工神經(jīng)網(wǎng)絡(luò)[8]ANN(Artificial Neural Network)等。雖然將這些方法應(yīng)用到入侵檢測系統(tǒng)中已經(jīng)取得了一定的效果,但還是有一些問題。例如:特征提取不適當、檢測率和檢測精度不高、算法的復雜度高。
最近幾年,深度學習技術(shù)研究成為了一個熱門話題,被廣泛應(yīng)用到圖像識別、語音識別、垃圾郵件過濾等多個領(lǐng)域,并取得優(yōu)異的成果。針對入侵檢測當前的狀況和深度學習優(yōu)秀的特征能力,本文提出了一種基于DBN[9]和偏二叉樹PBT(Partial Binary Tree)的對支持向量機[10]多類分類算法[11]相結(jié)合的異常入侵檢測模型DBN-PBT-TSVM。其中DBN被用作特征縮減的方法,而 TSVM作為多類分類器。我們通過幾組基于KDDCUP'99數(shù)據(jù)集的實驗對DBN-PBT-TSVM模型的有效性進行評估,發(fā)現(xiàn)DBN-PBT-TSVM方法的性能比傳統(tǒng)入侵檢測方法的性能好。
深度信念網(wǎng)絡(luò)(DBN)是由Geoffrey Hinton 于 2006 年提出的一種深度學習模型,被廣泛應(yīng)用于物體識別、語音識別等領(lǐng)域。DBN是由許多層的受限制波爾茲曼機器[12]RBM(Restricted Boltzmann Machine)和一層反向傳播[13]BP(Back Propagation)網(wǎng)絡(luò)構(gòu)成的神經(jīng)網(wǎng)絡(luò),如圖1所示。
圖1 DBN網(wǎng)絡(luò)模型的結(jié)構(gòu)圖
1.1 受限玻爾茲曼機
受限玻爾茲曼機是玻爾茲曼機BM(Boltzmann Machine)的一種特殊形式,是由Hinton和Sejnowski于1986年提出的一種生成式隨機神經(jīng)網(wǎng)絡(luò)GSNN(Generative Stochastic Neural Network),其兩層分別是可見層單元v(visible unit)和一些隱藏層單元h(hidden unit),可見變量和隱藏變量都是二元變量,亦即其狀態(tài)取{0,1}。與傳統(tǒng)的BM相比,RBM的網(wǎng)絡(luò)結(jié)構(gòu)是一個二部圖,只有可見層單元和隱藏層單元之間存在邊連接,可見層內(nèi)部沒有邊連接,隱藏層內(nèi)部也沒有邊連接。具體如圖2所示。
圖2 RBM網(wǎng)絡(luò)的結(jié)構(gòu)圖
能量函數(shù)E(v,h)可以:
(1)
式中:vi是可見層單元,hj是隱藏層單元,Wij是vi和hj之間的連接權(quán)重,bi是vi的偏差,cj是hj的偏差。
RBM是一個生成模型,因此,原則上采用對輸入樣本的對數(shù)似然度進行隨機梯度下降來獲取其參數(shù)。但是,采用這種方式時,RBM的訓練效率并不高,特別是樣本集的特征維度比較高時。經(jīng)實踐證明,采用對比散度準則可以提高訓練效率。
1.2 BP神經(jīng)網(wǎng)絡(luò)
BP算法是由以Rumelhart為首的科學研究團隊于1986年提出的,是目前最常用、最易理解的神經(jīng)網(wǎng)絡(luò)訓練算法。BP神經(jīng)網(wǎng)絡(luò)是一種采用誤差反向傳播算法EBP(Error Back-propagation Algorithm)的多層感知器MLP(Multi Layer Perceptron)。該網(wǎng)絡(luò)模型通常除了輸入層和輸出層之外,還至少包含一個隱藏層,不同層的神經(jīng)元之間是全連接,而在同一層內(nèi)部的神經(jīng)元之間是無連接。BP神經(jīng)網(wǎng)絡(luò)的拓撲結(jié)構(gòu)如圖3所示。
圖3 BP網(wǎng)絡(luò)的結(jié)構(gòu)圖
BP算法主要是通過學習過程得到其網(wǎng)絡(luò)模型結(jié)構(gòu)。學習過程主要由兩個子過程組成:
(1) 信號的正向傳播子過程:將原始信號從輸入層輸入,經(jīng)過各個隱藏層依次處理,最后傳給輸出層,如果輸出層產(chǎn)生的輸出值與預(yù)期的輸出值不符,就轉(zhuǎn)到誤差的反向傳播子過程。
(2) 誤差的反向傳播子過程:將誤差信號從輸出層開始,經(jīng)過各個隱藏層逐層向后傳播,網(wǎng)絡(luò)模型的權(quán)值也會根據(jù)誤差反饋信息進行修正,通過權(quán)值的不斷調(diào)整,可以使網(wǎng)絡(luò)模型的實際的輸出信號值更加接近預(yù)期的輸出信號值。
在信號的正向傳播子過程中,網(wǎng)絡(luò)中的每個節(jié)點的都有一個非線性的激活函數(shù),通常是sigmoid函數(shù):
(2)
在誤差的反向傳播子過程中,主要是通過梯度下降算法,反復修正網(wǎng)絡(luò)中各個神經(jīng)元的權(quán)值和閾值,以達到誤差函數(shù)值最小的目標。權(quán)值修正為:
(3)
式中:η為學習速率。
2.1 模型總體架構(gòu)設(shè)計
本文的入侵檢測模型是一種使用基于RBM的DBN的異常入侵檢測模型DBN-PBT-TSVM,是DBN和PBT-TSVM相結(jié)合的混合模型,該模型的總體框架如圖4所示。
圖4 DBN-PBT-TSVM入侵檢測模型
包含三個步驟:
(1) 數(shù)據(jù)預(yù)處理。通過特征映射將KDDCUP’99數(shù)據(jù)集中的字符型數(shù)據(jù)數(shù)值化,再對全部數(shù)據(jù)進行歸一化處理,得到標準化數(shù)據(jù)集。
(2) DBN降低維度。對經(jīng)過預(yù)處理后的標準化數(shù)據(jù)集,利用DBN 模型進行預(yù)訓練和權(quán)重微調(diào),實現(xiàn)對標準化數(shù)據(jù)特征的最優(yōu)提取,得到降低維度后的特征數(shù)據(jù)。
(3) TSVM多類分類器。首先用PBT結(jié)構(gòu)將一個5類分類問題轉(zhuǎn)化成4個兩類分類問題,然后利用TSVM來解決每個兩類分類問題。采用這種方式對入侵檢測數(shù)據(jù)的5種入侵數(shù)據(jù)進行識別分類。
2.2 DBN降低維度算法
根據(jù)DBN網(wǎng)絡(luò)結(jié)構(gòu)可知,DBN的訓練過程主要包括兩個階段:
1) 預(yù)訓練階段:利用貪心的逐層訓練算法對各個層的RBM進行訓練,得到網(wǎng)絡(luò)模型的參數(shù)。具體算法如算法1所示。
算法1預(yù)訓練算法
輸入:訓練數(shù)據(jù)集,迭代次數(shù)N
輸出:網(wǎng)絡(luò)模型參數(shù)θ={w,b,c}
Step1令迭代次數(shù)t=1,RBM的網(wǎng)絡(luò)參數(shù)wij=bi=cj=0。
Step2將訓練數(shù)據(jù)集中的每一條記錄輸入,并將其作為第一個RBM的可視層變量v0。
Step3在RBM網(wǎng)絡(luò),每一個可視層單元vi的激活概率可通過下式計算得到:
(4)
Step4同理可得,RBM網(wǎng)絡(luò)中的每一個隱藏層單元hj的激活概率為:
(5)
Step5因為利用最大似然率估計來求解參數(shù)不易收斂,且計算比較復雜,所以用對比散度來對參數(shù)進行調(diào)整,具體規(guī)則如下:
(6)
(7)
Δcj=ε(p(hj|v(0))-p(hj|v(k)))
(8)
式中:ε為訓練RBM的學習率。
Step6如果迭代次數(shù)t 2) 微調(diào)階段:采用有監(jiān)督的方法對最后一層的BP網(wǎng)絡(luò)進行訓練,以RBM 的輸出結(jié)果作為BP網(wǎng)絡(luò)的輸入,將實際輸出與預(yù)期輸出的誤差逐層向后傳播,微調(diào)DBN的全部網(wǎng)絡(luò)模型參數(shù),得到最終的網(wǎng)絡(luò)模型參數(shù)。具體算法如算法2所示。 算法2權(quán)重微調(diào)算法 輸入:通過算法1得到的DBN網(wǎng)絡(luò)模型參數(shù)wij,bi,cj,迭代次數(shù)k 輸出:調(diào)整后較優(yōu)的網(wǎng)絡(luò)模型參數(shù)θ={w,b,c} Step1令迭代次數(shù)t=1,隨機初始化BP網(wǎng)絡(luò)參數(shù)。 Step2通過前向計算,重構(gòu)后得到的新特征和原始特征之間的誤差為: (9) 式中:x為原始的輸入特征,y為重構(gòu)后得到的新特征。 Step3通過反向傳播,主要是利用梯度下降算法,反復修正網(wǎng)絡(luò)中各個神經(jīng)元的權(quán)值和閾值,以達到誤差函數(shù)值最小的目標。權(quán)值修正規(guī)則為: (10) Step4如果迭代次數(shù)t 2.3 多類分類器PBT-TSVM TSVM是由Jayadeva等提出,將傳統(tǒng)SVM中的一個規(guī)劃較大的二次優(yōu)化問題QPP(Quadratic Programming Problem)轉(zhuǎn)化為兩個規(guī)劃較小的QPP,通過兩個非平行超平面來進行分類[14]。 PBT-TSVM是利用偏二叉樹(PBT)結(jié)構(gòu)結(jié)合對TSVM所構(gòu)成的一種新的多類分類算法。如圖5所示,將PBT-TSVM應(yīng)用到對入侵數(shù)據(jù)類別識別的具體過程是:用PBT結(jié)構(gòu)把一個5類分類問題轉(zhuǎn)化成4個兩類分類問題,然后采用TSVM解決每個兩類分類問題。 圖5 PBT-TSVM的結(jié)構(gòu)圖 具體算法主要分為兩個階段: 1) 訓練過程:訓練分類器TSVM1時,將第一類入侵樣本Nomal標記為+1,其他的2,3,4,5類入侵樣本均標記為-1,進行訓練,獲得兩個非平行超平面T1和F1;訓練分類器TSVMi時,將第i類入侵樣本標記為+1,其他的i,i+1,…,5類入侵樣本均標記為-1,進行訓練,獲得兩個非平行超平面Ti和Fi。不斷進行下去,直至獲得分類器TSVM4,即獲得了一個PBT-TSVM 5類分類器。 2) 測試過程:對一個新樣本x0進行分類的過程,即遍歷上述訓練所得的PBT的過程,具體過程如下: (1) 令i=1; (2) 若i<5,則轉(zhuǎn)到(3);否則,樣本x0被判定第5類U2L,測試結(jié)束; (3) 計算樣本x0到分類器TSVMi的兩個超平面Ti和Fi的距離d1和d2; (4) 若d1 3.1 實驗數(shù)據(jù)集預(yù)處理 KDDCUP’99數(shù)據(jù)集是由Lincoln Laboratory對美國空軍局域網(wǎng)進行模擬,而采集來的9個星期的網(wǎng)絡(luò)連接數(shù)據(jù),它是目前網(wǎng)絡(luò)入侵檢測領(lǐng)域使用比較普遍的實驗數(shù)據(jù)集。本文選擇KDDCUP’99中的10%作為實驗數(shù)據(jù)樣本集,總共包括494 021個訓練樣本和311 029個測試樣本,其具體數(shù)據(jù)樣本的類型分布情況如表1所示。 表1 實驗數(shù)據(jù)的類型分布情況表 KDDCUP‘99數(shù)據(jù)集中的每個數(shù)據(jù)包含41個特征屬性,其中有38個數(shù)字型特征屬性和字符型特征屬性。為了更好地分類,需要對實驗數(shù)據(jù)集做以下預(yù)處理工作: (1) 對字符型特征屬性做映射處理 例如特征屬性protocol_type有3種取值:tcp、udp、icmp,將其字符分別編碼為二進制向量(1,0,0)、(0,1,0)和(0,0,1)。同樣,特征屬性service的70個字符取值和flag的11種字符取值都可以建立符號向量與相應(yīng)的特征向量進行一一映射的關(guān)系。通過這種方式映射之后,41維特征屬性變換為122維特征屬性。 (2) 歸一化處理 為了避免各個特征屬性的量綱對實驗造成影響,必須對實驗數(shù)據(jù)進行統(tǒng)一量綱,做歸一化處理。采用式(11)可以把每個特征屬性歸一化到[0,1]范圍內(nèi)。 (11) 式中:x是原始特征值,MIN是該特征的最小值,MAX是該特征的最大值。 3.2 評價指標 本文使用以下指標來評價實驗結(jié)果,即準確率AC(Accuracy),誤報率FA(False Alarm),CPU消耗時間。 定義如下: (12) (13) 3.3 實驗結(jié)果分析 在前面講到,KDDCUP’99數(shù)據(jù)集經(jīng)過數(shù)據(jù)預(yù)處理后特征屬性變成了122維,因此輸入層節(jié)點數(shù)為122。文獻[15]已經(jīng)詳細討論了DBN網(wǎng)絡(luò)模型中的網(wǎng)絡(luò)深度對入侵檢測的效果的影響。在本文設(shè)計的DBN-BT-TSVM模型中,DBN采用5層的RBM網(wǎng)絡(luò)結(jié)構(gòu),具體為122-110-90-60-30-10。其中,預(yù)訓練迭代進行50次,權(quán)值微調(diào)迭代進行300次。實驗使用開源工具LIBSVM,因為徑向基函數(shù)RBF(Radical Basis Function)比較適用于線性不可分的情況,因此,本文選擇RBF作為TSVM分類器的核函數(shù)。分別從訓練集和測試集中依次隨機抽取10%、20%、30%、40%進行訓練和測試。 3.3.1 與其他分類方法的性能對比分析 將DBN-PBT-TSVM模型與DBN-PBT-SVM、PBT-TSVM和PBT-SVM等分類模型進行性能對比,通過對不同訓練數(shù)據(jù)集訓練這些入侵檢測模型,之后再用不同測試數(shù)據(jù)集進行識別測試,得到的準確率和誤報率的均值如表2所示。 表2 不同入侵檢測算法的性能比較 % 由表2可以看到,DBN-PBT-TSVM算法的分類檢測準確率比DBN-PBT-SVM、PBT-TSVM和PBT-SVM等算法有所提高,且還表現(xiàn)了和其他算法相錯不大的誤報率。由于U2L的實驗樣本較少,導致U2L和R2L的準確率較低,但這并不影響對整體入侵數(shù)據(jù)的總準確率。 3.3.2 與其他分類方法的檢測時間對比分析 將DBN-PBT-TWSVM模型與DBN-PBT-SVM、PBT-TWSVM和PBT-SVM等分類方法對不同數(shù)據(jù)集的訓練時間和檢測時間進行對比,得到實驗結(jié)果如圖6和圖7所示。 圖6 不同入侵檢測模型的訓練時間比較 圖7 不同入侵檢測模型的檢測時間比較 由圖6和圖7可以看出,DBN-PBT-TWSVM模型在訓練速度和檢測速度方面也均優(yōu)于其他入侵檢測算法。 本文對入侵檢測和深度學習方法進行了深入的分析與研究,提出一種新的基于DBN的混合多分類模型,并將其應(yīng)用到IDS中。該模型首先利用DBN深度學習方法對預(yù)處理后的數(shù)據(jù)集進行特征降維,之后再結(jié)合對TSVM和PBT構(gòu)建PBT-TSVM多類分類器,實現(xiàn)對網(wǎng)絡(luò)入侵行為的識別。在IDS仿真實驗中,選擇KDDCUP'99數(shù)據(jù)集中的10%作為實驗數(shù)據(jù)。結(jié)果表明,與其他IDS方法相比,DBN-PBT-TSVM的檢測性能明顯比較優(yōu)秀,在保證了較高的檢測精度的同時,檢測速度也有了明顯提高,是一種高效、可行的IDS方法。因為在實驗數(shù)據(jù)集中U2L樣本比較少,導致對其檢測的準確率有所降低,所以在后續(xù)的研究中,將針對這一問題進行研究。 參 考 文 獻 [1] Buczak A L,Guven E.A survey of data mining and machine learning methods for cyber security intrusion detection[J].IEEE Communications Surveys & Tutorials,2016,18(2):1153-1176. [2] Singh J,Nene M J.A survey on machine learning techniques for intrusion detection systems[J].International Journal of Advanced Research in Computer and Communication Engineering,2013,2(11):4349-4355. [3] 楊昆朋.基于深度學習的入侵檢測[D].北京交通大學,2015. [4] Wu H,Schwab S,Peckham R L.Signature based network intrusion detection system and method:U.S.Patent 7,424,744[P].2008-9-9. [5] Tsai C L,Tseng C C,Han C C.Intrusive behavior analysis based on honey pot tracking and ant algorithm analysis[C]//2009 International Carnahan Conference on Security Technology.IEEE,2009:248-252. [6] Chen W H,Hsu S H,Shen H P.Application of SVM and ANN for intrusion detection[J].Computers & Operations Research,2005,32(10):2617-2634. [7] Chakrabarty B,Chanda O,Islam M S.Anomaly based Intrusion Detection System using Genetic Algorithm and K-Centroid Clustering[J].International Journal of Computer Applications,2017,163(11):13-17. [8] Saied A,Overill R E,Radzik T.Detection of known and unknown DDoS attacks using Artificial Neural Networks[J].Neurocomputing,2016,172(C):385-393. [9] Hinton G E,Osindero S,Teh Y W.A fast learning algorithm for deep belief nets[J].Neural computation,2006,18(7):1527-1554. [10] 聶盼盼,臧洌,劉雷雷.基于對支持向量機的多類分類算法在入侵檢測中的應(yīng)用[J].計算機應(yīng)用,2013,33(2):426-429. [11] 謝娟英,張兵權(quán),汪萬紫.基于雙支持向量機的偏二叉樹多類分類算法[J].南京大學學報(自然科學版),2011,47(4):354-363. [12] Marlin B,Swersky K,Chen B,et al.Inductive principles for restricted Boltzmann machine learning[C]//Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics.2010:509-516. [13] Cilimkovic M.Neural networks and back propagation algorithm[D].Institute of Technology Blanchardstown,Blanchardstown Road North Dublin,2015. [14] Jayadeva,Khemchandani R, Chandra S. Twin support vector machines for pattern classification[J]. IEEE Transactions on pattern analysis and machine intelligence, 2007,29(5):905-910. [15] 高妮,高嶺,賀毅岳.面向入侵檢測系統(tǒng)的DeepBeliefNets模型[J].系統(tǒng)工程與電子技術(shù),2016,38(9):2201-2207.3 實驗與結(jié)果分析
4 結(jié) 語