僵尸網(wǎng)絡(luò)(Botnet)是指采用一種或多種傳播手段,將大量主機(jī)感染僵尸(bot)程序病毒,從而在控制者和被感染主機(jī)之間所形成的一個(gè)可一對(duì)多控制的網(wǎng)絡(luò)。攻擊者(botmaster)通過各種途徑傳播僵尸程序感染互聯(lián)網(wǎng)上的大量主機(jī),而被感染的主機(jī)將通過一個(gè)控制信道接收攻擊者的指令,組成一個(gè)僵尸網(wǎng)絡(luò)。之所以用僵尸網(wǎng)絡(luò)這個(gè)名字,是為了更形象地讓人們認(rèn)識(shí)到這類危害的特點(diǎn):眾多的計(jì)算機(jī)在不知不覺中如同中國古老傳說中的僵尸群一樣被人驅(qū)趕和指揮著,成為被人利用的一種工具。攻擊者利用大量的僵尸主機(jī)可以進(jìn)行各種網(wǎng)絡(luò)攻擊活動(dòng),如對(duì)某個(gè)特定的站點(diǎn)發(fā)起DDoS(Distributed Denial of Service)攻擊、發(fā)送大量的垃圾郵件、竊取用戶的敏感信息等。黑客們已經(jīng)越來越喜歡使用僵尸網(wǎng)絡(luò)發(fā)起攻擊,因?yàn)榻┦W(wǎng)絡(luò)攻擊的隱蔽性、破壞性以及威脅程度遠(yuǎn)遠(yuǎn)大于單一的網(wǎng)絡(luò)攻擊模式。
僵尸網(wǎng)絡(luò)目前已經(jīng)成為威脅企業(yè)網(wǎng)的重大安全問題之一,并且成為網(wǎng)絡(luò)安全領(lǐng)域中討論和研究的熱點(diǎn)問題之一。網(wǎng)絡(luò)安全商fortiguard labs的網(wǎng)絡(luò)安全研究報(bào)告指出,虛擬貨幣的僵尸挖礦ZeroAccess已經(jīng)成為全球網(wǎng)絡(luò)當(dāng)下主要威脅。ZeroAccess的主要攻擊手段是click fraud和virtual mining,通過控制大量僵尸主機(jī)進(jìn)行挖礦活動(dòng),近期由于比特幣等虛擬貨幣的價(jià)值飆升,ZeroAccess的獲利可能出乎想象。其實(shí)ZeroAccess的初想并不新奇,早在2011年6月,賽門鐵克就發(fā)出警告,僵尸網(wǎng)絡(luò)正在參與到比特幣挖礦中。這會(huì)占用受害者的計(jì)算機(jī)運(yùn)算能力、消耗額外的電力并導(dǎo)致主機(jī)溫度升高。一些惡意程序也大量利用 CPU的并行計(jì)算能力進(jìn)行挖礦。在2011年8月,比特幣僵尸挖礦網(wǎng)絡(luò)被發(fā)現(xiàn),被病毒感染的Mac OS也被發(fā)現(xiàn)進(jìn)行比特幣的挖礦。2014年黑帽大會(huì)其中有一個(gè)主題為“僵尸網(wǎng)絡(luò)和廣告活動(dòng)”講述了僵尸網(wǎng)絡(luò)被大量用于互聯(lián)網(wǎng)廣告業(yè)。眾所周知互聯(lián)網(wǎng)投放廣告主要是看點(diǎn)擊量的,而使用僵尸網(wǎng)絡(luò)以后點(diǎn)擊量也就再也不是問題,從而使廣告投放商耗費(fèi)大量的金錢在一個(gè)虛假的點(diǎn)擊量很好的廣告上。
目前大部分的研究都是針對(duì)僵尸網(wǎng)絡(luò)檢測防御的理論方面的,沒有一個(gè)具體的針對(duì)企業(yè)網(wǎng)來做的防御或者是避免的方法,本文介紹了企業(yè)網(wǎng)應(yīng)該怎么來降低僵尸網(wǎng)絡(luò)帶來的危害。
僵尸網(wǎng)絡(luò)按照命令與控制機(jī)制的不同可以分為:IRC(Internet Relay Chat)協(xié)議僵尸網(wǎng)絡(luò)、HTTP(Hypertext Transport Protocol)協(xié)議僵尸網(wǎng)絡(luò)以及P2P(Peer to Peer)協(xié)議僵尸網(wǎng)絡(luò)。IRC協(xié)議僵尸網(wǎng)絡(luò)和 HTTP協(xié)議僵尸網(wǎng)絡(luò)都屬于 C/S(Client/Server)僵尸網(wǎng)絡(luò)結(jié)構(gòu),都是具有核心服務(wù)器的,控制命令都需要通過核心服務(wù)器進(jìn)行發(fā)布,二者不同的是IRC協(xié)議僵尸網(wǎng)絡(luò)控制命令通過IRC協(xié)議發(fā)布,HTTP協(xié)議僵尸網(wǎng)絡(luò)控制命令通過HTTP協(xié)議發(fā)布。這種控制機(jī)制有一個(gè)嚴(yán)重的缺陷,容易被檢測發(fā)現(xiàn),并且整個(gè)僵尸網(wǎng)絡(luò)主要依賴核心服務(wù)器,當(dāng)核心服務(wù)器被關(guān)閉那么就會(huì)導(dǎo)致整個(gè)僵尸網(wǎng)絡(luò)崩潰。P2P協(xié)議僵尸網(wǎng)絡(luò)使用P2P協(xié)議發(fā)布命令,僵尸網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都既是服務(wù)器也是客戶端,客服了IRC協(xié)議和HTTP協(xié)議僵尸網(wǎng)絡(luò)的缺點(diǎn)。
僵尸網(wǎng)絡(luò)的結(jié)構(gòu)如圖1所示??煞譃橹黧w功能模塊和輔助功能模塊。
圖1 僵尸網(wǎng)絡(luò)程序結(jié)構(gòu)
主體功能模塊包括命令與控制模塊、通訊模塊以及傳播模塊。其中命令與控制模塊是整個(gè)僵尸網(wǎng)絡(luò)程序的核心,負(fù)責(zé)解析控制器或者鄰居節(jié)點(diǎn)發(fā)送的控制命令,解析完成以后發(fā)送給相應(yīng)模塊執(zhí)行;通訊模塊負(fù)責(zé)與控制器(鄰居節(jié)點(diǎn))進(jìn)行信息交互,例如接收控制器(鄰居節(jié)點(diǎn))的控制指令并把該控制指令向其他鄰居節(jié)點(diǎn)發(fā)送、向控制器(鄰居節(jié)點(diǎn))反饋命令執(zhí)行的結(jié)果、P2P僵尸網(wǎng)絡(luò)中還負(fù)責(zé)與鄰居節(jié)點(diǎn)交換鄰居節(jié)點(diǎn)列表;傳播模塊負(fù)責(zé)通過各種方式傳播僵尸網(wǎng)絡(luò)程序,使新的主機(jī)加入僵尸網(wǎng)絡(luò)接受攻擊者的控制,不斷擴(kuò)大僵尸網(wǎng)絡(luò)的規(guī)模。
輔助功能模塊包括主機(jī)控制模塊、信息竊取模塊、下載與更新模塊以及躲避檢測與對(duì)抗模塊。主機(jī)控制模塊主要負(fù)責(zé)完成主體功能模塊中的命令與控制模塊解析的命令,這些命令由不同的子模塊完成,例如DDoS攻擊模塊、發(fā)送垃圾郵件模塊以及點(diǎn)擊量控制模塊等;信息竊取模塊主要負(fù)責(zé)獲取受控主機(jī)的信息和受控主機(jī)上保存的有價(jià)值信息,例如受控主機(jī)的資源、各個(gè)網(wǎng)站的賬號(hào)口令、電子郵件聯(lián)系人信息等;下載與更新模塊為攻擊者提供更新僵尸主機(jī)上面僵尸程序的功能,使得僵尸網(wǎng)絡(luò)程序不斷完善以便讓攻擊進(jìn)行更加強(qiáng)大的攻擊功能;躲避檢測與對(duì)抗模塊負(fù)責(zé)識(shí)別僵尸主機(jī)的系統(tǒng)環(huán)境,躲避檢測工具以及防止病毒分析師的分析,其目的是為了讓僵尸網(wǎng)絡(luò)程序能夠持久的存在僵尸主機(jī)上,提升僵尸網(wǎng)絡(luò)的生產(chǎn)能力。
根據(jù)僵尸網(wǎng)絡(luò)的生命周期可以將其分為4個(gè)階段:傳播階段、感染階段、通訊階段以及攻擊階段??傮w工作機(jī)制如圖2所示。
圖2 僵尸網(wǎng)絡(luò)工作機(jī)制
僵尸網(wǎng)絡(luò)不斷傳播僵尸程序到新的主機(jī),不斷擴(kuò)大僵尸網(wǎng)絡(luò)規(guī)模的過程即為僵尸網(wǎng)絡(luò)傳播階段。僵尸網(wǎng)絡(luò)的傳播方式主要分為主動(dòng)傳播和被動(dòng)傳播。主動(dòng)傳播方式需要借助于傳統(tǒng)的蠕蟲病毒自動(dòng)進(jìn)行傳播,主要是通過攻擊系統(tǒng)漏洞、掃描后門程序等方式進(jìn)行自動(dòng)傳播,著名的bot樣本AgoBot就實(shí)現(xiàn)了bot程序的自動(dòng)傳播,對(duì)于有些重要的節(jié)點(diǎn)或者系統(tǒng)自動(dòng)傳播達(dá)不到效果的情況下,攻擊者一般采用工具進(jìn)行后門或者漏洞掃描后動(dòng)態(tài)破譯密碼等方式進(jìn)行攻擊;被動(dòng)傳播主要通過病毒郵件、惡意網(wǎng)站腳本、特洛伊木馬以及即時(shí)通信軟件等方式進(jìn)行傳播。
僵尸程序傳播到新的主機(jī)以后把其僵尸程序代碼植入新的主機(jī),讓新的主機(jī)加入僵尸網(wǎng)絡(luò)的過程稱為僵尸網(wǎng)絡(luò)的感染階段。感染階段的基本過程如下:
(1)新的主機(jī)收到被傳播的僵尸程序以后進(jìn)行自動(dòng)運(yùn)行或者是人為安裝;
(2)僵尸程序在新的主機(jī)上注入其啟動(dòng)項(xiàng),并修改其注冊(cè)表等信息,完成以后即成為新感染節(jié)點(diǎn);
(3)新感染節(jié)點(diǎn)發(fā)出加入網(wǎng)絡(luò)的請(qǐng)求命令;
(4)收到請(qǐng)求的僵尸主機(jī)回復(fù)其一個(gè)命令以便獲取到新感染節(jié)點(diǎn)的具體信息;
(5)新感染節(jié)點(diǎn)回復(fù)命令,告知僵尸主機(jī)它的具體信息;
(6)僵尸主機(jī)將新感染節(jié)點(diǎn)的相關(guān)信息進(jìn)行記錄,并將自己的鄰居節(jié)點(diǎn)列表同步到新感染的節(jié)點(diǎn);
(7)僵尸主機(jī)向自己其他的鄰居節(jié)點(diǎn)發(fā)出通告,告知有新的節(jié)點(diǎn)加入到僵尸網(wǎng)絡(luò)中來。
上述過程對(duì)于IRC協(xié)議和HTTP協(xié)議僵尸網(wǎng)絡(luò),過程(4)、(6)、(7)由C&C服務(wù)器完成。
在 P2P協(xié)議僵尸網(wǎng)絡(luò)中通訊階段是指僵尸網(wǎng)絡(luò)中僵尸主機(jī)自發(fā)進(jìn)行信息交互的過程[6];對(duì)于IRC協(xié)議和HTTP協(xié)議僵尸網(wǎng)絡(luò)通訊階段是指C&C服務(wù)器向僵尸主機(jī)下發(fā)命令和僵尸主機(jī)向C&C服務(wù)器回復(fù)命令執(zhí)行情況的過程。僵尸網(wǎng)絡(luò)為了保持其僵尸主機(jī)能夠快速的接收攻擊者的命令,必須進(jìn)行頻繁的信息交互以便維持僵尸網(wǎng)絡(luò)的穩(wěn)定性和適應(yīng)性。僵尸網(wǎng)絡(luò)中通訊機(jī)制的好壞直接決定了僵尸網(wǎng)絡(luò)的穩(wěn)定性和適應(yīng)性。
僵尸主機(jī)通過通訊階段收到控制者發(fā)出的命令,按照命令進(jìn)行攻擊的過程稱為攻擊階段。之前的傳播階段、感染階段以及通訊階段都是在為攻擊階段做準(zhǔn)備。攻擊階段的攻擊主要分為:拒絕服務(wù)攻擊、發(fā)送垃圾郵件、竊取敏感信息、僵尸網(wǎng)絡(luò)挖礦等[1]。
對(duì)僵尸網(wǎng)絡(luò)研究的難點(diǎn)問題之一就是僵尸網(wǎng)絡(luò)的檢測,目前主要的檢測技術(shù)包括基于流量分析的檢測技術(shù)、基于密網(wǎng)捕獲的檢測技術(shù)以及反向檢測技術(shù)等?;诹髁糠治鰴z測技術(shù)適合于互聯(lián)網(wǎng)中一個(gè)局域網(wǎng)內(nèi)的主機(jī)進(jìn)行主動(dòng)持續(xù)性的檢測;密網(wǎng)捕獲技術(shù)適合于對(duì)整合互聯(lián)網(wǎng)環(huán)境進(jìn)行被動(dòng)的檢測;反向檢測技術(shù)主要是根據(jù)僵尸網(wǎng)絡(luò)造成的危害后果進(jìn)行反向追溯這個(gè)僵尸網(wǎng)絡(luò)。
基于流量分析的檢測技術(shù)是持續(xù)性的對(duì)用戶發(fā)起的網(wǎng)絡(luò)數(shù)據(jù)報(bào)文進(jìn)行檢測,對(duì)檢測結(jié)果進(jìn)行關(guān)聯(lián)分析來發(fā)現(xiàn)僵尸網(wǎng)絡(luò)的活動(dòng)。其中關(guān)聯(lián)分析可以分為3個(gè)層面:縱向關(guān)聯(lián)、橫向關(guān)聯(lián)以及因果關(guān)聯(lián)。縱向關(guān)聯(lián)的關(guān)鍵技術(shù)[8]是構(gòu)建一個(gè)僵尸網(wǎng)絡(luò)感染序列模型,這個(gè)模型通過追蹤內(nèi)部主機(jī)和外部網(wǎng)絡(luò)之間雙向通信流量來識(shí)別感染過程的不同階段,將識(shí)別的結(jié)果匯總起來提交到提前構(gòu)建的模型的分析引擎,分析引擎對(duì)匯總結(jié)果進(jìn)行縱向關(guān)聯(lián)形成會(huì)話鏈,然后再與之前構(gòu)建的模型進(jìn)行匹配,判斷局域網(wǎng)內(nèi)是否存在僵尸節(jié)點(diǎn)??v向關(guān)聯(lián)的局限性是感染序列模型是預(yù)定義好的,且對(duì)于感染過程各個(gè)階段的檢測手段是基于特征的。橫向關(guān)聯(lián)的關(guān)鍵技術(shù)[8]是僵尸節(jié)點(diǎn)的一些特定活動(dòng)規(guī)律是由相似的代碼完成的,這些代碼具有相關(guān)的邏輯性,因此分析不同主機(jī)流量間的相似性可以用來檢測僵尸節(jié)點(diǎn)。利用橫向關(guān)聯(lián)來實(shí)現(xiàn)的檢測系統(tǒng)有BotSniffer和BotMiner。橫向關(guān)聯(lián)相對(duì)縱向關(guān)聯(lián)的優(yōu)勢(shì)是不需要預(yù)定于僵尸網(wǎng)絡(luò)的感染模型,可以發(fā)現(xiàn)新的僵尸網(wǎng)絡(luò)。因果關(guān)聯(lián)的關(guān)鍵技術(shù)[8]是對(duì)網(wǎng)絡(luò)流量進(jìn)行探測,會(huì)主動(dòng)發(fā)出一些探測報(bào)文,然后對(duì)流量進(jìn)行區(qū)分哪些是人與人的會(huì)話,哪些是命令與控制會(huì)話等,針對(duì)區(qū)分出來的會(huì)話再進(jìn)行下一步的具體分析。
基于蜜網(wǎng)捕獲的檢測技術(shù)利用已經(jīng)提前布置好的蜜網(wǎng)系統(tǒng)被動(dòng)的捕獲一些在蜜罐機(jī)上的程序,然后進(jìn)行分析和判斷是否是僵尸程序。蜜網(wǎng)系統(tǒng)主要依賴“蜜罐”技術(shù),“蜜罐”是一種經(jīng)過特殊構(gòu)造的計(jì)算機(jī)或者是網(wǎng)絡(luò)陷阱,主要用來吸引和檢測惡意代碼。當(dāng)僵尸網(wǎng)絡(luò)程序感染到“蜜罐”計(jì)算機(jī)時(shí),“蜜罐”計(jì)算機(jī)把該僵尸網(wǎng)絡(luò)程序的二進(jìn)制代碼記錄下來,經(jīng)過反匯編成僵尸網(wǎng)絡(luò)的源碼,從而能夠獲得該僵尸網(wǎng)絡(luò)的特征信息。Holz等人就通過二進(jìn)制代碼的反匯編來剖析僵尸網(wǎng)絡(luò)的特征,實(shí)現(xiàn)了對(duì)僵尸網(wǎng)絡(luò)的跟蹤、檢測和反制。
反向檢測技術(shù)的關(guān)鍵技術(shù)是對(duì)互聯(lián)網(wǎng)中發(fā)生的大規(guī)模的惡意行為進(jìn)行分析,以及對(duì)危害后果進(jìn)行數(shù)據(jù)挖掘,尋找隱藏在這些惡意行為后面的僵尸網(wǎng)絡(luò)。過去的研究中Husna等人、Sroufe等人和Xie等人都提出了相關(guān)的概念以及設(shè)計(jì)相關(guān)的系統(tǒng)進(jìn)行研究。針對(duì)危害行為進(jìn)行溯源其難度非常大,但是其結(jié)果往往是比較可信的。
在企業(yè)網(wǎng)中杜絕僵尸網(wǎng)絡(luò)其中最關(guān)鍵的就是對(duì)僵尸的檢測,上文敘述了針對(duì)僵尸網(wǎng)絡(luò)檢測的各個(gè)方法,但是這些方法都是有優(yōu)缺點(diǎn)的,王天佐等人分析了各個(gè)檢測方法的優(yōu)缺點(diǎn)?;诹髁糠治龅臋z測技術(shù)能夠?qū)崟r(shí)快速地發(fā)現(xiàn)本地僵尸網(wǎng)絡(luò)的節(jié)點(diǎn),但是其存在誤報(bào)的情況;蜜網(wǎng)技術(shù)通過捕獲僵尸程序進(jìn)行反匯編獲取僵尸網(wǎng)絡(luò)的詳細(xì)信息,檢測的準(zhǔn)確率比較高,但是因?yàn)槭潜粍?dòng)式捕獲,其檢測范圍受到了蜜網(wǎng)規(guī)模的限制;反向檢測技術(shù)因?yàn)槭窃诎l(fā)生大規(guī)模危害以后進(jìn)行返溯僵尸網(wǎng)絡(luò)的,時(shí)效性比較差。
綜合考慮這三種檢測技術(shù)的優(yōu)缺點(diǎn),可以建立一個(gè)如圖3所示混合防御模型。
圖3 企業(yè)網(wǎng)防御模型
混合防御模型中首先通過蜜網(wǎng)系統(tǒng),盡可能的收集僵尸網(wǎng)絡(luò)程序進(jìn)行反匯編收集僵尸網(wǎng)絡(luò)程序源碼,根據(jù)源碼提取僵尸網(wǎng)絡(luò)的特征,把特征放到他們的數(shù)據(jù)中心即僵尸網(wǎng)絡(luò)特征庫中;然后通過反向檢測分析技術(shù),對(duì)互聯(lián)網(wǎng)中危害比較大的事件進(jìn)行分析和追溯,找到在這個(gè)危害背后的僵尸網(wǎng)絡(luò),盡可能的提取其相關(guān)特征,或者是根據(jù)危害情況提取僵尸網(wǎng)絡(luò)特征,放到數(shù)據(jù)中心;最后在企業(yè)網(wǎng)的出口布置有“安全網(wǎng)關(guān)”,該網(wǎng)關(guān)里面內(nèi)置該廠商針對(duì)僵尸網(wǎng)絡(luò)的基于流量分析的檢測技術(shù),因?yàn)榭蛻羯暇W(wǎng)的流量必須要經(jīng)過“安全網(wǎng)關(guān)”,所以可以持續(xù)性的對(duì)用戶發(fā)起的網(wǎng)絡(luò)數(shù)據(jù)報(bào)文進(jìn)行檢測,對(duì)檢測的結(jié)果進(jìn)行互聯(lián)分析,可以使用縱向互聯(lián)、橫向互聯(lián)、因果互聯(lián)或者是使用幾種互聯(lián)方式進(jìn)行結(jié)合進(jìn)行分析,看是否能夠發(fā)現(xiàn)僵尸網(wǎng)絡(luò)節(jié)點(diǎn),如果發(fā)現(xiàn)僵尸網(wǎng)絡(luò)以后把這些信息放到數(shù)據(jù)中心。通過混合防御模型就可以形成一個(gè)比較全面的僵尸網(wǎng)絡(luò)特征庫。
現(xiàn)在的網(wǎng)絡(luò)安全廠商,像綠盟、深信服等都具有僵尸網(wǎng)絡(luò)防御的功能,通過混合防御模型可以極大地保護(hù)企業(yè)網(wǎng)的安全。
以深信服舉例,深信服的防火墻具有僵尸網(wǎng)絡(luò)防護(hù)功能,他們的防護(hù)機(jī)制是檢測經(jīng)過防火墻的流量,進(jìn)行拆包分析經(jīng)過防火墻的數(shù)據(jù)包,檢測數(shù)據(jù)包中流量特征是否匹配僵尸網(wǎng)絡(luò)特征庫中的僵尸網(wǎng)絡(luò)特征,如果能夠匹配特征庫的特征,那么就說明內(nèi)網(wǎng)中存在具有僵尸網(wǎng)絡(luò)程序的計(jì)算機(jī),防火墻會(huì)對(duì)這個(gè)計(jì)算機(jī)發(fā)出的僵尸網(wǎng)絡(luò)流量進(jìn)行封堵,然后提醒管理員。這種防護(hù)方式最重要的是僵尸網(wǎng)絡(luò)特征庫,深信服的僵尸網(wǎng)絡(luò)特征庫有專門的收集部門。但是和僵尸網(wǎng)絡(luò)混合防御模型有差別的是在防火墻上面沒有做主動(dòng)的掃描和檢測,其檢測都是拆包分析是否匹配特征庫。所以說目前這個(gè)模型只具有初步應(yīng)用。
僵尸網(wǎng)絡(luò)對(duì)企業(yè)網(wǎng)的威脅非常之大,需要完全杜絕和防御比較困難。本文深入分析了僵尸網(wǎng)絡(luò)的功能結(jié)構(gòu),總結(jié)了僵尸網(wǎng)絡(luò)的工作機(jī)制,從基于流量的分析技術(shù)、基于蜜網(wǎng)捕獲的檢測技術(shù)以及反向檢測技術(shù)分析了僵尸網(wǎng)絡(luò)的檢測技術(shù),以及這三種檢測技術(shù)的優(yōu)缺點(diǎn);根據(jù)僵尸網(wǎng)絡(luò)的檢測技術(shù)提出了企業(yè)網(wǎng)防御僵尸網(wǎng)絡(luò)的模型即僵尸網(wǎng)絡(luò)混合防御模型,該模型中的關(guān)鍵點(diǎn)是對(duì)僵尸網(wǎng)絡(luò)的檢測,把三種僵尸網(wǎng)絡(luò)檢測技術(shù)的優(yōu)點(diǎn)進(jìn)行結(jié)合組成了該模型的檢測技術(shù);分析了該模型的缺點(diǎn),后續(xù)還需要進(jìn)行深入的研究克服這些缺點(diǎn)。
網(wǎng)絡(luò)安全技術(shù)與應(yīng)用2015年11期