梁發(fā)洵
(廣州城市職業(yè)學(xué)院,廣東廣州510405)
截止2014年6月,中國(guó)網(wǎng)民規(guī)模達(dá)6.32億,互聯(lián)網(wǎng)普及率為46.9%,中國(guó)IPv4地址數(shù)量為3.30億,域名總數(shù)為1915萬(wàn)個(gè)。2014年6月,國(guó)家互聯(lián)網(wǎng)應(yīng)急中心(CNCERT)檢測(cè)發(fā)現(xiàn)木馬或僵尸網(wǎng)絡(luò)控制服務(wù)器IP總數(shù)為11,168個(gè),木馬或僵尸受控主機(jī)IP總數(shù)達(dá)117萬(wàn)余個(gè)。通過(guò)對(duì)全球范圍內(nèi)惡意代碼的捕獲和分析發(fā)現(xiàn),僵尸網(wǎng)絡(luò)已經(jīng)成為互聯(lián)網(wǎng)涉及范圍最廣、危害最大的威脅之一。它除了制造傳統(tǒng)上的DDoS(分布式拒絕服務(wù))攻擊外,還被用于盜取銀行賬戶、傳播垃圾郵件,甚至實(shí)施APT(高級(jí)持續(xù)性威脅)攻擊。僵尸網(wǎng)絡(luò)借助加密協(xié)議、P2P協(xié)議等,使得傳統(tǒng)的基于模式匹配的檢測(cè)技術(shù)無(wú)能為力。僵尸網(wǎng)絡(luò)通過(guò)與蠕蟲(chóng)病毒結(jié)合,使得僵尸網(wǎng)絡(luò)擴(kuò)散速度更快,擴(kuò)散范圍更廣,造成的破壞更大。
僵尸網(wǎng)絡(luò)是攻擊者(Botmaster)出于惡意目的,傳播僵尸程序控制大量主機(jī)并通過(guò)一對(duì)多的命令與控制信道所組成的網(wǎng)絡(luò)。僵尸網(wǎng)絡(luò)區(qū)別于其它網(wǎng)絡(luò)攻擊的特征是使用了一對(duì)多的命令與控制機(jī)制。僵尸網(wǎng)絡(luò)的組成如圖1所示。
圖1中的對(duì)象定義如下:
僵尸牧人(Botmaster):是指僵尸網(wǎng)絡(luò)的控制者和管理者,可以通過(guò)命令與控制信道向受控主機(jī)發(fā)送命令。
僵尸程序:是一種綜合了傳統(tǒng)木馬、蠕蟲(chóng)等技術(shù)的計(jì)算機(jī)病毒,采用各類傳播手段秘密地植入受控主機(jī),能夠自動(dòng)地運(yùn)行自身程序,并可以接收和執(zhí)行遠(yuǎn)程命令的惡意程序。
受控主機(jī)(Bot):受控主機(jī)是指攻擊者利用應(yīng)用程序、操作系統(tǒng)漏洞或者其他社會(huì)工程學(xué)方式成功入注并安裝執(zhí)行僵尸程序的網(wǎng)絡(luò)主機(jī)。
命令與控制(C&C)信道:命令與控制(C&C)信道是僵尸網(wǎng)絡(luò)的核心,用來(lái)向Bots發(fā)送各種預(yù)定義的命令以達(dá)到控制Bots的目的,同時(shí)可以用于接收Bots執(zhí)行命令的返回信息。
僵尸網(wǎng)絡(luò):由以上對(duì)象組成,是僵尸牧人出于惡意目的,通過(guò)各種手段傳播僵尸程序,實(shí)現(xiàn)通過(guò)一對(duì)多的命令與控制信道控制大量主機(jī)而構(gòu)成的網(wǎng)絡(luò)。
僵尸網(wǎng)絡(luò)根據(jù)命令與控制機(jī)制使用的不同協(xié)議分為三類,分別為基于IRC協(xié)議的僵尸網(wǎng)絡(luò)、基于HTTP協(xié)議的僵尸網(wǎng)絡(luò)以及基于P2P協(xié)議的僵尸網(wǎng)絡(luò)。
圖1 僵尸網(wǎng)絡(luò)的組成
圖2 P2P僵尸網(wǎng)絡(luò)工作機(jī)制圖
圖2以P2P僵尸網(wǎng)絡(luò)發(fā)起一次DDoS攻擊為例,解釋P2P僵尸網(wǎng)絡(luò)的工作機(jī)制。
(1)僵尸網(wǎng)絡(luò)的控制者通過(guò)各種方法(利用漏洞、郵件等方式)傳播僵尸病毒,使受害主機(jī)感染僵尸病毒,使得第一次注入成功。
(2)第一次注入成功后,受害主機(jī)從特定的服務(wù)器或者P2P僵尸網(wǎng)絡(luò)中的某臺(tái)機(jī)器中下載第二輪注入相關(guān)的組件,然后進(jìn)行安裝。
(3)第二輪注入成功后,僵尸程序開(kāi)始在受害計(jì)算機(jī)上運(yùn)行,受害主機(jī)感染僵尸病毒后便會(huì)開(kāi)始加入到僵尸網(wǎng)絡(luò)中,不同的命令與控制信道加入僵尸網(wǎng)絡(luò)的方式不同。加入P2P僵尸網(wǎng)絡(luò)主要是通過(guò)發(fā)現(xiàn)對(duì)等端的方式。
(4)僵尸主機(jī)加入僵尸網(wǎng)絡(luò)后便隱藏自身,同時(shí)開(kāi)放端口等待接收攻擊主機(jī)發(fā)出攻擊的命令。
(5)當(dāng)僵尸網(wǎng)絡(luò)的控制者需要發(fā)送命令時(shí),便通過(guò)一定的認(rèn)證方式加入到P2P僵尸網(wǎng)絡(luò),以便發(fā)送攻擊命令。
(6)攻擊主機(jī)向僵尸主機(jī)發(fā)出攻擊命令,常見(jiàn)的攻擊有DDoS攻擊、端口掃描、發(fā)送垃圾郵件、竊取敏感信息等。
(7)僵尸主機(jī)獲取到攻擊主機(jī)的攻擊命令。
(8)僵尸主機(jī)向目標(biāo)主機(jī)發(fā)起DDoS攻擊。
目前,針對(duì)P2P僵尸網(wǎng)絡(luò)的檢測(cè)方法主要有兩種:一是基于主機(jī)行為的檢測(cè)方法;一是基于網(wǎng)絡(luò)流量的檢測(cè)方法。前者是在一個(gè)負(fù)責(zé)監(jiān)控的主機(jī)內(nèi)部部署傳感器用來(lái)監(jiān)控和記錄僵尸程序的可疑活動(dòng)行為;后者是通過(guò)分析P2P僵尸網(wǎng)絡(luò)通信行為在網(wǎng)絡(luò)層面表現(xiàn)出來(lái)的特征及變化規(guī)律,并利用這些特征來(lái)判斷網(wǎng)絡(luò)流量中是否存在P2P僵尸流量。
基于主機(jī)行為的檢測(cè)方法跟傳統(tǒng)的惡意代碼檢測(cè)類似,對(duì)僵尸程序的可疑行為進(jìn)行檢測(cè)。IRC僵尸網(wǎng)絡(luò)和HTTP僵尸網(wǎng)絡(luò)屬于集中式僵尸網(wǎng)絡(luò),而P2P僵尸網(wǎng)絡(luò)屬于分布式僵尸網(wǎng)絡(luò),在規(guī)模上后者一般比前者小,控制時(shí)效性不高,但P2P僵尸網(wǎng)絡(luò)沒(méi)有固定的中心服務(wù)器,可以有效克服集中式僵尸網(wǎng)絡(luò)單點(diǎn)失效的致命弱點(diǎn),在控制、傳播、生存等方面與集中式僵尸網(wǎng)絡(luò)相比都存在較大的優(yōu)勢(shì)。在僵尸程序潛伏時(shí)期,P2P僵尸網(wǎng)絡(luò)融入在某個(gè)普通的P2P網(wǎng)絡(luò)中,使僵尸程序之間的通信隱藏于正常的P2P流量中,從而降低了僵尸程序被發(fā)現(xiàn)的概率,增強(qiáng)了隱蔽能力。
當(dāng)P2P僵尸程序處于活躍時(shí)期,即處于融入僵尸網(wǎng)絡(luò)階段或?qū)嵤┕粜袨榈入A段,僵尸主機(jī)的通信流量和僵尸程序進(jìn)程行為都表現(xiàn)比較明顯的特征,為在主機(jī)端進(jìn)行檢測(cè)提供較好的條件。此時(shí)從兩方面內(nèi)容進(jìn)行檢測(cè)。一方面,P2P僵尸程序和大部分正常的P2P應(yīng)用一樣,都采用了P2P協(xié)議,在網(wǎng)絡(luò)通信上會(huì)體現(xiàn)出一些P2P流量特點(diǎn),此方法通過(guò)對(duì)P2P流量的識(shí)別,初步判定P2P僵尸程序的存在范圍;另一方面,P2P僵尸程序跟其它惡意程序一樣,在活躍時(shí)期它們進(jìn)程的行為會(huì)呈現(xiàn)出一些特點(diǎn)和規(guī)律性,此方法通過(guò)對(duì)指定的P2P進(jìn)程行為進(jìn)行分析,從而判斷是否為P2P僵尸程序?;谶@兩方面內(nèi)容,檢測(cè)方法主要由P2P通信識(shí)別和惡意行為檢測(cè)兩部分組成。P2P通信識(shí)別部分,主要通過(guò)統(tǒng)計(jì)分析截獲的網(wǎng)絡(luò)數(shù)據(jù)包信息,實(shí)現(xiàn)對(duì)P2P流量的識(shí)別。惡意行為檢測(cè)部分,主要通過(guò)監(jiān)視進(jìn)程API(應(yīng)用程序接口)函數(shù)調(diào)用,獲取API函數(shù)序列,提取特征子串,再運(yùn)用LDA(線性判別分析)算法分析區(qū)分良性與惡性的進(jìn)程,實(shí)現(xiàn)P2P僵尸程序的檢測(cè)。
基于網(wǎng)絡(luò)流量的檢測(cè)方法主要是通過(guò)分析P2P僵尸網(wǎng)絡(luò)的各種通信行為在網(wǎng)絡(luò)流量層上表現(xiàn)出來(lái)的各種長(zhǎng)期的或短期的規(guī)律,然后基于這些規(guī)律來(lái)檢測(cè)網(wǎng)絡(luò)流量中是否存在P2P僵尸網(wǎng)絡(luò)的流量??梢酝ㄟ^(guò)對(duì)局域網(wǎng)內(nèi)的流量或者某些關(guān)鍵主機(jī)的流量進(jìn)行實(shí)時(shí)檢測(cè)來(lái)發(fā)現(xiàn)規(guī)律。
現(xiàn)設(shè)計(jì)一個(gè)數(shù)據(jù)流檢測(cè)系統(tǒng),從網(wǎng)絡(luò)中的某一關(guān)鍵節(jié)點(diǎn)捕獲數(shù)據(jù)流作為該系統(tǒng)的輸入數(shù)據(jù)。邏輯上把系統(tǒng)分為兩部分,一為僵尸網(wǎng)絡(luò)P2P流量的過(guò)濾模塊;一為僵尸網(wǎng)絡(luò)惡意行為檢測(cè)模塊。具體檢測(cè)流程如下:
(1)在關(guān)鍵節(jié)點(diǎn)捕獲局域網(wǎng)中的網(wǎng)絡(luò)流量;
(2)通過(guò)端口過(guò)濾,將流量分為四種情況:被剔除的會(huì)影響下階段檢測(cè)的流量、過(guò)濾出來(lái)的SMTP流量、使用固定端口的P2P流量、剩余流量;
(3)剩余流量通過(guò)應(yīng)用層特征檢測(cè)和流量特征檢測(cè)進(jìn)一步識(shí)別出其中的P2P流量;
(4)對(duì)所有識(shí)別出來(lái)的P2P流量進(jìn)行P2P流量特征聚類,得到屬于同一P2P網(wǎng)絡(luò)的P2P群;
(5)對(duì)過(guò)濾出來(lái)的SMTP流量進(jìn)行垃圾郵件檢測(cè),得到發(fā)送垃圾郵件的節(jié)點(diǎn);
(6)對(duì)原始數(shù)據(jù)流進(jìn)行端口掃描檢測(cè)和DDoS攻擊檢測(cè),得到進(jìn)行端口掃描的節(jié)點(diǎn)和DDoS攻擊的節(jié)點(diǎn);
(7)對(duì)得到的4個(gè)節(jié)點(diǎn)群(P2P節(jié)點(diǎn)、SMTP節(jié)點(diǎn)、端口掃描節(jié)點(diǎn)、DDoS攻擊節(jié)點(diǎn))進(jìn)行綜合,判斷是否屬于P2P僵尸網(wǎng)絡(luò)。
由于P2P僵尸網(wǎng)絡(luò)的隱蔽性比起IRC僵尸網(wǎng)絡(luò)和HTTP僵尸網(wǎng)絡(luò)要高得多,若通過(guò)基于主機(jī)行為的檢測(cè)方法則難以檢測(cè)出來(lái),所以現(xiàn)在主要考慮使用基于網(wǎng)絡(luò)流量的檢測(cè)方法設(shè)計(jì)P2P僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng)。
通過(guò)對(duì)P2P僵尸網(wǎng)絡(luò)的工作機(jī)制研究發(fā)現(xiàn),攻擊者通過(guò)命令與控制信道控制位于不同網(wǎng)絡(luò)位置的感染主機(jī),完成攻擊者的各種攻擊行為。目前,這些攻擊行為主要是端口掃描、DDoS攻擊和發(fā)送垃圾郵件。
針對(duì)攻擊者的攻擊行為,檢測(cè)方法可以分為兩個(gè)部分:第一部分為命令與控制信道的檢測(cè),第二部分為惡意行為的檢測(cè)。通過(guò)捕獲網(wǎng)絡(luò)中的流量,結(jié)合P2P僵尸網(wǎng)絡(luò)在網(wǎng)絡(luò)中的特點(diǎn),分析數(shù)據(jù)流,設(shè)計(jì)一P2P僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng),判斷網(wǎng)絡(luò)中是否存在P2P僵尸網(wǎng)絡(luò)。
如圖3所示,系統(tǒng)主要分為4個(gè)模塊,分別為流量捕獲模塊、P2P流量過(guò)濾模塊、惡意流量檢測(cè)模塊、整合判斷模塊。流量捕獲模塊負(fù)責(zé)捕獲網(wǎng)絡(luò)中的數(shù)據(jù)流,為下一階段的分析提供基礎(chǔ);P2P流量過(guò)濾模塊負(fù)責(zé)提取出網(wǎng)絡(luò)流中的P2P流量,標(biāo)記能夠識(shí)別出P2P協(xié)議類型的P2P流量,通過(guò)流量特征聚類識(shí)別出使用同一P2P網(wǎng)絡(luò)的節(jié)點(diǎn),生成P2P節(jié)點(diǎn)群;惡意流量檢測(cè)模塊負(fù)責(zé)檢測(cè)端口掃描行為、DDoS攻擊行為和垃圾發(fā)送行為,并對(duì)檢測(cè)出來(lái)的具有上述三種行為的節(jié)點(diǎn)分別標(biāo)記;整合判斷模塊負(fù)責(zé)整合P2P流量過(guò)濾模塊和惡意流量檢測(cè)模塊的檢測(cè)結(jié)果,綜合判斷網(wǎng)絡(luò)中是否存在P2P僵尸網(wǎng)絡(luò)。
圖3 P2P僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng)功能模塊圖
本文在對(duì)P2P僵尸網(wǎng)絡(luò)的工作機(jī)制、檢測(cè)方法的研究基礎(chǔ)上,提出了一個(gè)基于P2P僵尸網(wǎng)絡(luò)檢測(cè)系統(tǒng)的設(shè)計(jì)方案。但該系統(tǒng)并不能檢測(cè)出所有的P2P僵尸程序,還需要作進(jìn)一步的研究,不斷提高檢測(cè)效率。
[1]中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心.中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告[EB/O L].h t t p://w w w.c n n i c.n e t.c n/,2014.
[2]國(guó)家互聯(lián)網(wǎng)應(yīng)急中心.C NC ER T互聯(lián)網(wǎng)安全威脅報(bào)告[EB/O L].h t t p://w w w.c e r t.o r g.c n/,2014.
[3]諸葛建偉,韓心慧,周勇林,等.僵尸網(wǎng)絡(luò)研究[J].軟件學(xué)報(bào),2008,19(3):702-715.
[4]唐雅娟,柳雪娟.P2 P僵尸網(wǎng)絡(luò)的檢測(cè)方法[J].計(jì)算機(jī)安全,2013,13(9):32-36.
[5]王海龍,龔正虎,侯婕.僵尸網(wǎng)絡(luò)檢測(cè)技術(shù)研究進(jìn)展[J],計(jì)算機(jī)研究與發(fā)展,2010,47(12):2038-2044.