胡津銘,張 艷,陸 臻,周嵩岑
(公安部第三研究所,上海 200031)
伴隨著互聯網技術的不斷發展,新型網絡應用越來越多,與此同時,互聯網的開放性也導致了各式各樣安全隱患的出現,給人民的財產安全造成嚴重的威脅[1]。入侵檢測系統( Intrusion detection system, IDS)作為防火墻后的第二道防線,通過收集和分析網絡中關鍵節點信息,對非法操作進行識別和告警[2]。然而,IDS普遍缺乏主動防御能力,當IDS檢測到攻擊行為時,被保護的網絡已經受到了攻擊,重要數據存在被泄露的可能。因此,僅僅依靠傳統的入侵檢測技術,已經無法很好地對網絡內重要數據進行保護[3]。
入侵防御系統(Intrusion prevention system, IPS)作為一種主動防御技術,可以通過對網絡端口接收到的數據包進行分析, 發現已知和未知攻擊進而防止攻擊事件的發生[4]。 入侵預測作為IPS的核心,直接影響到IPS攻擊防御的性能。文獻[5]中利用徑向基函數( Radial basis function,RBF)神經網絡的局部逼近特性,提出了一種基于RBF神經網絡的入侵預測模型。然而,RBF神經網絡的預測精度很大程度上依賴于隱含層基函數的中心選擇,且當數據不充足時無法工作。文獻[6]提出一種利用BP神經網絡進行網絡安全態勢預測的算法,然而,BP神經網絡存在著不易收斂且容易陷入局部極小的缺點。文獻[7]中提出利用支持向量機(Support vector machine,SVM)模型進行網絡入侵預測,然而SVM不具有記憶能力,對于大規模訓練樣本難以實施,在入侵預測領域應用并不廣泛。
對于IPS而言,如何提高預測精度、降低誤報率是一個挑戰。為解決這個問題,本文提出一種基于改進的小波神經網絡入侵預測算法,通過在傳統小波神經網絡參數修正過程中添加動量項,提高傳統小波神經網絡的學習效率,從而提高網絡入侵的預測精度。
人工神經網絡(Artificial neural network, ANN)是一種模擬人腦活動特征的非線性信息處理系統。小波神經網絡(Wavelet neural network,WNN)是一種將小波分析與ANN相結合,信號前向傳播的同時誤差反向傳播的神經網絡。WNN的基本結構包括輸入層、隱含層和輸出層,其中,隱含層的激活函數為小波基函數[8]。WNN的拓撲結構如圖1所示。

圖1 小波神經網絡拓撲結構
假設在WNN中,輸入層、隱含層以及輸出層神經元數目分別為m、h和n,則輸入數據向量可以表示為
x=[x1,x2,…,xm]T
(1)
在WNN的隱含層神經元中,激活函數為Morlet母小波基函數,其表達式為
φ(x)=cos(1.75x)e-x2/2
(2)
基 于此,WNN中隱含層神經元j的輸出為[9]

(3)
其中,wij表示輸入層神經元i與隱含層神經元j之間的連接權值,aj和bj分別表示隱含層神經元j中Morlet小波基函數的伸縮因子和平移因子。
WNN中輸出層神經元k的輸出如下

(4)
其中,wjk表示隱含層神經元j與輸出層神經元k之間的連接權值。
在WNN訓練過程中,預測誤差表達式為:

(5)
其中y′(k)表示實際數據。
在傳統WNN的訓練過程中,通常采用梯度下降法對網絡參數wij、wjk以及小波基函數參數aj、bj進行修正,以使預測誤差error達到預設的誤差精度,參數修正公式如下所示[9]

(6)

(7)

(8)

(9)
其中u和η分別表示wij、wjk以及aj、bj的學習速率。
然而,梯度下降法有收斂速度慢且容易陷入局部最小的缺點。因此,本文提出一種改進的小波神經網絡(Modified wavelet neural network,MWNN)模型,通過在傳統WNN訓練過程中增加動量因子,使得神經網絡在進行參數修正時不僅僅考慮誤差對于梯度的影響,而且考慮了誤差面變化趨勢的影響。在MWNN中,增加動量項后的權值和參數修正公式為

(10)

(11)

(12)

(13)
其中,α∈(0,1)為動量調整因子。
如圖2所示,基于MWNN的入侵預測算法主要分為兩部分,第一部分利用訓練數據對MWNN的權值參數和小波基函數參數進行修正,以使得MWNN的預測精度滿足目標精度;第二部分利用測試數據對MWNN進行驗證,確認完成訓練后的MWNN滿足預測精度要求。

