摘 要: 近幾年來(lái),,僵尸網(wǎng)絡(luò)給網(wǎng)絡(luò)帶來(lái)了巨大的安全威脅,僵尸網(wǎng)絡(luò)總是小心翼翼地隱藏自己來(lái)增加自己的生存概率及生存時(shí)間,。在給出僵尸網(wǎng)絡(luò)的定義的基礎(chǔ)上,,從Bot、Botmaster,、C&C三個(gè)方面研究僵尸網(wǎng)絡(luò)是如何躲避檢測(cè)機(jī)制的,。
關(guān)鍵詞: 僵尸網(wǎng)絡(luò),;入侵檢測(cè)
僵尸網(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è)人用戶都會(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ī)制的。
1 在Bot主機(jī)上躲避檢測(cè)
對(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)題被代碼的編寫者所注意,其允許代碼被改寫,,但是語(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)在被廣大的普通用戶所喜愛(à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è)到該軟件。
2 在命令與控制信道服務(wù)方面躲避檢測(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ù)也被稱為Fast-Flux服務(wù)網(wǎng)絡(luò)(FFSN),。Fast-Flux技術(shù)[5]為一個(gè)域名配置多個(gè)IP地址,,并且這些IP地址以非常快的頻率更換,,從而實(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)的域名,。
3 隱藏C&C通信
檢測(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)稱是最先進(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通信之用,。一種竊取用戶信息的BotNet——Brazen就是利用推特來(lái)傳播惡意鏈接的,。此外,僵尸網(wǎng)絡(luò)可以利用任何已經(jīng)存在的技術(shù)來(lái)對(duì)C&C通信進(jìn)行隱藏,,如圖像技術(shù)等,。
4 隱藏Botmaster
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ī),,稱作跳板主機(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ò),。
參考文獻(xiàn)
[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 SIG-COMM 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 struc-ture-independent botnet detection[C].Porceeding of the 17thUSENIX 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.