楊慶濤
重慶醫(yī)科大學(xué)現(xiàn)代教育技術(shù)中心 重慶 400016
本文分析了現(xiàn)有的針對(duì)網(wǎng)絡(luò)蠕蟲(chóng)特征的檢測(cè)方法,涉及到對(duì)已知和未知蠕蟲(chóng)的檢測(cè)。在蠕蟲(chóng)的特征提取技術(shù)方面,分析了現(xiàn)有的特征提取方法,同時(shí)引入了生物信息學(xué)中采用的序列連配算法來(lái)進(jìn)行特征的提取工作,對(duì)算法的性能進(jìn)行分析比較,提出了對(duì)算法的改進(jìn)方法,在對(duì)網(wǎng)絡(luò)蠕蟲(chóng)的檢測(cè)技術(shù)和特征提取的理論分析的基礎(chǔ)上,提出了基于上述思想的網(wǎng)絡(luò)蠕蟲(chóng)檢測(cè)模型,該模型給出了蠕蟲(chóng)檢測(cè)的具體實(shí)現(xiàn)方法。
在對(duì)蠕蟲(chóng)病毒進(jìn)行檢測(cè)和防御的過(guò)程中,都需要對(duì)其特點(diǎn)進(jìn)行研究和發(fā)現(xiàn),而特征碼無(wú)疑最能反映蠕蟲(chóng)和其他計(jì)算機(jī)病毒的特點(diǎn)。所謂的特征碼可用來(lái)對(duì)蠕蟲(chóng)和其它的變體進(jìn)行身份識(shí)別,能夠反映其攻擊特征,在計(jì)算機(jī)中的組織表現(xiàn)就是一組或者多組的二進(jìn)制的連續(xù)的序列。
所謂的特征提取算法,它的方法就是首先收集可疑的數(shù)據(jù)包,然后對(duì)這些可疑的數(shù)據(jù)包加以分析比較,從而能夠提取出具有一定代表性,能夠反映蠕蟲(chóng)傳播特點(diǎn),攻擊特點(diǎn)的特征,并最終為蠕蟲(chóng)的檢測(cè)技術(shù)所使用。目前常用特征提取技術(shù)包括最大公共子串(Longest Common Subsequence,LCS)提取、基于 Rabin fingerprints算法的對(duì)數(shù)據(jù)流的內(nèi)容進(jìn)行有效的劃分,采用Expectation Maxmization等。其中最有代表性的是最長(zhǎng)公共子序列LCS。采用該方法的時(shí)候時(shí)間復(fù)雜度較高,同時(shí)若支持進(jìn)行聚類分析,則平攤復(fù)雜度將更高;若不支持聚類的分析,其混合通信(包括非蠕蟲(chóng)通信、若干蠕蟲(chóng)種類、若干蠕蟲(chóng)變體)將嚴(yán)重影響到特征的提取過(guò)程;正是基于這樣的考慮我們提出了下面的特征提取的改進(jìn)方法。
Needleman 算法的思想是基于動(dòng)態(tài)規(guī)劃的思想,通過(guò)使用該算法,我們能夠?qū)蓚€(gè)序列進(jìn)行相似度的比較,同時(shí)通過(guò)量化的方式,能夠計(jì)算出它們之間的相似度比值。對(duì)這個(gè)比值進(jìn)行比較分析,就得到了一個(gè)基于全局的聯(lián)配結(jié)果。
該算法具有兩個(gè)主要步驟:(1) 計(jì)算所給定的兩個(gè)序列整個(gè)的相似分值,并得到一個(gè)相似度矩陣;(2) 根據(jù)相似度矩陣,按照動(dòng)態(tài)規(guī)劃的方法回溯尋找最優(yōu)的聯(lián)配。我們將通過(guò)如下的方式對(duì)兩個(gè)序列的相似度進(jìn)行計(jì)算:
對(duì)于序列x和y,序列聯(lián)配的相似度計(jì)算函數(shù)定義為:
在上面的定義中,我們引入了分值的概念,以分值的大小來(lái)表示序列的相似度。m表示的是兩個(gè)序列匹配時(shí)的得分,而不匹配時(shí)的得分用n表示,如果出現(xiàn)空位的話,其分值為δ,由此我們可以計(jì)算出相似度比值。
在實(shí)際的應(yīng)用中,若需要對(duì)兩個(gè)序列xi和yi進(jìn)行序列聯(lián)配,那么在聯(lián)配的過(guò)程中可以表示為三個(gè)序列,分別是x′, y′和s。其中x′, y′分別表示有x,y通過(guò)插入一定的空格所產(chǎn)生,s則是聯(lián)配的結(jié)果。s 中包含x′和y′對(duì)齊后相同的字母以及通配符“?”和“*”顯然s體現(xiàn)了x和y的相似關(guān)系,為了對(duì)序列的結(jié)果進(jìn)行分析,我們將結(jié)果S中被“*”和“?”分開(kāi)的部分稱為片段,而只含有一個(gè)字符的片段稱為序列碎片。現(xiàn)考慮如下的兩個(gè)序列xi和yj,xi= NMZTCJPGKYXV和yj=AKYXTNOZUCDP。圖1中我們?cè)谛蛄衳i的末端插入空位符,在yj的前端插入空位符,由此得到下面兩種結(jié)果,如圖2所示。
圖1 聯(lián)配的結(jié)果
圖2 聯(lián)配的結(jié)果
在實(shí)驗(yàn)中考慮如果序列匹配則m=2,不匹配則n=-2,每出現(xiàn)一個(gè)空位符δ=-1,即空位罰分。根據(jù)公式1我們將得到如下結(jié)果:
聯(lián)配a的相似度分值S( x, y)=2×4+(-1)×3+(-2)×10=-15 (2)
聯(lián)配b的相似度分值S( x, y)=2×3 +(-1)×2+(-2)×14=-24 (3)
聯(lián)配的結(jié)果中,聯(lián)配a的相似度值明顯優(yōu)于聯(lián)配b的結(jié)果。但是,這并不是我們期望的結(jié)果,因?yàn)闆](méi)有考慮到序列碎片的問(wèn)題,序列碎片是由于我們?cè)谄ヅ涞倪^(guò)程中不當(dāng)?shù)奶砑涌瘴蛔址斐傻摹?梢钥闯鲈诼?lián)配a中產(chǎn)生了4個(gè)序列碎片,而聯(lián)配b中沒(méi)有序列碎片。從實(shí)際的應(yīng)用可以判斷,聯(lián)配b明顯優(yōu)于聯(lián)配a,原因在于:
① 連續(xù)的序列片段更能體現(xiàn)數(shù)據(jù)的語(yǔ)義信息
在兩個(gè)序列匹配的結(jié)果中,序列b中含有連續(xù)的字母片段“KYX”,這顯然更能反映序列的語(yǔ)義信息。
② 序列碎片容易導(dǎo)致誤報(bào)的產(chǎn)生
另一個(gè)重要的原因在于,序列碎片容易導(dǎo)致誤報(bào)的產(chǎn)生,若將聯(lián)配的結(jié)果表示成*N*Z*C*P*,將該特征與隨機(jī)產(chǎn)生的字符長(zhǎng)度為1000的字符串比較,將會(huì)有38.7%的概率被匹配到。而聯(lián)配b所表示的特征信息*TWO*只有0.00059%的概率被匹配到。這是因?yàn)樾蛄兴槠蔀榱藷o(wú)用的干擾信息,其所產(chǎn)生的攻擊特征也很不準(zhǔn)確。
由以上分析可知,將 Needleman-Wunsch算法移植到蠕蟲(chóng)病毒特征提取的實(shí)際應(yīng)用中時(shí),由于采用的匹配方式不同,使用該算法所產(chǎn)生的全局最優(yōu)也很容易易產(chǎn)生序列碎片的情況,也就是采用了匹配結(jié)果中匹配字符數(shù)較長(zhǎng),相似度比值較高的字符串作為聯(lián)配的結(jié)果,這顯然會(huì)產(chǎn)生不太理想的情況。為了能夠提供序列的匹配精度,使得匹配的結(jié)果更為準(zhǔn)確,本文提出了一種激勵(lì)相鄰匹配的的全局聯(lián)配算法。
與 Needleman-Wunsch算法一樣,本算法也是采用動(dòng)態(tài)規(guī)劃的思想,在其的空間和時(shí)間的復(fù)雜度上都是O(nm)(本處用n和m來(lái)分別表示兩個(gè)序列的長(zhǎng)度)。為了使序列匹配上能夠使局部較長(zhǎng)字符串的到補(bǔ)償,本文通過(guò)加入補(bǔ)償函數(shù)來(lái)增加對(duì)于局部最優(yōu)的需求,采用該方法使保留的字符串最優(yōu)。通過(guò)該方式得到的相似度函數(shù)如下:
該算法的具體描述為:設(shè)具有X和Y的兩個(gè)序列xi和yj,兩個(gè)序列之間的相似度為S(x,y)。通過(guò)評(píng)價(jià)x序列中前i個(gè)位置和y序列前j位置之間的匹配值,我們可以遞歸的得到聯(lián)配的結(jié)果F(x,y)。如果x和y的長(zhǎng)度分別為m和n,則其期望距離為。在相似度矩陣中引入的第1行1列單元的距離為0(相當(dāng)于兩個(gè)空序列進(jìn)行聯(lián)配),在單元(i,j)內(nèi),使到達(dá)該單元距離增加的三種可能事件為:
① 從單元(i-1,j)向單元(i,j)進(jìn)行垂直移動(dòng),相當(dāng)于在序列X中插入了一個(gè)空位使得相似序列得以延伸。
② 從單元(i-1,j-1)向單元(i,j)的對(duì)角線進(jìn)行移動(dòng),相當(dāng)于增加了堿基xi和yj使的相似序列延伸。
③ 從單元(i,j-1)向單元(i,j)的水平移動(dòng),相當(dāng)于在 Y 序列中插入了一個(gè)空位使相似序列得到延伸。引入補(bǔ)償函數(shù)ins(S)時(shí),就需要考慮到各種其它的因素進(jìn)行設(shè)置。
因此,單元(i,j)的相似度S (xi,yj)可看成三個(gè)相鄰單元的相似度值加上相應(yīng)權(quán)重后的最大者,即
該式的初始條件為:
在上面的公式中,對(duì)參數(shù)進(jìn)行如下設(shè)置:
針對(duì)聯(lián)配方式a,由于在其中碎片的存在其值為:
而針對(duì)聯(lián)配方式b我們將得到如下的相似度值:
通過(guò)比較可知,補(bǔ)償函數(shù)的引入,能夠得到最優(yōu)的聯(lián)配結(jié)果。
為了對(duì)特征提取算法進(jìn)行驗(yàn)證,我們?cè)O(shè)計(jì)了一個(gè)蠕蟲(chóng)檢測(cè)模型。本系統(tǒng)由功能劃分明顯的幾個(gè)模塊構(gòu)成,各個(gè)模塊之間相互協(xié)作,能夠?qū)崿F(xiàn)對(duì)網(wǎng)絡(luò)中數(shù)據(jù)的捕獲,到異常的發(fā)現(xiàn)和報(bào)警,同時(shí)能夠?qū)?shù)據(jù)包中相應(yīng)的數(shù)據(jù)特征提取。系統(tǒng)總體結(jié)構(gòu)如圖3所示。
圖3 系統(tǒng)總體模塊結(jié)構(gòu)
該系統(tǒng)由數(shù)據(jù)捕獲,協(xié)議分析和異常檢測(cè)等幾個(gè)模塊構(gòu)成,盡管本系統(tǒng)只是用于實(shí)驗(yàn)性的工作,但考慮到蠕蟲(chóng)發(fā)展的現(xiàn)狀和以后改進(jìn)的需要,還是提供了一點(diǎn)的擴(kuò)展功能。
① 數(shù)據(jù)包捕獲模塊。該模塊的主要功能是通過(guò)在以太網(wǎng)中使用winPcap實(shí)現(xiàn)對(duì)數(shù)據(jù)包的捕獲功能,為后面進(jìn)行數(shù)據(jù)分析提供依據(jù)。
② 協(xié)議分析模塊。協(xié)議分析模塊是通過(guò)數(shù)據(jù)傳輸?shù)奶攸c(diǎn),完成數(shù)據(jù)包的逆向分析,獲取數(shù)據(jù)包每層的數(shù)據(jù)信息。
③ 基于貝葉斯的檢測(cè)模塊。通過(guò)協(xié)議分析模塊的實(shí)現(xiàn),我們獲取了每層數(shù)據(jù)包的信息,通過(guò)對(duì)數(shù)據(jù)包頭信息的分析,我們結(jié)合數(shù)據(jù)的異常檢測(cè)算法,能夠及時(shí)的發(fā)現(xiàn)潛在的數(shù)據(jù)威脅并進(jìn)行有效的報(bào)警。
④ 特征提取模塊。在數(shù)據(jù)的異常檢測(cè)部分,我們完成了對(duì)異常數(shù)據(jù)的檢測(cè),但是我們?cè)O(shè)計(jì)系統(tǒng)的目標(biāo)是為了發(fā)現(xiàn)蠕蟲(chóng)的傳播和攻擊特點(diǎn),而特征碼真是對(duì)其特點(diǎn)的最好體現(xiàn),通過(guò)特征信息的提取,為以后的數(shù)據(jù)檢測(cè)分析提供了有效的方法。
⑤ 數(shù)據(jù)庫(kù)的實(shí)現(xiàn)。在數(shù)據(jù)庫(kù)的設(shè)計(jì)方面我們將采用開(kāi)源軟件Mysql來(lái)實(shí)現(xiàn)。
為了得到理想的測(cè)試效果,本測(cè)試?yán)昧速愰T鐵克蠕蟲(chóng)模擬器的simulatr的蠕蟲(chóng)模擬功能,在地址為192.168.0.199及222的兩臺(tái)機(jī)器上啟動(dòng)蠕蟲(chóng)模擬器,通過(guò)加載Blaster Worm和MyDoom Worm兩個(gè)蠕蟲(chóng)程序。系統(tǒng)將會(huì)自動(dòng)模擬這兩種蠕蟲(chóng)的傳播方式進(jìn)行傳播,其效果如圖4所示。
圖4 蠕蟲(chóng)模擬程序
在系統(tǒng)檢測(cè)服務(wù)器運(yùn)行蠕蟲(chóng)檢測(cè)程序,該程序首先會(huì)進(jìn)行初始化操作,完成系統(tǒng)網(wǎng)卡的選擇,然后進(jìn)入系統(tǒng)等待狀態(tài),其進(jìn)入等待后的狀態(tài)如圖5所示。
圖5 系統(tǒng)運(yùn)行界面
在完成了數(shù)據(jù)包的捕獲后,系統(tǒng)將會(huì)根據(jù)設(shè)置的參數(shù)完成對(duì)數(shù)據(jù)的分析工作,上面的圖示中顯示了系統(tǒng)分析的結(jié)果。系統(tǒng)根據(jù)捕獲數(shù)據(jù)包的情況,完成了對(duì)數(shù)據(jù)的分析工作,在上圖中展示了異常數(shù)據(jù)的信息,包括其發(fā)生的時(shí)間,源地址信息,目的地址,所采用的端口及協(xié)議信息等。采用同樣的方式,我們會(huì)看到系統(tǒng)根據(jù)異常檢測(cè)的結(jié)果提取的數(shù)據(jù)的特征信息。其最終的結(jié)果如圖6所示。
圖6 提取的特征信息
Step1:為了對(duì)基于序列聯(lián)配的特征提取進(jìn)行比較,本文選擇了ATPhttpd和BIND-TSIG這兩種漏洞來(lái)進(jìn)行攻擊測(cè)試。ATPhttpd是一款高性能的小型WEB服務(wù)程序,遠(yuǎn)程攻擊者可以利用此來(lái)進(jìn)行緩沖區(qū)溢出攻擊。BIND是一個(gè)實(shí)現(xiàn)域名服務(wù)協(xié)議的服務(wù)器軟件,在TSIG(傳輸簽名)的實(shí)現(xiàn)上存在一個(gè)緩沖區(qū)溢出漏洞,可能允許遠(yuǎn)程攻擊者在BIND服務(wù)器上執(zhí)行任意代碼。
Step2:采用了兩個(gè)不含攻擊的數(shù)據(jù)集 DRAPA96和DRAPA97來(lái)進(jìn)行攻擊測(cè)試,并采用ADMmutate對(duì)數(shù)據(jù)進(jìn)行了變形處理,使得對(duì)漏洞的攻擊能產(chǎn)生多個(gè)攻擊的樣本;
在試驗(yàn)中,本文分別采用了LCS算法,Needleman算法及其改進(jìn)的激勵(lì)算法進(jìn)行了特征的提取工作,表1即為特征提取的結(jié)果對(duì)比。
表1 提取的攻擊特征對(duì)比圖
從上表中不難看出,當(dāng)采用改進(jìn)的 Neeleman算法時(shí),所提取的特征比LCS算法和Needleman算法更為準(zhǔn)確。準(zhǔn)確性從提取的特征的數(shù)量和特征的片段都有所反應(yīng)。如在 BIND攻擊的時(shí)候,采用 Neeleman算法所提取的特征少了聯(lián)系后面 x00 x00 xFA的特征x00。同時(shí),在改進(jìn)算法的ATPhttpd攻擊中,其提取的特征BF ?????????? r n有多個(gè)問(wèn)號(hào),也就是說(shuō)有多個(gè)可變的字符,這也更能反映變形或隱藏攻擊的情況。
本文通過(guò)分析現(xiàn)有蠕蟲(chóng)特征提取方法,引入了生物信息中特征的提取方法,同時(shí)針對(duì)算法中的不足提出了相應(yīng)的改進(jìn)方法。在此基礎(chǔ)上設(shè)計(jì)了網(wǎng)絡(luò)蠕蟲(chóng)的特征值提取模型。通過(guò)測(cè)試證明,該模型對(duì)已知及未知病毒蠕蟲(chóng)特征的提取都具有一定的參考價(jià)值。
[1]Hofmeyr,Forrest S.Architecture for an artificial Immune system[J].Evolutionary Computation.2011.
[2]Vigna G,Kemmerer R A.NetSTAT:a network-based Intrusion Detection System[J].Computer Security.2010.
[3]R.Lo,P.Kerchen and R.Crawford.Towards a testbed for malicious code detection[J].Computer Communication.2010.
[4]AntonChuvakin,GCIA GCIH.Honeynets:High Value Security Data[J].Network Security.2009.
[5]鄭輝.Internet 蠕蟲(chóng)研究[D].南開(kāi)大學(xué).2003.
[6]鄭軍,胡銘曾,云曉春,鄭仲.基于數(shù)據(jù)流方法的大規(guī)模網(wǎng)絡(luò)異常發(fā)現(xiàn)[J].通信學(xué)報(bào).2006.