摘 要: 隨著云計算的發展和應用范圍的不斷擴大,云環境下的安全和隱私問題日益突出。傳統的入侵檢測系統已經遠遠不能滿足當今海量數據的要求,建立云環境下高效的入侵檢測系統已經成為入侵檢測領域的重要研究方向。基于云計算提供的超大規模的計算能力和海量存儲能力,提出了一種基于云環境的入侵檢測系統,系統能夠對海量入侵檢測數據學習,實時檢測,在入侵檢測的效率和精度上比傳統的入侵檢測系統有所提高。
關鍵詞: 云計算; 入侵檢測系統; MRGA?BP均值法; 入侵檢測效率
中圖分類號: TN915.08?34; TM417 文獻標識碼: A 文章編號: 1004?373X(2016)21?0107?05
Research and application of network intrusion detection
algorithm in Internet environment
WANG Haizhen
(School of Computer Science and Technology, Inner Mongolia University for Nationalities, Tongliao 028000, China)
Abstract: With the development of cloud computing, and continuos expansion of its application range, the security and privacy issues under cloud environment become increasingly prominent. However, the traditional intrusion detection system can′t satisfy the requirement of mass data nowadays, the establishment of high?efficiency intrusion detection system under cloud environment has become the important research direction of the intrusion detection field. On the basis of ultra?large?scale computing power and massive storage capacity provided by cloud computing, an intrusion detection system based on cloud environment is proposed. This system is able to learn and detect the massive intrusion detection data in real time, and its intrusion detection efficiency and accuracy are higher than those of the traditional intrusion detection system.
Keywords: cloud computing; intrusion detection system; MRGA?BP mean value method; intrusion detection efficiency
0 引 言
在信息爆炸的時代,海量數據的安全問題是云計算面臨的最大問題,云平臺的入侵檢測和預防是大數據時代安全關注的核心。本文在大數據的背景下,面對海量數據的安全問題,從數據安全問題的處理速度和處理精度方面改進傳統的入侵檢測算法,通過分析現在云環境中網絡數據的特點,建立了一個適用于云環境下的入侵檢測算法——MRGA?BP均值法算法[1],最終通過實驗證明,此算法可以保證在一定的入侵檢測精度下,提升檢測的效率,更適合當下大數據環境入侵檢測[2]。
1 基于云計算平臺的網絡入侵檢測算法建立
1.1 MRGA?BP算法的網絡拓撲結構的確定
BP神經網絡是由網絡層數、節點個數、激活函數、初始權值系數、學習算法、系統誤差確定的,確定這些需要一定的原則:
(1) 隱含層數的選擇
根據先前的經驗,優先考慮3層BP神經網絡:輸出層,輸入層,隱含層。
(2) 每層節點數的確定
在精度確保的前提下,以隱含層節點數最少為目標。隱含層和很多因素有關,例如樣本數據的特點和轉換函數的型式、輸入與輸出節點數都有關系。
(3) 初始權值系數的確定
初始權值是在一定范疇的數隨機生成的,一般情況下,初始權值分布在0~1之間。在本文中,利用random隨機生成。
(4) 算法的確定:
[ω(t+1)=-η?Ε?ω+ω(t)] (1)
式中:[t]為學習次數;[η]取0.01~0.8。
(5) 結束條件
BP神經網絡算法的結束條件就是全局誤差降到可接受的范圍或者學習次數達到最大[3]。本文中只是應用遺傳算法進行BP神經網絡權值的優化,所以在本文中只控制其進化的次數,當進化次數達到最大時終止。
1.2 并行化思想
首先將數據模塊化,然后將這些數據模塊分給各個機器進行并行處理,他們之間處理的過程沒有關聯,所以在處理效率上會有很大提高。
并行化有兩種思路:一種是物理節點的并行化,即將網絡節點分布在不同的機器節點上進行計算;第二種是數據的并行化,每個計算節點都有一個完整的網絡,且網絡的初始狀態是一樣的[4]。并行化體現在進行訓練時,每個節點都是取一部分樣本數據進行BP神經網絡的訓練,計算節點內達到某個收斂要求后再進行匯總,匯總之后決定是否進行下一場迭代。
1.3 MRGA?BP算法描述
提出的MRGA?BP均值法算法的主體思路是:GA算法的Map階段,隨機產生[N]個個體,上傳到HDFS文件系統,讀入每個個體的值,每一個個體代表的是每一個BP網絡的權值,調用BP神經網絡算法,每個個體的輸入權值和每個樣本的值,進行BP神經算法,求出每個個體對應所有樣本的誤差和,這個誤差和稱為全局誤差值,全局誤差值作為GA遺傳算法Map階段的輸出值,Redcue階段的輸入值為Map的輸出值,計算每個個體的適應度,接著遺傳算法的選擇,交叉,變異等。經過數次迭代后,篩選出最優個體,輸出到HDFS文件,作為BP神經算法的初始權值。
1.4 MRGA?BP均值法算法原理
(1) MRGA?BP均值法描述
提出的MRGA?BP均值法,在BP神經網絡階段用map輸出的是每個樣本的所有權值變化量,然后將每個樣本所有權值的變化量輸出,在reduce階段,將所有樣本相對應的權值相加求出算數平均值,并且更新權值一次上傳到HDFS,之后再使用新的權值HDFS文件進行第二次迭代,將產生的權值上傳到HDFS[5]。迭代Hadoop作業,迭代結束的標志是迭代次數達到最大或者誤差在范圍內。
(2) BP神經網絡算法的MapReduce化
對BP神經算法的MapReduce過程,算法可以拆成三個過程:
第一個過程,訓練神經網絡。Map類調用map函數,接收數據樣本和權值樣本,開始訓練BP神經網絡,這個過程相當于三個大型矩陣在相乘,可以先讓兩個矩陣相乘,再和第三個矩陣相乘,Reduce最終生成一個實際計算出來的結果,作為輸出矩陣。
第二個過程,主要是為了將實際輸出結果和輸入的樣本進行合并,為第三個階段進行調整權值準備。
第三個過程,讀入第二階段生成的Text,計算每一個樣本所有權值的變化量。最終求出新的權值。
(3) GA遺傳算法的MapReduce化
應用GA遺傳算法優化神經網絡的權值。采用實數編碼,將BP神經網絡中的權值標記為“染色體”,適應度為誤差的倒數,接著選擇,交叉,變異,選出最優權值。GA算法MapReduce的流程圖如圖1所示。
Map階段讀取HDFS上的群體信息,計算每一個個體經過一次BP神經網絡迭代學習時所有樣本的學習全局誤差,作為Map的輸出[6]。Reduce階段的輸入是每個權值個體所對應的誤差,因為誤差計算比較復雜,所以將誤差值設定為全局變量,按照誤差,求出每個個體的適應度,適應度為誤差的倒數,適應度最高的個體不進行下邊的步驟。而剩下的個體,使用賭盤算法選擇、交叉、變異,選出一個最優個體。
1.5 基于云計算的入侵檢測流程
為了更好地在云環境下檢測入侵行為,提出了基于云平臺下的海量數據的入侵檢測系統,流程圖如圖2所示,具體的檢測過程如下:
(1) 將入侵檢測數據源以分布式的形式存儲到HDFS上;
(2) 將隨機產生的權值以分布式的形式存儲到HDFS上;
(3) 運用MapReduce GA開始BP神經網絡初始權值的優化,優化出較小的解空間,提高收斂率;
(4) 使用MapReduce GA優化數據源權值,用BP神經網絡計算出每一個權值對應的所有樣本的誤差和,作為GA遺傳算法的適應度函數的基礎;
(5) 將MapReduce GA遺傳算法優化完的權值作為訓練BP神經網絡的初始權值,開始MapReduce BP神經網絡訓練,訓練一定的次數,使樣本的誤差和達到人們所能接受的范圍之內,或者預設定的迭代次數[7];
(6) 訓練完成后,使用檢測樣本統計比較檢測結果[8]。
2 網絡入侵檢測系統設計與實現
2.1 系統的整體結構
提出的解決方案主要是針對當下海量數據,傳統的入侵檢測系統因為數據量大,不能快速、即時地進行檢測,而且由于數據量大,致使權值調整過程是一個巨大的程序運行過程,最終要使檢測率很低,通過使用本文提出的MRGA?BP均值法算法解決上述傳統入侵檢測的缺點。
基于云平臺的入侵檢測系統的檢測流程一般為:首先使用一些工具收集數據,再對收集到的數據源進行預處理,然后再使用基于Hadoop云平臺下的MRGA?BP均值法進行分析,根據已經訓練好的神經網絡預測改數據或者流量是否為正常行為,做出相應的預警,其流程見圖3。
2.2 數據源采集
在數據源獲取階段,常用的獲取數據源的部件是收發器、代理、適配器,獲取的數據源主要來自于主機、網絡、日志等。
2.3 數據源的預處理
由于數據預處理需要為后續進行入侵檢測分析提供數據源,因此它對整個過程影響極為關鍵。在本次研究中,后續的處理是在Hadoop平臺下BP神經網絡中完成的,在進行訓練時,需要特定的數據格式,因此在數據預處理階段要對數據進一步處理,轉換成BP神經網絡能夠處理的格式。在本階段,預處理的數據源直接保存到Hadoop的分布式文件系統中。
因此,對數據源的預處理過程為:首先將源數據去除多余的字段以及多余的格式;將處理好的數據源保存到HDFS中。
2.4 數據存儲
對于來自不同環境的數據源,可以將數據源先進行分類,在分類后的基礎上進行存儲,可以加快機器的運行速度。使用一個HBase分布式實時數據庫,HBase是面向列的多維排序key?value表,可以對其進行實時操作。使用HDFS分布式數據存儲,HDFS將數據放入集群中的每一個機器上,并且可以同時備份。
2.5 入侵檢測Hadoop平臺下MRGA?BP均值法
2.5.1 MRGA?BP均值法整體思路
在云平臺下的詳細流程圖如圖4所示。
(1) 先使用MapReduce GA算法實現對BP神經網絡訓練的初始權值的優化,將GA遺傳算法優化后的初始權值輸出到HDFS文件中,作為下一步神經網絡的初始權值。
(2) 使用預處理后的數據源,同時,輸入初始權值開始神經網絡的訓練。直到訓練結果的誤差達到預期值或者迭代次數已經達到預先設定的值。
(3) 輸入測試樣本,使用建立的BP神經網絡預測出結果,與期望結果進行對比,判斷檢測率、誤報率。
2.5.2 GA遺傳算法的MapReduce
因為GA遺傳算法是對初始值的優化,將其應用到入侵檢測領域就是對初始權值的優化,所以,要經過以下幾個步驟:
(1) 隨機生成初始權值,這個初始值的生成由函數random()生成,每一個初始的權值是種群中一個個體,生成一定數量的初始權值,稱為一個種群。
(2) 執行Map函數,使用隨機生成的初始權值計算種群中每個個體對應所有樣本的誤差,求和,誤差之和作為種群中每個個體的適應度倒數。
(3) 開始Reduce函數,通過Map輸出誤差,計算群體中每個個體的適應度fitness()。在Reduce()函數中,執行select(),cross(),muta()。到達最大迭代次數時停止。
2.5.3 BP神經網絡算法的MapReduce
利用BP神經算法是對神經網絡的訓練。它首先使用訓練樣本和MapReduce GA優化后的權值訓練網絡,開始BP神經網絡的多次訓練,BP神經網絡的訓練在Hadoop平臺下,相當于三個大型矩陣進行相乘,計算之后會得到樣本的計算結果,和原來初始的入侵檢測數據源形成一個新的HDFS文件,作為下一步進行MapReduce GA?BP均值法算法的輸入,由于GA算法只是對初始權值的一個大致的優化,所以利用BP神經網絡算法對權值進一步優化,讓樣本的誤差和取到人們可以接受的范圍,直到誤差達到設定的范圍內,或者是迭代次數達到最大時,停止訓練,之后再使用測試樣本,對樣本是否為入侵行為進行預測。
在本次研究中,以海量入侵檢測數據為數據源,經過預處理,保留對BP神經網絡訓練有益的數據屬性,將字符串過濾掉,利用MapReduceGA算法優化出來的數據源,通過分解出輸入分量和預期結果,開始多次BP神經網絡的訓練。訓練之后,將測試樣本的數據源進行預處理,預測出測試樣本的結果。
3 實驗與實驗結果分析
3.1 基于Eclipse的Hadoop程序開發環境
Hadoop平臺搭建好之后,在Ecliepse環境下能夠方便地開始Hadoop并行程序的開發和測試,將hadoop?1.2.1?eclipse?plugin.jar復制到eclipse\plugins中,啟動Eclipse。
在Eclipse界面下有一個Map/Reduce Location欄目,選擇New Hadoop location,在相應的位置設置Hadoop運行環境。驗證Hadoop環境配置是否成功,在瀏覽器的地址欄中輸入:http://localhost:50070,檢查namenode是否配置正確。
在瀏覽器輸入http://localhost:50030檢查9001端口是否正常。
創建一個MapReduce Project,在項目src創建Package,bpnetwork和ga,分別添加Mapper類,Reducer類以及MapReducer Driver類。
3.2 程序數據源說明
為了驗證本文提出的基于云計算平臺的入侵檢測算法MRGA?BP均值法的可行性,測試使用該算法的預測入侵檢測數據的精度,收斂速度,所以使用的測試數據和訓練數據源均為KDDCUP99。該數據集包含多種入侵行為和正常行為,該數據類似于云環境中的數據,具有一定的意義。本文中試驗檢測的數據源分為訓練樣本和測試樣本。
訓練樣本共有494 019個樣本記錄,正常行為97 276個,入侵行為396 743個。
設置實驗的參數如下:
(1) 輸入: KDDCUP99中每一個樣本共有38個屬性值參與計算。因為本文預測是否為入侵數據源,所以將數據源最后的預期結果根據是否是正常數據源設定為1和0兩個參數,0表示入侵檢測病毒,1為正常數據源。
輸入還有隨機產生的權值文件。當網絡訓練結束后,可以進行預測。預測樣本文件的處理和訓練樣本處理的方式一樣。
(2) 輸出:程序的輸出為網絡的權值。輸出還有預測結果。BP神經網絡算法中的參數說明如表1所示。
3.3 實驗結果與分析
實驗的目的是對比在Hadoop平臺下實現MapReduce BP神經網絡、MRGA?BP均值法,MRGA?BP三種實現運行效率和效果。
3.1.1 算法的收斂速度運行效率測試
對比項:MapReduceBP、MRGA?BP算法、本文提出的MRGA?BP均值法。
數據源:完整的數據集為708.2 MB,10%的KDDCUP99數據集(71.4MB)。
實驗驗證了本文提出的MRGA?BP均值法相比MRGA?BP在訓練速度上確實有提高,原因是MRGA?BP中間產生很多結果,這些結果放入到內存中,當超出內存容量,數據就會在磁盤中寫入臨時文件,在這個過程中,有很多I/O操作,此外,每一次的Map階段會輸出很多結果傳到Reduce端,這也是將時間延長的一個原因。根據以上分析,這兩個原因導致MRGA?BP算法耗時較長。
3.3.2 算法的訓練精度測試
對比項:MapReduce BP,MRGA?BP均值法
評價指標:
[檢測率=正確檢測樣本樣本總數]
[誤檢率=正確樣本檢測為異常樣本總數]
[漏報率=異常樣本檢測為正常樣本總數]
通過上述實驗,證明提到的MRGA?BP均值法和MapReduce BP以及MRGA?BP在學習速度上有很大提高。對于相同的數據源,MapReduce BP神經算法以及MRGA?BP均值法算法的比較結果證明GA?BP均值法在學習有效性方面也有較大的提高,同時也證明了本文的MRGA?BP算法的可行性。最終結果表明,該算法在執行的時間上也有提高,同時和MapReduce BP相比具有更高的檢測率。
4 結 論
本文提出了MRGA?BP均值法作為入侵檢測算法的核心,該算法采用并行化思想,首先利用遺傳算法尋找最優的權值,尋找到最優權值后開始進行神經網絡的訓練,整個過程采用分布式計算平臺Hadoop框架,將遺傳算法和神經網絡算法在云計算平臺下實現,同時將算法進行改進,在入侵檢測的效率和精度上有所提升。
參考文獻
[1] 顏謙和,顏珍平.遺傳算法優化的神經網絡入侵檢測系統[J].計算機仿真,2011,28(4):141?144.
[2] 胡宏,陳彥萍.基于隨機森林算法的混合入侵檢測系統研究[J].西安文理學院學報(自然科學版),2013,16(3):68?71.
[3] 王杰,李冬梅.數據挖掘在網絡入侵檢測系統中的應用[J].重慶工學院學報(自然科學版),2008,22(8):135?138.
[4] 陳真.Hadoop云平臺的入侵檢測系統優化設計[J].西安工業大學學報,2012,32(9):716?722.
[5] 張新有,曾華燊,賈磊.入侵檢測數據集KDDCUP99研究[J].計算機工程與設計,2010,31(22):4809?4812.
[6] 陳英和,慕德芳,郝嘉佳.有效測量元認知監控的新方法:Master Mind任務分析[J].心理科學,2011(3):750?754.
[7] 李軍華,黎明,袁麗華.基于個體相似度交叉率自適應的遺傳算法[J].系統工程,2006,24(9):108?111.
[8] 孫勝永,胡雙演,李釗,等.基于粒子群優化算法的BP神經網絡圖像復原[J].無線電工程,2014(10):5?7.