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