陳 熹,朱燦焰
(蘇州大學電子信息學院,江蘇 蘇州 215021)
隨著因特網的快速發(fā)展,網絡數據流量不斷增長,網絡安全風險系數也不斷提高,除了傳統的防火墻、加密認證系統等安全工具之外,入侵檢測系統作為防御網絡攻擊的手段已經得到廣泛的研究與應用。入侵檢測系統是對企圖入侵、正在進行的入侵或者已經發(fā)生的入侵的進行識別的過程[1]。入侵檢測的數據源通常都是海量的高維數據,包含幾十個特征,這使分類速度非常緩慢,因此,需要進行特征提取以消除特征之間的冗余。目前,特征提取主要采用的方法有主成分分析(PCA,Principle Component Analysis)[2]、核主成分分析(KPCA)、和非線性成分分析方法等。入侵檢測中常用的分類算法有基于概率統計的貝葉斯分類器[3]、判別函數分類器、粗糙集分類器等。
這里采用了主成分分析的特征提取方法,并將其運用于BP算法和Kohonen算法的入侵檢測中,重點考察主成分分析對這兩種算法訓練時間和檢測效果的影響。
主成分分析就是設法將原來眾多具有一定相關性的指標(比如p個指標),重新組成一組新的相互無關的綜合指標來代替原來的指標,達到降維的目的[4]。設共有n個樣本,每個樣本有p個特征,則總樣本矩陣可用p個列向量表示:X = ( X ,X ,… ,X )T,設:
1 2p
其中 Fi是 X1, X2,… ,Xp的一切線性組合(系數滿足上述方程組)。這里先求 F1,設:
求主成分就是尋找 X的線性函數 aTX使相應的方差盡可能的大,即使 Var(F1)=Var(aTX)=E(aTX XTa)=aTE( X XT)a達到最大值,且 aTa=1。令 W= E( X XT),則
設 W 的 特 征 根 為 λ1,λ2,…,λp,不 妨 假 設,相對應的單位特征向量為 u1,u2,… up。由于,因此:
可以證明[5],當a=1u時使Var(1F)達到最大值。
第i個主分量的貢獻率定義為:
而前m個主分量的累計貢獻率定義為[6]:
若 F1無法足夠多的代表原始數據時,主要體現在其主分量貢獻率未達到一定要求的情況下,需要進一步提取其它的主成分,即需要進一步得到由X1, X2,… ,Xp線性組合形成的 Fii=2,…,p。此時的得出的 Fi必須滿足:
①與之前得出的所有主成分分量jF(j < i)線性無關。
②方差最大。
與推出1F的原理類似,可得出以下的結論:當a=2u時使2F滿足上述要求,當a=pu時使pF滿足上述要求。
在解決實際問題時,當滿足累計貢獻率達到一定的要求(本實驗取90%)的m的值就是所要提取的用來代替原始數據進行分析研究的主成分分量的個數,一般情況下m<p,這樣就達到降低位數的目的。
BP神經網絡一般采用的是3層結構:輸入層、隱層和輸出層[7],如圖1所示。BP算法由2部分組成:學習信號的正向傳播與誤差的反向傳播。正向傳播時,輸入樣本從輸入層輸入,經各隱層逐層計算,最后傳向輸出層。若輸出層的實際輸出與期望輸出不符,則計算輸出層的誤差變化值,然后轉入誤差的反向傳播階段。在反向傳播階段,輸出誤差以某種形式經過隱層向輸入層反傳,并修改各層神經元的權值。正向傳播和反向傳播這兩個過程將一直延續(xù)下去,直到網絡的輸出達到期望目標。
下面是對BP神經網絡算法的簡單描述:
①輸入層到隱層之間的權值矩陣用V表示,隱層到輸出層之間的權值用W表示,誤差為E,最小誤差為minE ,學習率為η,初始化V,W,E,minE 和η。
②設經過PCA特征提取后的樣本為Z,,計算輸入樣本Z在隱層輸出向量P和在輸出層輸出的向量T。
③計算輸出誤差E,若E<minE ,算法結束,否則繼續(xù)執(zhí)行。
④根據計算的結果,采用梯度下降算法,調整權值矩陣V和W,取下一個樣本轉步驟②。
由于BP算法采用的是梯度下降算法調整權值向量,存在學習效率低,收斂速度慢,易陷入局部極小狀態(tài)的缺點[8],本文采用Levenberg-Marquardt 算法對原BP算法進行改進。
圖1 BP神經網絡結構
Kohonen網絡是由輸入層和競爭層組成的單層神經網絡。神經網絡的輸入層神經元數目和輸入樣本向量的維數一致。神經網絡的競爭層也叫輸出層,競爭層節(jié)點呈二維陣列分布。Kohonen算法神經網絡的原理為:在網絡訓練階段,當輸入樣本時,計算輸入樣本和競爭層神經元權值之間的歐幾里德距離,距離最小的競爭層神經元為獲勝神經元。調整獲勝神經元和相鄰神經元權值,使相鄰的神經元獲得不同程度的興奮,調整力度依鄰域內各神經元距獲勝神經元的遠近而逐漸衰減。通過大量訓練調整網絡的權值,最后使競爭層各神經元對特定模式類敏感的神經細胞。Kohonen網絡訓練步驟如下:
①設輸入層節(jié)點數為m,競爭層節(jié)點數為n,連接權值為wij(i=1,2,…,m;j=1,2,…,n)。初始化權值矩陣 wij。
②計算輸入向量 X=( x1, x2, …,xn)與競爭層神經元j之間的距離 dj:
選擇與輸入向量 X距離最小的競爭層神經元*j為獲勝神經元。
③定義優(yōu)勝鄰域 Nj*(t),t為訓練次數。以 j*為中心確定t時刻的權值調整域,訓練過程中 Nj*(t)隨訓練時間逐漸收縮。
④調整權值。對優(yōu)勝鄰域Nj*(t)內的所有神經元調整權值
式(7)中,η為學習速率,一般隨訓練次數的增加而減小。
⑤判斷η是否衰減到零或某個預定的正小數,滿足則訓練結束,否則回到步驟②。
實驗的大致流程如圖 1所示。研究采用的入侵檢測樣本來自 KDD CUP’99數據集。該數據集是數據集是由 MIT的Lincoln實驗室提供的模擬軍事網絡環(huán)境中記錄的7個星期的網絡流量和主機系統調用記錄日志,是數據挖掘領域的經典數據集。由于該數據集中的數據采用的是Tcpdump的格式,所以要對原始數據進行預處理,以便進行特征提取和被神經網絡識別。KDD CUP’99數據集中共包含 22種攻擊,本實驗選取其中有代表性的3種攻擊作為研究對象,3種攻擊類型分別為:neptune、smurf、portsweep。
圖2 入侵檢測流程
將預處理的數據分為訓練數據和測試數據,本實驗取2 000條正常數據和 1 000條某種攻擊的數據作為訓練樣本,取1 000條正常數據和200條某種攻擊的數據作為測試樣本。另外,還要根據訓練樣本構造出BP神經網絡的期望輸出樣本。實驗中硬件環(huán)境采用2.0 G奔騰雙核處理器,2 G內存,軟件環(huán)境為操作系統為 Windows XP,實驗軟件為Matlab7.5。
本實驗對3種攻擊用4種方法進行檢測,其檢測結果如表1、表2、表3和表4所示。從表1和表2中可以看出,基于PCA的 BP算法的檢測率與未經過PCA處理的BP算法相當,但誤報率比其高。從訓練時間上看,基于PCA的BP算法比未經過PCA處理的BP算法減少了50%以上,從檢測時間上看,基于PCA的BP算法比未經過PCA處理的BP算法減少了約30%左右。原因是PCA算法在保留原有信息的基礎上,減小了原來樣本的特征維數,從而減小了 BP神經網絡的計算量和計算時間。
對比表3和表4可以看到,與未經過PCA的Kohonen算法相比,基于PCA的Kohonen算法的雖然訓練時間和檢測時間略有減少,但檢測率很低,誤報率較高。由此可見將PCA應用于Kohonen網絡不能起到很好的檢測結果。
對比表1、表2和表3可以看到,基于PCA的BP算法要明顯好于Kohonen算法,因此對于這3種攻擊來說,基于PCA的BP算法可以達到很好的識別效果,且訓練速度和檢測速度也明顯提高。
表格1 未經過PCA的BP算法實驗結果
表格2 基于PCA的BP算法實驗結果
表格3 未經過PCA的Kohonen算法實驗結果
表格4 基于PCA的Kohonen算法
將BP神經網絡和Konhenon網絡應用于入侵檢測中,并采取主成分分析的特征提取算法與神經網絡結合,目的是減小數據的計算量。實驗研究表明,將PCA技術與Kohonen網絡結合的方法不能很好的應用在入侵檢測中,相比較而言,基于PCA的BP算法不僅在檢測效果上達到很好的效果,而且能大大提高訓練速度和檢測速度。
[1] 唐正軍,李建華. 入侵檢測技術[M]. 北京:清華大學出版社,2004:6-7.
[2] JOLLIFFE I T. Principal Component Analysis[M]. New York:Springer Verlag, 1986:150-153.
[3] 蓋江偉,趙擁軍,金美娜. 基于PCA網絡的快速子空間分解及其維數估計[J]. 通信技術,2009,42(01):52-53.
[4] KRUEGEL C, MUTZ D, ROBERTSON W. Bayesian Event Classification for Intrusion Detection[C]. USA: Las Vegas, 2003:8-12.
[5] 徐長棣,劉愛芳. 基于P2P和移動代理的入侵檢測系統研究[J].計算機技術與發(fā)展,2007,17(01):164-165.
[6] 謝 蕾,謝 華.基于主成分分析的實時網絡入侵檢測仿真[J]. 微計算機信息,2010,26(6-1):166.
[7] 韓力群. 人工神經網絡教程[M]. 北京: 北京郵電大學出版社,2006:58-59.
[8] 傅德勝,張媛. PSO優(yōu)化神經網絡入侵檢測模型[J]. 通信技術,2010,43(01):81-82.