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