圖2 MWNN網絡入侵預測算法流程
基于MWNN的入侵預測算法具體步驟如下:
1) 數據預處理:對所選數據集中非數值屬性進行轉化,并對數據進行歸一化處理,使其便于處理和分析;
2) 網絡初始化:初始化小波基函數參數aj和bj,網絡連接權值wij和wjk,學習速率u和η,動量調整因子;
3) 樣本分類:將數據集分為訓練數據集和測試數據集,分別用于神經網絡訓練和測試;
4)網絡訓練:利用訓練樣本對MWNN進行訓練,計算MWNN的預測輸出和誤差error;
5)參數修正:根據式(10)、(11)、(12)和(13)對網絡權值和小波函數參數進行修正,使得MWNN預測誤差逼近設定精度;
6) 判斷是否達到設定的目標誤差精度或最大迭代次數,如果滿足,算法結束,否則,返回步驟5);
7) 利用測試數據驗證構建的MWNN滿足目標預測精度。
入侵檢測實驗中,通常采用由美國麻省理工學院林肯實驗室提供KD99數據集,其所有數據均來自對互聯網進行模擬真實攻擊得到[10]。由于KD99中有大量冗余記錄,本文實驗采用NSL-KDD數據集,相比于KDD99數據集,其去除了KD99數據集中的部分冗余信息,能更好的反應模型對于未知數據的識別能力[11]。
NSL-KDD數據集中每條數據包含41個屬性(特征)值和1個標識類別的標簽值,該標簽值標記正常(normal)數據和四大類攻擊類型數據,每大類攻擊型數據包括不同的攻擊子類,具體如下表1所示:

表1 攻擊類別劃分
NSL-KDD數據集樣本數據如下所示:
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。
可以看到,數據42個屬性中,第2、3、4和42維為非數值屬性,計算機無法直接處理,需要進行如下數據編碼轉化:
協議類型(protocol_type):利用數字1~3分別對tcp、udp、icmp進行編碼;
網絡服務類型(service):利用數字1~70分別對70中服務類型進行編碼;
連接狀態(flag):利用數字1~11分別對11種狀態(flag=SF表示連接正常,flag=S0或其它表示連接不正常)進行編碼;
狀態:利用數字1~5分別對包括normal和四種攻擊類型在內的五種狀態進行編碼。
此外,由于NSL-KDD數據集中數據取值分布差異較大且數據單位不同,為了方便處理,本文通過歸一化的方式將數據轉化為[0,1]內的無量綱數據,歸一化公式如下:
δ′=(δ-δ_Min)/(δ_Max-δ_Min)
(14)
其中,δ表示歸一化前數值,δ′表示歸一化后數值,δ_Max、δ_Min則分別表示樣本數據中的最小和最大值。
為了驗證本文所提MWNN入侵預測模型的性能,選取檢測率和誤報率作為評價標準,表達式如下所示:

(15)

(16)
對于MWNN,采用40-6-1的網絡結構,即輸入層有40個輸入節點,隱含層有9個節點,輸出層1個節點。最大迭代次數和目標誤差精度分別設置為100和10-2,學習速率u和η分別設置為0.01和0.001,動量調整因子α設置為0.95。
實驗中,對經過預處理后的NSL-KDD數據集進行整理,分成訓練數據集和測試數據集,每組數據中正常數據與四種攻擊類型數據按3:1:2:3:1的比例組合,前四組作為訓練數據集對神經網絡進行訓練,后一組數據作為測試數據集對訓練完成的神經網絡進行驗證。表2所示為所建立MWNN預測模型對四大類攻擊數據的檢測率和誤報率。

表2 攻擊類型檢測結果
從表2中可以看出,MWNN對于四種攻擊類型均具有較高的檢測率和較低的誤報率,平均檢測率達到96.1%,平均誤報率僅為0.9%。
為驗證本文所提MWNN預測模型相對于傳統WNN在檢測性能上的改進,利用測試數據集進行測試,結果如下表3所示:

表3 MWNN和WNN檢測結果對比
從表3中可以看出,無論是檢測率還是誤報率,本文所提MWNN均要優于傳統的WNN,這也證明了本文所提改進的小波神經網絡模型在網絡入侵預測方面的有效性。
本文提出一種改進的小波神經網絡入侵預測模型,通過在傳統WNN訓練過程中增加動量項,克服傳統WNN收斂速度慢且容易陷入局部最小的缺點。仿真結果表明,本文所提 MWNN入侵預測模型,無論在檢測率還是誤報率方面,均優于傳統的 WNN,可以獲得較好的攻擊預測精度,能夠更加優化IPS的性能。