楊世恩 (西南科技大學網(wǎng)絡信息中心,四川綿陽621010)
陳春梅 (西南科技大學信息工程學院,四川綿陽621010)
計算機網(wǎng)絡是以共享資源、相互通信為目的的互聯(lián)系統(tǒng)。隨著信息化技術的高速發(fā)展,網(wǎng)絡給人們的生活帶來很大方便,與此同時,因網(wǎng)絡而起的各種問題也越來越多,計算機病毒、黑客攻擊、網(wǎng)絡犯罪等各種各樣的問題屢禁不止[1]。對于正常的網(wǎng)絡行為,網(wǎng)絡管理員會經(jīng)常關心和監(jiān)測網(wǎng)絡中的數(shù)據(jù)流。而黑客在謀劃某種網(wǎng)絡活動時,也會關心網(wǎng)絡中的數(shù)據(jù)流。黑客帶著某種企圖,通過監(jiān)測網(wǎng)絡尋找機會,他們可以利用網(wǎng)絡漏洞和不斷更新的攻擊技術實施網(wǎng)絡攻擊或資料竊取;網(wǎng)絡管理員的主要職責是保證網(wǎng)絡健康運轉,將有意竊取和惡意攻擊等事件防范于未然。這樣,網(wǎng)絡管理員需要實時跟蹤網(wǎng)絡數(shù)據(jù),分析網(wǎng)絡性能并跟蹤網(wǎng)絡動態(tài),找出漏洞,發(fā)現(xiàn)黑客攻擊機理并及時修復網(wǎng)絡故障等。支持向量機SVM(Support Vector Machine)是基于統(tǒng)計學習理論的分類算法,支持向量機的目標是根據(jù)結構風險最小化原理,構造一個目標函數(shù)將兩類模式盡可能地區(qū)分開來[2]。筆者采用SVM對網(wǎng)絡中的數(shù)據(jù)進行正常數(shù)據(jù)與非正常數(shù)據(jù)的分類,以檢測出網(wǎng)絡中是否存在攻擊。
用支持向量機來設計網(wǎng)絡攻擊檢測模型,理論上借助了支持向量機算法的分類原理。通過數(shù)據(jù)包捕獲軟件捕獲到的網(wǎng)絡數(shù)據(jù)包,其屬性特征的類型很多很復雜,如何從這些繁雜的特征信息中辨別出是否存在攻擊是網(wǎng)絡攻擊檢測模型的主要目的。支持向量機是基于統(tǒng)計學習理論的,2000年Purdue大學的T.D.Lane最早提出機器學習可以實現(xiàn)網(wǎng)絡入侵檢測[3]。在他的論述中,可以先從大量的網(wǎng)絡數(shù)據(jù)中提煉出一個特征輪廓,這些輪廓是網(wǎng)絡中正常數(shù)據(jù)的概要,當被檢測的網(wǎng)絡數(shù)據(jù)與這個特征輪廓的差異度超過某個值時,就認為網(wǎng)絡存在入侵,可能正在被攻擊。這樣的方法實際上是把網(wǎng)絡攻擊檢測轉換為了模式識別問題。同樣是機器學習,支持向量機實現(xiàn)了線性可分和線性不可分的分類問題[2]。從網(wǎng)絡中捕獲的數(shù)據(jù)可以抽象成n維空間上的點,每一維代表數(shù)據(jù)的一項特征。對于線性不可分的情況,SVM根據(jù)結構風險最小化原理,通過核函數(shù)將這些點從n維空間映射到高維空間中,使得它們在高維空間中線性可分,這樣,就可以判斷網(wǎng)絡是否存在攻擊。
1997年,美國國防部高級研究計劃局 (DARPA)制定了一個公共的 IDS框架,命名為 CIDF(Common Intrusion Detection Framework)[4]框架。該框架統(tǒng)一了入侵檢測系統(tǒng)的設計模型標準,筆者通過對支持向量機SVM的研究,在CIDF標準設計模型的基礎上,加入了SVM的相關算法,設計出新的網(wǎng)絡攻擊檢測模型,如圖1所示。
1)數(shù)據(jù)流的獲取 用于檢測的數(shù)據(jù)必須是網(wǎng)絡真實數(shù)據(jù),為了方便,可以采用傳統(tǒng)的網(wǎng)絡評估數(shù)據(jù)集,也可以在局域網(wǎng)中模擬真實網(wǎng)絡沒,由人工手動發(fā)送病毒攻擊等大量數(shù)據(jù)包,從而捕獲這些模擬數(shù)據(jù)作為該模型的數(shù)據(jù)源。
2)數(shù)據(jù)預處理 數(shù)據(jù)預處理主要完成兩部分工作,一是將網(wǎng)絡連接記錄中的字符型數(shù)據(jù)轉換成數(shù)字矢量信息,并把連接記錄中所有的信息按順序賦上整數(shù)編碼。二是將這些范圍可能比較大的整數(shù)值再進行統(tǒng)一的歸一化處理,得到0~1之間的實數(shù),這樣就可以直接作為SVM的輸入向量了。
3)SVM訓練模塊 該模塊把預處理之后的訓練數(shù)據(jù)集輸入向量機SVM進行訓練,它是一種有監(jiān)督的學習方法。該模塊把訓練數(shù)據(jù)集中的訓練點按照一定的類別分開,形成標準模式即一組支持向量,并將之存在SVM支持向量庫中備用。
4)SVM預測模塊 該模塊主要實現(xiàn)網(wǎng)絡數(shù)據(jù)的安全性檢測,根據(jù)SVM訓練后形成的支持向量庫的模式,將網(wǎng)絡數(shù)據(jù)與之進行分類匹配,根據(jù)定義,如果預測后輸出為-1,則表示有不安全的入侵行為發(fā)生,如果為+1,則表示正常。
5)SVM支持向量庫 該模塊用于存放訓練結果,即SVM訓練模塊訓練后得到的支持向量組,通過該向量可以檢測出網(wǎng)絡數(shù)據(jù)是否含有攻擊。
6)事件數(shù)據(jù)庫 主要記錄SVM預測過的歷史事件,在以后的網(wǎng)絡管理和維護中,便于查詢網(wǎng)絡狀況和分析網(wǎng)絡的服務質(zhì)量等。
7)輸出及響應模塊 該模塊是用戶直接關心的部分,SVM對網(wǎng)絡數(shù)據(jù)檢測之后,結果是什么,該有什么樣的反應。該模塊實現(xiàn)了網(wǎng)絡報警和結果顯示等功能。
圖1 基于SVM的網(wǎng)絡攻擊檢測模型
表 1 數(shù)據(jù)源選取
1)數(shù)據(jù)源 選取具有標記信息的數(shù)據(jù)源KDDCUP99 LABELED DATA[5]。該評估數(shù)據(jù)集來自真實的Internet縮影環(huán)境,包含了多種攻擊類型,并提取了會話時間、服務類型、源地址、目標地址、攻擊次數(shù)以及攻擊類型等41個特征信息,從中隨機抽取3組各若干條訓練集和測試集來對該模型進行測試。這些數(shù)據(jù)集所包含的記錄條數(shù)如表1所示。
2)數(shù)據(jù)預處理 數(shù)據(jù)預處理的任務是將每個網(wǎng)絡連接記錄中的所有特征信息預處理成數(shù)量特征。在這些特征信息中,有一部分屬于字符型數(shù)據(jù),比如,協(xié)議類型protocol_type和服務類型service等,在實際的網(wǎng)絡連接列表里面,協(xié)議類型的取值可能是tcp或udp或icmp等。另外,網(wǎng)絡會話的最后一列也是字符型數(shù)據(jù)。該列若為 “normal”則表示正常的網(wǎng)絡會話,若有不正常的或者遭到攻擊的網(wǎng)絡會話,該列則為具體的攻擊類型,例如:pingsweep,teardrop等[6]。要將網(wǎng)絡連接記錄轉換成檢測模型的輸入數(shù)據(jù),則需要把protocol_type等類型的字符數(shù)據(jù)進行轉換,得到相應的數(shù)量特征,然后再進行歸一化處理,把大小不一的各種數(shù)量統(tǒng)一到小范圍內(nèi),如0~1之間。這樣,網(wǎng)絡連接記錄就被初始化成標準的輸入矢量,就可以作為檢測模型的輸入數(shù)據(jù)了。
一是數(shù)據(jù)集格式轉換。首先應該將網(wǎng)絡連接記錄中的字符型字段數(shù)據(jù)轉換成矢量數(shù)據(jù),即將每一字段可能的取值都用數(shù)字來表示,這樣就建立起了字符數(shù)據(jù)和矢量數(shù)據(jù)之間的一一對應關系,將該關系構造成一張表,稱為關鍵詞表。表2表示了協(xié)議類型的關鍵詞表,其他如服務類型和攻擊類型的關鍵詞表與此類似,不再贅述。通過以上的兌換,整個數(shù)據(jù)集還不是SVM工具箱[7]所支持的標準格式。通過編程對之進行再處理,得到如下格式的文本文件并存儲:
二是歸一化處理。當眾多的字符數(shù)據(jù)都經(jīng)過矢量轉換后,它們依次賦予的整數(shù)因同字段內(nèi)相互不重復故使取值范圍可能會很大,為了處理方便,將所有數(shù)字特征歸一化處理到0~1之間。直接利用支持向量機工具箱[7]對準備好的數(shù)據(jù)源進行歸一化處理,并將處理后的訓練數(shù)據(jù)和測試數(shù)據(jù)分別以“*.scale”的文件形式存儲在硬盤中。
3)系統(tǒng)仿真與結果分析 在支持向量機工具箱中,數(shù)據(jù)訓練后可直接得到模型文件。針對前節(jié)選擇和預處理的3組數(shù)據(jù)進行訓練和測試,選擇不同的核函數(shù)進行訓練,其測試準確率結果比較如表3所示。
表2 協(xié)議類型的關鍵詞表
表3 準確率對照表
通過表3可以看出,徑向基 (RBF)核函數(shù)有比較高的準確率。為了繪圖方便,對4種攻擊類型分別編碼為1、2、3、4,利用上述預處理的數(shù)據(jù)源訓練支持向量機,首先利用訓練樣本集訓練模型,并根據(jù)測試樣本集評價模型的泛化能力,最終建立對應的支持向量機模型。為顯示方便,從每組測試樣本集中隨機抽取50個數(shù)據(jù)進行仿真分析,并按從大到小的順序排列,其仿真結果如圖2~4所示。
表4 不同核函數(shù)檢測性能比較
由圖2到圖4以及表3可以看出,采用3種核函數(shù)建立的支持向量機模型的分類的正確率均在98%以上;且以徑向基函數(shù)作為支持向量機核函數(shù)有比其他核函數(shù)分類精度高的優(yōu)點。以group1數(shù)據(jù)集為例,分別從訓練時間、測試時間、測試精度、誤報警率和漏報警率等方面來比較基于不同核函數(shù)的支持向量機的分類性能,結果如表4所示。從表4的統(tǒng)計可以看出,用RBF徑向基作為核函數(shù)檢測的精度比較高,誤報率比較低,而漏報率最低的是多項式核函數(shù)的檢測,所以,在實際檢測時,也可采用多種核函數(shù)進行綜合分析,這樣可以得到比較理想的檢測結果。
圖2 RBF核的SVM分類仿真
圖3 線性核的SVM分類仿真
圖4 多項式核的SVM分類仿真
[1]陳春梅.網(wǎng)絡數(shù)據(jù)檢測與分析系統(tǒng)研究[D].綿陽:西南科技大學,2010.
[2]李國正,王猛,曾華軍.支持向量機導論 [M].北京:電子工業(yè)出版社,2004.
[3]羅守山,入侵檢測[M].北京:北京郵電大學出版社,2004.
[4]劉潔.基于支持向量機的網(wǎng)絡入侵檢測系統(tǒng)研究[D].長沙:中南大學,2008.
[5]呂志軍,金毅,賴海光,等.DAPRA測試分析和IDS測試方法研究 [J].計算機科學,2004(11):73-76.
[6]薛靜鋒,寧宇鵬,閻慧.入侵檢測技術[M].北京:機械工業(yè)出版社,2004.
[7]王國勝.支持向量機的理論與算法研究[D].北京:北京郵電大學,2007.