楊世恩 (西南科技大學(xué)網(wǎng)絡(luò)信息中心,四川綿陽(yáng)621010)
陳春梅 (西南科技大學(xué)信息工程學(xué)院,四川綿陽(yáng)621010)
計(jì)算機(jī)網(wǎng)絡(luò)是以共享資源、相互通信為目的的互聯(lián)系統(tǒng)。隨著信息化技術(shù)的高速發(fā)展,網(wǎng)絡(luò)給人們的生活帶來(lái)很大方便,與此同時(shí),因網(wǎng)絡(luò)而起的各種問(wèn)題也越來(lái)越多,計(jì)算機(jī)病毒、黑客攻擊、網(wǎng)絡(luò)犯罪等各種各樣的問(wèn)題屢禁不止[1]。對(duì)于正常的網(wǎng)絡(luò)行為,網(wǎng)絡(luò)管理員會(huì)經(jīng)常關(guān)心和監(jiān)測(cè)網(wǎng)絡(luò)中的數(shù)據(jù)流。而黑客在謀劃某種網(wǎng)絡(luò)活動(dòng)時(shí),也會(huì)關(guān)心網(wǎng)絡(luò)中的數(shù)據(jù)流。黑客帶著某種企圖,通過(guò)監(jiān)測(cè)網(wǎng)絡(luò)尋找機(jī)會(huì),他們可以利用網(wǎng)絡(luò)漏洞和不斷更新的攻擊技術(shù)實(shí)施網(wǎng)絡(luò)攻擊或資料竊取;網(wǎng)絡(luò)管理員的主要職責(zé)是保證網(wǎng)絡(luò)健康運(yùn)轉(zhuǎn),將有意竊取和惡意攻擊等事件防范于未然。這樣,網(wǎng)絡(luò)管理員需要實(shí)時(shí)跟蹤網(wǎng)絡(luò)數(shù)據(jù),分析網(wǎng)絡(luò)性能并跟蹤網(wǎng)絡(luò)動(dòng)態(tài),找出漏洞,發(fā)現(xiàn)黑客攻擊機(jī)理并及時(shí)修復(fù)網(wǎng)絡(luò)故障等。支持向量機(jī)SVM(Support Vector Machine)是基于統(tǒng)計(jì)學(xué)習(xí)理論的分類算法,支持向量機(jī)的目標(biāo)是根據(jù)結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理,構(gòu)造一個(gè)目標(biāo)函數(shù)將兩類模式盡可能地區(qū)分開(kāi)來(lái)[2]。筆者采用SVM對(duì)網(wǎng)絡(luò)中的數(shù)據(jù)進(jìn)行正常數(shù)據(jù)與非正常數(shù)據(jù)的分類,以檢測(cè)出網(wǎng)絡(luò)中是否存在攻擊。
用支持向量機(jī)來(lái)設(shè)計(jì)網(wǎng)絡(luò)攻擊檢測(cè)模型,理論上借助了支持向量機(jī)算法的分類原理。通過(guò)數(shù)據(jù)包捕獲軟件捕獲到的網(wǎng)絡(luò)數(shù)據(jù)包,其屬性特征的類型很多很復(fù)雜,如何從這些繁雜的特征信息中辨別出是否存在攻擊是網(wǎng)絡(luò)攻擊檢測(cè)模型的主要目的。支持向量機(jī)是基于統(tǒng)計(jì)學(xué)習(xí)理論的,2000年P(guān)urdue大學(xué)的T.D.Lane最早提出機(jī)器學(xué)習(xí)可以實(shí)現(xiàn)網(wǎng)絡(luò)入侵檢測(cè)[3]。在他的論述中,可以先從大量的網(wǎng)絡(luò)數(shù)據(jù)中提煉出一個(gè)特征輪廓,這些輪廓是網(wǎng)絡(luò)中正常數(shù)據(jù)的概要,當(dāng)被檢測(cè)的網(wǎng)絡(luò)數(shù)據(jù)與這個(gè)特征輪廓的差異度超過(guò)某個(gè)值時(shí),就認(rèn)為網(wǎng)絡(luò)存在入侵,可能正在被攻擊。這樣的方法實(shí)際上是把網(wǎng)絡(luò)攻擊檢測(cè)轉(zhuǎn)換為了模式識(shí)別問(wèn)題。同樣是機(jī)器學(xué)習(xí),支持向量機(jī)實(shí)現(xiàn)了線性可分和線性不可分的分類問(wèn)題[2]。從網(wǎng)絡(luò)中捕獲的數(shù)據(jù)可以抽象成n維空間上的點(diǎn),每一維代表數(shù)據(jù)的一項(xiàng)特征。對(duì)于線性不可分的情況,SVM根據(jù)結(jié)構(gòu)風(fēng)險(xiǎn)最小化原理,通過(guò)核函數(shù)將這些點(diǎn)從n維空間映射到高維空間中,使得它們?cè)诟呔S空間中線性可分,這樣,就可以判斷網(wǎng)絡(luò)是否存在攻擊。
1997年,美國(guó)國(guó)防部高級(jí)研究計(jì)劃局 (DARPA)制定了一個(gè)公共的 IDS框架,命名為 CIDF(Common Intrusion Detection Framework)[4]框架。該框架統(tǒng)一了入侵檢測(cè)系統(tǒng)的設(shè)計(jì)模型標(biāo)準(zhǔn),筆者通過(guò)對(duì)支持向量機(jī)SVM的研究,在CIDF標(biāo)準(zhǔn)設(shè)計(jì)模型的基礎(chǔ)上,加入了SVM的相關(guān)算法,設(shè)計(jì)出新的網(wǎng)絡(luò)攻擊檢測(cè)模型,如圖1所示。
1)數(shù)據(jù)流的獲取 用于檢測(cè)的數(shù)據(jù)必須是網(wǎng)絡(luò)真實(shí)數(shù)據(jù),為了方便,可以采用傳統(tǒng)的網(wǎng)絡(luò)評(píng)估數(shù)據(jù)集,也可以在局域網(wǎng)中模擬真實(shí)網(wǎng)絡(luò)沒(méi),由人工手動(dòng)發(fā)送病毒攻擊等大量數(shù)據(jù)包,從而捕獲這些模擬數(shù)據(jù)作為該模型的數(shù)據(jù)源。
2)數(shù)據(jù)預(yù)處理 數(shù)據(jù)預(yù)處理主要完成兩部分工作,一是將網(wǎng)絡(luò)連接記錄中的字符型數(shù)據(jù)轉(zhuǎn)換成數(shù)字矢量信息,并把連接記錄中所有的信息按順序賦上整數(shù)編碼。二是將這些范圍可能比較大的整數(shù)值再進(jìn)行統(tǒng)一的歸一化處理,得到0~1之間的實(shí)數(shù),這樣就可以直接作為SVM的輸入向量了。
3)SVM訓(xùn)練模塊 該模塊把預(yù)處理之后的訓(xùn)練數(shù)據(jù)集輸入向量機(jī)SVM進(jìn)行訓(xùn)練,它是一種有監(jiān)督的學(xué)習(xí)方法。該模塊把訓(xùn)練數(shù)據(jù)集中的訓(xùn)練點(diǎn)按照一定的類別分開(kāi),形成標(biāo)準(zhǔn)模式即一組支持向量,并將之存在SVM支持向量庫(kù)中備用。
4)SVM預(yù)測(cè)模塊 該模塊主要實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的安全性檢測(cè),根據(jù)SVM訓(xùn)練后形成的支持向量庫(kù)的模式,將網(wǎng)絡(luò)數(shù)據(jù)與之進(jìn)行分類匹配,根據(jù)定義,如果預(yù)測(cè)后輸出為-1,則表示有不安全的入侵行為發(fā)生,如果為+1,則表示正常。
5)SVM支持向量庫(kù) 該模塊用于存放訓(xùn)練結(jié)果,即SVM訓(xùn)練模塊訓(xùn)練后得到的支持向量組,通過(guò)該向量可以檢測(cè)出網(wǎng)絡(luò)數(shù)據(jù)是否含有攻擊。
6)事件數(shù)據(jù)庫(kù) 主要記錄SVM預(yù)測(cè)過(guò)的歷史事件,在以后的網(wǎng)絡(luò)管理和維護(hù)中,便于查詢網(wǎng)絡(luò)狀況和分析網(wǎng)絡(luò)的服務(wù)質(zhì)量等。
7)輸出及響應(yīng)模塊 該模塊是用戶直接關(guān)心的部分,SVM對(duì)網(wǎng)絡(luò)數(shù)據(jù)檢測(cè)之后,結(jié)果是什么,該有什么樣的反應(yīng)。該模塊實(shí)現(xiàn)了網(wǎng)絡(luò)報(bào)警和結(jié)果顯示等功能。

