王勁松,劉帆,張健
(1.天津理工大學(xué) 計(jì)算機(jī)視覺(jué)與系統(tǒng)省部共建教育部重點(diǎn)實(shí)驗(yàn)室,天津 300191;2.天津理工大學(xué) 智能計(jì)算及軟件新技術(shù)天津市重點(diǎn)實(shí)驗(yàn)室,天津 300191; 3.國(guó)家計(jì)算機(jī)病毒應(yīng)急處理中心,天津 300457)
隨著互聯(lián)網(wǎng)的普及,安全問(wèn)題變得越來(lái)越嚴(yán)重。據(jù)CNCERT/CC2008年度上半年報(bào)告[1]顯示:在境內(nèi)外控制者利用木馬控制端對(duì)主機(jī)進(jìn)行控制的事件中,木馬控制端IP地址總數(shù)為280 068個(gè),被控制端IP地址總數(shù)為1 485 868個(gè),我國(guó)大陸地區(qū)302 526個(gè)IP地址的主機(jī)被植入木馬。
針對(duì)這一現(xiàn)狀,學(xué)術(shù)界已進(jìn)行了很多相關(guān)研究并先后提出了很多方法來(lái)嘗試解決這一問(wèn)題。近年來(lái),基于P2P模型的僵尸網(wǎng)絡(luò)逐漸發(fā)展壯大起來(lái),因此對(duì)P2P模型僵尸網(wǎng)絡(luò)的研究也成為了網(wǎng)絡(luò)安全領(lǐng)域的熱點(diǎn)話題[2,3],目前國(guó)內(nèi)外的僵尸網(wǎng)絡(luò)檢測(cè)技術(shù)可以分為如下3類[4]。
1) 基于蜜罐的檢測(cè)方法。蜜罐技術(shù)通過(guò)模擬真實(shí)主機(jī)來(lái)誘騙攻擊者,從而捕獲僵尸程序樣本,然后通過(guò)逆向工程等手段獲取并分析隱藏在代碼中的僵尸網(wǎng)絡(luò)相關(guān)信息。文獻(xiàn)[5]介紹了諸葛建偉等人設(shè)計(jì)開(kāi)發(fā)的一種基于高交互式蜜罐技術(shù)的惡意代碼自動(dòng)捕獲器——HoneyBow,它能夠高效地對(duì)互聯(lián)網(wǎng)上實(shí)際傳播的惡意代碼和網(wǎng)絡(luò)攻擊進(jìn)行自動(dòng)捕獲,并提交到集中的樣本服務(wù)器上。以該系統(tǒng)研究成果為基礎(chǔ),CNCERT/CC在全國(guó)15個(gè)省市自治區(qū)部署了一個(gè)名為Matrix的分布式蜜網(wǎng)試驗(yàn)系統(tǒng)[6],用于捕獲惡意代碼和跟蹤僵尸網(wǎng)絡(luò)。蜜罐技術(shù)可以檢測(cè)未知類型的僵尸程序,但是部署成本較高,而且對(duì)于已經(jīng)停止傳播的僵尸網(wǎng)絡(luò)無(wú)法檢測(cè)[7]。
此外,蜜罐系統(tǒng)還必須能夠較好地偽裝自己以不被攻擊者識(shí)破,文獻(xiàn)[8]重點(diǎn)研究了這一問(wèn)題。
2) 基于網(wǎng)絡(luò)異常的檢測(cè)方法。此類方法著眼于僵尸網(wǎng)絡(luò)中的受控主機(jī)(僵尸)在接受來(lái)自控制端的命令、發(fā)起攻擊或進(jìn)行掃描以求擴(kuò)散惡意代碼等的行為與其他正常網(wǎng)絡(luò)應(yīng)用的不同,但由于忽略數(shù)據(jù)流的具體內(nèi)容而造成誤報(bào)漏報(bào)率較高,而且有可能局限于特定結(jié)構(gòu)的僵尸網(wǎng)絡(luò),不能實(shí)時(shí)檢測(cè)。
Guofei Gu等人在文獻(xiàn)[9]中設(shè)計(jì)并實(shí)現(xiàn)了通過(guò)對(duì)網(wǎng)絡(luò)流量進(jìn)行聚類分析從而達(dá)到與協(xié)議和結(jié)構(gòu)無(wú)關(guān)的僵尸網(wǎng)絡(luò)檢測(cè)器 BotMinner,但是這種檢測(cè)方法的準(zhǔn)確度不夠理想,誤報(bào)、漏報(bào)率較高,檢測(cè)速度也無(wú)法達(dá)到實(shí)時(shí)在線檢測(cè)的要求。
Chet Langin等人提出一種基于自組映射(SOM)的惡意流量檢測(cè)方法[10]:將邊緣防火墻的日志記錄作為向量輸入到自組映射中,經(jīng)過(guò)運(yùn)算之后得出結(jié)果,可以識(shí)別未知僵尸通信,其缺點(diǎn)是依賴于邊緣網(wǎng)絡(luò)的防火墻,生成的報(bào)告也有明顯的延遲。
3) 基于流分類技術(shù)的檢測(cè)方法。與基于網(wǎng)絡(luò)異常的檢測(cè)方法不同,基于流分類技術(shù)的僵尸網(wǎng)絡(luò)監(jiān)測(cè)方法主要根據(jù)數(shù)據(jù)流的特點(diǎn)將其區(qū)分為各種網(wǎng)絡(luò)應(yīng)用,包括正常的和異常的。該類方法大多誤報(bào)漏報(bào)率較低,其難點(diǎn)在于找到合適的依據(jù)對(duì)網(wǎng)絡(luò)數(shù)據(jù)流進(jìn)行分類。
Sang-Kyun Noh等人介紹了一種可用于檢測(cè)P2P僵尸網(wǎng)絡(luò)的多階段流模型[11],這一頗具新意的方法將網(wǎng)絡(luò)流作為輸入對(duì)象,克服了對(duì)邊緣網(wǎng)絡(luò)的依賴性,但使用了馬爾科夫鏈等復(fù)雜模型,對(duì)網(wǎng)絡(luò)數(shù)據(jù)流量處理能力有限,并且誤報(bào)率較高。
Tao Wang等人采用流聚合[12]的思想,利用僵尸主機(jī)間通信的相似性和同步性特點(diǎn)來(lái)實(shí)時(shí)在線檢測(cè)僵尸主機(jī),可以檢測(cè)出未知類型的僵尸流量,但是這一模型需要白名單的支持,在系統(tǒng)白名單尚不健全時(shí),誤報(bào)率會(huì)比較高。
相比之下,使用特征串過(guò)濾器對(duì)數(shù)據(jù)分組進(jìn)行過(guò)濾的僵尸網(wǎng)絡(luò)檢測(cè)方法的優(yōu)點(diǎn)是準(zhǔn)確性高、健壯性好、具有分類功能等[13],并且可以檢測(cè)已經(jīng)停止傳播的僵尸程序。使用特征碼過(guò)濾器的方法檢測(cè)僵尸網(wǎng)絡(luò)是從網(wǎng)絡(luò)通信流量分析的角度,通過(guò)在網(wǎng)絡(luò)拓?fù)渲械年P(guān)鍵節(jié)點(diǎn)部署數(shù)據(jù)分組監(jiān)聽(tīng)軟件或設(shè)備,按照預(yù)定義的特征碼對(duì)捕獲到的數(shù)據(jù)分組進(jìn)行匹配,一旦匹配成功則說(shuō)明網(wǎng)絡(luò)上某對(duì)IP地址主機(jī)之間存在著被檢測(cè)的網(wǎng)絡(luò)應(yīng)用,如僵尸程序。這一方法的缺點(diǎn)是對(duì)數(shù)據(jù)分組過(guò)濾系統(tǒng)的性能要求較高,并且傳統(tǒng)的分組過(guò)濾系統(tǒng)的特征碼一般都是基于單一數(shù)據(jù)分組的,當(dāng)某種僵尸程序的數(shù)據(jù)分組特征過(guò)于短小或不夠明顯時(shí),如果仍然使用單分組特征碼進(jìn)行過(guò)濾,可能單位時(shí)間內(nèi)會(huì)匹配大量的正常網(wǎng)絡(luò)應(yīng)用的數(shù)據(jù)分組,這無(wú)疑大大降低了檢測(cè)結(jié)果的準(zhǔn)確性。
針對(duì)這一問(wèn)題,本文提出了一種基于組特征過(guò)濾器的僵尸網(wǎng)絡(luò)檢測(cè)方法,可以有效地應(yīng)對(duì)特征碼的非單分組分布,準(zhǔn)確找出使用了待檢測(cè)網(wǎng)絡(luò)應(yīng)用的IP主機(jī),并且用實(shí)驗(yàn)證明該方法也可以對(duì)已經(jīng)停止傳播的僵尸網(wǎng)絡(luò)進(jìn)行準(zhǔn)確檢測(cè),算法空間復(fù)雜度為O(tmn)。表1對(duì)上述幾種類型的僵尸網(wǎng)絡(luò)檢測(cè)方法做了簡(jiǎn)單對(duì)比。
表1 幾種僵尸網(wǎng)絡(luò)檢測(cè)方法對(duì)比
僵尸網(wǎng)絡(luò)客戶端為了使自己不被用戶和反病毒軟件發(fā)現(xiàn),一般都要將自己隱藏起來(lái),這里所提到的隱藏包括2方面內(nèi)容:一方面是對(duì)文件系統(tǒng)的隱藏,僵尸客戶端大多通過(guò)進(jìn)程注入、修改自身的非關(guān)鍵代碼等方式來(lái)實(shí)現(xiàn),這種隱藏可以逃避反病毒軟件的檢測(cè)。另一方面是對(duì)網(wǎng)絡(luò)的隱藏,由于僵尸客戶端都需要與位于互聯(lián)網(wǎng)上的僵尸控制端進(jìn)行網(wǎng)絡(luò)通信,因此僵尸客戶端大多通過(guò)端口重用、反彈連接等方法來(lái)逃避防火墻的攔截。無(wú)論何種隱藏,由于對(duì)于僵尸主機(jī)來(lái)說(shuō)網(wǎng)絡(luò)通信總是必要的,所以可以通過(guò)分析其數(shù)據(jù)分組的特征字串來(lái)實(shí)現(xiàn)從網(wǎng)絡(luò)上對(duì)僵尸網(wǎng)絡(luò)的檢測(cè)。這種方法的依據(jù)是:僵尸客戶端可以接受多種不同的命令從而采取相應(yīng)的動(dòng)作,所以其數(shù)據(jù)分組特征是客觀存在的,一旦網(wǎng)絡(luò)上出現(xiàn)一個(gè)與預(yù)定義特征串相匹配的數(shù)據(jù)分組,則可以認(rèn)定該數(shù)據(jù)分組所指出的一對(duì)IP主機(jī)屬于某個(gè)僵尸網(wǎng)絡(luò)。
通過(guò)研究發(fā)現(xiàn)一些僵尸客戶端開(kāi)始從數(shù)據(jù)分組層隱藏自己,具體表現(xiàn)為特征串簡(jiǎn)短化,并分散于多個(gè)數(shù)據(jù)分組中。在這種情況下如果仍然使用單分組特征串進(jìn)行過(guò)濾,由于特征串長(zhǎng)度過(guò)短而造成的可區(qū)分度大幅下降,造成短時(shí)間內(nèi)有大量數(shù)據(jù)分組發(fā)生匹配,而這些數(shù)據(jù)分組大多是正常的網(wǎng)絡(luò)應(yīng)用所產(chǎn)生的,從而使得過(guò)濾結(jié)果沒(méi)有實(shí)際意義,也喪失了基于數(shù)據(jù)分組過(guò)濾的僵尸主機(jī)檢測(cè)方法原本的精確性。
為了解決在僵尸數(shù)據(jù)分組特征簡(jiǎn)短化和多分組分布的情況下數(shù)據(jù)分組過(guò)濾精確度大幅降低的問(wèn)題,本文提出了一種新的基于組特征過(guò)濾器的檢測(cè)方法。
定義 1 設(shè)集合 S={s1,s2,…,sn,a} ,n ∈N+,a∈N+,1≤a≤n,若si與sj(1≤i,j≤n)是2個(gè)不同的數(shù)據(jù)分組過(guò)濾特征串,a是一固定常數(shù),那么集合S稱為組特征過(guò)濾器,si或sj稱為組特征過(guò)濾器S的成員特征,正整數(shù)n稱為組特征過(guò)濾器S的維度,a稱為組特征過(guò)濾器S的警戒值。
當(dāng)使用維度為n的組特征過(guò)濾器S對(duì)一個(gè)數(shù)據(jù)分組進(jìn)行過(guò)濾匹配時(shí),等價(jià)于使用 si(si∈ S ,1≤i≤n)對(duì)該數(shù)據(jù)分組逐一進(jìn)行過(guò)濾匹配,并將匹配結(jié)果寫入S所對(duì)應(yīng)的位向量表中。
定義2 有m個(gè)n維向量構(gòu)成的集合V={v1,v2,…,vm},m∈N+,若對(duì)于任意vi=(vi1,vi2,…,vin)(vi∈V,1≤i≤m,i∈N+)的每一個(gè)分量vij(1≤j≤n)的值都滿足vij∈{0,1},即向量vi是位向量,那么集合V稱為位向量表。
實(shí)際使用時(shí),位向量表將與組特征過(guò)濾器協(xié)同工作,位向量表中的一個(gè)向量對(duì)應(yīng)一個(gè)IP地址,用于保存一個(gè)組特征過(guò)濾器的數(shù)據(jù)分組匹配結(jié)果。當(dāng)有多于一個(gè)的組特征過(guò)濾器工作時(shí),就需要多個(gè)位向量表分別與之對(duì)應(yīng)。
定義3 當(dāng)確定某對(duì)IP主機(jī)之間存在僵尸通信,則新增一個(gè)過(guò)濾器 s′={IPs,I Pd,TC,TH}用于過(guò)濾該對(duì)IP主機(jī)之間的通信數(shù)據(jù),其中IPs表示源IP地址,IPd表示目的IP地址,TC表示s′的生成時(shí)間,TH表示s′的最后一次匹配時(shí)間,s′稱為動(dòng)態(tài)過(guò)濾器。
當(dāng)數(shù)據(jù)分組與一個(gè)組特征過(guò)濾器的發(fā)生匹配(即與一個(gè)成員特征發(fā)生匹配)時(shí),應(yīng)當(dāng)將匹配結(jié)果保存起來(lái)。保存發(fā)生匹配的數(shù)據(jù)分組的所有內(nèi)容顯然是不現(xiàn)實(shí)的,而如果只保存數(shù)據(jù)分組的源 IP地址和目的IP地址將節(jié)省很大的空間。事實(shí)上,網(wǎng)絡(luò)管理員由于自身管理權(quán)限有限,往往難以對(duì)來(lái)自外網(wǎng)的主機(jī)施加干預(yù),而對(duì)內(nèi)網(wǎng)主機(jī)擁有較高的管理權(quán)限。因此在沒(méi)有斷定某臺(tái)主機(jī)上運(yùn)行了僵尸客戶端之前只需記錄數(shù)據(jù)分組的內(nèi)網(wǎng)IP地址,當(dāng)匹配了多次并足以斷言一對(duì) IP地址的主機(jī)在進(jìn)行僵尸通信時(shí)再同時(shí)保存源IP地址和目的IP地址,甚至數(shù)據(jù)分組全文。組特征過(guò)濾器系統(tǒng)工作流程。
1) 建立內(nèi)網(wǎng)IP地址與位向量表中位向量的映射關(guān)系。例如,對(duì)于一個(gè)B類子網(wǎng),使用以下散列函數(shù)建立映射關(guān)系:式(1)中,IP_Addr表示內(nèi)網(wǎng)中任意一個(gè)IP地址,Byte1表示一個(gè)IP地址從低位到高位的第一字節(jié),同理Byte2表示第二字節(jié),函數(shù)MAKEWORD將 2個(gè)單字節(jié)數(shù)拼湊成為1個(gè)雙字節(jié)數(shù)。內(nèi)網(wǎng)中一個(gè)IP地址的散列結(jié)果HashIndex就是這個(gè)地址所對(duì)應(yīng)的位向量表中位向量的序號(hào)。
2) 若個(gè)數(shù)據(jù)分組Pck與維度為n,警戒值為a的組特征過(guò)濾器S發(fā)生匹配,且相匹配的成員特征是si,則找到數(shù)據(jù)分組Pck的內(nèi)網(wǎng)端IP地址,并將IP地址帶入式(1)中得到散列值HashIndex,根據(jù)HashIndex的值將位向量表V中的位向量vHashIndex的第i個(gè)分量置為1,然后計(jì)算。
4) 顯然,s′應(yīng)在S之前嘗試與數(shù)據(jù)分組進(jìn)行匹配。當(dāng)存在多個(gè)動(dòng)態(tài)過(guò)濾器時(shí),這一點(diǎn)仍然適用。一旦數(shù)據(jù)分組與任何一個(gè)過(guò)濾器發(fā)生匹配,則應(yīng)立即停止與后續(xù)過(guò)濾器的嘗試匹配步驟。
若同時(shí)存在t個(gè)組特征過(guò)濾器 S1,S2,…,St(t > 1,t ∈ N+),則應(yīng)同時(shí)具備相同個(gè)數(shù)的位向量表 V1,V2,…,Vt(t > 1,t ∈ N+)與之分別對(duì)應(yīng)。
設(shè)動(dòng)態(tài)過(guò)濾器s′={IPs,I Pd,TC,TH}是由組特征過(guò)濾器S生成的,S所對(duì)應(yīng)的位向量表是V,假設(shè)IPs是內(nèi)網(wǎng)IP地址,由式(1)得出的IPs散列值為Hs',則S的匹配信息保存于位向量vHs'中。指定時(shí)間差閾值Tt,如果一個(gè)數(shù)據(jù)分組 Pck與s′發(fā)生匹配,則首先置TH為系統(tǒng)當(dāng)前時(shí)間,并判斷TH-TC≤Tt是否成立,若成立,則將Pck保存,若不成立,則Pck不必保存,同時(shí)應(yīng)刪除s′,并將位向量vHs'置為零向量。這樣做的目的在于避免當(dāng)IPs與IPd之間的僵尸通信已經(jīng)結(jié)束時(shí),過(guò)濾系統(tǒng)仍然保存過(guò)多的無(wú)用數(shù)據(jù)分組。為了更好地達(dá)到這一目的,可以指定匹配次數(shù)閾值Ht,當(dāng)s′匹配了足夠多次后就將其刪除,并將位向量vHs'置為零向量。當(dāng)過(guò)濾系統(tǒng)只為能識(shí)別內(nèi)網(wǎng)某IP進(jìn)行了僵尸通信,而不必還原其通信數(shù)據(jù)時(shí),這一設(shè)置將節(jié)省出一定的內(nèi)存空間。
組特征過(guò)濾器系統(tǒng)模型如圖1所示。
圖1 組特征過(guò)濾器系統(tǒng)模型
由上述的過(guò)濾步驟不難看出,基于組特征過(guò)濾器的過(guò)濾算法與傳統(tǒng)的單分組特征過(guò)濾算法相比,增加了位向量表用于保存每個(gè)組特征過(guò)濾器的匹配結(jié)果信息。設(shè)式(1)的值域中共有m(m ≥1,m ∈N+)個(gè) 可 能 的 值 , 與 維 度 為n(n ≥1,n ∈N+)的組特征向量過(guò)濾器Si所對(duì)應(yīng)的位向量表是Vi,則有 Vi={vi1,vi2,…,vim},其中,對(duì)于每個(gè) vik(1≤k≤m,k ∈ N+),都滿足dim(vik)=n。因此,由Si所引入的空間復(fù)雜度為O(mn),若在系統(tǒng)中同時(shí)存在t個(gè)組特征過(guò)濾器,相應(yīng)的空間復(fù)雜度增加到O(tmn)。
實(shí)際上,因?yàn)橛?jì)算機(jī)最小處理單位為字節(jié)(byte),1 byte=8 bit,所以可以用1 byte的空間來(lái)存儲(chǔ)一個(gè)8維位向量,并且使每個(gè)位向量的維度是8的整數(shù)倍,即滿足dim(vik)=8×n/8。于是對(duì)于一個(gè)B類IP地址網(wǎng)段,與維度為 n(n ≥1,n ∈N+)的組特征向量過(guò)濾器Si對(duì)應(yīng)的位向量表Vi所需的存儲(chǔ)空間約為
MSi=65535×8×n/8bit=65535×n/8byte
一般情況下,維度n≤8時(shí)已能滿足大多數(shù)需求,因此根據(jù)上式可知Vi所需存儲(chǔ)空間約為65 535byte,即 64kbyte。若在系統(tǒng)中同時(shí)存在t個(gè)組特征過(guò)濾器,相應(yīng)的所需空間64 t kbyte。
顯然,在基于組特征過(guò)濾器的僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng)中,傳統(tǒng)的單分組匹配算法仍然適用,所以不會(huì)改變過(guò)濾系統(tǒng)的時(shí)間復(fù)雜度。
基于組特征過(guò)濾器的僵尸主機(jī)檢測(cè)算法將檢測(cè)對(duì)象由傳統(tǒng)的數(shù)據(jù)分組間接轉(zhuǎn)換為IP地址對(duì),并且可以將一個(gè)傳統(tǒng)的單分組過(guò)濾器轉(zhuǎn)換為組特征過(guò)濾器,但這一轉(zhuǎn)換往往是不可逆的。如果一個(gè)組特征過(guò)濾器S只有一個(gè)成員特征si,那么S等價(jià)于si所表示的單分組過(guò)濾器。
灰鴿子是國(guó)內(nèi)一款“著名”遠(yuǎn)程控制軟件,也是黑客們常用的后門軟件,其主要功能有遠(yuǎn)程文件傳輸、執(zhí)行,文件目錄、進(jìn)程列表的獲取,截獲屏幕等。RAdmin也是一款常見(jiàn)的遠(yuǎn)程控制型僵尸軟件,其功能與灰鴿子基本相似,但影響范圍和破壞力都略遜色于灰鴿子。通過(guò)研究發(fā)現(xiàn),灰鴿子的通信流量可以通過(guò)單分組特征串來(lái)識(shí)別,而 RAdmin的通信數(shù)據(jù)分組單分組特征極不明顯,且極易與正常流量相混淆,但是其數(shù)據(jù)分組之間存在明顯的聯(lián)系,因此可以使用組特征過(guò)濾器的方法來(lái)識(shí)別RAdmin的通信流量。
為驗(yàn)證方法的有效性,搭建了如圖2所示的實(shí)驗(yàn)環(huán)境。
圖2 實(shí)驗(yàn)環(huán)境
在IP為202.113.76.97的主機(jī)A上同時(shí)安裝了灰鴿子控制端程序和RAdmin控制端程序,在IP為202.113.76.119的主機(jī)B上安裝了灰鴿子受控端程序,在 IP為 202.113.76.115的主機(jī) C上安裝了RAdmin受控端程序,另有正常主機(jī)D~F。實(shí)驗(yàn)中主機(jī)B~F同時(shí)進(jìn)行不間斷的局域網(wǎng)文件傳輸,用以模擬正常流量。
按照上述特征串,針對(duì)灰鴿子建立了有1個(gè)成員特征的組特征過(guò)濾器并設(shè)置過(guò)濾器警戒值為 1;對(duì)于RAdmin建立了有8個(gè)成員的組特征過(guò)濾器,并設(shè)置過(guò)濾器警戒值為5。
指定B~F為內(nèi)網(wǎng)主機(jī),A為外網(wǎng)主機(jī)。實(shí)驗(yàn)開(kāi)始后,先后在主機(jī)A上發(fā)現(xiàn)主機(jī)B和C都成功連接到了相應(yīng)的控制端程序上,此時(shí)開(kāi)啟研發(fā)的數(shù)據(jù)分組檢測(cè)工具BotCapD,之后利用安裝在A上的灰鴿子控制端和RAdmin控制端分別給B、C主機(jī)發(fā)送一些控制命令,如傳輸、執(zhí)行文件,監(jiān)視屏幕等?;银澴涌刂贫税l(fā)送完一次控制命令后,BotCapD已經(jīng)檢測(cè)出網(wǎng)絡(luò)中 2個(gè)主機(jī)之間存在疑似灰鴿子流量;RAdmin控制端在發(fā)送完兩次命令后也被成功檢測(cè)。檢測(cè)結(jié)果如圖3、圖4所示。
圖3 Radmin組特征過(guò)濾器各成員特征匹配次數(shù)
圖4 BotCapD對(duì)灰鴿子和RAdmin主機(jī)通信的檢測(cè)結(jié)果
從圖3中可以看出,在RAdmin的組特征的各個(gè)成員特征中 s1的匹配次數(shù)明顯高于其他各成員,這是由于實(shí)驗(yàn)過(guò)程用于模擬正常流量的局域網(wǎng)文件傳輸數(shù)據(jù)分組大量與 s1發(fā)生匹配,但同時(shí)存在其他7個(gè)成員特征將s1的匹配失誤所產(chǎn)生的負(fù)面影響減至最低。事實(shí)上,s2~s8也有可能存在匹配失誤,但是考慮到只有 RAdmin的流量數(shù)據(jù)分組完整具有s1~s8全部特征,因此與它們匹配的主機(jī)對(duì)的集合的交集就是進(jìn)行 RAdmin通信的一對(duì)主機(jī)。由于警戒值設(shè)置為5,所以上述實(shí)驗(yàn)中取了5個(gè)成員特征匹配集合的交集實(shí)現(xiàn)了對(duì)RAdmin通信流量的檢測(cè)。如果從系統(tǒng)效率的角度考慮,s1匹配失誤過(guò)多使得效率降低,應(yīng)找到更適合的特征串替換s1。
實(shí)驗(yàn)證明,使用組特征過(guò)濾的方法時(shí),可以通過(guò)只設(shè)置一個(gè)成員特征來(lái)實(shí)現(xiàn)單分組特征過(guò)濾;也可以設(shè)置一組成員特征來(lái)實(shí)現(xiàn)組過(guò)濾,并且在不需要設(shè)計(jì)開(kāi)發(fā)新的模式匹配算法的前提之下實(shí)現(xiàn)了對(duì)僵尸主機(jī)間的通信數(shù)據(jù)的識(shí)別,進(jìn)而檢測(cè)出僵尸主機(jī),同時(shí),檢測(cè)系統(tǒng)的內(nèi)存占用和 CPU占用都在可接受范圍內(nèi)。
通過(guò)大量實(shí)驗(yàn)分析各種遠(yuǎn)程控制型僵尸通信時(shí)所用的內(nèi)部協(xié)議,包括上興遠(yuǎn)控(又名PCShare)、Boer、寧瑞、小熊遠(yuǎn)控(又名 Bear)、冰河等遠(yuǎn)程控制型僵尸主機(jī)通信找到了它們的通信特征,建立了相應(yīng)的組特征庫(kù)。
為了驗(yàn)證方法的有效性,在天津教育城域網(wǎng)中部署了 BotCapD,通過(guò)流量鏡像對(duì)主干網(wǎng)上的部分流量進(jìn)行僵尸主機(jī)檢測(cè),平均流量在 600~800Mbit/s之間。圖5給出了BotCapD連續(xù)運(yùn)行1個(gè)月后的檢測(cè)結(jié)果,圖中連線的匯聚點(diǎn)為疑似僵尸網(wǎng)絡(luò)控制端主機(jī)。通過(guò)IP地址定位查詢,在天津市教育網(wǎng)中找到了該主機(jī),通過(guò)使用多種主機(jī)安全軟件對(duì)該主機(jī)進(jìn)行徹底查毒,查找到并刪除了木馬程序。在刪除木馬程序之后,BotCapD沒(méi)有再捕捉到該主機(jī)的異常通信流量。實(shí)驗(yàn)證明組特征過(guò)濾的方法可以準(zhǔn)確地檢測(cè)出遠(yuǎn)程控制型僵尸程序的通信。
圖5 BotCapD對(duì)天津教育城域網(wǎng)的流量檢測(cè)
總體來(lái)說(shuō),由于受軟件開(kāi)發(fā)水平所限,很多僵尸通信數(shù)據(jù)分組不具備一定的協(xié)議格式,但如果將多個(gè)交互數(shù)據(jù)分組視作一組,卻往往能體現(xiàn)出某種特異性。組特征過(guò)濾的思想正是利用了這一點(diǎn)。另一方面,一些影響較為廣泛的遠(yuǎn)程控制僵尸系統(tǒng)在通信時(shí)都嚴(yán)格遵循其內(nèi)部協(xié)議,每個(gè)數(shù)據(jù)分組都含有特征串,此時(shí)若能將一個(gè)特征串單獨(dú)視為一組,那么顯然也可以使用這樣一個(gè)組特征過(guò)濾器來(lái)檢測(cè)僵尸通信流量。
本文所介紹的基于組特征過(guò)濾器的僵尸網(wǎng)絡(luò)檢測(cè)方法,以增加O(tmn)在特征串較短,且分散于多個(gè)數(shù)據(jù)分組情況下的僵尸通信識(shí)別問(wèn)題。同時(shí),該方法可以實(shí)時(shí)對(duì)網(wǎng)絡(luò)流量進(jìn)行檢測(cè),能夠即時(shí)生成檢測(cè)報(bào)告。此外,檢測(cè)系統(tǒng)允許部署在較大規(guī)模網(wǎng)絡(luò)的主干網(wǎng)上,且不依賴于邊緣網(wǎng)絡(luò)設(shè)備,對(duì)各種網(wǎng)絡(luò)協(xié)議上的僵尸通信流量都可以準(zhǔn)確檢測(cè),并能夠識(shí)別出具體的僵尸客戶端。實(shí)驗(yàn)也驗(yàn)證了該檢測(cè)方法的可行性、準(zhǔn)確性和高效性。
但是,隨著特征庫(kù)的不斷增長(zhǎng),檢測(cè)系統(tǒng)的整體性能可能會(huì)有所下降,對(duì)資源的占用也會(huì)逐漸增加,另外,系統(tǒng)對(duì)新出現(xiàn)的僵尸通信無(wú)法識(shí)別,這也是 DPI算法的主要缺陷。因此,如何改進(jìn)檢測(cè)策略以盡量減少檢測(cè)系統(tǒng)對(duì)資源的占用從而保證檢測(cè)效率,如何在發(fā)現(xiàn)新的僵尸通信流量后能盡量方便地添加到檢測(cè)系統(tǒng)中,將是下一步需要解決的問(wèn)題。
[1] CNCERT/CC.CNCERT/CC Report of Network Security of First Half of 2008[R].2008.
[2] GRIZZARD J B,SHARMA V,NUNNERY C.Peer-to-peer botnets:overview and case study[A].Proc of the 1st Workshop on Hot Topics in Understanding Botnets(Hot-Bots 2007)[C] Boston,2007.
[3] DONG K K,LIU Y.Detection of peer-to-peer botnets[A].Information Security and Communications Privacy[C].2008.34-36.
[4] LU W,Mahbod tavallaee.botcop: an online botnet traffic classifier[A].Communication Networks and Services Research Conference,2009.CNSR '09[C].Seventh Annual,2009.
[5] ZHUGE J W,HAN X H,et al.Honeybow: an automated malware collection tool based on the high-interaction honeypot principle[J].Journal on Communications,2007,28(12):8-13.
[6] HAN X H,GUO J P.Investigation on the botnets activities[J].Journal on Communications,2007,28(12): 167-172.
[7] XIE K B,CAI W D,CAI J C.Decision tree based detection of botnet flow[A].Information Security and Communications Privacy[C].2008.76-77.
[8] ZOU C C,CUNNINGHAM R.Honeypot-aware advanced botnet construction and maintenance[A].Dependable Systems and Networks,2006.DSN 2006[C].2006,199-208.
[9] GU G F,PERDISCI R,ZHANG J J,et al.BotMiner: clustering analysis of network traffic for protocol and structure- independent botnet detection[A].17th Usenix Security Symposium[C].2008.8-18.
[10] LANGIN C,ZHOU H B,RAHIMI S H.A self-organizing map and its modeling for discovering malignant network traf fi c[A].IEEE Symposium on Computational Intelligence in Cyber Security[C].2009.122-129.
[11] NOH S K,OH J H,LEE J S.Detecting P2P botnets using a multi-phased flow model[A].Third International Conference on Digital Society[C].2009.247-253.
[12] WANG T,YU S Z.Parallel and distributed processing with applications[A].2009 IEEE International Symposium[C].2009.86-93.
[13] JIAN G Y.Research and Implementation of DeeP Packet Inspeetion P2P Flow Based on Heuristic Identification[D].Tianhe District,Guangzhou,Ji'nan University.2008.5.4