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