圖1 基于SVM的網(wǎng)絡(luò)攻擊檢測(cè)模型

表 1 數(shù)據(jù)源選取
1)數(shù)據(jù)源 選取具有標(biāo)記信息的數(shù)據(jù)源KDDCUP99 LABELED DATA[5]。該評(píng)估數(shù)據(jù)集來(lái)自真實(shí)的Internet縮影環(huán)境,包含了多種攻擊類型,并提取了會(huì)話時(shí)間、服務(wù)類型、源地址、目標(biāo)地址、攻擊次數(shù)以及攻擊類型等41個(gè)特征信息,從中隨機(jī)抽取3組各若干條訓(xùn)練集和測(cè)試集來(lái)對(duì)該模型進(jìn)行測(cè)試。這些數(shù)據(jù)集所包含的記錄條數(shù)如表1所示。
2)數(shù)據(jù)預(yù)處理 數(shù)據(jù)預(yù)處理的任務(wù)是將每個(gè)網(wǎng)絡(luò)連接記錄中的所有特征信息預(yù)處理成數(shù)量特征。在這些特征信息中,有一部分屬于字符型數(shù)據(jù),比如,協(xié)議類型protocol_type和服務(wù)類型service等,在實(shí)際的網(wǎng)絡(luò)連接列表里面,協(xié)議類型的取值可能是tcp或udp或icmp等。另外,網(wǎng)絡(luò)會(huì)話的最后一列也是字符型數(shù)據(jù)。該列若為 “normal”則表示正常的網(wǎng)絡(luò)會(huì)話,若有不正常的或者遭到攻擊的網(wǎng)絡(luò)會(huì)話,該列則為具體的攻擊類型,例如:pingsweep,teardrop等[6]。要將網(wǎng)絡(luò)連接記錄轉(zhuǎn)換成檢測(cè)模型的輸入數(shù)據(jù),則需要把protocol_type等類型的字符數(shù)據(jù)進(jìn)行轉(zhuǎn)換,得到相應(yīng)的數(shù)量特征,然后再進(jìn)行歸一化處理,把大小不一的各種數(shù)量統(tǒng)一到小范圍內(nèi),如0~1之間。這樣,網(wǎng)絡(luò)連接記錄就被初始化成標(biāo)準(zhǔn)的輸入矢量,就可以作為檢測(cè)模型的輸入數(shù)據(jù)了。
一是數(shù)據(jù)集格式轉(zhuǎn)換。首先應(yīng)該將網(wǎng)絡(luò)連接記錄中的字符型字段數(shù)據(jù)轉(zhuǎn)換成矢量數(shù)據(jù),即將每一字段可能的取值都用數(shù)字來(lái)表示,這樣就建立起了字符數(shù)據(jù)和矢量數(shù)據(jù)之間的一一對(duì)應(yīng)關(guān)系,將該關(guān)系構(gòu)造成一張表,稱為關(guān)鍵詞表。表2表示了協(xié)議類型的關(guān)鍵詞表,其他如服務(wù)類型和攻擊類型的關(guān)鍵詞表與此類似,不再贅述。通過(guò)以上的兌換,整個(gè)數(shù)據(jù)集還不是SVM工具箱[7]所支持的標(biāo)準(zhǔn)格式。通過(guò)編程對(duì)之進(jìn)行再處理,得到如下格式的文本文件并存儲(chǔ):

