楊智興(安徽理工大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院,安徽 淮南232000)
僵尸網(wǎng)絡(luò)是一種新興的互聯(lián)網(wǎng)威脅,其數(shù)量、規(guī)模和危害級(jí)別正在迅速增長(zhǎng),已經(jīng)使全球網(wǎng)絡(luò)進(jìn)入新的警戒狀態(tài)。僵尸網(wǎng)絡(luò)(BotNet)作為攻擊者的一個(gè)攻擊平臺(tái),可以發(fā)起多種攻擊事件,無(wú)論對(duì)整個(gè)網(wǎng)絡(luò)還是個(gè)人用戶(hù)都會(huì)造成極大的威脅。僵尸網(wǎng)絡(luò)被黑客用來(lái)進(jìn)行分布式拒絕服務(wù)攻擊(DDos)、擴(kuò)散垃圾郵件、植入惡意軟件、竊取敏感信息、安裝廣告條等[1]。
學(xué)者們對(duì)僵尸網(wǎng)絡(luò)給出了各自不同的定義。國(guó)家工業(yè)和信息化部發(fā)布的《木馬和僵尸網(wǎng)絡(luò)監(jiān)測(cè)與處置機(jī)制》和Xie Yinglian等人[2]定義僵尸網(wǎng)絡(luò)為:由攻擊者通過(guò)控制服務(wù)器控制的受害計(jì)算機(jī)群。然而,控制服務(wù)器不是僵尸網(wǎng)絡(luò)的必要組成部分,例如,P2P僵尸網(wǎng)絡(luò)中沒(méi)有控制服務(wù)器。Gu Guofei等人[3]定義為:僵尸網(wǎng)絡(luò)是可被攻擊者通過(guò)命令控制信道遠(yuǎn)程控制的可協(xié)同的計(jì)算機(jī)群,該定義覆蓋了僵尸網(wǎng)絡(luò)兩個(gè)本質(zhì)屬性(“可控性”和“協(xié)同性”),因此該定義應(yīng)該是比較準(zhǔn)確的[4]。
本文對(duì)僵尸網(wǎng)絡(luò)的定義是:僵尸網(wǎng)絡(luò)(BotNet)是攻擊者出于惡意目的、傳播僵尸程序控制大量主機(jī),并通過(guò)一對(duì)多的命令與控制信道所組成的網(wǎng)絡(luò)。從定義中可以看出,僵尸網(wǎng)絡(luò)由Bot、Botmaster、C&C三個(gè)重要部分組成,因此文中將從 Bot、Botmaster、C&C三方面研究僵尸網(wǎng)絡(luò)是如何躲避檢測(cè)機(jī)制的。
對(duì)于Bot來(lái)說(shuō),長(zhǎng)時(shí)間保持對(duì)Botmaster可用,必須采取一定的機(jī)制來(lái)躲避基于主機(jī)的檢測(cè)。
(1)二進(jìn)制代碼混淆機(jī)制:僵尸網(wǎng)絡(luò)通過(guò)在感染了Bot-binary的主機(jī)上尋找漏洞進(jìn)行擴(kuò)散。Bot-binary用整合機(jī)制來(lái)協(xié)調(diào)與僵尸主控機(jī)接收命令。為了避免被基于主機(jī)安全應(yīng)用策略檢測(cè)到,一些躲避檢測(cè)的技術(shù)被應(yīng)用到隱藏Bot-binary中。多態(tài)性的使用使基于模式的檢測(cè)方法失效,多態(tài)性是指Bot-binary以幾種不同的形式存在的能力,可以通過(guò)加密實(shí)現(xiàn)這種效果,也可以通過(guò)打包的方式來(lái)實(shí)現(xiàn)。打包是指對(duì)文件進(jìn)行壓縮,對(duì)惡意軟件來(lái)說(shuō),打包有助于混淆惡意代碼。
雖然代碼多態(tài)性成功地應(yīng)用于躲避基于模式的檢測(cè)方法,但是它仍然可以被基于記憶的檢測(cè)方法所檢測(cè)到。在被執(zhí)行時(shí),二進(jìn)制代碼都會(huì)被解密或者解壓縮成相同的代碼,這個(gè)問(wèn)題被代碼的編寫(xiě)者所注意,其允許代碼被改寫(xiě),但是語(yǔ)義等價(jià)的代碼可以對(duì)抗基于記憶的檢測(cè)方法。
(2)反分析:研究者都是通過(guò)在虛擬機(jī)或者沙箱里運(yùn)行僵尸代碼來(lái)研究僵尸網(wǎng)絡(luò)的行為的,另一種研究僵尸網(wǎng)絡(luò)的方法是通過(guò)蜜罐技術(shù),蜜罐被設(shè)計(jì)成獨(dú)立運(yùn)行并且能阻止僵尸網(wǎng)絡(luò)的傳播。為了躲避這些分析,一些僵尸代碼在被執(zhí)行前先檢查運(yùn)行環(huán)境,如果檢測(cè)出處于虛擬機(jī)或者沙箱內(nèi),僵尸代碼將不會(huì)執(zhí)行或者改變其原有的功能來(lái)躲避分析。但這種躲避檢測(cè)的技術(shù)使用率正在下降,主要有以下兩方面的原因:①正常的程序在運(yùn)行前不會(huì)檢測(cè)運(yùn)行環(huán)境;②虛擬機(jī)現(xiàn)在被廣大的普通用戶(hù)所喜愛(ài),不再局限于安全分析。
(3)關(guān)閉安全軟件:在成功感染主機(jī)后,僵尸病毒會(huì)關(guān)閉受害機(jī)上已經(jīng)存在的安全軟件,如果受害機(jī)同時(shí)還感染了其他的惡意軟件,那些惡意軟件將會(huì)被移除。例如,Conficker感染主機(jī)后,將會(huì)關(guān)閉一些系統(tǒng)安全服務(wù)并且修改注冊(cè)表,其擁有的一個(gè)域名黑名單及進(jìn)程黑名單用以阻止主機(jī)訪問(wèn)一些安全網(wǎng)站及一些安全程序的運(yùn)行。
(4)Rootkit技術(shù):是一個(gè)通過(guò)破壞被感染主機(jī)正常的系統(tǒng)行為來(lái)隱藏其他程序進(jìn)程的軟件。Botmaster可以在存在安全漏洞的主機(jī)上安裝Rootkit使其獲得訪問(wèn)權(quán)限,這樣當(dāng)其進(jìn)行惡意活動(dòng)時(shí)可以繞過(guò)安全認(rèn)證和授權(quán)。結(jié)果,傳統(tǒng)的殺毒軟件將不能檢測(cè)到該軟件。
僵尸網(wǎng)絡(luò)不同于其他惡意軟件在于控制者可以通過(guò)命令與控制信道控制僵尸主機(jī),這意味著命令與控制信道是僵尸網(wǎng)絡(luò)的核心,這同樣也可成為僵尸網(wǎng)絡(luò)的致命點(diǎn)。因?yàn)椋┦W(wǎng)絡(luò)的控制者要花大量的心思來(lái)隱藏命令與控制信道。
(1)IP-Flux:Botmaster利用 IP-Flux頻繁改變其 C&C服務(wù)器的域名所對(duì)應(yīng)的IP地址,這有助于避免IP被屏蔽掉,這種技術(shù)也被稱(chēng)為Fast-Flux服務(wù)網(wǎng)絡(luò)(FFSN)。Fast-Flux技術(shù)[5]為一個(gè)域名配置多個(gè)IP地址,并且這些IP地址以非??斓念l率更換,從而實(shí)現(xiàn)域名到IP地址的動(dòng)態(tài)映射。IP-Flux提供了便利的動(dòng)態(tài)DNS服務(wù)(DDNS),如 DNS一樣,DDNS提供動(dòng)態(tài)域名與 IP之間的轉(zhuǎn)換。與使用DNS僅處理靜態(tài)IP地址相比,DDNS可以使用動(dòng)態(tài)IP地址操作。僵尸網(wǎng)絡(luò)利用DDNS來(lái)保持(C&C服務(wù)器)域名到IP地址映射的實(shí)時(shí)性,F(xiàn)ast-Flux分為 single-flux 和 double-flux[5]。
(2)Domain-Flux:Domain-Flux使多個(gè)域名同一個(gè) IP地址相關(guān)聯(lián),這樣可以避免基于URL的過(guò)濾和檢測(cè)。Domain-Flux既可以通過(guò)已有的DNS服務(wù)提供域通配符,也可以通過(guò)利用域名生成算法實(shí)現(xiàn),域通配符允許在域名前加上隨機(jī)的字符串與同一個(gè)IP地址相關(guān)聯(lián),例如,假設(shè) aust.com.cn與10.1.1.1相關(guān)聯(lián),通過(guò)域通配符,*.aust.com.cn同樣與10.1.1.1相關(guān)聯(lián),其中*可以是任意字符。另外,Bot可以通過(guò)算法來(lái)生成域名,這些算法周期性地產(chǎn)生一列域名,通常會(huì)包含非常多的域名,但這些域名在相同的時(shí)間內(nèi)并非都是活動(dòng)的,Bot通常依次嘗試連接這些域名,并把識(shí)別出來(lái)的域名作為C&C服務(wù)器,被識(shí)別為活動(dòng)的域名將會(huì)被標(biāo)記為域名服務(wù)器。隨機(jī)連接幾個(gè)域名如果都提示DNS Non-Existent Domain,那么電腦極有可能被僵尸網(wǎng)絡(luò)所感染。Botmaster知道在給定的時(shí)間內(nèi)哪一個(gè)域名將會(huì)被Bot訪問(wèn),因?yàn)槠涫熘蛎伤惴?,?huì)提前注冊(cè)Bot將要訪問(wèn)的域名。
檢測(cè)C&C通信有許多意義:(1)檢測(cè)C&C通信能夠枚舉出僵尸主機(jī)然后對(duì)其殺毒;(2)能夠暴露C&C服務(wù)器的位置,通過(guò)關(guān)閉C&C服務(wù)器能夠削弱整個(gè)僵尸網(wǎng)絡(luò),通過(guò)分析Botmaster與C&C之間的通信能夠找出罪魁禍?zhǔn)住狟otmaster;(3)通過(guò)分析C&C通信可以幫助防御者理解BotNet是如何工作以及如何摧毀整個(gè)僵尸網(wǎng)絡(luò)的。由于這些原因,Botmaster通過(guò)許多機(jī)制來(lái)隱藏C&C通信。
(1)加密:Botmaster通過(guò)加密C&C通信來(lái)躲避檢測(cè),通過(guò)加密技術(shù),使BotNet躲過(guò)了基于內(nèi)容分析的檢測(cè)機(jī)制,迫使研究者不得不從諸如包到達(dá)時(shí)間或包長(zhǎng)度等方面去分析。從簡(jiǎn)單的模糊混淆技術(shù)到復(fù)雜多變的加密技術(shù),BotNet已經(jīng)使C&C通信變得幾乎堅(jiān)不可摧,Nugache號(hào)稱(chēng)是最先進(jìn)的僵尸網(wǎng)絡(luò)之一,其C&C通信就采用了先進(jìn)的加密技術(shù)。
(2)協(xié)議控制:有些僵尸網(wǎng)絡(luò)使用隧道協(xié)議來(lái)隱藏C&C通信,通常防火墻允許 HTTP流量,因此,Botmaster便用HTTP隧道來(lái)進(jìn)行C&C通信。另一個(gè)大的趨勢(shì)是利用IPv6隧道進(jìn)行通信,因?yàn)楝F(xiàn)在大多數(shù)操作系統(tǒng)都默認(rèn)支持IPv6協(xié)議,但許多中間設(shè)備不識(shí)別IPv6流量。
(3)流量控制:一個(gè)長(zhǎng)期活躍的C&C通信可能會(huì)暴露僵尸網(wǎng)絡(luò),而僵尸網(wǎng)絡(luò)會(huì)故意在相對(duì)較長(zhǎng)的一段時(shí)間內(nèi)制造小批量的C&C的流量來(lái)躲避基于統(tǒng)計(jì)的檢測(cè)技術(shù)的檢測(cè)。
(4)新的通信技術(shù):僵尸網(wǎng)絡(luò)使用不易被察覺(jué)的C&C新型通信技術(shù),如facebook和推特等這種社交網(wǎng)站,也已經(jīng)被BotNet作為C&C通信之用。一種竊取用戶(hù)信息的BotNet——Brazen就是利用推特來(lái)傳播惡意鏈接的。此外,僵尸網(wǎng)絡(luò)可以利用任何已經(jīng)存在的技術(shù)來(lái)對(duì)C&C通信進(jìn)行隱藏,如圖像技術(shù)等。
Botmaster是僵尸網(wǎng)絡(luò)中最應(yīng)受保護(hù)的,失去了Botmaster,整個(gè)僵尸網(wǎng)絡(luò)將會(huì)處于無(wú)控制狀態(tài)。此外,Botmaster有可能面臨在監(jiān)獄服刑或巨額罰款的后果,因此,Botmasters利用復(fù)雜的機(jī)制來(lái)逃避檢測(cè)。
設(shè)立跳板主機(jī):Botmaster一般為了隱藏自己的真實(shí)身份,通常會(huì)在C&C服務(wù)器之間和它們自己之間設(shè)立一定數(shù)量的中間主機(jī),稱(chēng)作跳板主機(jī)。這些跳板主機(jī)能夠提供網(wǎng)絡(luò)重定向服務(wù),例如HTTP代理或SOCKS代理和SSH服務(wù)等,跳板主機(jī)本身就是被Botmaster入侵的主機(jī),Botmaster喜歡將跳板主機(jī)設(shè)立在對(duì)于網(wǎng)絡(luò)犯罪立法比較寬松的國(guó)家,這樣即使跳板主機(jī)被發(fā)現(xiàn)也會(huì)受到相對(duì)較輕的處罰。
本文在給出僵尸網(wǎng)絡(luò)定義的基礎(chǔ)上,從Bot、Botmaster、C&C這三個(gè)方面研究了僵尸網(wǎng)絡(luò)是如何躲避檢測(cè)機(jī)制的,使讀者對(duì)僵尸網(wǎng)絡(luò)以及僵尸網(wǎng)絡(luò)是如何躲避檢測(cè)有進(jìn)一步的了解。防御者可以從僵尸網(wǎng)絡(luò)躲避檢測(cè)機(jī)制的反向入手研究如何檢測(cè)僵尸網(wǎng)絡(luò)。
[1]諸葛建偉,韓心慧,周勇林,等.僵尸網(wǎng)絡(luò)研究[J].軟件學(xué)報(bào),2008,19(3):702-713.
[2]Xie Yinglian,Yu Fang,ACHAN K,et al.Spamming botnets:signatures and characteristics[C].Proceeding of ACM SIGCOMM 08,New York:ACM,2008:171-182.
[3]Gu Guofei,PERDISCT R,Zhang Junjie,et al.BotMiner:clustering analysis of network traffic for protocol-and structure-independent botnet detection[C].Porceeding of the 17th USENIX Security Symposium,Berkeley,CA:USENIX,2008:269-286.
[4]方濱興,崔翔,王威.僵尸網(wǎng)絡(luò)綜述[J].計(jì)算機(jī)研究與發(fā)展,2011(8):702-713.
[5]康樂(lè),李東,余翔湛.基于 SVM的Fast-flux僵尸網(wǎng)絡(luò)檢測(cè)技術(shù)研究[J].智能計(jì)算機(jī)與應(yīng)用,2011(6):24-27.