余森, 趙冉
(河南工業職業技術學院 1. 教務處; 2. 人事處, 南陽 473000)
隨著網絡技術的不斷發展,越來越多的人選擇使用互聯網,尤其是我國互聯網絡的用戶數量增長速度更快,同時網絡安全問題也隨之而來,人們從各個層次構建網絡安全防范措施[1]。如數據包加密、訪問認證、入侵檢測等,其中數據包加密、訪問認證屬于被動防御,可以檢測、攔截大多數入侵行為,但是無法檢測、攔截網絡系統內部的入侵行為,網絡入侵檢測可以對網絡系統的信息進行分析,可以對系統內部的入侵行為進行檢測,因此相對于數據包加密、訪問認證,入侵檢測可以更加有效的保證網絡安全,因此成為當前網絡安全管理領域中的主要研究內容[2]。
到目前為止,許多專家和學者對網絡安全管理問題進行了研究,取得相當大的研究進展,涌現了許多入侵檢測檢測方法[3,4]。當前網絡入侵檢測技術分為濫用檢測和異常檢測兩種,其中異常檢測可以檢測到新的入侵行為,因此大多數網絡系統通過異常檢測進行安全保護[5]。當前網絡入侵異常檢測基于聚類分析算法、神經網絡等,但是聚類分析算法的網絡入侵異常檢測速度快,但是網絡入侵異常檢測錯誤率比較高,神經網絡的網絡入侵異常檢測正確率高,但是由于網絡入侵行為的特征維數比較多,易出現“維數災”難題,因此網絡入侵異常檢測仍然面臨挑戰[6-8]。支持向量機(SVM)是近年來興起的分類技術,可以將網絡入侵異常檢測看作是一種多分類問題,通過其自學習構建網絡入侵異常檢測模型,為網絡入侵異常檢測提供了一種新研究的工具[9]。然而支持向量機的性能與其參數直接關聯,當前主要通過經驗方法確定相關參數,參數的合理性難以得到有效保證。而粒子群算法是一種隨機搜索算法,可以對支持向量機參數確定問題進行求解[10]。
針對當前網絡入侵檢測存在誤檢率大、漏檢率高,檢測實時性差等不足,以改善網絡入侵檢測效果為目標,設計了粒子群算法和支持向量機的網絡入侵檢測方法,并采用網絡入侵檢測的標準數據集進行仿真測試,分析本文方法的有效性。
粒子群算法源于對鳥群覓食行為,粒子的狀態由位置和速度兩個矢量決定,第i個粒子的速度向量為vi=(vi1,vi2,…,viD),第i個粒子在第t和t+1個時刻的位置為vi(t)和vi(t+1),vi(t)和vi(t+1)之間的關系為式(1)。
vi(t+1)=wvi(t)?+c1r1(pi(t)-xi(t))+c2r2(g(t)-xi(t))
(1)
式中w為慣性權值,用于平衡個體全局和局部搜索能力,c1,c2為兩個加速度常數,r1,r2為兩個隨機數,pi(t)表示粒子i在第t個時刻歷史最優位置,那么在第t+1個時刻,其變化方式如式(2)。
(2)
式中f(·)表示適應度函數。
g(t)表示粒子群在t時刻的全局最優位置,其確定方式為式(3)。
(3)
式中N表示種群粒子的個數。
第i個粒子的位置向量為xi=(xi1,xi2,…,xiD),第i個粒子在第t和t+1個時刻的位置為xi(t)和xi(t+1),它們之間的關系為式(4)。
xi(t+1)=xi(t)+vi(t+1)
(4)
粒子群算法的基本工作流程如圖1所示。

