僵尸網(wǎng)絡(luò)機理與防御技術(shù)
軟件學(xué)報ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cnJournal of Software,2012,23(1):82?96 [doi: 1
軟件學(xué)報ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn
Journal of Software,2012,23(1):82?96 [doi: 10.3724/SP.J.1001.2012.04101] http://www.jos.org.cn
?中國科學(xué)院軟件研究所版權(quán)所有. Tel/Fax: 86-10-62562563
僵尸網(wǎng)絡(luò)機理與防御技術(shù)?
江 健1, 諸葛建偉2 , 段海新2, 吳建平2
1
2(清華大學(xué) 計算機科學(xué)與技術(shù)系, 北京 100084) (清華大學(xué) 信息網(wǎng)絡(luò)工程研究中心, 北京 100084)
Research on Botnet Mechanisms and Defenses
JIANG Jian1, ZHUGE Jian-Wei 2 , DUAN Hai-Xin 2, WU Jian-Ping 2
1
2(Department of Computer Science and Technology, Tsinghua University, Beijing 100084, China) (Network Research Center, Tsinghua University, Beijing 100084, China)
Corresponding author: E-mail: zhugejw@cernet.edu.cn
Jiang J, Zhuge JW, Duan HX, Wu JP. Research on botnet mechanisms and defenses. Journal of Software,
2012,23(1): 82?96. http://www.jos.org.cn/1000-9825/4101.htm
Abstract : Botnets are one of the most serious threats to the Internet. Researchers have done plenty of research and
made significant progress. However, botnets keep evolving and have become more and more sophisticated. Due to
the underlying security limitation of current system and Internet architecture, and the complexity of botnet itself,
how to effectively counter the global threat of botnets is still a very challenging issue. This paper first introduces the
evolving of botnet’s propagation, attack, command, and control mechanisms. Then the paper summarizes recent
advances of botnet defense research and categorizes into five areas: Botnet monitoring, botnet infiltration, analysis
of botnet characteristics, botnet detection and botnet disruption. The limitation of current botnet defense techniques,
the evolving trend of botnet, and some possible directions for future research are also discussed.
Key words: network security; botnet; command and control; botnet measurement; botnet detection
摘 要: 以僵尸網(wǎng)絡(luò)為載體的各種網(wǎng)絡(luò)攻擊活動是目前互聯(lián)網(wǎng)所面臨的最為嚴重的安全威脅之一. 雖然近年來這
方面的研究取得了顯著的進展, 但是由于僵尸網(wǎng)絡(luò)不斷演化、越來越復(fù)雜和隱蔽以及網(wǎng)絡(luò)和系統(tǒng)體系結(jié)構(gòu)的限制給
檢測和防御帶來的困難, 如何有效應(yīng)對僵尸網(wǎng)絡(luò)的威脅仍是一項持續(xù)而具有挑戰(zhàn)性的課題. 首先從僵尸網(wǎng)絡(luò)的傳
播、攻擊以及命令與控制這3個方面介紹了近年來僵尸網(wǎng)絡(luò)工作機制的發(fā)展, 然后從監(jiān)測、工作機制分析、特征分
析、檢測和主動遏制這5個環(huán)節(jié)對僵尸網(wǎng)絡(luò)防御方面的研究進行總結(jié)和分析, 并對目前的防御方法的局限、僵尸網(wǎng)
絡(luò)的發(fā)展趨勢和進一步的研究方向進行了討論.
關(guān)鍵詞: 網(wǎng)絡(luò)安全; 僵尸網(wǎng)絡(luò); 命令與控制; 僵尸網(wǎng)絡(luò)測量; 僵尸網(wǎng)絡(luò)檢測
中圖法分類號: TP393 文獻標識碼: A
僵尸網(wǎng)絡(luò)(botnet)是由大量被僵尸程序所感染的主機(bot or zombie)受到攻擊者(botmaster)所控制而形成
? 基金項目: 國家自然科學(xué)基金(61003127); 國家重點基礎(chǔ)研究發(fā)展計劃(973)(2009CB320505)
CNKI 網(wǎng)絡(luò)優(yōu)先出版時間: 2011-09-08 17:03, http://www.cnki.net/kcms/detail/11.2560.TP.20110908.1703.002.html 收稿時間: 2010-10-27; 定稿時間: 2011-06-24; jos在線出版時間: 2011-09-09
,江健 等:僵尸網(wǎng)絡(luò)機理與防御技術(shù) 83
的以惡意活動為目的的覆蓋網(wǎng)絡(luò)(overlay network).Botmaster可以通過控制服務(wù)器操控bot 發(fā)起各種類型的網(wǎng)絡(luò)攻擊, 如分布式拒絕服務(wù)(DDoS)、垃圾郵件(spam)、網(wǎng)絡(luò)釣魚(phishing)、點擊欺詐(click fraud)以及竊取敏感信息(information theft)等等.
,84
1.1 僵尸網(wǎng)絡(luò)的傳播機制 Journal of Software 軟件學(xué)報 Vol.23, No.1, January 2012
,江健 等:僵尸網(wǎng)絡(luò)機理與防御技術(shù)
Table 1 Categories of some known botnets
表1 一些已知僵尸網(wǎng)絡(luò)的分類 集中式 IRC 僵尸網(wǎng)絡(luò) HTTP 僵尸網(wǎng)絡(luò)
自定義協(xié)議僵尸網(wǎng)絡(luò)
結(jié)構(gòu)化P2P 僵尸網(wǎng)絡(luò)
無結(jié)構(gòu)P2P 僵尸網(wǎng)絡(luò)
層次化僵尸網(wǎng)絡(luò) Sdbot, Agobot, GT-Bot, Rbot Rustock, Clickbot, Naz, Zeus, Conficker, Torpig MegaD, Mariposa Phatbot Sinit, Nugache Koobface, Storm, Waledac 85 分布式
1.3.1.1 集中式僵尸網(wǎng)絡(luò)
在集中式僵尸網(wǎng)絡(luò)中,bot 主要以輪詢方式從控制服務(wù)器那里獲得控制命令. 如:在IRC 僵尸網(wǎng)絡(luò)中,bot 周期性地加入IRC 控制頻道來獲取消息; 在HTTP 僵尸網(wǎng)絡(luò)中,bot 定期訪問控制服務(wù)器URL 來檢查是否有控制命令的更新.
這類僵尸網(wǎng)絡(luò)的弱點在于控制服務(wù)器容易暴露, 但由于其具有結(jié)構(gòu)簡單、構(gòu)建容易、通信效率高的
特點, 大多數(shù)僵尸網(wǎng)絡(luò)仍然采用這種方式來構(gòu)建
.
? IRC 僵尸網(wǎng)絡(luò)
早期大多僵尸網(wǎng)絡(luò), 如Agobot,GT-bot 等以IRC 服務(wù)作為命令與控制的信道, 其典型結(jié)構(gòu)如圖1(a)所示. 文獻
[13]中對IRC 僵尸網(wǎng)絡(luò)的發(fā)展歷史和工作原理進行了詳細介紹.IRC 僵尸網(wǎng)絡(luò)采用已知明文協(xié)議, 在端口和通信內(nèi)容等方面具有比較明顯的特征; 而且IRC 協(xié)議在網(wǎng)絡(luò)流量中的比例很小, 便于監(jiān)測和分析. 雖然IRC 僵尸網(wǎng)絡(luò)容易被檢測和封鎖, 但由于其容易構(gòu)建、控制方便而且實時性好, 目前的僵尸網(wǎng)絡(luò)仍有相當一部分比例使用IRC 協(xié)議作為命令與控制的信道[6].
(a) IRC 僵尸網(wǎng)絡(luò) (b) Nugache僵尸網(wǎng)絡(luò)[32] (c) Wadelac僵尸網(wǎng)絡(luò)[21]
Fig.1 Three different botnet topologies
圖1 3種不同類型的僵尸網(wǎng)絡(luò)拓撲結(jié)構(gòu)
? HTTP 僵尸網(wǎng)絡(luò)
由于IRC 協(xié)議的隱蔽性不好, 很多僵尸網(wǎng)絡(luò)開始使用HTTP 協(xié)議替代IRC 作為命令與控制方式. 相對于IRC 協(xié)議,HTTP 是目前網(wǎng)絡(luò)應(yīng)用最主要的通信方式之一, 基本不會被屏蔽. 而且僵尸網(wǎng)絡(luò)的通信可以隱藏在大量正常應(yīng)用流量之中, 具有更好的隱蔽性. 另外, 攻擊者還可以很容易地升級到HTTPS 來加密整個通信過程. 采用HTTP 作為通信協(xié)議的僵尸網(wǎng)絡(luò)有Conficker,Rustock,Zeus,Torpig 等. 此外, 少數(shù)僵尸網(wǎng)絡(luò), 如Naz 等, 還直接利用流行的社交網(wǎng)站, 如facebook,twitter 等作為控制服務(wù)器, 進一步增加了檢測和封鎖的難度[33]. 目前,HTTP 已經(jīng)成為大多數(shù)僵尸網(wǎng)絡(luò)采用的命令與控制協(xié)議[6].
? 自定義協(xié)議僵尸網(wǎng)絡(luò)
少數(shù)僵尸網(wǎng)絡(luò)采用自定義的協(xié)議進行通信, 自定義協(xié)議相對更為隱蔽且其通信過程更不容易被研究者所理解. 這類僵尸網(wǎng)絡(luò)的代表有Mega-D,Mariposa 等.Mariposa 還采用了UDP 作為傳輸層協(xié)議, 相對于TCP, 無連接的UDP 通信更容易被防火墻等安全設(shè)備忽略, 使其更加隱蔽.
1.3.1.2 分布式僵尸網(wǎng)絡(luò)
在集中式僵尸網(wǎng)絡(luò)中, 由于bot 直接與控制服務(wù)器通信, 導(dǎo)致控制服務(wù)器容易暴露. 相比之下, 分布式僵尸網(wǎng)
,86 Journal of Software 軟件學(xué)報 Vol.23, No.1, January 2012
絡(luò)的控制服務(wù)器更加隱蔽, 但同時也難以構(gòu)建和維護, 需要攻擊者具有比較專業(yè)的知識. 近年來出現(xiàn)的少數(shù)大規(guī)模分布式僵尸網(wǎng)絡(luò), 如Storm,Waledac 表現(xiàn)出了極其復(fù)雜而專業(yè)的結(jié)構(gòu)和功能.
? 結(jié)構(gòu)化P2P 僵尸網(wǎng)絡(luò)
這類僵尸網(wǎng)絡(luò)采用了結(jié)構(gòu)化的P2P 協(xié)議. 代表性的有采用WASTE 協(xié)議的Phatbot 以及使用基于Kademlia 協(xié)議的Overnet 作為命令與控制方式的Storm 等. 雖然結(jié)構(gòu)化P2P 僵尸網(wǎng)絡(luò)的控制服務(wù)器很難被發(fā)現(xiàn), 但P2P 協(xié)議中的查找操作可以獲得其他節(jié)點的信息, 導(dǎo)致bot 的匿名性較差. 研究者利用這個弱點對Strom 進行了跟蹤, 在Overnet 中加入大量的偽裝節(jié)點將大量的內(nèi)容發(fā)布、搜索和路由請求導(dǎo)向偽裝節(jié)點以識別出bot, 從而可以估計出整個Storm 僵尸網(wǎng)絡(luò)的大小[23].
? 無結(jié)構(gòu)P2P 僵尸網(wǎng)絡(luò)
無結(jié)構(gòu)P2P 僵尸網(wǎng)絡(luò)的bot 隨機地連接在一起, 采用隨機轉(zhuǎn)發(fā)或洪泛的方式傳遞控制消息. 已知僵尸網(wǎng)絡(luò)中采用這種結(jié)構(gòu)的有Sinit 和Nugache.Sinit 使用隨機掃描的方式尋找其他的bot, 而且使用了UDP 53端口發(fā)送數(shù)據(jù)包但又不同于DNS 的報文格式, 容易被檢測;Nugache 維護了一份可連接的peer 列表, 從列表中隨機挑選peer 嘗試連接, 連接成功后再相互更新列表.
與結(jié)構(gòu)化P2P 僵尸網(wǎng)絡(luò)一樣, 無結(jié)構(gòu)P2P 僵尸網(wǎng)絡(luò)也有bot 匿名性差的弱點.Dittrich 等人通過不斷地連接新的peer 然后請求更新列表來對整個Nugache 網(wǎng)絡(luò)進行了枚舉, 得到如圖1(b)所示的拓撲圖[33]. 從拓撲中可以看出,Nugache 對bot 的連接數(shù)進行了限制, 形成了一個均勻的隨機連接的P2P 網(wǎng)絡(luò).
? 層次化僵尸網(wǎng)絡(luò)
層次化僵尸網(wǎng)絡(luò)是近年發(fā)現(xiàn)的新型僵尸網(wǎng)絡(luò). 其對bot 的角色進行區(qū)分, 利用一些具有公共IP 地址和在線時間較為穩(wěn)定的bot 作為中間層來隱藏真實的控制服務(wù)器, 同時提供更大的靈活性. 這類僵尸網(wǎng)絡(luò)的代表有Storm,Waledac,Koobface 等.
Kanich 等人通過對Storm 的進一步研究發(fā)現(xiàn),Storm 是一個分為3層的層次化網(wǎng)絡(luò). 底層的worker bots被用來發(fā)送垃圾郵件,worker bots通過Overnet 網(wǎng)絡(luò)來找到proxy bots,真正的控制服務(wù)器master servers隱藏在作為代理層的proxy bots之后[24].
被認為可能是Storm 的直接后繼的Waledac 具有比Storm 更為復(fù)雜的結(jié)構(gòu), 如圖1(c)所示,botmaster 以下分為4個層次, 依次為UTS,TSL,Repeater 和Spammer. 其中,Spammer 和Repeater 是被感染的bot 主機,TSL 和UTS 是botmaster 設(shè)立的控制服務(wù)器.Waledac 使用一種稱為fast-flux [34,35]的技術(shù)將Repeater 作為Spammer 和TSL 之間的代理. 這種分層代理的技術(shù)使Waledac 在保持隱蔽性和靈活性的同時, 不會像Storm 那樣被完全枚舉.
早期的Koobface 是一種集中式僵尸網(wǎng)絡(luò),bot 直接和控制服務(wù)器進行通信. 在被研究機構(gòu)和ISP 發(fā)現(xiàn)和關(guān)停后,Koobface 進行了升級, 利用一部分bot 作為代理節(jié)點來隱藏控制服務(wù)器, 升級后的層次化結(jié)構(gòu)使得Koobface 的控制服務(wù)器很難被發(fā)現(xiàn)和關(guān)停.
1.3.2 僵尸網(wǎng)絡(luò)的自身安全性
僵尸網(wǎng)絡(luò)命令與控制機制的一個重要屬性是其自身安全性, 一種僵尸網(wǎng)絡(luò)是否容易被發(fā)現(xiàn)和破壞、是否有明顯的弱點和漏洞, 是攻防雙方關(guān)注的重點. 我們從僵尸網(wǎng)絡(luò)的隱蔽性和匿名性、加密機制、認證機制、網(wǎng)絡(luò)發(fā)現(xiàn)(bootstrapping)機制這幾個方面對僵尸網(wǎng)絡(luò)的自身安全性進行分析, 并介紹相關(guān)的技術(shù)發(fā)展.
1.3.2.1 隱蔽性和匿名性
僵尸網(wǎng)絡(luò)的隱蔽性和匿名性基本上是由其通信方式所決定的. 集中式的僵尸網(wǎng)絡(luò)bot 之間的匿名性很好, 但控制服務(wù)器的隱蔽性很差, 很容易暴露. 采用P2P 方式的僵尸網(wǎng)絡(luò)能夠很好地隱藏控制服務(wù)器, 但由于P2P 協(xié)議的特點, 導(dǎo)致bot 之間的匿名性很差,Storm 和Nugache 都因為這方面的弱點被研究者枚舉出大量的bot. 層次化的僵尸網(wǎng)絡(luò)能夠在保持控制服務(wù)器隱蔽性的同時, 還能提供較好的匿名性.
1.3.2.2 加密機制
采用明文通信的僵尸網(wǎng)絡(luò)的行為更容易被分析, 而且更容易提取出內(nèi)容特征串來通過流量內(nèi)容進行檢測. 加密機制的采用, 在近來發(fā)現(xiàn)的僵尸網(wǎng)絡(luò)中已經(jīng)比較常見,Zeus,Torpig,Nugache,Mega-D,Waledac 等都采用了簡
,江健 等:僵尸網(wǎng)絡(luò)機理與防御技術(shù)
單或復(fù)雜的加密手段.
1.3.2.3 認證機制 87
認證機制是指bot 和控制服務(wù)器之間是否驗證身份、控制消息是否有防止偽造和篡改的機制, 這是目前僵尸網(wǎng)絡(luò)比較薄弱的一個環(huán)節(jié).Torpig 的bot 沒有對服務(wù)器進行認證, 使得研究者能夠?qū)ζ溥M行劫持而獲得大量的數(shù)據(jù).Storm 也缺少對控制消息的保護, 研究者利用這一點對其控制消息進行篡改, 注入自己控制的郵件地址和域名來研究其行為. 少數(shù)僵尸網(wǎng)絡(luò)設(shè)計了一定的認證機制,Waledac 通過簽名和時間戳對其地址更新消息進行了保護,Conficker 也使用了簽名來保證其更新不會被假冒.
1.3.2.4 網(wǎng)絡(luò)發(fā)現(xiàn)機制
網(wǎng)絡(luò)發(fā)現(xiàn)機制是指bot 如何找到控制服務(wù)器或者通過其他的bot 加入到僵尸網(wǎng)絡(luò)中. 對于防御方來說, 如果能夠找到并切斷bot 和控制服務(wù)器之間的聯(lián)系, 就能從根本上關(guān)停整個僵尸網(wǎng)絡(luò). 早期的集中式僵尸網(wǎng)絡(luò)多采用簡單的固定IP 或者域名的方式來發(fā)現(xiàn)控制服務(wù)器,P2P 僵尸網(wǎng)絡(luò)多借助于P2P 協(xié)議的動態(tài)發(fā)現(xiàn)機制. 近年來的攻擊者開始采用多個域名或IP 并結(jié)合更新機制來提高僵尸網(wǎng)絡(luò)的抗關(guān)停能力, 還發(fā)展出了domain-flux, fast-flux 等新技術(shù). 下面我們對僵尸網(wǎng)絡(luò)的各種網(wǎng)絡(luò)發(fā)現(xiàn)機制及技術(shù)進行總結(jié)和分析.
? 固定IP 地址或域名
bot 通過預(yù)先設(shè)置的靜態(tài)IP 地址或者域名來找到控制服務(wù)器. 這種方式最為簡單, 多數(shù)僵尸網(wǎng)絡(luò)包括一些較大的僵尸網(wǎng)絡(luò), 如Mega-D,Rustock 等仍然使用這種方式. 雖然理論上靜態(tài)的地址和域名容易被追蹤和關(guān)停, 但由于域名或IP 地址的管理一般跨越網(wǎng)絡(luò)管理域甚至行政區(qū)域, 實際操作起來并不容易. 一些大規(guī)模的僵尸網(wǎng)絡(luò)設(shè)定分布廣泛的多個靜態(tài)IP 地址或域名, 再結(jié)合內(nèi)建的更新機制, 由于不同的網(wǎng)絡(luò)管理域的處置行動很難同步進行, 使得這樣的僵尸網(wǎng)絡(luò)具有很好的抗關(guān)停能力.
? 隨機掃描
bot 通過隨機發(fā)送數(shù)據(jù)包來嘗試找到其他的bot 或者控制服務(wù)器. 這種方式效率低下而且很容易被檢測, 目前只發(fā)現(xiàn)Sinit 僵尸網(wǎng)絡(luò)采用了這種機制.
? P2P 動態(tài)發(fā)現(xiàn)機制
P2P 僵尸網(wǎng)絡(luò)大多借助于P2P 網(wǎng)絡(luò)中的動態(tài)發(fā)現(xiàn)機制來加入僵尸網(wǎng)絡(luò), 如Phatbot 利用Gnutella 的cache server 來注冊和發(fā)現(xiàn)其他的bot,Storm 和Nugache 維護動態(tài)更新的peer 列表來加入網(wǎng)絡(luò). 這種機制不容易被關(guān)停, 但具有匿名性差的弱點, 容易暴露其他的bot.
? domain-flux
domain-flux 是指bot 使用某種算法生成大量的域名, 然后逐個地對這些域名進行嘗試以試圖與控制服務(wù)器取得聯(lián)系的一種技術(shù).Conficker,Torpig 等使用了這種技術(shù), 使得botmaster 可以靈活地在多個域名上轉(zhuǎn)移控制服務(wù)器.Conficker.C 的域名生成算法每天生成50 000個不同的域名, 分布在110個頂級域. 這種技術(shù)具有很好的抗關(guān)停能力:一方面由于域名數(shù)量巨大; 另一方面, 這些域名跨越多個管理區(qū)域, 無論是搶注、屏蔽或關(guān)停這些域名都很難實行, 即使對這些域名的狀態(tài)進行跟蹤也需要耗費大量資源.
? fast-flux
fast-flux 是一種利用DNS 實現(xiàn)的動態(tài)代理技術(shù)[34?36]. 其基本原理是, 利用一些具有公共IP 地址的bot 作為代理(flux-agent),控制服務(wù)器域名被解析為這些flux-agent 的IP 地址, 真實的服務(wù)器隱藏在flux-agent 背后提供服務(wù). 為保持可用性和隱蔽性, 與域名關(guān)聯(lián)的flux-agent 的IP 地址一直不停地發(fā)生變化.fast-flux 又分為single- flux 和double-flux 兩種類型, 關(guān)于這兩種技術(shù)的細節(jié)請參考文獻[36].
botmaster 使用fast-flux 技術(shù)可以將大量的bot 形成一個動態(tài)的代理網(wǎng)絡(luò), 使得隱藏在背后的控制服務(wù)器很難被發(fā)現(xiàn), 僵尸網(wǎng)絡(luò)的真實結(jié)構(gòu)和工作機制也可以得到隱藏. 良好的隱蔽性使得botmaster 可以長時間使用固定的服務(wù)器, 而且可以將大量的惡意網(wǎng)站停放在一個服務(wù)器上, 便于對其資源進行管理. 除了僵尸網(wǎng)絡(luò)控制服務(wù)器的域名,fast-flux 網(wǎng)絡(luò)還被用來解析惡意軟件宿主網(wǎng)站、網(wǎng)絡(luò)釣魚網(wǎng)站以及其他惡意站點的域名.
,88 Journal of Software 軟件學(xué)報 Vol.23, No.1, January 2012
1.3.3 僵尸網(wǎng)絡(luò)命令與控制機制的比較和發(fā)展趨勢
我們選擇5種不同時期的僵尸網(wǎng)絡(luò), 對其命令與控制機制進行比較, 表2中給出(由拓撲結(jié)構(gòu)和網(wǎng)絡(luò)發(fā)現(xiàn)機制所決定的) 從效率和連通性、加密機制、認證機制、隱蔽性以及匿名性這6個方面的比較結(jié)果. 我們對每項屬性給出從0~3個星號的評價, 問號表示未知. 從表中可以看出:早期的IRC 僵尸網(wǎng)絡(luò)(Rbot)具有很好的效率, 但在自身安全性方面較差; 后來的僵尸網(wǎng)絡(luò)明顯加強了自身安全性.Torpig 采用的domain-flux 技術(shù)增強了控制服務(wù)器的隱蔽性和抵抗關(guān)停的能力, 但缺少對服務(wù)器的認證導(dǎo)致被研究者劫持;Nugache 這種隨機連接的網(wǎng)絡(luò)具有很好的連通性和隱蔽性, 主要弱點是匿名性差;Storm 與Nugache 一樣, 在匿名性方面有明顯的弱點, 并且沒有對控制消息進行認證和保護; 近年出現(xiàn)的Waledac 在各方面都有針對性的設(shè)計, 其工作機制已經(jīng)沒有明顯的 弱點.
Table 2 Comparision of five known botnets’s C&C mechanism
表2 5種已知僵尸網(wǎng)絡(luò)命令與控制機制的比較
僵尸程序/網(wǎng)絡(luò) Rbot Torpig Nugache Storm Waledac
效率 ★★★★★★★★ ★★☆★★☆
連通性★ ★★ ★★★★★★★★★
自身安全性
加密機制認證機制
— — ★★ —
? ★★★
★★ ★ ★★☆ ★★
隱蔽性
— ★☆ ★★★★★★★★★
匿名性 — ★★ ★ ★ ★★
2 僵尸網(wǎng)絡(luò)防御技術(shù)研究進展
對于防御方來說, 想要有效地應(yīng)對僵尸網(wǎng)絡(luò)的威脅, 面臨以下幾個問題:
(1) 哪些入侵手段和僵尸程序是目前正在廣泛流行和傳播的, 其傳播方式、范圍及攻擊形式是怎樣的; (2) 僵尸網(wǎng)絡(luò)是如何工作的, 采用了什么樣的技術(shù); (3) 僵尸網(wǎng)絡(luò)的活動具有怎樣的特征;
(4) 如何準確地檢測出被感染的主機或者已存在的僵尸網(wǎng)絡(luò); (5) 什么樣的技術(shù)和策略能夠有效地遏制僵尸網(wǎng)絡(luò)的發(fā)展.
針對以上問題, 安全社區(qū)逐漸形成了包括安全威脅監(jiān)測、工作機制分析、特征分析、在線檢測以及主動遏制的整體防御體系. 下面我們從這5個環(huán)節(jié)來分別介紹近年來僵尸網(wǎng)絡(luò)防御技術(shù)的研究進展. 2.1 僵尸網(wǎng)絡(luò)威脅監(jiān)測
對僵尸網(wǎng)絡(luò)的活動進行監(jiān)測, 捕獲僵尸網(wǎng)絡(luò)的傳播和攻擊行為及新的僵尸程序樣本, 了解僵尸網(wǎng)絡(luò)的活動范圍以及發(fā)展態(tài)勢, 是僵尸網(wǎng)絡(luò)防御體系的第1個環(huán)節(jié). 這方面的工作主要在于研究和開發(fā)新的監(jiān)測技術(shù)以及部署覆蓋面廣泛的監(jiān)測系統(tǒng).
,江健 等:僵尸網(wǎng)絡(luò)機理與防御技術(shù) 89
測平臺, 并以此為基礎(chǔ)定期發(fā)布安全報告. 教育網(wǎng)應(yīng)急響應(yīng)組CCERT 也正在推進CERNET 分布式蜜網(wǎng)的部署工作.
2.2 僵尸網(wǎng)絡(luò)工作機制分析
在通過部署蜜罐或以其他方式獲取僵尸程序樣本后, 研究者通過對僵尸程序樣本進行靜態(tài)分析, 并在受控的環(huán)境中運行僵尸程序, 監(jiān)控和分析其行為(botnet tracking or botnet infiltration)來揭示其背后僵尸網(wǎng)絡(luò)的工作機制, 整個分析過程可以視為對僵尸程序以及僵尸網(wǎng)絡(luò)的逆向工程.
由于不同僵尸程序和僵尸網(wǎng)絡(luò)之間的差異很大, 目前這方面的研究主要以人工的個案分析來進行. 雖然缺少普適性方法的個案分析缺乏可擴展性, 但安全社區(qū)仍然在這方面取得了不錯的成績, 對新的僵尸網(wǎng)絡(luò)和技術(shù)基本能夠及時地發(fā)現(xiàn)和揭示, 第1節(jié)中所介紹的各種僵尸網(wǎng)絡(luò)工作機制多為個案分析后所得到的結(jié)果.
以個案分析的方式進行僵尸網(wǎng)絡(luò)的逆向工程面臨可擴展性的問題, 無法應(yīng)對數(shù)量龐大的僵尸程序樣本. 此外, 大多數(shù)個案分析沒有揭示出僵尸網(wǎng)絡(luò)工作機制背后的經(jīng)濟驅(qū)動力. 針對這一問題, 來自UCSD 和UC Berkeley 的研究團隊提出了更為自動化、智能化和系統(tǒng)性的僵尸網(wǎng)絡(luò)跟蹤研究計劃. 這一計劃主要包括3部分的研究內(nèi)容:
(1) 安全受控以及可擴展的僵尸程序運行及跟蹤平臺Botfarm;
(2) 對僵尸網(wǎng)絡(luò)命令與控制協(xié)議進行完整逆向工程;
(3) 在前面兩部分研究的基礎(chǔ)上對僵尸網(wǎng)絡(luò)背后的地下經(jīng)濟體系進行研究.
,90 Journal of Software 軟件學(xué)報 Vol.23, No.1, January 2012
對428個fast-flux 域名所關(guān)聯(lián)的IP 地址進行聚類分析, 找出了26個不同的fast-flux 域名停放網(wǎng)絡(luò).
2.3.3 僵尸網(wǎng)絡(luò)流量內(nèi)容特征的提取
流量內(nèi)容特征提取對僵尸網(wǎng)絡(luò)的檢測具有非常重要的意義,Rieck 等人在文獻[48]中描述了一種自動提取僵尸網(wǎng)絡(luò)通信的特征內(nèi)容的方法——Botzilla. 他們首先將惡意軟件樣本在受控的網(wǎng)絡(luò)環(huán)境中重復(fù)運行并記錄其通信內(nèi)容, 提取出其中的重復(fù)出現(xiàn)的內(nèi)容作為待選特征串, 然后通過正常通信內(nèi)容記錄進行篩選得出檢測特征串. 文獻中對20種僵尸程序樣本進行了實驗, 其中的17種成功生成出了特征串, 而且生成的特征串在實驗中表現(xiàn)出了很高的準確性, 檢測率平均達到94.5,誤報率僅為0.0001.
2.4 僵尸網(wǎng)絡(luò)檢測技術(shù)
如何準確地檢測出被感染的主機或者已存在的僵尸網(wǎng)絡(luò), 是應(yīng)對僵尸網(wǎng)絡(luò)威脅的一個關(guān)鍵問題. 僵尸網(wǎng)絡(luò)檢測研究有兩個要素:一是數(shù)據(jù)來源, 二是對異常模式的定義. 另外, 檢測方法的準確性、性能以及可部署性也是這方面研究的重要指標.
目前的僵尸網(wǎng)絡(luò)檢測技術(shù)采用的數(shù)據(jù)源主要是網(wǎng)絡(luò)流量以及一些應(yīng)用程序的數(shù)據(jù)(如郵件記錄以及DNS 的日志記錄), 而對異常模式的定義主要有傳統(tǒng)的基于內(nèi)容特征(signature-based)異?;谔囟ㄐ袨?behavior- based) 異常. 表3從這兩個方面總結(jié)了近年來的一些新的僵尸網(wǎng)絡(luò)檢測技術(shù), 下面我們以分類形式對這些檢測技術(shù)的方法和特點進行分析.
Table 3 Recently proposed botnet detection techniques
表3 一些新的僵尸網(wǎng)絡(luò)檢測技術(shù) 數(shù)據(jù)源
網(wǎng)絡(luò)流量 應(yīng)用數(shù)據(jù)
TAMD √
[50]BotGrep √
BotSniffer [52] √ √
BotMiner [53] √ √
[54]RB-Seeker √ √
√
√
AutoRE [57] √
Botgraph [58] √ 檢測技術(shù) 異常模式 部署位置 內(nèi)容特征行為特征 √ 骨干網(wǎng)或者企業(yè)網(wǎng) √ 骨干網(wǎng) √ √ 企業(yè)網(wǎng) √ 企業(yè)網(wǎng) √ 企業(yè)網(wǎng) √服務(wù)提供商 √ 郵件服務(wù)提供商 √ √ 郵件服務(wù)提供商 √ 郵件服務(wù)提供商
2.4.1 基于網(wǎng)絡(luò)流量內(nèi)容特征的檢測技術(shù)
基于內(nèi)容特征的檢測是入侵檢測系統(tǒng)的常規(guī)檢測方法, 這種方法適用于已知的具有明確特征的僵尸網(wǎng)絡(luò). 如早期采用TCP/8端口的Nugache 以及采用UDP/53端口的Sinit. 另外,Phatbot,Conficker,Waledac 等的研究報告中也都給出了可直接用于傳統(tǒng)入侵檢測系統(tǒng)的特征內(nèi)容.
基于內(nèi)容特征的檢測技術(shù)具有準確、快速、容易部署的特點, 是目前實際應(yīng)用最為廣泛的檢測方法. 其局限性在于容易被變形、多態(tài)等技術(shù)所逃避, 對未知的僵尸程序/網(wǎng)絡(luò)沒有檢測能力; 并且特征串的提取往往依賴于人工分析, 難以應(yīng)對目前急劇增長的僵尸程序數(shù)量. 雖然文獻[48]中進行了自動提取網(wǎng)絡(luò)流量特征內(nèi)容的嘗試并取得了很好的實驗結(jié)果, 但這種方式是否具有一般性還有待進一步加以研究.
2.4.2 基于網(wǎng)絡(luò)流量行為特征的檢測技術(shù)
由于基于內(nèi)容特征的檢測方法具有一定的局限性, 而研究者又認為僵尸網(wǎng)絡(luò)的通信行為具有時間上的關(guān)聯(lián)性和群體相似性, 因此期望通過對網(wǎng)絡(luò)流量進行分析找出更為一般性的網(wǎng)絡(luò)行為異常模式以進行僵尸網(wǎng)絡(luò)的檢測.
,江健 等:僵尸網(wǎng)絡(luò)機理與防御技術(shù) 91
然后通過隨機游走(random walk)方法從圖中檢測出結(jié)構(gòu)化P2P 網(wǎng)絡(luò)的子圖, 再結(jié)合其他如蜜罐等檢測系統(tǒng)的結(jié)果來判斷是否為僵尸網(wǎng)絡(luò).
理想狀態(tài)下, 基于網(wǎng)絡(luò)流量行為的檢測方法不容易被逃避, 且具有檢測未知僵尸網(wǎng)絡(luò)的能力. 但目前, 多數(shù)這類檢測方法在精確度和可部署性方面還無法達到實際應(yīng)用的需要, 其主要困難在于:
(1) 僵尸網(wǎng)絡(luò)的通信行為復(fù)雜多樣, 很難對異常行為準確定義, 通過聚類等自動學(xué)習(xí)的方式很難保證精
確度;
(2) 背景流量同樣復(fù)雜多樣, 很難對正常和異常進行區(qū)分;
(3) 網(wǎng)絡(luò)流量數(shù)據(jù)量極大, 而通信行為進行分析往往需要借助采用計算量很大的機器學(xué)習(xí)等算法, 難以
做到實時檢測.
2.4.3 基于關(guān)聯(lián)分析的檢測技術(shù)
由于bot 受botmaster 的控制進行惡意攻擊活動, 所以其通信行為往往和一些惡意事件, 如DDoS 攻擊、掃描、二進制文件下載等在時間上具有關(guān)聯(lián)性.Gu 等人基于這一特性, 在前期工作BotHunter [51]的基礎(chǔ)上又提出了BotSniffer [52]和BotMiner [53]兩種檢測方法.BotSniffer 基于對同一局域網(wǎng)中bot 活動的時間和空間上關(guān)聯(lián)性(spatial-temporal correlation)的假設(shè), 從網(wǎng)絡(luò)中的IRC 以及HTTP 流量中識別出可疑的僵尸網(wǎng)絡(luò)命令與控制通信, 然后再結(jié)合掃描、二進制文件下載、spam 等異常事件日志進行關(guān)聯(lián)分析來進行檢測.BotMiner 嘗試實現(xiàn)不依賴于具體協(xié)議的檢測方法, 通過將所有的流量按目的地址和端口進行聚合作為基本單位, 再根據(jù)一系列的流量屬性進行聚類分析以得到通信行為類似的組, 再結(jié)合異常事件的日志進行關(guān)聯(lián)分析來檢測出可疑的bot 組. 除了Gu 等人的工作以外, 最近發(fā)表的RB-Seeker [54]也采用了關(guān)聯(lián)分析的方法. 先通過網(wǎng)絡(luò)流量數(shù)據(jù)關(guān)聯(lián)spam 信息以及DNS 的日志記錄找出可疑域名, 再對可疑域名進行探測, 并通過機器學(xué)習(xí)的方法來檢測出惡意域名, 然后再和DNS 日志記錄進行關(guān)聯(lián)來找出可能的bot.
把網(wǎng)絡(luò)行為和一些明確的惡意事件與數(shù)據(jù)進行關(guān)聯(lián)可以縮小檢測范圍, 提高精確度. 但目前, 這方面的研究仍然有其局限性.BotHunter 和BotSniffer 需要依賴于內(nèi)容特征以及特定類型的僵尸網(wǎng)絡(luò)通信協(xié)議,BotMiner 雖然不依賴于特定的協(xié)議和僵尸網(wǎng)絡(luò)拓撲結(jié)構(gòu), 但需要進行計算量很大的聚類分析, 難以保證精確度而且實時性不好.RB-Seeker 也使用了難以保證精確度及實時性的機器學(xué)習(xí)等方法, 且其只針對特定的僵尸網(wǎng)絡(luò)活動.
2.4.4 基于應(yīng)用數(shù)據(jù)和日志分析的檢測技術(shù)
除了網(wǎng)絡(luò)通信以外, 僵尸網(wǎng)絡(luò)的一些行為特征, 如群體相似性等, 也會體現(xiàn)在其所使用的一些網(wǎng)絡(luò)服務(wù), 如DNS 、郵件服務(wù)的日志記錄中, 研究者嘗試從這類數(shù)據(jù)中找出具有異常特征的記錄來識別出可能的僵尸網(wǎng)絡(luò).
Choi 等人在文獻[55]中提出bot 主機對控制服務(wù)器的DNS 查詢具有群體活動的特點, 他們根據(jù)時間段對查詢記錄按域名進行分組, 如果同一個域名在不同時間段內(nèi)的查詢IP 地址有很高的重合度, 則表明這些IP 地址代表的主機是可疑的bot, 而該域名為可疑的控制服務(wù)器.
僵尸網(wǎng)絡(luò)所發(fā)出的垃圾郵件也具有一定的群組相似性.Zhuang 等人對垃圾郵件的內(nèi)容進行分析, 根據(jù)內(nèi)容的相似性來對垃圾郵件進行分組, 再對分組中的發(fā)送者IP 地址進行分析來識別出不同的僵尸網(wǎng)絡(luò)[56].Xie 等人的研究借鑒了這種思想, 他們提出一種自動生成垃圾郵件特征碼的方法AutoRE, 以識別僵尸網(wǎng)絡(luò)發(fā)出的垃圾郵件[57].AutoRE 通過提取E-mail 中的URL 來生成特征碼, 然后對具有類似URL 特征碼的E-mail 及其發(fā)送者IP 地址進行分組, 再根據(jù)E-mail 分組的IP 地址分布和持續(xù)時間來判斷發(fā)送者是否為僵尸網(wǎng)絡(luò)bot.
為提高垃圾郵件的發(fā)送成功率, 一些僵尸網(wǎng)絡(luò)通過bot 自動注冊和激活hotmail,gmail 等郵件服務(wù)商帳號, 然后登錄到服務(wù)器上發(fā)送垃圾郵件.Zhao 等人設(shè)計并實現(xiàn)了通過對郵件服務(wù)器帳號激活日志和登錄日志進行分析來檢測可疑bot 以及相關(guān)郵件帳號的系統(tǒng)BotGraph [58].BotGraph 包括兩種檢測方法:一種方法從帳號激活日志中分析單個IP 地址突發(fā)的帳號激活操作來判斷該IP 是否為可疑的bot; 另一種檢測方法的異常定義為郵件帳號的IP 地址共享行為, 可疑的IP 地址會登錄多個郵件帳號, 而可疑的郵件帳號會在多個IP 地址登錄.
2.5 僵尸網(wǎng)絡(luò)的主動遏制技術(shù)
在通過應(yīng)用蜜罐、行為和特征分析以及檢測等各種技術(shù)獲得僵尸網(wǎng)絡(luò)的相關(guān)信息, 如bot 的地址、僵尸程