李勤樸,何立夫
(國網湖南省電力公司防災減災中心,湖南長沙410129)
一種改進的BP神經網絡入侵檢測方法的設計與實現
李勤樸,何立夫
(國網湖南省電力公司防災減災中心,湖南長沙410129)
針對傳統BP神經網絡入侵檢測算法學習效率低,收斂速度慢的缺點,本文提出了一種改進型的BP神經網絡入侵檢測算法,并進行了系統原型的設計。實驗表明,改進型的算法比傳統型的算法具有更快的學習速度和更準確的報警率,結果令人滿意。
網絡安全;入侵檢測;神經網絡;BP算法
隨著Internet技術和通信技術的快速發展,互聯網應用的日益普及,企業和個人信息的泄漏、信息惡意竊取和篡改、數據惡意添加和刪除、計算機病毒大量傳播等問題事件涌現,網絡安全問題引起了人們的廣泛關注。根據最近美國聯邦調查局Federal Bureau of Investigation(FBI)的統計分析報告,互聯網犯罪投訴中心Internet Crime Complaint Center(IC3)從2010年到2014期間共收到犯罪投訴1 440 264條,平均每年收到近30多萬條犯罪投訴,平均每月有兩萬多條,累計直接的經濟損失達40多億美元〔1〕。世界上其他國家,如加拿大、英國、印度、澳大利亞、法國等也存在不同程度網絡犯罪。中國最大的互聯網安全公司360發布 “2014年中國個人電腦上網安全報告”,2013年有超過2億中國網民屬于 “風險人群”,上網環境惡劣,該中心共截獲新增惡意程序樣本3.24億個,平均每天截獲新增惡意程序樣本88.8萬個,報告說2014年度國際國內發生的14起震驚中外的互聯網安全事件,其中有5起主要發生在中國〔1-2〕。網絡安全和網絡犯罪已經成為了一個全球性的問題。因而許多企業和科研機構紛紛提出許多策略、方案和辦法來增強互聯網網絡的安全性,入侵檢測就是其中一個有效的途徑。
入侵檢測 (Intrusion Detection)是通過軟件系統對網絡中的計算機或計算機集群中的若干關鍵點進行檢測,并收集相關信息,然后進行統計分析,從中發現計算機網絡或計算機集群系統中是否有違反設定安全策略的行為和被攻擊的現象〔3〕。目前國內外將智能技術引入到入侵檢測中解決網絡安全問題,其中人工神經網絡是比較理想的一種策略方法,特別是多層前饋神經網絡,其學習效率和學習能力均很強大〔4-6〕。
文中對入侵檢測技術和人工神經網絡技術作了細致的分析研究,尤其對神經網絡的訓練速度進行了相關的優化和提升,針對傳統BP神經網絡入侵檢測算法學習效率低,收斂速度慢的缺點,提出了一種改進型的BP神經網絡入侵檢測算法,并進行了系統原型的設計,該算法具有更快的學習速度和更準確的報警率,實驗結果令人滿意。
BP神經網絡模型于1986年提出,它是一種多層前饋模型,它根據神經元的刺激產生反應,刺激的學習機制調整神經元之間的關聯強度,利用誤差逆傳播算法進行誤差校正,即利用模型的實際輸出與期望值之差修正網絡中各層連接的權重,由后向前逐層進行校正的一種模型。
通常,輸入層的神經元不參與計算,它只是將刺激信號 (神經元激活值)傳遞給隱含層。而對隱含層中的2層或多層以上的多層神經元網絡,隱含層各層之間的神經元實現全連接,它們再將權重強度和傳遞規則將刺激傳到輸出層,如果期望值與實際輸出結果誤差不大,結果正確時,學習結束;如果誤差較大,則計算誤差,返回到輸入層,逐層計算和修正各連接權,如此反復進行修正,隨著誤差逆向傳播訓練的反復迭代,模型的正確率也不斷的提高,最終完成學習,輸出正確結果。
然而,傳統的 BP神經網絡模型也有一些缺點,如算法有時會陷入局部極小值、模型收斂速度慢,呈現鋸齒形現象,算法效率低等問題〔7〕。
2.1 改進型神經網絡入侵檢測系統結構
文中實現的基于BP神經網絡的入侵檢測技術的系統的結構如圖1所示。

