陳霜霜
江蘇省鹽城師范學(xué)院信息科學(xué)與技術(shù)學(xué)院 江蘇 224002
支持向量機(Support Vector Machine,SVM)是一種建立在統(tǒng)計學(xué)習(xí)理論基礎(chǔ)之上的機器學(xué)習(xí)方法,根據(jù) Vapnik結(jié)構(gòu)風(fēng)險最小化原則,將支持向量機問題歸結(jié)為一個二次型方程求解問題,通過構(gòu)造最優(yōu)超平面,使不同類樣本集與最優(yōu)分類面之間的距離最大,以獲得最好的泛化能力。此外,由于支持向量算法是一個凸優(yōu)化問題,所以局部最優(yōu)解一定是全局最優(yōu)解,這是其他學(xué)習(xí)算法所不及的。蠕蟲檢測可看成是一個二類分類問題,支持向量機是一種典型的兩類分類器,所以可將支持向量機用于蠕蟲檢測。假定大小k的訓(xùn)練樣本集T={(x1,y1),(x2,y2)…(xk,yk)},(k∈ N),由兩個類別組成,正常類及感染蠕蟲類。如果向量xi屬于正常類,則標記為正(yi=1),如果向量xi屬于感染蠕蟲類,則標記為負(yi=-1)。
支持向量機的性能受核函數(shù)的影響比較大。核函數(shù)的選取以及核函數(shù)中參數(shù)的確定在不同的問題領(lǐng)域是不一樣的,目前的做法一般都是根據(jù)經(jīng)驗選取。和常見的多項式核、Sigmoid函數(shù)相比,徑向基函數(shù)RBF 核函數(shù)具有參數(shù)數(shù)量少、數(shù)值限制條件少等優(yōu)點,所以本文選用徑向基函數(shù) k(x,y)=exp(-‖x-y‖2/ρ2)為核函數(shù)。對于參數(shù) 的選擇有這樣一個經(jīng)驗公式ρ=1/E(‖x-y‖2),x, y分別代表不同的訓(xùn)練樣本 。
盡管目前已提出各種蠕蟲檢測技術(shù),但是如果蠕蟲檢測指標選取不好,將很難保證檢測技術(shù)的有效性。由于蠕蟲的目標是盡可能地傳播,故蠕蟲掃描時將發(fā)起大量具有隨機目標地址的“第一次連接”(FCC,First Contact Connection)由于目標地址的隨機性,因此“第一次連接”的失敗概率很高;感染蠕蟲的主機將會在盡量短的時間內(nèi)感染盡量多的目標,發(fā)送連接請求的時間間隔會很短,而正常主機在進行網(wǎng)絡(luò)訪問的時候,對外發(fā)起連接請求的時間間隔會比較長。為了降低漏報率和誤報率,本文采用了FCC失敗連接概率和FCC連接速度這兩個網(wǎng)絡(luò)行為作為檢測指標。
根據(jù)主機當前產(chǎn)生的FCC連接是成功的還是失敗的,以及本次FCC連接與上次FCC連接之間的時間間隔是大于還是小于設(shè)定的時間間隔,將該主機發(fā)送的連接請求分為X1、X2、X3、X4四種情況。X1為 Itv>Interval且連接失敗,X2為Itv>Interval且連接成功,X3為 Itv<Interval且連接失敗,X4為Itv<Interval且連接成功。其中,Itv表示本次FCC連接與上次FCC連接間的時間間隔,Interval表示設(shè)定的時間間隔,取值為0.2s。X1,X2,X3,X4為向量xi的四個分量特征,可將xi表示為 (xi1,xi2,xi3,xi4)T。在蠕蟲檢測中,將主機處于正常狀態(tài)和感染蠕蟲狀態(tài)下獲得的 X1,X2,X3,X4四種連接請求的頻率作為兩類訓(xùn)練樣本的向量值?;?SVM 分類器的蠕蟲檢測方法步驟如下:
步驟1將主機處于正常狀態(tài)和發(fā)生蠕蟲攻擊時的四種連接請求的頻率作為向量xi的四個分量特征,將向量xi構(gòu)成訓(xùn)練樣本集T={(x1,y1),(x2,y2)…(xl, yl)};
步驟2利用步驟 1所得到訓(xùn)練樣本集訓(xùn)練 SVM 分類器,求出最優(yōu)分類超平面;
步驟3對待檢測主機的網(wǎng)絡(luò)流量同樣應(yīng)用步驟 1,獲得向量xi,然后利用訓(xùn)練過的 SVM 分類器進行分類,相應(yīng)地得出待檢測主機是否感染蠕蟲。
實驗我們采用windump軟件在真實的網(wǎng)絡(luò)環(huán)境產(chǎn)生并捕獲數(shù)據(jù)包形成正常和異常數(shù)據(jù)集。為了使檢測算法能夠在計算機正常工作環(huán)境具有較高的準確率,并具有廣泛的代表性,實驗中考慮到用戶的操作行為和后臺程序?qū)τ嬎銠C性能參數(shù)造成的影響。在實驗數(shù)據(jù)采樣過程中在采樣計算機上開啟了若干應(yīng)用程序,包括如office、IE瀏覽器、Windows Media Player等以及后臺程序win RAR 等。當計算機處于正常的狀態(tài)時進行多次采樣,每次連續(xù)采樣20分鐘,獲得正常標準數(shù)據(jù)集。在獲取異常標準數(shù)據(jù)集時,考慮到蠕蟲有多種類別。實驗中所選取的蠕蟲樣本主要是具有不同的IP掃描方式,選取了Dabber.a、Deborm.y、Sasser.a、Lovesan.u 這4種蠕蟲程序作為異常樣本。分別注入以上4種蠕蟲樣本,每次連續(xù)采樣20分鐘,在采樣的同時綜合考慮了用戶行為以及后臺程序這兩個因素。我們得到訓(xùn)練樣本集 T={(0.35,0.64,0.01,0,1),(0.28,0.69,0.01,0.02,1),(0.27,0.69,0.02,0.01,1),(0,0,0.1,0.89,-1),(0.1,0.29,0.01,0.88,-1),(0.08,0.02,0.01,0.88,-1),(0,0,0.1,0.9,-1)}, 其中k=7。
實驗中我們對兩類標準訓(xùn)練樣本集中的部分樣本以及CodeGreen.a, Doomran, Sluter, Dabber.a, Raleka.ab等未知掃描類蠕蟲進行了檢測。此外,考慮到目前 P2P程序會產(chǎn)生類蠕蟲行為,可能會出現(xiàn)誤報情況。我們對 PPlive和電驢這兩個正常P2P程序的數(shù)據(jù)包也進行了檢測。檢測結(jié)果如表1所示。
表1 各待測樣本檢測結(jié)果
本文依據(jù)蠕蟲掃描時會產(chǎn)生 FCC失敗連接概率高和FCC連接速度快這兩個網(wǎng)絡(luò)行為,提出了一種基于支持向量機的蠕蟲檢測算法。利用該方法能夠有效地檢測變速、慢速等未知的掃描類蠕蟲,且不會對正常網(wǎng)絡(luò)行為及P2P程序產(chǎn)生誤報。當然,本文所提出的檢測算法不能檢測拓撲類及被動等待型蠕蟲,如Email蠕蟲、IM蠕蟲,對這類蠕蟲的檢測還需作進一步地研究與探討。
[1]劉華富,王仲.核函數(shù)對υ-支持向量機的泛化能力影響分析[J].計算機工程與科學(xué).2007.
[2]鄧乃揚,田英杰.數(shù)據(jù)挖掘中的新方法-支持向量機[M].北京:科學(xué)出版社.2004.
[3]向鄭濤,陳宇峰,董亞波,魯東明.蠕蟲檢測技術(shù)研究進展[J].計算機工程與設(shè)計.2009.
[4]陳宇峰.蠕蟲模擬方法和檢測技術(shù)研究.浙江大學(xué)2006年博士學(xué)位論文.2006.