二是歸一化處理。當(dāng)眾多的字符數(shù)據(jù)都經(jīng)過(guò)矢量轉(zhuǎn)換后,它們依次賦予的整數(shù)因同字段內(nèi)相互不重復(fù)故使取值范圍可能會(huì)很大,為了處理方便,將所有數(shù)字特征歸一化處理到0~1之間。直接利用支持向量機(jī)工具箱[7]對(duì)準(zhǔn)備好的數(shù)據(jù)源進(jìn)行歸一化處理,并將處理后的訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)分別以“*.scale”的文件形式存儲(chǔ)在硬盤中。
3)系統(tǒng)仿真與結(jié)果分析 在支持向量機(jī)工具箱中,數(shù)據(jù)訓(xùn)練后可直接得到模型文件。針對(duì)前節(jié)選擇和預(yù)處理的3組數(shù)據(jù)進(jìn)行訓(xùn)練和測(cè)試,選擇不同的核函數(shù)進(jìn)行訓(xùn)練,其測(cè)試準(zhǔn)確率結(jié)果比較如表3所示。

表2 協(xié)議類型的關(guān)鍵詞表

表3 準(zhǔn)確率對(duì)照表
通過(guò)表3可以看出,徑向基 (RBF)核函數(shù)有比較高的準(zhǔn)確率。為了繪圖方便,對(duì)4種攻擊類型分別編碼為1、2、3、4,利用上述預(yù)處理的數(shù)據(jù)源訓(xùn)練支持向量機(jī),首先利用訓(xùn)練樣本集訓(xùn)練模型,并根據(jù)測(cè)試樣本集評(píng)價(jià)模型的泛化能力,最終建立對(duì)應(yīng)的支持向量機(jī)模型。為顯示方便,從每組測(cè)試樣本集中隨機(jī)抽取50個(gè)數(shù)據(jù)進(jìn)行仿真分析,并按從大到小的順序排列,其仿真結(jié)果如圖2~4所示。