圖1 入侵檢測系統結構圖
其中數據獲取模塊:提取主機中的日志或者網絡節點監聽數據。由于時間有限,文中只涉及到入侵檢測技術的實現,固其數據來源于模擬的主機日志。從預定義好的文件中讀取所需要的數據進行學習。數據樣本選取系統活動時間、登錄次數以及2次登錄間的最大間隔,以秒為單位。數據處理模塊:從輸入數據流中提取特征向量,并轉化為神經網絡的輸入。將數據進行歸一化處理后提交給神經網絡,數據經過歸一后處于 (0,1)之間,便于運算,所用的公式:xi=(xi-xmin)/(xmax-xmin)。數據學習模塊:對樣本數據進行訓練學習,動量因子和學習效率的范圍大都在 (0,1)之間,選擇0.7。數據分析模塊:對所獲得的數據向量進行分析處理,輸出判斷結果或者根據結果修改權值。
當系統進行數據分析聚類時,樣本的期望輸出值為0或1,但由于只有激活函數中的λ=±∞時才為0或1,這有可能將某些權值趨向無窮大。為了避免這種飽和現象,期望輸出可適當放寬,如輸出大于0.9時就看作1,當輸出小于0.1時就認為是0,即每個樣本的期望誤差定義為 ε= (0.1)2=0.01。
2.2 改進型BP神經網絡入侵檢測模型
基于BP神經網絡入侵檢測模型包括輸入層、隱含層 (中間層)和輸出層,模型結構如圖 2所示。

圖2 入侵檢測系統模型圖
通過反復試驗,輸入層設3個結點較為合適,每個結點代表一個數據項,分別表示活動時間段,活動時間內的登錄次數,2次登錄相隔的最大時間;而輸出層設計一個結點,判斷是否發生了入侵作為輸出結果;隱含層單元數的選擇沒有具體的判定方法,通常選取3個結點比較理想。
標準的神經網絡算法使訓練過程發生振蕩,收斂速度緩慢。為了提高網絡的訓練速度,文中在權值調整公式中引入動量因子。在標準BP算法中學習效率定為常數,然而在實際應用中,學習效率選得過小,收斂速度太慢;學習效率選得過大,則有可能修正過頭,導致振蕩甚至發散,文中增加學習效率自動修改。
2.3 算法主要函數與基本步驟
筆者在Windows XP+C語言環境上運行,主要函數有:Detecting():檢測函數;Training():訓練函數;Initial():初始化函數;Normalization ():歸一化函數;Err_calculate():輸出結果的誤差計算;Err_O_H():輸出層到隱層的誤差計算函數;Err_H_I():隱層到輸入層的誤差計算函數;Delta_O_H():修改隱層到輸出層的權值,學習效率以及閾值函數;Delta_H_I():修改輸入層到隱層的權值,學習效率以及閾值函數。
算法基本步驟: (1)調用initial()函數初始化神經網絡的各權值和閾值; (2)對所得到的數據進行歸一化處理; (3)如果是進行檢測,則轉入Detecting()函數進行檢測并輸出結果,反之則轉入Training()函數進行學習; (4)調用Err_ calculate()函數計算Training()函數運算得出的結果,如果誤差大于 0.01,則轉入下一步,反之,則訓練結束。(5)調用Err_O_H(),Err_H_I()和Delta_O_H(),Delta_H_I(),進行運算。(6)轉回并調用 Err_calculate,重新計算誤差,重復(4)(5)(6)直到結束。
本次算法優化主要從兩個方面進行:增加動量因子;增加學習效率自動修改。算法對神經網絡的權值和閾值進行了546次修改,增加動量因子和自動調整學習效率優化后,對神經網絡進行了40次修改,對權值和閾值的次數的修改大幅下降,達到了原來的近1/14。由此可見,算法運算精度提高,學習速度提升,優化效果明顯。
優化算法能對經過一項優化情況,能檢查出全部發生入侵;對經過2項優化情況,能檢查出一項正常活動紀錄;對經過三項優化情況,能檢查出有2項正?;顒佑涗洝T敿毲闆r見表1。
文中針對傳統BP神經網絡入侵檢測算法學習效率低,收斂速度慢的缺點,提出了一種改進型的
BP神經網絡入侵檢測算法,并進行了系統原型的設計,并對不同優化水平做了相應的優化。仿真實驗結果表明:算法學習速度明顯加快,報警率的準確性大大提高,實驗結果令人滿意。

表1 改進型BP神經網絡入侵檢測算法模擬結果表
〔1〕360發布2014中國個人電腦上網安全報告〔R/OL〕.〔2015-10-26〕 http://www.cssn.cn/dzyx/dzyx_ jlyhz/201501/ t20150123_1490778.shtml
〔2〕2014年全球14大網絡安全事件5個在中國〔R/OL〕.〔2015-10-26〕 http://www.cctime.com/html/2015-1-20/ 2015120161127366.htm
〔3〕入侵檢測〔EB/OL〕.http://www.baike.com/wiki
〔4〕唐正軍,李建華.入侵檢測技術〔M〕.北京:清華大學出版社,2004.
〔5〕李慶海,張德運,孫朝暉,等.用神經網絡驅動的模糊推理入侵檢測方法〔J〕.計算機工程,2003(19).
〔6〕劉春.人工魚群算法優化神經網絡的網絡入侵檢測〔J〕.計算機安全,2014(7).
〔7〕楊立潔,楊波.神經網絡在入侵檢測中的應用〔J〕.濟南:濟南大學學報,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