高敏芬,蔡亞運(yùn)
(1.南開大學(xué) 數(shù)學(xué)科學(xué)學(xué)院,天津 300071;2.南開大學(xué) 計(jì)算機(jī)與控制工程學(xué)院,天津 300071)
僵尸網(wǎng)絡(luò)(botnet)是指攻擊者通過各種手段惡意傳播僵尸程序(bot)以控制大量的計(jì)算機(jī),通過相對集中的若干計(jì)算機(jī)直接向大量受控計(jì)算機(jī)發(fā)送指令的攻擊性網(wǎng)絡(luò)[1-3]。攻擊者通常利用大規(guī)模的僵尸網(wǎng)絡(luò)進(jìn)行分布式拒絕服務(wù)攻擊(DDoS)、竊取用戶信息、發(fā)送大量的垃圾郵件(spam)和傳播其他惡意軟件(如計(jì)算機(jī)病毒)等惡意活動(dòng)。僵尸網(wǎng)絡(luò)已經(jīng)成為當(dāng)今互聯(lián)網(wǎng)最大的安全威脅之一,也因此成為網(wǎng)絡(luò)安全領(lǐng)域研究的熱點(diǎn)[4]。
僵尸網(wǎng)絡(luò)分析實(shí)驗(yàn)是南開大學(xué)信息安全專業(yè)本科生“惡意代碼分析”課程的重要實(shí)驗(yàn)內(nèi)容之一。該實(shí)驗(yàn)的目的是幫助學(xué)生理解僵尸網(wǎng)絡(luò)的基本工作原理及其行為特征,掌握分析和防治僵尸網(wǎng)絡(luò)的技術(shù)和方法。
由于僵尸網(wǎng)絡(luò)分析過程對學(xué)生的知識基礎(chǔ)和綜合分析能力要求較高,因此,也是對信息安全專業(yè)本科生綜合應(yīng)用所學(xué)知識分析問題、解決問題能力和創(chuàng)新意識的培養(yǎng)。首先,對僵尸網(wǎng)絡(luò)的分析實(shí)驗(yàn)建立在計(jì)算機(jī)網(wǎng)絡(luò)、匯編語言、編譯原理、高級程序設(shè)計(jì)語言等多門專業(yè)基礎(chǔ)或?qū)I(yè)課程基礎(chǔ)之上,學(xué)生通過實(shí)驗(yàn)可以更加深入地理解所學(xué)的專業(yè)知識,提高綜合應(yīng)用這些知識的能力。其次,學(xué)生在實(shí)驗(yàn)過程中可以利用真實(shí)的僵尸網(wǎng)絡(luò)樣本進(jìn)行學(xué)習(xí)和研究,提高學(xué)生學(xué)習(xí)的興趣和積極性,提高利用最新的惡意代碼分析技術(shù)進(jìn)行分析的能力。最后,學(xué)生通過實(shí)驗(yàn)還可以了解僵尸網(wǎng)絡(luò)的發(fā)展過程,認(rèn)識典型的僵尸網(wǎng)絡(luò),掌握常規(guī)的僵尸網(wǎng)絡(luò)的分析和防治技術(shù)。在實(shí)驗(yàn)教學(xué)過程中,適當(dāng)引導(dǎo)學(xué)生進(jìn)一步探索新的惡意代碼分析方法,有助于學(xué)生創(chuàng)新意識和創(chuàng)新能力的提高。
依據(jù)“惡意代碼分析”課程的教學(xué)內(nèi)容和教學(xué)目標(biāo),僵尸網(wǎng)絡(luò)分析實(shí)驗(yàn)的目的和任務(wù)主要有3個(gè)方面。
(1)分析僵尸程序的行為和行為特征。該實(shí)驗(yàn)的一個(gè)重要目的就是認(rèn)識僵尸程序的基本特征和攻擊方式,對惡意代碼的最新發(fā)展動(dòng)態(tài)有更加深入的了解。通過實(shí)驗(yàn),分析僵尸程序執(zhí)行后的行為表現(xiàn)(例如自刪除、修改系統(tǒng)文件和修改注冊表選項(xiàng))以及會(huì)進(jìn)行怎樣的網(wǎng)絡(luò)通信;通過對僵尸程序的跟蹤和分析獲得僵尸網(wǎng)絡(luò)的相關(guān)信息,如僵尸主機(jī)的地址、命令與控制服務(wù)器的地址或域名、僵尸程序與控制命令服務(wù)器通信的方式或時(shí)間等。通過實(shí)驗(yàn)分析,把握僵尸程序的主要行為和行為特征[5]。
(2)發(fā)掘僵尸網(wǎng)絡(luò)的控制命令。在實(shí)際網(wǎng)絡(luò)中,僵尸程序的高級語言源代碼往往難以獲得,因此二進(jìn)制代碼分析技術(shù)在僵尸網(wǎng)絡(luò)等惡意代碼的分析過程中有著較為廣泛的應(yīng)用。利用二進(jìn)制代碼分析技術(shù)解決僵尸網(wǎng)絡(luò)分析中實(shí)際存在的難題——在沒有源代碼的情況下從僵尸程序的二進(jìn)制可執(zhí)行文件中發(fā)掘出該僵尸網(wǎng)絡(luò)的控制命令集合,是本實(shí)驗(yàn)中的一個(gè)重要環(huán)節(jié),也是本實(shí)驗(yàn)的難點(diǎn)。通過該環(huán)節(jié),學(xué)生可以掌握最新、最實(shí)用的二進(jìn)制代碼分析技術(shù)。
(3)分析僵尸網(wǎng)絡(luò)的命令與控制(command and control,C&C)機(jī)制。與計(jì)算機(jī)病毒和蠕蟲等惡意代碼不同,僵尸網(wǎng)絡(luò)的一個(gè)重要特點(diǎn)就是其具有高度可控性,攻擊者和僵尸程序之間通過命令與控制信道形成一對多的控制關(guān)系。僵尸網(wǎng)絡(luò)的命令與控制機(jī)制決定了僵尸網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、通信效率、可擴(kuò)展性以及是否容易被防守者發(fā)現(xiàn)和破壞,是僵尸網(wǎng)絡(luò)工作機(jī)制的核心部分[2,6-7]。通過對僵尸網(wǎng)絡(luò)控制命令的發(fā)掘,可以掌握控制命令與僵尸程序行為的對應(yīng)關(guān)系,分析僵尸程序和命令與控制服務(wù)器的通信方式和通信內(nèi)容,形成對僵尸網(wǎng)絡(luò)命令與控制機(jī)制的宏觀認(rèn)知,并通過對不同類型的控制協(xié)議和控制機(jī)制進(jìn)行對比、分析,探討可能存在的新的命令與控制機(jī)制。
筆者結(jié)合南開大學(xué)信息安全專業(yè)實(shí)驗(yàn)室的軟硬件環(huán)境[8-9]和已有的實(shí)驗(yàn)方案[10-11],設(shè)計(jì)了僵尸網(wǎng)絡(luò)分析實(shí)驗(yàn)環(huán)境,其基礎(chǔ)架構(gòu)如圖1所示。
在上述硬件環(huán)境的基礎(chǔ)上,搭建了自動(dòng)化、系統(tǒng)性的僵尸程序監(jiān)控分析平臺,其結(jié)構(gòu)如圖2所示。該分析平臺運(yùn)行在 Ubuntu 10.04/12.04操作系統(tǒng)下,主要由4個(gè)部分組成。
(1)僵尸程序執(zhí)行過程監(jiān)控平臺。該平臺負(fù)責(zé)僵尸程序的運(yùn)行監(jiān)控、執(zhí)行軌跡的捕獲、污點(diǎn)傳播分析、符號執(zhí)行及約束求解等實(shí)驗(yàn)任務(wù)。該監(jiān)控平臺的主要部分是二進(jìn)制代碼分析平臺BitBlaze[12],包括動(dòng)態(tài)分析部分TEMU和靜態(tài)分析部分VINE。
圖1 僵尸網(wǎng)絡(luò)分析實(shí)驗(yàn)環(huán)境基礎(chǔ)架構(gòu)
圖2 僵尸程序分析平臺結(jié)構(gòu)
(2)執(zhí)行軌跡分析工具包。該工具包由Perl語言實(shí)現(xiàn),完成對執(zhí)行軌跡的分析實(shí)驗(yàn),比如分析僵尸程序代碼空間中的代碼覆蓋情況,分析僵尸程序執(zhí)行過程中與系統(tǒng)交互情況等。
(3)控制命令挖掘工具包??刂泼钔诰蚬ぞ甙灿蒔erl語言實(shí)現(xiàn),通過和執(zhí)行軌跡分析工具的結(jié)合,利用部分僵尸程序執(zhí)行邏輯的先驗(yàn)知識,可以進(jìn)行對僵尸網(wǎng)絡(luò)未知控制命令進(jìn)行挖掘,并在此基礎(chǔ)上對僵尸網(wǎng)絡(luò)的命令控制機(jī)制進(jìn)行進(jìn)一步的分析研究。
(4)僵尸程序行為監(jiān)控工具包。該工具包由文件系統(tǒng)監(jiān)視軟件FileMon和網(wǎng)絡(luò)分析軟件Wireshark等成熟的系統(tǒng)監(jiān)控軟件組成,工作在Windows系統(tǒng)的僵尸主機(jī)下,用于對僵尸程序的宏觀行為進(jìn)行跟蹤和監(jiān)控。
(1)熟悉監(jiān)控環(huán)境和分析平臺的使用。熟悉監(jiān)控環(huán)境的使用,并在其中運(yùn)行僵尸程序,嘗試和僵尸網(wǎng)絡(luò)命令與控制服務(wù)器進(jìn)行連接和通信;熟悉二進(jìn)制代碼分析平臺BitBlaze的使用,學(xué)習(xí)利用其動(dòng)態(tài)分析組件TEMU進(jìn)行軌跡捕獲、二進(jìn)制代碼插裝的技術(shù)和方法,熟悉利用靜態(tài)分析組件VINE進(jìn)行二進(jìn)制代碼的執(zhí)行軌跡反匯編及符號執(zhí)行、約束求解等分析方法。
(2)僵尸程序執(zhí)行軌跡捕獲。執(zhí)行軌跡是僵尸程序路徑空間中一條路徑的執(zhí)行過程的詳細(xì)記錄。在BitBlaze平臺的TEMU中運(yùn)行僵尸程序,監(jiān)控其執(zhí)行過程,并將從命令與控制信道中接收到的網(wǎng)絡(luò)數(shù)據(jù)標(biāo)記為污點(diǎn),捕獲得到僵尸程序的執(zhí)行軌跡文件??梢苑謩e捕獲僵尸程序在與控制命令服務(wù)器無網(wǎng)絡(luò)交互、有網(wǎng)絡(luò)交互及接收到不同控制命令等情況的幾組不同的執(zhí)行軌跡,以便于進(jìn)行對比分析,并用BitBlaze平臺中的VINE將這些二進(jìn)制的執(zhí)行軌跡文件轉(zhuǎn)換成匯編語言格式。
(3)僵尸程序執(zhí)行軌跡文件分析。對捕獲到的執(zhí)行軌跡文件進(jìn)行處理和簡化,然后編寫程序?qū)ζ溥M(jìn)行分析:統(tǒng)計(jì)分析僵尸程序執(zhí)行軌跡中的線程個(gè)數(shù)及線程號、污點(diǎn)傳播過程等信息;分析僵尸程序代碼空間中的代碼覆蓋情況,計(jì)算代碼覆蓋率并分析其特點(diǎn);統(tǒng)計(jì)分析系統(tǒng)API調(diào)用情況;從執(zhí)行軌跡文件構(gòu)造僵尸程序的控制流圖。通過分析,對執(zhí)行軌跡的特點(diǎn)和僵尸程序的執(zhí)行邏輯有更加清晰的認(rèn)識。
(4)僵尸網(wǎng)絡(luò)控制命令提取。根據(jù)步驟(3)中的分析結(jié)果,結(jié)合僵尸程序的固有特點(diǎn),從執(zhí)行軌跡中定位到僵尸程序中對控制命令進(jìn)行判斷、處理的命令控制邏輯代碼段。定位的方法可以結(jié)合參考文獻(xiàn)[3]中提出的規(guī)律,也希望學(xué)生探索和發(fā)現(xiàn)新的特點(diǎn)和規(guī)則。然后,在可控環(huán)境中執(zhí)行僵尸程序,當(dāng)執(zhí)行到命令控制邏輯代碼段時(shí),利用代碼插裝等二進(jìn)制代碼動(dòng)態(tài)分析技術(shù)[13]提取出僵尸程序可執(zhí)行的控制命令。
(5)僵尸程序行為分析。在可控環(huán)境中再次運(yùn)行僵尸程序,利用FileMon和Wireshark等軟件對僵尸程序的行為進(jìn)行跟蹤監(jiān)控。其一,在沒有與命令控制服務(wù)器交互時(shí),分析僵尸程序執(zhí)行后會(huì)有怎樣的行為表現(xiàn),例如自刪除、修改系統(tǒng)文件、修改注冊表選項(xiàng)、試圖連接命令與控制服務(wù)器等;其二,在和命令與控制服務(wù)器進(jìn)行交互時(shí),利用步驟(4)中提取出的僵尸網(wǎng)絡(luò)命令,觸發(fā)僵尸程序運(yùn)行,再監(jiān)控其會(huì)有怎樣的行為,并總結(jié)控制命令與僵尸行為的對應(yīng)關(guān)系。通過多次實(shí)驗(yàn)和觀察,對僵尸程序的行為和特征進(jìn)行歸納總結(jié)。
(6)僵尸網(wǎng)絡(luò)命令與控制機(jī)制的進(jìn)一步思考和探索。思考上述從僵尸程序二進(jìn)制文件中挖掘未知命令方法的優(yōu)缺點(diǎn),并探索新的改進(jìn)方法。根據(jù)提取出的控制命令及其對應(yīng)的行為,分析僵尸程序和命令與控制服務(wù)器通信的方式,從整體上對該僵尸網(wǎng)絡(luò)的命令與控制機(jī)制進(jìn)行認(rèn)識和思考。
在上述步驟中,步驟(3)“執(zhí)行軌跡文件分析”和步驟(4)“控制命令的提取”涉及較多的專業(yè)知識和二進(jìn)制代碼分析技術(shù),是本實(shí)驗(yàn)的難點(diǎn)。
在TEMU中運(yùn)行Zeus僵尸程序,在和命令與控制服務(wù)器進(jìn)行通信時(shí),動(dòng)態(tài)捕獲了Zeus僵尸程序的3條執(zhí)行軌跡,其中的線程數(shù)、匯編指令總數(shù)和系統(tǒng)API調(diào)用個(gè)數(shù)見表1。
表1 捕獲的Zeus執(zhí)行軌跡信息
對3個(gè)執(zhí)行軌跡進(jìn)行分析,了解Zeus僵尸程序的執(zhí)行邏輯,利用執(zhí)行軌跡中的代碼塊覆蓋率特征,從中定位到滿足參考文獻(xiàn)[3]中提出的覆蓋率規(guī)律的代碼塊,其所在代碼區(qū)域就是僵尸程序的命令控制邏輯代碼段。根據(jù)此方法,可以定位到的代碼段地址范圍為0x26e877c—0x26e87a2,其中調(diào)用了系統(tǒng)比較函數(shù)lstrcmpiw來進(jìn)行比較,它是一個(gè)循環(huán)結(jié)構(gòu)(見圖3)。
圖3 Zeus僵尸程序的命令控制邏輯結(jié)構(gòu)
將Zeus僵尸程序再次放在TEMU中運(yùn)行。當(dāng)僵尸程序運(yùn)行到命令判定循環(huán)的入口地址0x26e877c時(shí),開始監(jiān)控是否調(diào)用判定函數(shù)lstrcmpiw。如果發(fā)生調(diào)用,則修改輸入命令為隨機(jī)數(shù)據(jù),使程序進(jìn)入判定循環(huán)。在判定過程中,通過獲取用來和輸入數(shù)據(jù)比較的參數(shù),動(dòng)態(tài)捕獲了Zeus僵尸網(wǎng)絡(luò)的25個(gè)控制命令:
提取出控制命令以后,就可以用這些控制命令作為網(wǎng)絡(luò)輸入來觸發(fā)Zeus僵尸程序,使其表現(xiàn)出相應(yīng)的行為。掌握了僵尸網(wǎng)絡(luò)的命令與控制機(jī)制以后,也可以嘗試偽造Zeus命令與控制服務(wù)器并向僵尸主機(jī)發(fā)送bot_uninstall等命令來卸載、刪除僵尸程序,瓦解僵尸網(wǎng)絡(luò)。
本文根據(jù)僵尸網(wǎng)絡(luò)的特點(diǎn),結(jié)合南開大學(xué)信息安全專業(yè)實(shí)驗(yàn)室的軟件和硬件環(huán)境,設(shè)計(jì)了僵尸網(wǎng)絡(luò)分析的實(shí)驗(yàn)教學(xué)平臺,并提出了實(shí)驗(yàn)?zāi)康摹⒎椒ê筒襟E。利用本實(shí)驗(yàn)平臺,學(xué)生可以進(jìn)行僵尸程序行為特征分析、僵尸網(wǎng)絡(luò)命令與控制機(jī)制研究的實(shí)驗(yàn)。通過實(shí)驗(yàn),學(xué)生可以更加深入理解僵尸網(wǎng)絡(luò)的基本原理和行為特征,掌握僵尸網(wǎng)絡(luò)分析的相關(guān)技術(shù),進(jìn)而進(jìn)行僵尸網(wǎng)絡(luò)分析與防治的新方法、新途徑的探索。本實(shí)驗(yàn)環(huán)境為信息安全專業(yè)學(xué)生的實(shí)踐動(dòng)手能力和創(chuàng)新能力的培養(yǎng)提供了良好的實(shí)驗(yàn)條件。
(
)
[1]方濱興,崔翔,王威.僵尸網(wǎng)絡(luò)綜述[J].計(jì)算機(jī)研究與發(fā)展,2011,48(8):1315-1331.
[2]江健,諸葛建偉,段海新,等.僵尸網(wǎng)絡(luò)機(jī)理與防御技術(shù)[J].軟件學(xué)報(bào),2012,23(1):82-96.
[3]王志,蔡亞運(yùn),劉露,等.基于覆蓋率分析的僵尸網(wǎng)絡(luò)控制命令發(fā)掘方法[J].通信學(xué)報(bào),2014,35(1):156-166.
[4]Zhu Zhaosheng,Lu Guohan,Chen Yan,et al.Botnet research survey[C]//In Proceeding of 32nd Annual IEEE Computer Software and Applications Conference(COMPSAC’08),Turku,F(xiàn)inland,2008:967-972.
[5]Husna H,Phithakkitnukoon S,Palla S,et al.Behavior analysis of spam Botnets[C]//IEEE COMSWARE.Bangalore,India,2008:246-253.
[6]Brezo F,De La Puerta J G,Santos I,et al.C&C Techniques in Botnet Development[C]//International Joint Conference CISIS’12.Ostrava,Czech Republic,2012:97-108.
[7]Zeidanloo H R,Manaf A.Botnet command and control mechanisms[C]//The 2nd International Conference on Computer and Electrical Engineering,Dubai,UAE,2009:564-568.
[8]王志,賈春福.“惡意代碼及其防治技術(shù)”課程的實(shí)驗(yàn)環(huán)境構(gòu)建與實(shí)驗(yàn)內(nèi)容設(shè)計(jì)[J].計(jì)算機(jī)教育,2009(18):140-142.
[9]高敏芬,王志.二進(jìn)制代碼分析實(shí)驗(yàn)平臺設(shè)計(jì)[J].實(shí)驗(yàn)室科學(xué),2011,14(6):121-123.
[10]郭鳳海,賈春福.信息安全開放實(shí)驗(yàn)探討[J].計(jì)算機(jī)教育,2010(10):119-122.
[11]高敏芬,郭鳳海.惡意代碼防治技術(shù)課程的實(shí)踐和實(shí)驗(yàn)室的有效管理[J].實(shí)驗(yàn)室科學(xué),2010,13(2):141-144.
[12]Song D,Brumley D,Yin H,et al.BitBlaze:a new approach to computer security via binary analysis[C]//International Conference on Information Systems Security(ICISS 2008).Hyderabad,India,2008:1-25.
[13]Yin H,Song D.TEMU:The BitBlaze Dynamic Analysis Component[EB/OL].[2014-03-01].http://bitblaze.cs.berkeley.edu/temu.html.