李勤樸,何立夫
(國(guó)網(wǎng)湖南省電力公司防災(zāi)減災(zāi)中心,湖南長(zhǎng)沙410129)
一種改進(jìn)的BP神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)方法的設(shè)計(jì)與實(shí)現(xiàn)
李勤樸,何立夫
(國(guó)網(wǎng)湖南省電力公司防災(zāi)減災(zāi)中心,湖南長(zhǎng)沙410129)
針對(duì)傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)算法學(xué)習(xí)效率低,收斂速度慢的缺點(diǎn),本文提出了一種改進(jìn)型的BP神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)算法,并進(jìn)行了系統(tǒng)原型的設(shè)計(jì)。實(shí)驗(yàn)表明,改進(jìn)型的算法比傳統(tǒng)型的算法具有更快的學(xué)習(xí)速度和更準(zhǔn)確的報(bào)警率,結(jié)果令人滿意。
網(wǎng)絡(luò)安全;入侵檢測(cè);神經(jīng)網(wǎng)絡(luò);BP算法
隨著Internet技術(shù)和通信技術(shù)的快速發(fā)展,互聯(lián)網(wǎng)應(yīng)用的日益普及,企業(yè)和個(gè)人信息的泄漏、信息惡意竊取和篡改、數(shù)據(jù)惡意添加和刪除、計(jì)算機(jī)病毒大量傳播等問題事件涌現(xiàn),網(wǎng)絡(luò)安全問題引起了人們的廣泛關(guān)注。根據(jù)最近美國(guó)聯(lián)邦調(diào)查局Federal Bureau of Investigation(FBI)的統(tǒng)計(jì)分析報(bào)告,互聯(lián)網(wǎng)犯罪投訴中心Internet Crime Complaint Center(IC3)從2010年到2014期間共收到犯罪投訴1 440 264條,平均每年收到近30多萬條犯罪投訴,平均每月有兩萬多條,累計(jì)直接的經(jīng)濟(jì)損失達(dá)40多億美元〔1〕。世界上其他國(guó)家,如加拿大、英國(guó)、印度、澳大利亞、法國(guó)等也存在不同程度網(wǎng)絡(luò)犯罪。中國(guó)最大的互聯(lián)網(wǎng)安全公司360發(fā)布 “2014年中國(guó)個(gè)人電腦上網(wǎng)安全報(bào)告”,2013年有超過2億中國(guó)網(wǎng)民屬于 “風(fēng)險(xiǎn)人群”,上網(wǎng)環(huán)境惡劣,該中心共截獲新增惡意程序樣本3.24億個(gè),平均每天截獲新增惡意程序樣本88.8萬個(gè),報(bào)告說2014年度國(guó)際國(guó)內(nèi)發(fā)生的14起震驚中外的互聯(lián)網(wǎng)安全事件,其中有5起主要發(fā)生在中國(guó)〔1-2〕。網(wǎng)絡(luò)安全和網(wǎng)絡(luò)犯罪已經(jīng)成為了一個(gè)全球性的問題。因而許多企業(yè)和科研機(jī)構(gòu)紛紛提出許多策略、方案和辦法來增強(qiáng)互聯(lián)網(wǎng)網(wǎng)絡(luò)的安全性,入侵檢測(cè)就是其中一個(gè)有效的途徑。
入侵檢測(cè) (Intrusion Detection)是通過軟件系統(tǒng)對(duì)網(wǎng)絡(luò)中的計(jì)算機(jī)或計(jì)算機(jī)集群中的若干關(guān)鍵點(diǎn)進(jìn)行檢測(cè),并收集相關(guān)信息,然后進(jìn)行統(tǒng)計(jì)分析,從中發(fā)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)或計(jì)算機(jī)集群系統(tǒng)中是否有違反設(shè)定安全策略的行為和被攻擊的現(xiàn)象〔3〕。目前國(guó)內(nèi)外將智能技術(shù)引入到入侵檢測(cè)中解決網(wǎng)絡(luò)安全問題,其中人工神經(jīng)網(wǎng)絡(luò)是比較理想的一種策略方法,特別是多層前饋神經(jīng)網(wǎng)絡(luò),其學(xué)習(xí)效率和學(xué)習(xí)能力均很強(qiáng)大〔4-6〕。
文中對(duì)入侵檢測(cè)技術(shù)和人工神經(jīng)網(wǎng)絡(luò)技術(shù)作了細(xì)致的分析研究,尤其對(duì)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練速度進(jìn)行了相關(guān)的優(yōu)化和提升,針對(duì)傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)算法學(xué)習(xí)效率低,收斂速度慢的缺點(diǎn),提出了一種改進(jìn)型的BP神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)算法,并進(jìn)行了系統(tǒng)原型的設(shè)計(jì),該算法具有更快的學(xué)習(xí)速度和更準(zhǔn)確的報(bào)警率,實(shí)驗(yàn)結(jié)果令人滿意。
BP神經(jīng)網(wǎng)絡(luò)模型于1986年提出,它是一種多層前饋模型,它根據(jù)神經(jīng)元的刺激產(chǎn)生反應(yīng),刺激的學(xué)習(xí)機(jī)制調(diào)整神經(jīng)元之間的關(guān)聯(lián)強(qiáng)度,利用誤差逆?zhèn)鞑ニ惴ㄟM(jìn)行誤差校正,即利用模型的實(shí)際輸出與期望值之差修正網(wǎng)絡(luò)中各層連接的權(quán)重,由后向前逐層進(jìn)行校正的一種模型。
通常,輸入層的神經(jīng)元不參與計(jì)算,它只是將刺激信號(hào) (神經(jīng)元激活值)傳遞給隱含層。而對(duì)隱含層中的2層或多層以上的多層神經(jīng)元網(wǎng)絡(luò),隱含層各層之間的神經(jīng)元實(shí)現(xiàn)全連接,它們?cè)賹?quán)重強(qiáng)度和傳遞規(guī)則將刺激傳到輸出層,如果期望值與實(shí)際輸出結(jié)果誤差不大,結(jié)果正確時(shí),學(xué)習(xí)結(jié)束;如果誤差較大,則計(jì)算誤差,返回到輸入層,逐層計(jì)算和修正各連接權(quán),如此反復(fù)進(jìn)行修正,隨著誤差逆向傳播訓(xùn)練的反復(fù)迭代,模型的正確率也不斷的提高,最終完成學(xué)習(xí),輸出正確結(jié)果。
然而,傳統(tǒng)的 BP神經(jīng)網(wǎng)絡(luò)模型也有一些缺點(diǎn),如算法有時(shí)會(huì)陷入局部極小值、模型收斂速度慢,呈現(xiàn)鋸齒形現(xiàn)象,算法效率低等問題〔7〕。
2.1 改進(jìn)型神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)結(jié)構(gòu)
文中實(shí)現(xiàn)的基于BP神經(jīng)網(wǎng)絡(luò)的入侵檢測(cè)技術(shù)的系統(tǒng)的結(jié)構(gòu)如圖1所示。
圖1 入侵檢測(cè)系統(tǒng)結(jié)構(gòu)圖
其中數(shù)據(jù)獲取模塊:提取主機(jī)中的日志或者網(wǎng)絡(luò)節(jié)點(diǎn)監(jiān)聽數(shù)據(jù)。由于時(shí)間有限,文中只涉及到入侵檢測(cè)技術(shù)的實(shí)現(xiàn),固其數(shù)據(jù)來源于模擬的主機(jī)日志。從預(yù)定義好的文件中讀取所需要的數(shù)據(jù)進(jìn)行學(xué)習(xí)。數(shù)據(jù)樣本選取系統(tǒng)活動(dòng)時(shí)間、登錄次數(shù)以及2次登錄間的最大間隔,以秒為單位。數(shù)據(jù)處理模塊:從輸入數(shù)據(jù)流中提取特征向量,并轉(zhuǎn)化為神經(jīng)網(wǎng)絡(luò)的輸入。將數(shù)據(jù)進(jìn)行歸一化處理后提交給神經(jīng)網(wǎng)絡(luò),數(shù)據(jù)經(jīng)過歸一后處于 (0,1)之間,便于運(yùn)算,所用的公式:xi=(xi-xmin)/(xmax-xmin)。數(shù)據(jù)學(xué)習(xí)模塊:對(duì)樣本數(shù)據(jù)進(jìn)行訓(xùn)練學(xué)習(xí),動(dòng)量因子和學(xué)習(xí)效率的范圍大都在 (0,1)之間,選擇0.7。數(shù)據(jù)分析模塊:對(duì)所獲得的數(shù)據(jù)向量進(jìn)行分析處理,輸出判斷結(jié)果或者根據(jù)結(jié)果修改權(quán)值。
當(dāng)系統(tǒng)進(jìn)行數(shù)據(jù)分析聚類時(shí),樣本的期望輸出值為0或1,但由于只有激活函數(shù)中的λ=±∞時(shí)才為0或1,這有可能將某些權(quán)值趨向無窮大。為了避免這種飽和現(xiàn)象,期望輸出可適當(dāng)放寬,如輸出大于0.9時(shí)就看作1,當(dāng)輸出小于0.1時(shí)就認(rèn)為是0,即每個(gè)樣本的期望誤差定義為 ε= (0.1)2=0.01。
2.2 改進(jìn)型BP神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)模型
基于BP神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)模型包括輸入層、隱含層 (中間層)和輸出層,模型結(jié)構(gòu)如圖 2所示。
圖2 入侵檢測(cè)系統(tǒng)模型圖
通過反復(fù)試驗(yàn),輸入層設(shè)3個(gè)結(jié)點(diǎn)較為合適,每個(gè)結(jié)點(diǎn)代表一個(gè)數(shù)據(jù)項(xiàng),分別表示活動(dòng)時(shí)間段,活動(dòng)時(shí)間內(nèi)的登錄次數(shù),2次登錄相隔的最大時(shí)間;而輸出層設(shè)計(jì)一個(gè)結(jié)點(diǎn),判斷是否發(fā)生了入侵作為輸出結(jié)果;隱含層單元數(shù)的選擇沒有具體的判定方法,通常選取3個(gè)結(jié)點(diǎn)比較理想。
標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)算法使訓(xùn)練過程發(fā)生振蕩,收斂速度緩慢。為了提高網(wǎng)絡(luò)的訓(xùn)練速度,文中在權(quán)值調(diào)整公式中引入動(dòng)量因子。在標(biāo)準(zhǔn)BP算法中學(xué)習(xí)效率定為常數(shù),然而在實(shí)際應(yīng)用中,學(xué)習(xí)效率選得過小,收斂速度太慢;學(xué)習(xí)效率選得過大,則有可能修正過頭,導(dǎo)致振蕩甚至發(fā)散,文中增加學(xué)習(xí)效率自動(dòng)修改。
2.3 算法主要函數(shù)與基本步驟
筆者在Windows XP+C語言環(huán)境上運(yùn)行,主要函數(shù)有:Detecting():檢測(cè)函數(shù);Training():訓(xùn)練函數(shù);Initial():初始化函數(shù);Normalization ():歸一化函數(shù);Err_calculate():輸出結(jié)果的誤差計(jì)算;Err_O_H():輸出層到隱層的誤差計(jì)算函數(shù);Err_H_I():隱層到輸入層的誤差計(jì)算函數(shù);Delta_O_H():修改隱層到輸出層的權(quán)值,學(xué)習(xí)效率以及閾值函數(shù);Delta_H_I():修改輸入層到隱層的權(quán)值,學(xué)習(xí)效率以及閾值函數(shù)。
算法基本步驟: (1)調(diào)用initial()函數(shù)初始化神經(jīng)網(wǎng)絡(luò)的各權(quán)值和閾值; (2)對(duì)所得到的數(shù)據(jù)進(jìn)行歸一化處理; (3)如果是進(jìn)行檢測(cè),則轉(zhuǎn)入Detecting()函數(shù)進(jìn)行檢測(cè)并輸出結(jié)果,反之則轉(zhuǎn)入Training()函數(shù)進(jìn)行學(xué)習(xí); (4)調(diào)用Err_ calculate()函數(shù)計(jì)算Training()函數(shù)運(yùn)算得出的結(jié)果,如果誤差大于 0.01,則轉(zhuǎn)入下一步,反之,則訓(xùn)練結(jié)束。(5)調(diào)用Err_O_H(),Err_H_I()和Delta_O_H(),Delta_H_I(),進(jìn)行運(yùn)算。(6)轉(zhuǎn)回并調(diào)用 Err_calculate,重新計(jì)算誤差,重復(fù)(4)(5)(6)直到結(jié)束。
本次算法優(yōu)化主要從兩個(gè)方面進(jìn)行:增加動(dòng)量因子;增加學(xué)習(xí)效率自動(dòng)修改。算法對(duì)神經(jīng)網(wǎng)絡(luò)的權(quán)值和閾值進(jìn)行了546次修改,增加動(dòng)量因子和自動(dòng)調(diào)整學(xué)習(xí)效率優(yōu)化后,對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行了40次修改,對(duì)權(quán)值和閾值的次數(shù)的修改大幅下降,達(dá)到了原來的近1/14。由此可見,算法運(yùn)算精度提高,學(xué)習(xí)速度提升,優(yōu)化效果明顯。
優(yōu)化算法能對(duì)經(jīng)過一項(xiàng)優(yōu)化情況,能檢查出全部發(fā)生入侵;對(duì)經(jīng)過2項(xiàng)優(yōu)化情況,能檢查出一項(xiàng)正?;顒?dòng)紀(jì)錄;對(duì)經(jīng)過三項(xiàng)優(yōu)化情況,能檢查出有2項(xiàng)正常活動(dòng)記錄。詳細(xì)情況見表1。
文中針對(duì)傳統(tǒng)BP神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)算法學(xué)習(xí)效率低,收斂速度慢的缺點(diǎn),提出了一種改進(jìn)型的
BP神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)算法,并進(jìn)行了系統(tǒng)原型的設(shè)計(jì),并對(duì)不同優(yōu)化水平做了相應(yīng)的優(yōu)化。仿真實(shí)驗(yàn)結(jié)果表明:算法學(xué)習(xí)速度明顯加快,報(bào)警率的準(zhǔn)確性大大提高,實(shí)驗(yàn)結(jié)果令人滿意。
表1 改進(jìn)型BP神經(jīng)網(wǎng)絡(luò)入侵檢測(cè)算法模擬結(jié)果表
〔1〕360發(fā)布2014中國(guó)個(gè)人電腦上網(wǎng)安全報(bào)告〔R/OL〕.〔2015-10-26〕 http://www.cssn.cn/dzyx/dzyx_ jlyhz/201501/ t20150123_1490778.shtml
〔2〕2014年全球14大網(wǎng)絡(luò)安全事件5個(gè)在中國(guó)〔R/OL〕.〔2015-10-26〕 http://www.cctime.com/html/2015-1-20/ 2015120161127366.htm
〔3〕入侵檢測(cè)〔EB/OL〕.http://www.baike.com/wiki
〔4〕唐正軍,李建華.入侵檢測(cè)技術(shù)〔M〕.北京:清華大學(xué)出版社,2004.
〔5〕李慶海,張德運(yùn),孫朝暉,等.用神經(jīng)網(wǎng)絡(luò)驅(qū)動(dòng)的模糊推理入侵檢測(cè)方法〔J〕.計(jì)算機(jī)工程,2003(19).
〔6〕劉春.人工魚群算法優(yōu)化神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)入侵檢測(cè)〔J〕.計(jì)算機(jī)安全,2014(7).
〔7〕楊立潔,楊波.神經(jīng)網(wǎng)絡(luò)在入侵檢測(cè)中的應(yīng)用〔J〕.濟(jì)南:濟(jì)南大學(xué)學(xué)報(bào),2004(03).
Design and implementation of an Improved BP neural network intrusion detection method
LI Qinpu,HE Lifu
(State Grid Hunan Electric Corporation Disaster Prevention and Reduction Center,Changsha 410129,China)
Aiming at the shortcomings of low learning efficiency and slow convergence speed of intrusion detection algorithm based on traditional BP neural network,this paper presents an improved intrusion detection algorithm based on improved BP neural network,and designs the system prototype.The simulation results show that the improved algorithm has faster learning speed and more accurate alarm rate than the traditional algorithm.And the results of the experiment are satisfactory.
network security;intrusion detection;neural network;BP algorithm
TP393.08
B
1008-0198(2015)06-0038-03
10.3969/j.issn.1008-0198.2015.06.010
2015-10-16 改回日期:2015-11-10