圖1 粒子群算法的基本工作流程
傳統機器學習如神經網絡等,基于經驗風險最小化原理進行學習,支持向量機與其它機器學習算法的工作原理不一樣,基于結構風險最小化原理進行學習,當樣本數量比較小時,仍然可以獲得較好的泛化能力,不僅解決了傳統機器學習在樣本數量比較小時易出現“過擬合”的學習結果,而且不存在“維數災”缺陷。對一個二分類問題,其訓練樣本組成的集合為{xi,yi},i=1,2,…,n,其中xi為樣本的輸入向量,yi表示樣本的實際輸出,n為樣本的總數,支持向量機引入映射函數φ(·)對{xi,yi},i=1,2,…,n進行變換,然后對其進行求解,建立最優分類超平面,具體為式(5)。
f(x)=ωT×φ(x)+b
(5)
式中,ω和b分為權值矢量和閾值矢量。
要建立最優分類超平面,首先要確定ω和b的值,對ω和b進行直接求解很難,求解時間長,空間復雜度高,為此基于結構風險最小化原則,對最優分類超平面進行如下限制為式(6)。
yi×(ωT×φ(xi)+b)≥1
(6)
在最優分類超平面的附近,有一些樣本分類結果有一定的誤差,為了允許這些誤差的存在,引入非負松弛變量ξi提高支持向量機的學習能力,那么可以得到式(7)。
(7)
式中,C為懲罰參數。
用Lagrange乘子對式(7)進行再次變換,建立如下形式的最大優化問題為式(8)。
(8)
相應的約束條件為式(9)。
(9)
由于網絡入侵檢測特征向量和入侵行為的類型之間存在的一定的隨機性和非線性,為此引入核函數k(xi,x)=φT(x)φ(xi),那么式(8)變為式(10)。
(10)
式中,αi對應的樣本為支持向量,其數量遠遠小于訓練樣本數。
網絡入侵檢測的支持向量機最優分類平面可以描述為式(11)。
(11)
其中,核函數定義如式(12)。
(12)
式中,σ表示核寬度。
上述過程為二分類問題求解的支持向量機工作原理,然而網絡入侵行為一般有4類,包括正常行為,則共有5類,這樣基本支持向量機無法求解,為此通過一對多的形式建立網絡入侵檢測的支持向量機多分類器的結構,具體如圖2所示。

圖2 網絡入侵檢測的支持向量機多分類器的結構
(1) 從網絡系統中采集通信數據,并從通信數據提取網絡入侵檢測特征。
(2) 根據網絡入侵檢測特征,根據專家系統確定網絡入侵行為的類型。
(3) 將網絡入侵檢測特征作為輸入向量,網絡入侵行為的類型作為輸出向量建立樣本數據集。
(4) 從網絡入侵樣本數據隨機選擇部分數據組成訓練樣本集合,并隨機選擇部分數據組成驗證樣本集合。
(5) 支持向量機對訓練樣本集合進行學習,通過粒子群算法確定參數C和σ的值,建立網絡入侵行為檢測的分類器。
(6) 采用驗證樣本集合對網絡入侵行為檢測分類器的性能進行測試,并輸出和分析測試結果。
為了分析粒子群算法和支持向量機的網絡入侵檢測性能,采用網絡入侵檢測標準數據集KDD 1999作為研究目標,KDD 1999的樣本數量相當多,為此從中隨機選擇部分樣本進行仿真實驗,網絡入侵行為以及樣本數量分布具體如表1所示。

表1 網絡入侵行為以及樣本數量
設置粒子群算法相關參數,具體如表2所示。

表2 粒子群算法的相關參數設置
然后通過粒子群算法確定參數C和σ的值,它們分別為187.65和1.783。
選擇文獻[7]的網絡入侵檢測方法和文獻[8]的網絡入侵檢測方法進行對比實驗,統計它們的網絡入侵檢測正確率和訓練時間(秒),結果如圖3和圖4所示。

圖3 與文獻[7]和文獻[8]的入侵檢測正確率對比

圖4 與文獻[7]和文獻[8]的訓練時間對比
從圖3和圖4可以看出,相對于文獻[7]和文獻[8]的網絡入侵檢測方法,本文方法的網絡入侵檢測正確率更高,這表明網絡入侵檢測的誤檢率、漏檢率減少,網絡入侵檢測效果更優。
(2) 相對于文獻[7]和文獻[8]的網絡入侵檢測方法,本文方法的網絡入侵檢時間明顯減少,降低了時間復雜度,可滿足網絡入侵檢測實時性要求。
為了提高網絡入侵檢測性能,引入支持向量機對網絡入侵檢測進行建模,并引入粒子群算法優化支持向量機參數,最后采用KDD 99數據進行了仿真實驗,實驗結果表明本文方法獲得了理想的網絡入侵檢測效果。