胡津銘,張 艷,陸 臻,周嵩岑
(公安部第三研究所,上海 200031)
伴隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,新型網(wǎng)絡(luò)應(yīng)用越來(lái)越多,與此同時(shí),互聯(lián)網(wǎng)的開(kāi)放性也導(dǎo)致了各式各樣安全隱患的出現(xiàn),給人民的財(cái)產(chǎn)安全造成嚴(yán)重的威脅[1]。入侵檢測(cè)系統(tǒng)( Intrusion detection system, IDS)作為防火墻后的第二道防線,通過(guò)收集和分析網(wǎng)絡(luò)中關(guān)鍵節(jié)點(diǎn)信息,對(duì)非法操作進(jìn)行識(shí)別和告警[2]。然而,IDS普遍缺乏主動(dòng)防御能力,當(dāng)IDS檢測(cè)到攻擊行為時(shí),被保護(hù)的網(wǎng)絡(luò)已經(jīng)受到了攻擊,重要數(shù)據(jù)存在被泄露的可能。因此,僅僅依靠傳統(tǒng)的入侵檢測(cè)技術(shù),已經(jīng)無(wú)法很好地對(duì)網(wǎng)絡(luò)內(nèi)重要數(shù)據(jù)進(jìn)行保護(hù)[3]。
入侵防御系統(tǒng)(Intrusion prevention system, IPS)作為一種主動(dòng)防御技術(shù),可以通過(guò)對(duì)網(wǎng)絡(luò)端口接收到的數(shù)據(jù)包進(jìn)行分析, 發(fā)現(xiàn)已知和未知攻擊進(jìn)而防止攻擊事件的發(fā)生[4]。 入侵預(yù)測(cè)作為IPS的核心,直接影響到IPS攻擊防御的性能。文獻(xiàn)[5]中利用徑向基函數(shù)( Radial basis function,RBF)神經(jīng)網(wǎng)絡(luò)的局部逼近特性,提出了一種基于RBF神經(jīng)網(wǎng)絡(luò)的入侵預(yù)測(cè)模型。然而,RBF神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)精度很大程度上依賴于隱含層基函數(shù)的中心選擇,且當(dāng)數(shù)據(jù)不充足時(shí)無(wú)法工作。文獻(xiàn)[6]提出一種利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行網(wǎng)絡(luò)安全態(tài)勢(shì)預(yù)測(cè)的算法,然而,BP神經(jīng)網(wǎng)絡(luò)存在著不易收斂且容易陷入局部極小的缺點(diǎn)。文獻(xiàn)[7]中提出利用支持向量機(jī)(Support vector machine,SVM)模型進(jìn)行網(wǎng)絡(luò)入侵預(yù)測(cè),然而SVM不具有記憶能力,對(duì)于大規(guī)模訓(xùn)練樣本難以實(shí)施,在入侵預(yù)測(cè)領(lǐng)域應(yīng)用并不廣泛。
對(duì)于IPS而言,如何提高預(yù)測(cè)精度、降低誤報(bào)率是一個(gè)挑戰(zhàn)。為解決這個(gè)問(wèn)題,本文提出一種基于改進(jìn)的小波神經(jīng)網(wǎng)絡(luò)入侵預(yù)測(cè)算法,通過(guò)在傳統(tǒng)小波神經(jīng)網(wǎng)絡(luò)參數(shù)修正過(guò)程中添加動(dòng)量項(xiàng),提高傳統(tǒng)小波神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)效率,從而提高網(wǎng)絡(luò)入侵的預(yù)測(cè)精度。
人工神經(jīng)網(wǎng)絡(luò)(Artificial neural network, ANN)是一種模擬人腦活動(dòng)特征的非線性信息處理系統(tǒng)。小波神經(jīng)網(wǎng)絡(luò)(Wavelet neural network,WNN)是一種將小波分析與ANN相結(jié)合,信號(hào)前向傳播的同時(shí)誤差反向傳播的神經(jīng)網(wǎng)絡(luò)。WNN的基本結(jié)構(gòu)包括輸入層、隱含層和輸出層,其中,隱含層的激活函數(shù)為小波基函數(shù)[8]。WNN的拓?fù)浣Y(jié)構(gòu)如圖1所示。
圖1 小波神經(jīng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
假設(shè)在WNN中,輸入層、隱含層以及輸出層神經(jīng)元數(shù)目分別為m、h和n,則輸入數(shù)據(jù)向量可以表示為
x=[x1,x2,…,xm]T
(1)
在WNN的隱含層神經(jīng)元中,激活函數(shù)為Morlet母小波基函數(shù),其表達(dá)式為
φ(x)=cos(1.75x)e-x2/2
(2)
基 于此,WNN中隱含層神經(jīng)元j的輸出為[9]
(3)
其中,wij表示輸入層神經(jīng)元i與隱含層神經(jīng)元j之間的連接權(quán)值,aj和bj分別表示隱含層神經(jīng)元j中Morlet小波基函數(shù)的伸縮因子和平移因子。
WNN中輸出層神經(jīng)元k的輸出如下
(4)
其中,wjk表示隱含層神經(jīng)元j與輸出層神經(jīng)元k之間的連接權(quán)值。
在WNN訓(xùn)練過(guò)程中,預(yù)測(cè)誤差表達(dá)式為:
(5)
其中y′(k)表示實(shí)際數(shù)據(jù)。
在傳統(tǒng)WNN的訓(xùn)練過(guò)程中,通常采用梯度下降法對(duì)網(wǎng)絡(luò)參數(shù)wij、wjk以及小波基函數(shù)參數(shù)aj、bj進(jìn)行修正,以使預(yù)測(cè)誤差error達(dá)到預(yù)設(shè)的誤差精度,參數(shù)修正公式如下所示[9]
(6)
(7)
(8)
(9)
其中u和η分別表示wij、wjk以及aj、bj的學(xué)習(xí)速率。
然而,梯度下降法有收斂速度慢且容易陷入局部最小的缺點(diǎn)。因此,本文提出一種改進(jìn)的小波神經(jīng)網(wǎng)絡(luò)(Modified wavelet neural network,MWNN)模型,通過(guò)在傳統(tǒng)WNN訓(xùn)練過(guò)程中增加動(dòng)量因子,使得神經(jīng)網(wǎng)絡(luò)在進(jìn)行參數(shù)修正時(shí)不僅僅考慮誤差對(duì)于梯度的影響,而且考慮了誤差面變化趨勢(shì)的影響。在MWNN中,增加動(dòng)量項(xiàng)后的權(quán)值和參數(shù)修正公式為
(10)
(11)
(12)
(13)
其中,α∈(0,1)為動(dòng)量調(diào)整因子。
如圖2所示,基于MWNN的入侵預(yù)測(cè)算法主要分為兩部分,第一部分利用訓(xùn)練數(shù)據(jù)對(duì)MWNN的權(quán)值參數(shù)和小波基函數(shù)參數(shù)進(jìn)行修正,以使得MWNN的預(yù)測(cè)精度滿足目標(biāo)精度;第二部分利用測(cè)試數(shù)據(jù)對(duì)MWNN進(jìn)行驗(yàn)證,確認(rèn)完成訓(xùn)練后的MWNN滿足預(yù)測(cè)精度要求。
圖2 MWNN網(wǎng)絡(luò)入侵預(yù)測(cè)算法流程
基于MWNN的入侵預(yù)測(cè)算法具體步驟如下:
1) 數(shù)據(jù)預(yù)處理:對(duì)所選數(shù)據(jù)集中非數(shù)值屬性進(jìn)行轉(zhuǎn)化,并對(duì)數(shù)據(jù)進(jìn)行歸一化處理,使其便于處理和分析;
2) 網(wǎng)絡(luò)初始化:初始化小波基函數(shù)參數(shù)aj和bj,網(wǎng)絡(luò)連接權(quán)值wij和wjk,學(xué)習(xí)速率u和η,動(dòng)量調(diào)整因子;
3) 樣本分類:將數(shù)據(jù)集分為訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集,分別用于神經(jīng)網(wǎng)絡(luò)訓(xùn)練和測(cè)試;
4)網(wǎng)絡(luò)訓(xùn)練:利用訓(xùn)練樣本對(duì)MWNN進(jìn)行訓(xùn)練,計(jì)算MWNN的預(yù)測(cè)輸出和誤差error;
5)參數(shù)修正:根據(jù)式(10)、(11)、(12)和(13)對(duì)網(wǎng)絡(luò)權(quán)值和小波函數(shù)參數(shù)進(jìn)行修正,使得MWNN預(yù)測(cè)誤差逼近設(shè)定精度;
6) 判斷是否達(dá)到設(shè)定的目標(biāo)誤差精度或最大迭代次數(shù),如果滿足,算法結(jié)束,否則,返回步驟5);
7) 利用測(cè)試數(shù)據(jù)驗(yàn)證構(gòu)建的MWNN滿足目標(biāo)預(yù)測(cè)精度。
入侵檢測(cè)實(shí)驗(yàn)中,通常采用由美國(guó)麻省理工學(xué)院林肯實(shí)驗(yàn)室提供KD99數(shù)據(jù)集,其所有數(shù)據(jù)均來(lái)自對(duì)互聯(lián)網(wǎng)進(jìn)行模擬真實(shí)攻擊得到[10]。由于KD99中有大量冗余記錄,本文實(shí)驗(yàn)采用NSL-KDD數(shù)據(jù)集,相比于KDD99數(shù)據(jù)集,其去除了KD99數(shù)據(jù)集中的部分冗余信息,能更好的反應(yīng)模型對(duì)于未知數(shù)據(jù)的識(shí)別能力[11]。
NSL-KDD數(shù)據(jù)集中每條數(shù)據(jù)包含41個(gè)屬性(特征)值和1個(gè)標(biāo)識(shí)類別的標(biāo)簽值,該標(biāo)簽值標(biāo)記正常(normal)數(shù)據(jù)和四大類攻擊類型數(shù)據(jù),每大類攻擊型數(shù)據(jù)包括不同的攻擊子類,具體如下表1所示:
表1 攻擊類別劃分
NSL-KDD數(shù)據(jù)集樣本數(shù)據(jù)如下所示:
20,tcp,smtp,SF,2310,328,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,3,0,0,0,0,1,0,1,255,157,0.62,0.02,0,0,0,0,0,0,normal
0,tcp,ftp_data,S0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,258,17,1,1,0,0,0,07,0.05,0,255,5,0.02,0.07,0,0,1,1,0,0,neptune。
可以看到,數(shù)據(jù)42個(gè)屬性中,第2、3、4和42維為非數(shù)值屬性,計(jì)算機(jī)無(wú)法直接處理,需要進(jìn)行如下數(shù)據(jù)編碼轉(zhuǎn)化:
協(xié)議類型(protocol_type):利用數(shù)字1~3分別對(duì)tcp、udp、icmp進(jìn)行編碼;
網(wǎng)絡(luò)服務(wù)類型(service):利用數(shù)字1~70分別對(duì)70中服務(wù)類型進(jìn)行編碼;
連接狀態(tài)(flag):利用數(shù)字1~11分別對(duì)11種狀態(tài)(flag=SF表示連接正常,flag=S0或其它表示連接不正常)進(jìn)行編碼;
狀態(tài):利用數(shù)字1~5分別對(duì)包括normal和四種攻擊類型在內(nèi)的五種狀態(tài)進(jìn)行編碼。
此外,由于NSL-KDD數(shù)據(jù)集中數(shù)據(jù)取值分布差異較大且數(shù)據(jù)單位不同,為了方便處理,本文通過(guò)歸一化的方式將數(shù)據(jù)轉(zhuǎn)化為[0,1]內(nèi)的無(wú)量綱數(shù)據(jù),歸一化公式如下:
δ′=(δ-δ_Min)/(δ_Max-δ_Min)
(14)
其中,δ表示歸一化前數(shù)值,δ′表示歸一化后數(shù)值,δ_Max、δ_Min則分別表示樣本數(shù)據(jù)中的最小和最大值。
為了驗(yàn)證本文所提MWNN入侵預(yù)測(cè)模型的性能,選取檢測(cè)率和誤報(bào)率作為評(píng)價(jià)標(biāo)準(zhǔn),表達(dá)式如下所示:
(15)
(16)
對(duì)于MWNN,采用40-6-1的網(wǎng)絡(luò)結(jié)構(gòu),即輸入層有40個(gè)輸入節(jié)點(diǎn),隱含層有9個(gè)節(jié)點(diǎn),輸出層1個(gè)節(jié)點(diǎn)。最大迭代次數(shù)和目標(biāo)誤差精度分別設(shè)置為100和10-2,學(xué)習(xí)速率u和η分別設(shè)置為0.01和0.001,動(dòng)量調(diào)整因子α設(shè)置為0.95。
實(shí)驗(yàn)中,對(duì)經(jīng)過(guò)預(yù)處理后的NSL-KDD數(shù)據(jù)集進(jìn)行整理,分成訓(xùn)練數(shù)據(jù)集和測(cè)試數(shù)據(jù)集,每組數(shù)據(jù)中正常數(shù)據(jù)與四種攻擊類型數(shù)據(jù)按3:1:2:3:1的比例組合,前四組作為訓(xùn)練數(shù)據(jù)集對(duì)神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,后一組數(shù)據(jù)作為測(cè)試數(shù)據(jù)集對(duì)訓(xùn)練完成的神經(jīng)網(wǎng)絡(luò)進(jìn)行驗(yàn)證。表2所示為所建立MWNN預(yù)測(cè)模型對(duì)四大類攻擊數(shù)據(jù)的檢測(cè)率和誤報(bào)率。
表2 攻擊類型檢測(cè)結(jié)果
從表2中可以看出,MWNN對(duì)于四種攻擊類型均具有較高的檢測(cè)率和較低的誤報(bào)率,平均檢測(cè)率達(dá)到96.1%,平均誤報(bào)率僅為0.9%。
為驗(yàn)證本文所提MWNN預(yù)測(cè)模型相對(duì)于傳統(tǒng)WNN在檢測(cè)性能上的改進(jìn),利用測(cè)試數(shù)據(jù)集進(jìn)行測(cè)試,結(jié)果如下表3所示:
表3 MWNN和WNN檢測(cè)結(jié)果對(duì)比
從表3中可以看出,無(wú)論是檢測(cè)率還是誤報(bào)率,本文所提MWNN均要優(yōu)于傳統(tǒng)的WNN,這也證明了本文所提改進(jìn)的小波神經(jīng)網(wǎng)絡(luò)模型在網(wǎng)絡(luò)入侵預(yù)測(cè)方面的有效性。
本文提出一種改進(jìn)的小波神經(jīng)網(wǎng)絡(luò)入侵預(yù)測(cè)模型,通過(guò)在傳統(tǒng)WNN訓(xùn)練過(guò)程中增加動(dòng)量項(xiàng),克服傳統(tǒng)WNN收斂速度慢且容易陷入局部最小的缺點(diǎn)。仿真結(jié)果表明,本文所提 MWNN入侵預(yù)測(cè)模型,無(wú)論在檢測(cè)率還是誤報(bào)率方面,均優(yōu)于傳統(tǒng)的 WNN,可以獲得較好的攻擊預(yù)測(cè)精度,能夠更加優(yōu)化IPS的性能。