馬 樂,趙 銳,闞 媛
(1.軍事交通學(xué)院 研究生管理大隊(duì),天津300161;2.軍事交通學(xué)院 基礎(chǔ)部,天津300161)
隨著計(jì)算機(jī)技術(shù)、網(wǎng)絡(luò)通信以及信息產(chǎn)業(yè)的 高速發(fā)展,網(wǎng)絡(luò)入侵攻擊的事件頻繁發(fā)生,計(jì)算機(jī)網(wǎng)絡(luò)安全形勢日益嚴(yán)峻,迫切需要采取一定的技術(shù)手段來保證網(wǎng)絡(luò)安全。近年來發(fā)展起來的一種動(dòng)態(tài)監(jiān)測、預(yù)防或抵御系統(tǒng)入侵行為的安全機(jī)制——入侵檢測技術(shù)是維護(hù)網(wǎng)絡(luò)安全的主要手段之一。它是一種主動(dòng)防御的安全技術(shù),能夠?qū)崟r(shí)地保護(hù)內(nèi)、外網(wǎng)攻擊和誤操作,使得網(wǎng)絡(luò)系統(tǒng)受到破壞之前能夠及時(shí)得到響應(yīng)和處理。目前,入侵檢測技術(shù)有許多模型和方法,模糊系統(tǒng)、神經(jīng)網(wǎng)絡(luò)等技術(shù)的引入使入侵檢測的智能型研究成為熱點(diǎn)。
模糊神經(jīng)網(wǎng)絡(luò)(fuzzy neural network,F(xiàn)NN)融合了神經(jīng)網(wǎng)絡(luò)和模糊邏輯特點(diǎn),從提高神經(jīng)網(wǎng)絡(luò)的啟發(fā)性、透明性和魯棒性出發(fā),將模糊化概念與模糊推理規(guī)則引入神經(jīng)網(wǎng)絡(luò)的神經(jīng)元、連接權(quán)和網(wǎng)絡(luò)學(xué)習(xí)中。模糊邏輯本身是人工智能領(lǐng)域中的一個(gè)重要分支,以模糊邏輯為基礎(chǔ),針對人類思維中模糊性的特點(diǎn),模仿人的模糊信息識別,解決常規(guī)方法難以處理的模糊信息識別問題,成為了人工智能鄰域中目標(biāo)識別的方法之一。神經(jīng)網(wǎng)絡(luò)是以人腦神經(jīng)物理結(jié)構(gòu)為依據(jù),在知識儲備和自我學(xué)習(xí)中發(fā)展,從而使人工智能的自組織和并行處理功能得到提高。為了更好地發(fā)揮模糊系統(tǒng)和神經(jīng)網(wǎng)絡(luò)各自優(yōu)勢、彌補(bǔ)不足,二者結(jié)合形成了模糊神經(jīng)網(wǎng)絡(luò)。模糊神經(jīng)網(wǎng)絡(luò)具備較強(qiáng)的學(xué)習(xí)和表達(dá)能力、自適應(yīng)性強(qiáng)、能夠處理模糊信息等優(yōu)點(diǎn),具有廣闊的應(yīng)用前景[1-2]。
1987 年,美國學(xué)者B. Kosko 在他的論文Fuzzy Associative Memories 中第一次對模糊神經(jīng)網(wǎng)絡(luò)進(jìn)行了較為系統(tǒng)的研究,提出了模糊神經(jīng)網(wǎng)絡(luò)的概念——具有神經(jīng)網(wǎng)絡(luò)與模糊系統(tǒng)的優(yōu)點(diǎn),集學(xué)習(xí)、聯(lián)想、識別、自適應(yīng)及模糊信息處理于一體。模糊邏輯與神經(jīng)網(wǎng)絡(luò)的融合形式隨著研究角度和應(yīng)用領(lǐng)域的不同而不同,但從系統(tǒng)模型最終實(shí)現(xiàn)的功能上看,神經(jīng)模糊融合的形式歸納起來主要有3種[3]。
(1)神經(jīng)元模糊模型(如圖1 所示)。模型以模糊控制為主體,應(yīng)用神經(jīng)元網(wǎng)絡(luò)實(shí)現(xiàn)模糊控制的決策過程,以控制方法為“樣本”,對神經(jīng)網(wǎng)絡(luò)進(jìn)行離線訓(xùn)練學(xué)習(xí)。
圖1 神經(jīng)元模糊模型
(2)模糊神經(jīng)模型(如圖2 所示)。模型以神經(jīng)網(wǎng)絡(luò)為主體,將輸入空間分割成若干不同形式的模糊推論組合,對系統(tǒng)先進(jìn)行模糊邏輯判斷,以模糊控制器輸出作為神經(jīng)元網(wǎng)絡(luò)的輸入。
圖2 模糊神經(jīng)模型
(3)神經(jīng)與模糊混合模型(如圖3 所示)。模型中神經(jīng)網(wǎng)絡(luò)與模糊系統(tǒng)起著同等重要的作用,它們在系統(tǒng)中各自完成自己的任務(wù),利用各自的長處,相互補(bǔ)充和合作,共同達(dá)到統(tǒng)一的目標(biāo)。神經(jīng)網(wǎng)絡(luò)與模糊邏輯系統(tǒng)的組成結(jié)構(gòu)可以根據(jù)需求來搭建,一般有并聯(lián)、串聯(lián)、串—并聯(lián)或遞階等結(jié)構(gòu)。
圖3 神經(jīng)與模糊混合模型
該模型結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)用以完成對輸入信號的處理,而模糊邏輯系統(tǒng)用作決策與控制輸出。這個(gè)系統(tǒng)充分發(fā)揮了神經(jīng)網(wǎng)絡(luò)的信號處理速度優(yōu)勢和模糊邏輯進(jìn)行決策和控制中的軟推理優(yōu)勢[4]。
自1980 年入侵檢測的概念被提出以來,入侵檢測這種主動(dòng)的網(wǎng)絡(luò)安全保護(hù)技術(shù)得到了長足發(fā)展。以加州大學(xué)戴維斯分校、洛斯阿拉莫斯國家實(shí)驗(yàn)室為代表的國內(nèi)外眾多機(jī)構(gòu)開展了入侵檢測技術(shù)的研究工作,主要集中在基于主機(jī)入侵檢測系統(tǒng)、基于網(wǎng)絡(luò)入侵檢測系統(tǒng)等方向[5]。自1990年,神經(jīng)網(wǎng)絡(luò)、免疫學(xué)、遺傳算法、信息檢索、數(shù)據(jù)挖掘等技術(shù)在入侵檢測中的應(yīng)用而產(chǎn)生的基于智能網(wǎng)絡(luò)的入侵檢測系統(tǒng),在應(yīng)對新的網(wǎng)絡(luò)入侵威脅方面成為一種新趨勢。圖4 是一個(gè)入侵檢測系統(tǒng)的通用模型,符合美國國防高級研究計(jì)劃署提出的通用入侵檢測框架CIDF 標(biāo)準(zhǔn)[6]。
圖4 通用入侵檢測模型
本文選用神經(jīng)網(wǎng)絡(luò)與模糊系統(tǒng)混合的結(jié)構(gòu),來構(gòu)造入侵檢測系統(tǒng)(如圖5 所示)。該模型可以分為5 個(gè)部分:網(wǎng)絡(luò)數(shù)據(jù)獲取模塊、數(shù)據(jù)預(yù)處理模塊、特征提取模塊、神經(jīng)網(wǎng)絡(luò)模塊和模糊控制模塊。
圖5 混合模糊神經(jīng)網(wǎng)絡(luò)入侵檢測系統(tǒng)模型
(1)網(wǎng)絡(luò)數(shù)據(jù)獲取模塊。數(shù)據(jù)獲取是進(jìn)行檢測和決策的基礎(chǔ),它的準(zhǔn)確性、可靠性和實(shí)時(shí)性將直接影響到整個(gè)系統(tǒng)的性能,模塊主要功能是負(fù)責(zé)網(wǎng)絡(luò)數(shù)據(jù)的采集、獲取。
(2)數(shù)據(jù)預(yù)處理模塊。主要負(fù)責(zé)對網(wǎng)絡(luò)原始數(shù)據(jù)的處理,將網(wǎng)絡(luò)中的原始數(shù)據(jù)轉(zhuǎn)化為神經(jīng)網(wǎng)絡(luò)可以識別的數(shù)據(jù)信息,即進(jìn)行數(shù)值化和歸一化處理,然后將數(shù)據(jù)保存為神經(jīng)網(wǎng)絡(luò)可識別的標(biāo)準(zhǔn)格式。
(3)特征提取模塊。分析數(shù)據(jù)預(yù)處理模塊初步處理后的數(shù)據(jù),提取神經(jīng)網(wǎng)絡(luò)需要的各種輸入?yún)?shù),將提取的符合網(wǎng)絡(luò)輸入要求的特征信息送往神經(jīng)網(wǎng)絡(luò),即去掉冗余屬性信息的干擾,將高維的輸入特征進(jìn)行降維。
(4)神經(jīng)網(wǎng)絡(luò)模塊。整個(gè)入侵檢測系統(tǒng)的核心,即接收來自特征提取模塊處理后的數(shù)據(jù),并將其送入已經(jīng)訓(xùn)練好的神經(jīng)網(wǎng)絡(luò)分類器中進(jìn)行類別檢測,輸出的檢測結(jié)果將作為模糊控制系統(tǒng)的輸入。
(5)模糊控制系統(tǒng)模塊。根據(jù)已建立的模糊規(guī)則庫對輸入的分類結(jié)果進(jìn)行決策和判斷。根據(jù)用戶定義的響應(yīng)形式采取相應(yīng)的措施或進(jìn)行相應(yīng)的報(bào)警,包括文字警告、聲音警告、電子郵件通知、重新配置路由器或防火墻、關(guān)閉連接等[7-8]。
BP 神經(jīng)網(wǎng)絡(luò)是最具有代表性的一種神經(jīng)網(wǎng)絡(luò)模型,是當(dāng)前最流行的神經(jīng)網(wǎng)絡(luò)模型之一,得到了廣泛的應(yīng)用。BP 神經(jīng)網(wǎng)絡(luò)是一種多層前向型、采用誤差反向傳播學(xué)習(xí)算法的神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)如圖6 所示。它除了輸入層和輸出層之外,中間還有1 層或多層隱層。在BP 神經(jīng)網(wǎng)絡(luò)中同層節(jié)點(diǎn)間無任何連接,相鄰2 層神經(jīng)元之間形成全連接。由于同層節(jié)點(diǎn)間無任何藕合,因此,每一層的神經(jīng)元只接受前一層神經(jīng)元輸入,每一層神經(jīng)元的輸出只影響下一層神經(jīng)元輸出。
圖6 BP 神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
網(wǎng)絡(luò)的輸入數(shù)據(jù)X=(x1,x2,…,xn)從輸入層依次經(jīng)過各隱層節(jié)點(diǎn),然后到達(dá)輸出層節(jié)點(diǎn),從而得到輸出數(shù)據(jù)Y=(y1,y2,…,ym)。可以把BP 神經(jīng)網(wǎng)絡(luò)看成是一個(gè)從輸入到輸出高度非線性映射,即f:Rn→Rm,f(X)=Y。
傳統(tǒng)BP 算法是采用的最速下降算法(SDBP),每一次的權(quán)值和閾值的修正按式(1)進(jìn)行,即
式中:x(k)為第k次迭代各層之間的連接權(quán)值或閾值向量;為第k次迭代的神經(jīng)網(wǎng)絡(luò)輸出誤差對各個(gè)權(quán)值或閾值的梯度向量,負(fù)號表示梯度的反方向,即梯度的最速下降方向;α 為學(xué)習(xí)速率,是一個(gè)常數(shù)。
網(wǎng)絡(luò)訓(xùn)練開始時(shí),權(quán)值初始化為一組隨機(jī)值,節(jié)點(diǎn)輸出的期待值是預(yù)先規(guī)定的,當(dāng)輸入訓(xùn)練數(shù)據(jù)后,網(wǎng)絡(luò)的代價(jià)函數(shù)可以計(jì)算出來,通過BP 算法,誤差逐層向輸入層方向逆向傳播,使網(wǎng)絡(luò)不斷自適應(yīng)地修改網(wǎng)絡(luò)權(quán)值,以減小代價(jià)函數(shù)值。它采用非線性規(guī)劃中的最速下降方法,按誤差函數(shù)的負(fù)梯度方向修改權(quán)值,通常存在學(xué)習(xí)效率低、收斂速度慢、易陷入局部最小狀態(tài)的問題[9]。
為了克服這些不足,在設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)時(shí)引入了LM 算法。LM 算法是為了在以近似二階訓(xùn)練速率進(jìn)行修正時(shí)避免計(jì)算Hessian 矩陣而設(shè)計(jì)的。當(dāng)誤差性能函數(shù)具有平方和誤差的形式時(shí),Hessian 矩陣可以近似表示為
式中:H為包含網(wǎng)絡(luò)誤差函數(shù)對權(quán)值和閾值一階導(dǎo)數(shù)的雅克比矩陣;J為對應(yīng)的橫向量。
梯度的計(jì)算表達(dá)式為
式中e為網(wǎng)絡(luò)的誤差向量。
LM 算法用上述近似Hessian 矩陣按式(4)進(jìn)行修正
當(dāng)系數(shù)μ 為0 時(shí),即為牛頓法;當(dāng)系數(shù)μ 的值很大時(shí),式(2)變?yōu)椴介L較小的梯度下降法。牛頓法逼近最小誤差的速度更快、更精確,因此應(yīng)盡可能使算法接近于牛頓法,在每一步成功的迭代后(誤差性能減小),使μ 減小;僅在進(jìn)行嘗試性迭代后的誤差性能增加的情況下,才能使μ 增加。因此,該算法每一步迭代的誤差性能總是遞減[10]。
1989 年,Robert H.Nielson 證明了對于在閉區(qū)間內(nèi)的任意一個(gè)連續(xù)函數(shù)都可以用一個(gè)3 層(含1個(gè)隱層)的BP 神經(jīng)網(wǎng)絡(luò)來逼近,因而一個(gè)3 層的BP 神經(jīng)網(wǎng)絡(luò)可以完成任意的n維到m維的映射,即設(shè)計(jì)1 個(gè)隱層即可。輸入層到隱層的傳輸函數(shù)選擇雙曲正切S 型函數(shù),即
隱層到輸出層的傳輸函數(shù)選擇對數(shù)-S 型函數(shù),即
輸入層神經(jīng)元個(gè)數(shù)為特征提取后數(shù)據(jù)的維數(shù),輸出層神經(jīng)元個(gè)數(shù)為1。
隱層神經(jīng)元數(shù)目的選擇是一個(gè)十分復(fù)雜的問題,需要根據(jù)經(jīng)驗(yàn)和多次實(shí)驗(yàn)來確定,不存在一個(gè)理想的解析式。參考公式為
式中:m為輸神經(jīng)元數(shù);n為輸入單元數(shù);a為[1,10]區(qū)間的常數(shù)。
用于實(shí)驗(yàn)的計(jì)算機(jī)配置為Intel Core Duo T6600 @ 2.20 GHz,2 GB 內(nèi)存,500 G 硬盤。操作系統(tǒng)為Windows 7,仿真實(shí)驗(yàn)環(huán)境采用Matlab 2010a,實(shí)驗(yàn)數(shù)據(jù)集采用KDD CUP 99。
KDD CUP 99 數(shù)據(jù)集共包含22 類攻擊,分屬于4 種入侵類型,即包括拒絕服務(wù)攻擊(denial of service,DOS)、漏洞探測與掃描攻擊(PROBE)、遠(yuǎn)程非授權(quán)訪問攻擊(remote to local,R2L)和非授權(quán)得到超級用戶權(quán)限攻擊(user to root,U2R)。KDD CUP 99 數(shù)據(jù)集已經(jīng)完成了數(shù)據(jù)采集及部分?jǐn)?shù)據(jù)預(yù)處理、特征提取工作,但在其41 維特征變量中,第2 維協(xié)議類型(protocol_type)、第3 維服務(wù)類型(service)、第4 維狀態(tài)標(biāo)志(flag)均為非數(shù)值形式,神經(jīng)網(wǎng)絡(luò)無法識別,因此必須進(jìn)行數(shù)值化處理[11]。
數(shù)值化編碼采取的規(guī)則是統(tǒng)計(jì)在2、3、4 維中出現(xiàn)的內(nèi)容,并各自按字母排序,以序號代替原內(nèi)容。
(1)協(xié)議類型。協(xié)議類型共有3 種,其編碼見表1。
表1 協(xié)議類型編碼
(2)服務(wù)類型。服務(wù)類型共70 種,其編碼見表2 。
表2 服務(wù)類型編碼
(3)狀態(tài)標(biāo)志。狀態(tài)標(biāo)志共有11 種,其編碼見表3。
表3 狀態(tài)類型編碼
用SQL server 2008 處理KDD CUP 99 數(shù)據(jù)集提供的kddcup.data. corrected 文件中的原始數(shù)據(jù),刪除重復(fù)記錄,進(jìn)行數(shù)字化編碼,構(gòu)造文本文件,包括訓(xùn)練樣本文件Train.txt、訓(xùn)練樣本目標(biāo)輸出結(jié)果文件Out.txt,以及4 個(gè)測試樣本文件Test 1. txt、Test 2.txt、Test 3. txt 和Test 4. txt。文件中的攻擊(正常)數(shù)據(jù)均由SQL server 2008 在對應(yīng)攻擊(正常)類型的全部數(shù)據(jù)中隨機(jī)選取產(chǎn)生,其中測試樣本文件中攻擊數(shù)據(jù)10%,正常數(shù)據(jù)90%[12]。
誤報(bào)率和漏報(bào)率是檢驗(yàn)入侵檢測算法的2 個(gè)重要指標(biāo)[13],分別為
神經(jīng)網(wǎng)絡(luò)誤差性能目標(biāo)值為0.01,訓(xùn)練的最大步長為2 000 步,學(xué)習(xí)率為0.05,最小梯度值為1 ×10-30,網(wǎng)絡(luò)的訓(xùn)練過程如圖6 所示。
神經(jīng)網(wǎng)絡(luò)的輸出數(shù)據(jù)位為0 ~1 ,對其進(jìn)行模糊化處 理,其 中0. 7 ~1 為“yes”,0. 4 ~0. 7 為“maybe”,0 ~0.4 為“no”。再根據(jù)先驗(yàn)經(jīng)驗(yàn)構(gòu)筑模糊規(guī)則庫,進(jìn)行決策與控制輸出,實(shí)驗(yàn)結(jié)果見表4。
圖7 LMBP 算法訓(xùn)練的誤差性能曲線
表4 實(shí)驗(yàn)結(jié)果統(tǒng)計(jì)
實(shí)驗(yàn)表明,改進(jìn)算法的BP 神經(jīng)網(wǎng)絡(luò)較原始BP 算法呈現(xiàn)出了較低的誤報(bào)率和漏損率,識別效果明顯提高,在入侵檢測中有著巨大的應(yīng)用潛力。另外,系統(tǒng)模型中的模糊系統(tǒng)能夠在神經(jīng)網(wǎng)絡(luò)檢測判斷的基礎(chǔ)上,根據(jù)一定的準(zhǔn)則構(gòu)建模糊規(guī)則庫,為系統(tǒng)的決策實(shí)施提供依據(jù)。
實(shí)驗(yàn)結(jié)果表明,LMBP 算法采用在高斯牛頓算法和最速下降算法之間平滑調(diào)和的方式,在最初的迭代運(yùn)算中,函數(shù)的斜率比較大,在接近極小值點(diǎn)時(shí),下降速度放慢,使得函數(shù)收斂,從而使訓(xùn)練的時(shí)間大大的縮短,穩(wěn)定性得到保證,有效地解決了傳統(tǒng)的BP 算法在非線性的迭代計(jì)算中不能保證收斂,穩(wěn)定性差和Hessian 矩陣有可能變成奇異矩陣而無法運(yùn)算等缺陷。綜上所述,基于LMBP 算法的混合模糊神經(jīng)網(wǎng)絡(luò)在入侵檢測中應(yīng)用效果良好,精度高,自適應(yīng)能力更強(qiáng),學(xué)習(xí)速度快,能夠在很大程度上實(shí)現(xiàn)對未知的異常數(shù)據(jù)包的檢測,是一種行之有效的入侵檢測方法。通過修改訓(xùn)練樣本中的數(shù)據(jù)進(jìn)一步發(fā)現(xiàn),檢測效率與正常數(shù)據(jù)的比例有關(guān),即正常數(shù)據(jù)在訓(xùn)練樣本中所占的比重越大,越能區(qū)分出攻擊數(shù)據(jù)。
[1] 曹大元.入侵檢測技術(shù)[M].北京:人民郵電出版社,2007.
[2] 張凱,錢鋒,劉漫丹.模糊神經(jīng)網(wǎng)絡(luò)技術(shù)綜述[J]. 信息與控制,2003,32(5):431-435.
[3] Takagi H.Fusion technology of fuzzy theory and neural networks- survey and future direction[C]//Pro. Int. Conf. on Fuzzy Logic and Neural Networks.1990:13-26.
[4] 王耀南. 智能信息處理技術(shù)[M]. 北京:高等教育出版社,2003:192-196.
[5] Lough D L. A taxonomy of computer attacks with applications to wireless networks[D].The Degree of Doctor of Philosophy,Virginia Polytechnic Institute and State University,2001.
[6] 常佶,陳志堅(jiān). 基于CIDF 的網(wǎng)絡(luò)入侵檢測系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].內(nèi)蒙古工業(yè)大學(xué)學(xué)報(bào),2006,25(2):1-2.
[7] 褚永剛,呂慧勤,楊義先,等. 大規(guī)模分布式入侵檢測系統(tǒng)的體系結(jié)構(gòu)模型[J]. 計(jì)算機(jī)應(yīng)用研究,2004(12):105-106.
[8] 劉延濤.基于混合神經(jīng)網(wǎng)絡(luò)技術(shù)的入侵檢測模型[D]. 哈爾濱:哈爾濱師范大學(xué),2010.
[9] 高小偉. BP 神經(jīng)網(wǎng)絡(luò)在入侵檢測系統(tǒng)中的應(yīng)用及優(yōu)化[D].濟(jì)南:山東大學(xué),2007.
[10] 陳海,丁邦旭. 基于神經(jīng)網(wǎng)絡(luò)LMBP 算法的入侵檢測方法[J]. 計(jì)算機(jī)應(yīng)用與軟件,2007,24(8):183-188.
[11] The University of California Irvine KDD Archive[EB/OL].[2007-06-26]. http://kdd. ics. uci. edu/databases/kddcup99/kddcup99.html.
[12] 陳曉梅.入侵檢測中的數(shù)據(jù)預(yù)處理問題研究[J]. 計(jì)算機(jī)科學(xué),2006,33(1):81-83.
[13] Joo D,Hong T,Han I.The neural network models for IDS based on the asymmetric costsof false negative errors and false positive errors[J].Expert Systems with Applications,2003,25(1):69-75.