表4 不同核函數(shù)檢測(cè)性能比較
由圖2到圖4以及表3可以看出,采用3種核函數(shù)建立的支持向量機(jī)模型的分類的正確率均在98%以上;且以徑向基函數(shù)作為支持向量機(jī)核函數(shù)有比其他核函數(shù)分類精度高的優(yōu)點(diǎn)。以group1數(shù)據(jù)集為例,分別從訓(xùn)練時(shí)間、測(cè)試時(shí)間、測(cè)試精度、誤報(bào)警率和漏報(bào)警率等方面來(lái)比較基于不同核函數(shù)的支持向量機(jī)的分類性能,結(jié)果如表4所示。從表4的統(tǒng)計(jì)可以看出,用RBF徑向基作為核函數(shù)檢測(cè)的精度比較高,誤報(bào)率比較低,而漏報(bào)率最低的是多項(xiàng)式核函數(shù)的檢測(cè),所以,在實(shí)際檢測(cè)時(shí),也可采用多種核函數(shù)進(jìn)行綜合分析,這樣可以得到比較理想的檢測(cè)結(jié)果。

圖2 RBF核的SVM分類仿真

圖3 線性核的SVM分類仿真

圖4 多項(xiàng)式核的SVM分類仿真
[1]陳春梅.網(wǎng)絡(luò)數(shù)據(jù)檢測(cè)與分析系統(tǒng)研究[D].綿陽(yáng):西南科技大學(xué),2010.
[2]李國(guó)正,王猛,曾華軍.支持向量機(jī)導(dǎo)論 [M].北京:電子工業(yè)出版社,2004.
[3]羅守山,入侵檢測(cè)[M].北京:北京郵電大學(xué)出版社,2004.
[4]劉潔.基于支持向量機(jī)的網(wǎng)絡(luò)入侵檢測(cè)系統(tǒng)研究[D].長(zhǎng)沙:中南大學(xué),2008.
[5]呂志軍,金毅,賴海光,等.DAPRA測(cè)試分析和IDS測(cè)試方法研究 [J].計(jì)算機(jī)科學(xué),2004(11):73-76.
[6]薛靜鋒,寧宇鵬,閻慧.入侵檢測(cè)技術(shù)[M].北京:機(jī)械工業(yè)出版社,2004.
[7]王國(guó)勝.支持向量機(jī)的理論與算法研究[D].北京:北京郵電大學(xué),2007.