多態(tài)蠕蟲產(chǎn)生器的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)
多態(tài)蠕蟲產(chǎn)生器的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)
多態(tài)蠕蟲產(chǎn)生器的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)
多態(tài)蠕蟲產(chǎn)生器的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)
多態(tài)蠕蟲產(chǎn)生器的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、畢業(yè)論文(設(shè)計(jì))題 目多態(tài)蠕蟲產(chǎn)生器的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生姓名指導(dǎo)教師學(xué) 院專業(yè)班級(jí)完成時(shí)間37摘要網(wǎng)絡(luò)蠕蟲是一種可以獨(dú)立運(yùn)行且可以進(jìn)行自我復(fù)制傳播的程序,它的危害性非常大,每次爆發(fā)都給社會(huì)帶來(lái)了極大的經(jīng)濟(jì)損失。目前網(wǎng)絡(luò)蠕蟲的發(fā)展呈現(xiàn)出速度更快、目的性更強(qiáng)和技術(shù)更先進(jìn)的特點(diǎn)。同時(shí)計(jì)算機(jī)專家也在不斷研究抵御蠕蟲攻擊的方法,然而多態(tài)蠕蟲的出現(xiàn)對(duì)抵御研究提出了新的要求,如何了解多態(tài)蠕蟲的發(fā)作原理和抵御方法,就是蠕蟲研究的關(guān)鍵。本文首先對(duì)網(wǎng)絡(luò)蠕蟲進(jìn)行研究,并分析得出了蠕蟲的實(shí)體結(jié)構(gòu)、蠕蟲的統(tǒng)一功能結(jié)構(gòu)模型、蠕蟲的工作流程、特征碼檢測(cè)技術(shù)以及多態(tài)變形技術(shù)。本文在此基礎(chǔ)上,采用C-Free和C#相結(jié)合,設(shè)計(jì)了一

2、個(gè)多態(tài)蠕蟲發(fā)生器,主要包含了免殺代碼植入模塊、花指令替換模塊、加密模塊、解密模塊和殺毒軟件檢測(cè)模塊,其余輔助模塊有掃描檢測(cè)模塊、代碼查看模塊和輸出模塊等。本文通過(guò)多態(tài)蠕蟲發(fā)生器這幾個(gè)模塊,實(shí)現(xiàn)了對(duì)蠕蟲源代碼的掃描檢測(cè)、多態(tài)變形以及模擬防病毒軟件查殺,同時(shí)可以很好地演示蠕蟲在多態(tài)變形前后的變化,以及躲避防病毒軟件查殺的效率,并且操作界面友好,容易理解和上手操作,多態(tài)變形前后的變化透明可見(jiàn)。關(guān)鍵詞蠕蟲,病毒,多態(tài),溢出攻擊,產(chǎn)生器ABSTRACTInternet worms are programs which run independently and can copy themselves t

3、o other hosts automatically. Its huge destructive ability brings society great economic loss every time it breaks out. Especially future worms will have higher propagation speed, more definite purpose and more advanced techniques.While computer experts continually research against worms attacks, how

4、ever polymorphic worms occur against of new requirements, how to understand the polymorphic worms attack and defeat the principle is the key to the study of the worm. search.In the thesis,we conduct a study on Internet worm first.We introduced the entity construction,uniform function model,the worki

5、ng process of Internet worms,behavior characteristics and polymorphic techniques. On this basis, this paper designed a polymorphic worm generator with C-Free and C#, mainly contains free killing code module, taking junk instruction replace module, encryption module, decryption module, and anti-virus

6、 software detection model.The remaining auxiliary modules have scaning modules, viewing code module and output modules, etc. In this paper, the module of these polymorphic worm generator module to realize the source code of the worm scan, polymorphic deformation and analog anti-virus software killin

7、g, and worms can be a good demonstration of polymorphic changes before and after deformation, and to avoid anti-virus software pieces of killing efficiency.The generator has friendly interface and it is easy for us to understand and get started operations,and also it is transparent to understand the

8、 changes before and after deformation.KEY WORDSworm, virus, polymorphic, overflow attack, generator目錄摘要IABSTRACTII第一章緒論11.1 蠕蟲的研究背景11.1.1 蠕蟲與病毒的定義11.1.2 蠕蟲的基本特征31.1.3 蠕蟲的功能結(jié)構(gòu)51.1.4 蠕蟲的傳播策略61.2 蠕蟲與病毒領(lǐng)域的研究現(xiàn)狀71.3 課題的研究意義和目的81.4 本文章節(jié)安排9第二章蠕蟲與多態(tài)蠕蟲的概述及實(shí)例分析102.1 蠕蟲的實(shí)體結(jié)構(gòu)和功能結(jié)構(gòu)102.1.1 蠕蟲的實(shí)體結(jié)構(gòu)102.1.2 基本功能模塊112

9、.1.3 擴(kuò)展功能模塊112.1.4 蠕蟲的工作流程122.1.5特征碼檢測(cè)技術(shù)122.2 多態(tài)變形技術(shù)的概念132.2.1 什么是多態(tài)變形技術(shù)132.2.2 常見(jiàn)的多態(tài)變形技術(shù)142.2.3 多態(tài)變形病毒實(shí)例分析Win98.BlackBat152.3 本章小結(jié)19第三章多態(tài)蠕蟲產(chǎn)生器的設(shè)計(jì)203.1 針對(duì)緩沖區(qū)溢出蠕蟲的多態(tài)變形設(shè)計(jì)203.1.1 緩沖區(qū)溢出攻擊的基本原理203.1.2 蠕蟲王病毒的分析223.2 多態(tài)蠕蟲產(chǎn)生器的模型結(jié)構(gòu)223.2.1 多態(tài)蠕蟲產(chǎn)生器的模型結(jié)構(gòu)圖223.2.2 多態(tài)蠕蟲產(chǎn)生器各模塊設(shè)計(jì)233.3 本章小結(jié)29第四章多態(tài)蠕蟲產(chǎn)生器的實(shí)現(xiàn)304.1 功能實(shí)現(xiàn)30

10、4.1.1 功能簡(jiǎn)介304.1.2 多態(tài)蠕蟲發(fā)生器詳細(xì)介紹304.2 多態(tài)蠕蟲產(chǎn)生器的功能測(cè)試324.2.1 測(cè)試過(guò)程分析324.2.2 測(cè)試結(jié)果分析354.3 本章小結(jié)36第五章結(jié)束語(yǔ)37致謝38參考文獻(xiàn)39多態(tài)蠕蟲產(chǎn)生器的設(shè)計(jì)與實(shí)現(xiàn) 第一章 緒論第一章緒論1.1 蠕蟲的研究背景早期惡意代碼的主要形式是計(jì)算機(jī)病毒。1988年“Morris”蠕蟲爆發(fā)后,Spafford為了區(qū)分蠕蟲和病毒,對(duì)病毒重新進(jìn)行了定義,他認(rèn)為:“計(jì)算機(jī)病毒是一段代碼,能把自身加到其他程序包括操作系統(tǒng)上;它不能獨(dú)立運(yùn)行,需要由它的宿主程序運(yùn)行來(lái)激活它”。而網(wǎng)絡(luò)蠕蟲強(qiáng)調(diào)自身的主動(dòng)性和獨(dú)立性。Kienzle和Elder從破壞

11、性、網(wǎng)絡(luò)傳播、主動(dòng)攻擊和獨(dú)立性四個(gè)方面對(duì)網(wǎng)絡(luò)蠕蟲進(jìn)行了定義:網(wǎng)絡(luò)蠕蟲是通過(guò)網(wǎng)絡(luò)傳播,無(wú)須用戶干預(yù)能夠獨(dú)立地或者依賴文件共享主動(dòng)攻擊的惡意代碼。根據(jù)傳播策略,他們把網(wǎng)絡(luò)蠕蟲分為三類:E-mail蠕蟲、文件共享蠕蟲和傳統(tǒng)蠕蟲。鄭輝認(rèn)為蠕蟲具有主動(dòng)攻擊、行蹤隱蔽、漏洞利用、造成網(wǎng)絡(luò)擁塞、降低系統(tǒng)性能、產(chǎn)生安全隱患、反復(fù)性和破壞性等特征,并給出相應(yīng)的定義:“網(wǎng)絡(luò)蠕蟲是無(wú)須計(jì)算機(jī)使用者干預(yù)即可運(yùn)行的獨(dú)立程序,它通過(guò)不停地獲得網(wǎng)絡(luò)中存在漏洞的計(jì)算機(jī)的部分或全部控制權(quán)來(lái)進(jìn)行傳播?!痹摱x包含了Kienzle和Elder定義的后兩類蠕蟲,不包括E-mail蠕蟲。2003年10月的世界蠕蟲會(huì)議上,Schecht

12、er和Michael D. Smith提出了一類新型網(wǎng)絡(luò)蠕蟲,Access For Sale蠕蟲,這類蠕蟲除上述定義的特征之外,還具備身份認(rèn)證的特征。綜合上述分析,我們認(rèn)為“網(wǎng)絡(luò)蠕蟲是一種智能化、自動(dòng)化,綜合網(wǎng)絡(luò)攻擊、密碼學(xué)和計(jì)算機(jī)病毒技術(shù),無(wú)須計(jì)算機(jī)使用者干預(yù)即可運(yùn)行的攻擊程序或代碼,它會(huì)掃描和攻擊網(wǎng)絡(luò)上存在系統(tǒng)漏洞的節(jié)點(diǎn)主機(jī),通過(guò)局域網(wǎng)或者國(guó)際互聯(lián)網(wǎng)從一個(gè)節(jié)點(diǎn)傳播到另外一個(gè)節(jié)點(diǎn)”。此定義體現(xiàn)了新一代網(wǎng)絡(luò)蠕蟲智能化、自動(dòng)化和高技術(shù)化的特征。1.1.1 蠕蟲與病毒的定義1 蠕蟲的原始定義早期惡意代碼的主要形式是計(jì)算機(jī)病毒。1988年“Morris”蠕蟲爆發(fā)后,Spafford為了區(qū)分蠕蟲和病毒

13、,對(duì)病毒重新進(jìn)行了定義,他認(rèn)為:“計(jì)算機(jī)病毒是一段代碼,能把自身加到其他程序包括操作系統(tǒng)上;它不能獨(dú)立運(yùn)行,需要由它的宿主程序運(yùn)行來(lái)激活它”。而網(wǎng)絡(luò)蠕蟲強(qiáng)調(diào)自身的主動(dòng)性和獨(dú)立性。Kienzle和Elder從破壞性、網(wǎng)絡(luò)傳播、主動(dòng)攻擊和獨(dú)立性四個(gè)方面對(duì)網(wǎng)絡(luò)蠕蟲進(jìn)行了定義:網(wǎng)絡(luò)蠕蟲是通過(guò)網(wǎng)絡(luò)傳播,無(wú)須用戶干預(yù)能夠獨(dú)立地或者依賴文件共享主動(dòng)攻擊的惡意代碼。根據(jù)傳播策略,他們把網(wǎng)絡(luò)蠕蟲分為三類:E-mail蠕蟲、文件共享蠕蟲和傳統(tǒng)蠕蟲。鄭輝認(rèn)為蠕蟲具有主動(dòng)攻擊、行蹤隱蔽、漏洞利用、造成網(wǎng)絡(luò)擁塞、降低系統(tǒng)性能、產(chǎn)生安全隱患、反復(fù)性和破壞性等特征,并給出相應(yīng)的定義:“網(wǎng)絡(luò)蠕蟲是無(wú)須計(jì)算機(jī)使用者干預(yù)即可運(yùn)行

14、的獨(dú)立程序,它通過(guò)不停地獲得網(wǎng)絡(luò)中存在漏洞的計(jì)算機(jī)的部分或全部控制權(quán)來(lái)進(jìn)行傳播。1”該定義包含了Kienzle和Elder定義的后兩類蠕蟲,不包括E-mail蠕蟲。2003年10月的世界蠕蟲會(huì)議上,Schechter和Michael D. Smith提出了一類新型網(wǎng)絡(luò)蠕蟲,Access For Sale蠕蟲,這類蠕蟲除上述定義的特征之外,還具備身份認(rèn)證的特征。綜合上述分析,我們認(rèn)為“網(wǎng)絡(luò)蠕蟲是一種智能化、自動(dòng)化,綜合網(wǎng)絡(luò)攻擊、密碼學(xué)和計(jì)算機(jī)病毒技術(shù),無(wú)須計(jì)算機(jī)使用者干預(yù)即可運(yùn)行的攻擊程序或代碼,它會(huì)掃描和攻擊網(wǎng)絡(luò)上存在系統(tǒng)漏洞的節(jié)點(diǎn)主機(jī),通過(guò)局域網(wǎng)或者國(guó)際互聯(lián)網(wǎng)從一個(gè)節(jié)點(diǎn)傳播到另外一個(gè)節(jié)點(diǎn)”。

15、此定義體現(xiàn)了新一代網(wǎng)絡(luò)蠕蟲智能化、自動(dòng)化和高技術(shù)化的特征。2 病毒的原始定義人們?cè)谔接懹?jì)算機(jī)病毒的定義時(shí),常常追溯到David Gerrold在1972年發(fā)表的科幻小說(shuō)When Harlie Was One,但計(jì)算機(jī)病毒的技術(shù)角度的定義是由Fred Cohen在1984年給出的,“計(jì)算機(jī)病毒是一種程序,它可以感染其它程序,感染的方式為在被感染程序中加入計(jì)算機(jī)病毒的一個(gè)副本,這個(gè)副本可能是在原病毒基礎(chǔ)上演變過(guò)來(lái)的?!?988年,Morris蠕蟲爆發(fā)后,Eugene H. Spafford 為了區(qū)分蠕蟲和病毒,將病毒的含義作了進(jìn)一步的解釋。“計(jì)算機(jī)病毒是一段代碼,能把自身加到其它程序包括操作系統(tǒng)上

16、。它不能獨(dú)立運(yùn)行,需要由它的宿主程序運(yùn)行來(lái)激活它?!? 蠕蟲定義的進(jìn)一步說(shuō)明在上面提到的蠕蟲原始定義和病毒原始定義中,都忽略了相當(dāng)重要的一個(gè)因素,就是計(jì)算機(jī)使用者,定義中都沒(méi)有明確描述計(jì)算機(jī)使用者在其整個(gè)傳染機(jī)制中所處的地位。計(jì)算機(jī)病毒主要攻擊的是文件系統(tǒng),在其傳染的過(guò)程中,計(jì)算機(jī)使用者是傳染的觸發(fā)者,是傳染的關(guān)鍵環(huán)節(jié),使用者的計(jì)算機(jī)知識(shí)水平的高低常常決定了病毒所能造成的破壞程度。而蠕蟲主要利用計(jì)算機(jī)系統(tǒng)漏洞(vulnerability)進(jìn)行傳染,搜索到網(wǎng)絡(luò)中存在漏洞的計(jì)算機(jī)后主動(dòng)進(jìn)行攻擊,在傳染的過(guò)程中,與計(jì)算機(jī)操作者是否進(jìn)行操作無(wú)關(guān),從而與使用者的計(jì)算機(jī)知識(shí)水平無(wú)關(guān)。另外,蠕蟲的定義中強(qiáng)調(diào)

17、了自身副本的完整性和獨(dú)立性,這也是區(qū)分蠕蟲和病毒的重要因素??梢酝ㄟ^(guò)簡(jiǎn)單的觀察攻擊程序是否存在載體來(lái)區(qū)分蠕蟲與病毒1。通過(guò)簡(jiǎn)單的分析,可以得出結(jié)論,“Morris蠕蟲病毒”是蠕蟲而非病毒;“Happy99蠕蟲病毒”、“Mellisa網(wǎng)絡(luò)蠕蟲宏病毒”、“Lover Letter網(wǎng)絡(luò)蠕蟲病毒”、“SirCam蠕蟲病毒”是病毒而非蠕蟲;“NAVIDAD網(wǎng)絡(luò)蠕蟲”、“Blebla.B網(wǎng)絡(luò)蠕蟲”、“VBS_KAKWORM.A蠕蟲”是病毒而非蠕蟲2。4 蠕蟲、病毒之間的區(qū)別與聯(lián)系(1)主動(dòng)性方面:蠕蟲的傳播具有很強(qiáng)的主動(dòng)性,它的運(yùn)行與傳播并不需要計(jì)算機(jī)使用者的干預(yù);而病毒則必須要借助計(jì)算機(jī)使用者的某種操作

18、來(lái)激活它,這樣才能達(dá)到其攻擊的目的。(2)感染對(duì)象方面:蠕蟲感染的對(duì)象是有相應(yīng)漏洞或者其他脆弱性的計(jì)算機(jī)系統(tǒng),而病毒的感染對(duì)象則是計(jì)算機(jī)中的文件系統(tǒng)。通過(guò)上面兩點(diǎn)主要區(qū)別,讀者已經(jīng)基本可以對(duì)蠕蟲與病毒加以區(qū)分。例如“NAVIDAD網(wǎng)絡(luò)蠕蟲”、“Blebla.B網(wǎng)絡(luò)蠕蟲”、“VBS_KAKWORM.A蠕蟲”等,雖然它們以蠕蟲命名,但它們本質(zhì)上卻是病毒,并非蠕蟲。表1.1中列出了蠕蟲與病毒的特征對(duì)比3。表1.1 蠕蟲與病毒的特征對(duì)比蠕蟲病毒主動(dòng)性主動(dòng)傳播激活后傳播感染對(duì)象有相應(yīng)脆弱性的系統(tǒng)文件系統(tǒng)感染機(jī)制自身復(fù)制將自己插入宿主程序存在方式獨(dú)立存在寄存于宿主程序中計(jì)算機(jī)用戶角色無(wú)關(guān)觸發(fā)者影響重點(diǎn)本地

19、系統(tǒng)、網(wǎng)絡(luò)本地系統(tǒng)防護(hù)措施打補(bǔ)丁從宿主程序中清除對(duì)抗主體系統(tǒng)軟件和服務(wù)軟件提供商、計(jì)算機(jī)用戶、網(wǎng)絡(luò)管理員計(jì)算機(jī)用戶、反病毒廠商1.1.2 蠕蟲的基本特征通過(guò)對(duì)蠕蟲的整個(gè)工作流程的分析,可以歸納得到它的以下8種基本特征3:1 主動(dòng)攻擊蠕蟲在本質(zhì)上已經(jīng)演變?yōu)楹诳腿肭值淖詣?dòng)化工具,當(dāng)蠕蟲被釋放后,從搜索漏洞,到利用搜索結(jié)果攻擊系統(tǒng),到復(fù)制副本,整個(gè)流程全由蠕蟲自身主動(dòng)完成。2 行蹤隱蔽由于蠕蟲的傳播過(guò)程,不像病毒那樣需要計(jì)算機(jī)使用者的輔助工作(如執(zhí)行文件、打開(kāi)文件、閱讀信件、瀏覽網(wǎng)頁(yè)等等),所以在蠕蟲傳播的過(guò)程中,計(jì)算機(jī)使用者基本上不可察覺(jué)。3 利用系統(tǒng)、網(wǎng)絡(luò)應(yīng)用服務(wù)漏洞除了最早的蠕蟲在計(jì)算機(jī)之間傳

20、播是程序設(shè)計(jì)人員許可、并在每臺(tái)計(jì)算機(jī)上做了相應(yīng)的配合支持機(jī)制之外,所有后來(lái)的蠕蟲都是要突破計(jì)算機(jī)系統(tǒng)自身的防線,并對(duì)其資源進(jìn)行濫用的。計(jì)算機(jī)系統(tǒng)存在漏洞是蠕蟲傳播的前提,利用這些漏洞,蠕蟲獲得被攻擊的計(jì)算機(jī)系統(tǒng)的相應(yīng)權(quán)限,完成后繼的復(fù)制和傳播過(guò)程。這些漏洞有的是操作系統(tǒng)本身的問(wèn)題,有的是應(yīng)用服務(wù)程序的問(wèn)題,有的是網(wǎng)絡(luò)管理人員的配置問(wèn)題。正是由于漏洞產(chǎn)生原因的復(fù)雜性,才導(dǎo)致人們面對(duì)蠕蟲攻擊的時(shí)候防不勝防。4 造成網(wǎng)絡(luò)擁塞蠕蟲進(jìn)行傳播的第一步就是找到網(wǎng)絡(luò)上其它存在漏洞的計(jì)算機(jī)系統(tǒng),這需要通過(guò)大面積的搜索來(lái)完成,搜索動(dòng)作包括:判斷其它計(jì)算機(jī)是否存在;判斷特定應(yīng)用服務(wù)是否存在;判斷漏洞是否存在。這不可

21、避免的會(huì)產(chǎn)生附加的網(wǎng)絡(luò)數(shù)據(jù)流量。即使是不包含破壞系統(tǒng)正常工作的惡意代碼的蠕蟲,也會(huì)因?yàn)樗a(chǎn)生了巨量的網(wǎng)絡(luò)流量,從而導(dǎo)致整個(gè)網(wǎng)絡(luò)性能的下降甚至癱瘓,進(jìn)而造成經(jīng)濟(jì)損失。5 降低系統(tǒng)性能蠕蟲入侵到計(jì)算機(jī)系統(tǒng)之后,會(huì)在被感染的計(jì)算機(jī)上產(chǎn)生自己的多個(gè)副本,每個(gè)副本啟動(dòng)搜索程序?qū)ふ倚碌墓裟繕?biāo)。大量的進(jìn)程會(huì)耗費(fèi)系統(tǒng)的資源,導(dǎo)致系統(tǒng)的性能下降,這對(duì)網(wǎng)絡(luò)服務(wù)器的影響尤為明顯。6 產(chǎn)生安全隱患大部分蠕蟲會(huì)搜集、擴(kuò)散、暴露系統(tǒng)敏感信息(如用戶信息等),并在系統(tǒng)中留下后門,這些都會(huì)導(dǎo)致未來(lái)的安全隱患。7 反復(fù)性即使清除了蠕蟲在文件系統(tǒng)中留下的任何痕跡,如果沒(méi)有修補(bǔ)計(jì)算機(jī)系統(tǒng)漏洞,重新接入到網(wǎng)絡(luò)中的計(jì)算機(jī)還是會(huì)被重新

22、感染。這個(gè)特性在Nimda蠕蟲的身上表現(xiàn)得尤為突出。計(jì)算機(jī)使用者用一些聲稱可以清除Nimda的防病毒產(chǎn)品清除本機(jī)上的Nimda蠕蟲副本后,很快就又重新被Nimda蠕蟲所感染4。8 破壞性從蠕蟲的歷史發(fā)展過(guò)程可以看到,越來(lái)越多的蠕蟲開(kāi)始包含惡意代碼,破壞被攻擊的計(jì)算機(jī)系統(tǒng),而且造成的經(jīng)濟(jì)損失數(shù)目越來(lái)越大。以上描述主要針對(duì)蠕蟲個(gè)體的活動(dòng)行為特征,當(dāng)網(wǎng)絡(luò)中多臺(tái)計(jì)算機(jī)被蠕蟲感染后,將形成具有獨(dú)特行為特征的“蠕蟲網(wǎng)絡(luò)”(worm network),關(guān)于蠕蟲網(wǎng)絡(luò)的其它特征,還有待進(jìn)一步的研究和討論。1.1.3 蠕蟲的功能結(jié)構(gòu)1主體功能模塊主體功能模塊由4個(gè)模塊構(gòu)成。(1)信息搜集模塊:該模塊決定采用何種搜

23、索算法對(duì)本地或者目標(biāo)網(wǎng)絡(luò)進(jìn)行信息搜集,內(nèi)容包括本機(jī)系統(tǒng)信息、用戶信息、郵件列表、對(duì)本機(jī)的信任或授權(quán)的主機(jī)、本機(jī)所處網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),邊界路由信息等等,這些信息可以單獨(dú)使用或被其他個(gè)體共享。(2)掃描探測(cè)模塊:完成對(duì)特定主機(jī)的脆弱性檢測(cè),決定采用何種的攻擊滲透方式。(3)攻擊滲透模塊:該模塊利用(2)中獲得的安全漏洞,建立傳播途徑,該模塊在攻擊方法上是開(kāi)放的、可擴(kuò)充的。(4)自我推進(jìn)模塊:該模塊可以采用各種形式生成各種形態(tài)的蠕蟲副本,在不同主機(jī)間完成蠕蟲副本傳遞。例如“Nimda”會(huì)生成多種文件格式和名稱的蠕蟲副本;“W32.Nachi.Worm”利用系統(tǒng)程序(例如TFTP)來(lái)完成推進(jìn)模塊的功能等

24、2。2輔助功能模塊輔助功能模塊是對(duì)除主體功能模塊外的其他模塊的歸納或預(yù)測(cè),主要由5個(gè)功能模塊構(gòu)成。(1)實(shí)體隱藏模塊:包括對(duì)蠕蟲各個(gè)實(shí)體組成部分的隱藏、變形、加密以及進(jìn)程的隱藏,主要是為提高蠕蟲的生存能力。(2)宿主破壞模塊:該模塊用于摧毀或破壞被感染主機(jī),破壞網(wǎng)絡(luò)正常運(yùn)行,在被感染主機(jī)上留下后門等。(3)信息通信模塊:該模塊能使蠕蟲間、蠕蟲同黑客之間能進(jìn)行交流,這是未來(lái)蠕蟲發(fā)展的重點(diǎn);利用通信模塊,蠕蟲間可以共享某些信息,使蠕蟲的編寫者更好地控制蠕蟲行為。(4)遠(yuǎn)程控制模塊:控制模塊的功能是調(diào)整蠕蟲行為,控制被感染主機(jī),執(zhí)行蠕蟲編寫者下達(dá)的指令。(5)自動(dòng)升級(jí)模塊:該模塊可以使蠕蟲編寫者隨時(shí)

25、更新其他模塊的功能,從而實(shí)現(xiàn)不同的攻擊目的。1.1.4 蠕蟲的傳播策略 1選擇性隨機(jī)掃描隨機(jī)掃描會(huì)對(duì)整個(gè)地址空間的IP隨機(jī)抽取進(jìn)行掃描,而選擇性隨機(jī)掃描(Selective Random Scan)將最有可能存在漏洞主機(jī)的地址集作為掃描的地址空間,也是隨機(jī)掃描策略的一種。所選的目標(biāo)地址按照一定的算法隨機(jī)生成,互聯(lián)網(wǎng)地址空間中未分配的或者保留的地址塊不在掃描之列。例如Bogon列表bogon-list中包含近32個(gè)地址塊,這些地址塊對(duì)公網(wǎng)中不可能出現(xiàn)的一些地址進(jìn)行了標(biāo)識(shí)。選擇性隨機(jī)掃描具有算法簡(jiǎn)單,易實(shí)現(xiàn)的特點(diǎn),若與本地優(yōu)先原則結(jié)合則能達(dá)到更好的傳播效果。但選擇性隨機(jī)掃描容易引起網(wǎng)絡(luò)阻塞,使得網(wǎng)

26、絡(luò)蠕蟲在爆發(fā)之前易被發(fā)現(xiàn),隱蔽性差?!癈odeRed”、“Slapper”和“Slammer”的傳播采用了選擇性隨機(jī)掃描策略6。2順序掃描順序掃描(Sequential Scan)是被感染主機(jī)上蠕蟲會(huì)隨機(jī)選擇一個(gè)C類網(wǎng)絡(luò)地址進(jìn)行傳播,根據(jù)本地優(yōu)先原則,蠕蟲一般會(huì)選擇它所在網(wǎng)絡(luò)內(nèi)的IP地址。若蠕蟲掃描的目標(biāo)地址IP為A,則掃描的下一個(gè)地址IP為A1或者A-1。一旦掃描到具有很多漏洞主機(jī)的網(wǎng)絡(luò)時(shí)就會(huì)達(dá)到很好的傳播效果。該策略的不足是對(duì)同一臺(tái)主機(jī)可能重復(fù)掃描,引起網(wǎng)絡(luò)擁塞?!癢32.Blaster”是典型的順序掃描蠕蟲。3基于目標(biāo)列表的掃描基于目標(biāo)列表掃描(Hit-list Scan)是指網(wǎng)絡(luò)蠕蟲在

27、尋找受感染的目標(biāo)前,預(yù)先生成一份易感染的目標(biāo)列表,然后對(duì)該列表進(jìn)行攻擊嘗試和傳播。目標(biāo)列表生成方法有兩種: 通過(guò)小規(guī)模的掃描或者互聯(lián)網(wǎng)的共享信息產(chǎn)生目標(biāo)列表; 通過(guò)分布式掃描可以生成全面列表的數(shù)據(jù)庫(kù)。理想化蠕蟲“Falsh”就是一種基于IPv4地址空間列表的快速掃描蠕蟲。4基于路由的掃描基于路由的掃描(Routable Scan)是指網(wǎng)絡(luò)蠕蟲根據(jù)網(wǎng)絡(luò)中路由信息,對(duì)IP地址空間進(jìn)行選擇性掃描的一種方法。采用隨機(jī)掃描的網(wǎng)絡(luò)蠕蟲會(huì)對(duì)未分配的地址空間進(jìn)行探測(cè),而這些地址大部分在互聯(lián)網(wǎng)上是無(wú)法路由的,因此會(huì)影響到蠕蟲的傳播速度。如果網(wǎng)絡(luò)蠕蟲能夠知道哪些IP地址是可路由的,則它能夠更快、更有效地進(jìn)行傳播,

28、并能逃避一些對(duì)抗工具的檢測(cè)。網(wǎng)絡(luò)蠕蟲的設(shè)計(jì)者通常利用BGP路由表公開(kāi)的信息,獲取互聯(lián)網(wǎng)路由的IP地址前輟,然后來(lái)驗(yàn)證BGP數(shù)據(jù)庫(kù)的可用性?;诼酚傻膾呙璐蟠筇岣吡巳湎x的傳播速度,以“CodeRed”為例,路由掃描蠕蟲的感染率是采用隨機(jī)掃描蠕蟲感染率的3.5倍ZTGC2003?;诼酚傻膾呙璧牟蛔闶蔷W(wǎng)絡(luò)蠕蟲傳播時(shí)必須攜帶一個(gè)路由IP地址庫(kù),蠕蟲代碼量大。5基于DNS掃描基于DNS掃描(DNS Scan)是指網(wǎng)絡(luò)蠕蟲從DNS服務(wù)器獲取IP地址來(lái)建立目標(biāo)地址庫(kù),該掃描策略的優(yōu)點(diǎn)在于獲得的IP地址塊具有針對(duì)性強(qiáng)和可用性高的特點(diǎn)?;贒NS掃描的不足是: 難于得到有DNS記錄的完整地址列表; 蠕蟲代碼需

29、要攜帶非常大的地址庫(kù),傳播速度慢; 目標(biāo)地址列表中地址數(shù)受公共域名主機(jī)的限制。例如“CodeRed I”所感染的主機(jī)中幾乎一半沒(méi)有DNS記錄。6分治掃描分治掃描(Divide-Conquer Scan)是網(wǎng)絡(luò)蠕蟲之間相互協(xié)作快速搜索易感染主機(jī)的一種策略,網(wǎng)絡(luò)蠕蟲發(fā)送地址庫(kù)的一部分給每臺(tái)被感染的主機(jī),然后每臺(tái)主機(jī)再去掃描它所獲得的地址。主機(jī)A感染了主機(jī)B后,主機(jī)A將它自身攜帶的地址分出一部分給主機(jī)B,然后主機(jī)B開(kāi)始掃描這一部分地址。分治掃描策略的不足是存在“壞點(diǎn)”問(wèn)題。在蠕蟲傳播的過(guò)程中,如果一臺(tái)主機(jī)死機(jī)或崩潰,那么所有傳給它的地址庫(kù)就會(huì)丟失。這個(gè)問(wèn)題發(fā)生的越早,對(duì)傳播的影響就越大。有三種方法能

30、夠解決這個(gè)問(wèn)題: 在蠕蟲傳遞地址庫(kù)之前產(chǎn)生目標(biāo)列表; 通過(guò)計(jì)數(shù)器來(lái)控制蠕蟲的傳播情況,蠕蟲每感染一個(gè)節(jié)點(diǎn)計(jì)數(shù)器加一,然后根據(jù)計(jì)數(shù)器的值來(lái)分配任務(wù); 蠕蟲傳播的時(shí)候隨機(jī)決定是否重傳數(shù)據(jù)庫(kù)。7掃描策略評(píng)價(jià)網(wǎng)絡(luò)蠕蟲傳播速度的關(guān)鍵影響因素有4個(gè): 目標(biāo)地址空間選擇; 是否采用多線程搜索易感染主機(jī); 是否有易感染主機(jī)列表(Hit-list); 傳播途徑的多樣化。各種掃描策略的差異主要在于目標(biāo)地址空間的選擇。網(wǎng)絡(luò)蠕蟲感染一臺(tái)主機(jī)的時(shí)間取決于蠕蟲搜索到易感染主機(jī)所需要的時(shí)間。因此,網(wǎng)絡(luò)蠕蟲快速傳播的關(guān)鍵在于設(shè)計(jì)良好的掃描策略。一般情況下,采用DNS掃描傳播的蠕蟲速度最慢,選擇性掃描和路由掃描比隨機(jī)掃描的速度

31、快;對(duì)于Hit-list掃描,當(dāng)列表超過(guò)1M字節(jié)時(shí)蠕蟲傳播的速度就會(huì)比路由掃描蠕蟲慢;當(dāng)列表大于6M字節(jié)時(shí),蠕蟲傳播速度比隨機(jī)掃描還慢。分治掃描目前還沒(méi)有找到易于實(shí)現(xiàn)且有效的算法。目前網(wǎng)絡(luò)蠕蟲首先采用路由掃描,再利用隨機(jī)掃描進(jìn)行傳播是最佳選擇。1.2 蠕蟲與病毒領(lǐng)域的研究現(xiàn)狀近年來(lái),隨著互聯(lián)網(wǎng)的普及,人們對(duì)互聯(lián)網(wǎng)的認(rèn)識(shí)越來(lái)越深入,大量的蠕蟲工具包和蠕蟲編寫文章在網(wǎng)上出現(xiàn),使得蠕蟲編寫工作的難度越來(lái)越低。新的蠕蟲層出不窮,所造成的危害也越來(lái)越大,其危害程度已經(jīng)遠(yuǎn)遠(yuǎn)超過(guò)傳統(tǒng)的病毒,使人們逐步認(rèn)識(shí)到研究蠕蟲對(duì)抗措施的重要性。但目前研究工作還主要集中在對(duì)已有蠕蟲的檢測(cè)與防范上,使蠕蟲的防范工作處于一種

32、非常被動(dòng)的地位。為了改變這種被動(dòng)的局面,人們正在研究能夠檢測(cè)與防范未知蠕蟲的準(zhǔn)確有效的方法,并已經(jīng)取得一些初見(jiàn)成效的成果。國(guó)內(nèi)基本沒(méi)有對(duì)蠕蟲較深入的研究工作,這也許是由于對(duì)計(jì)算機(jī)病毒領(lǐng)域研究的誤解造成的,仍然有最新的國(guó)內(nèi)文獻(xiàn)認(rèn)為計(jì)算機(jī)病毒理論己經(jīng)定型,沒(méi)有研究的必要。但這不表明中國(guó)的蠕蟲技術(shù)落后,有大量的跡象表明2,危害最大的幾個(gè)蠕蟲都是中國(guó)黑客編寫的。1.3 課題的研究意義和目的從90年代第一個(gè)變形病毒出現(xiàn)到現(xiàn)在,還沒(méi)有任何一款反病毒軟件能夠完全解決這個(gè)問(wèn)題,而且時(shí)至今日,多態(tài)變形蠕蟲、病毒始終存在于計(jì)算機(jī)系統(tǒng)之中。很多多態(tài)變形蠕蟲、病毒剛一出現(xiàn)就大規(guī)模蔓延,幾乎達(dá)到了不能控制的狀態(tài)。更為嚴(yán)

33、重的是,在過(guò)去的幾年里,多態(tài)變形技術(shù)己經(jīng)趨于成熟,幾乎每天都有新的變種出現(xiàn),而且其復(fù)雜程度也是日益增加。考察目前出現(xiàn)的大多數(shù)多態(tài)變形蠕蟲、病毒,可以看出大多數(shù)的計(jì)算機(jī)技術(shù)都被應(yīng)用到了蠕蟲、病毒的設(shè)計(jì)中。從蠕蟲、病毒發(fā)展的角度來(lái)看,多態(tài)變形蠕蟲、病毒將毫無(wú)疑問(wèn)地成為未來(lái)蠕蟲、病毒發(fā)展的趨勢(shì),并將在原有的基礎(chǔ)上產(chǎn)生根本性的轉(zhuǎn)變。這主要體現(xiàn)在這類高級(jí)蠕蟲、病毒不再持有以往絕大多數(shù)病毒那種“惡作劇”的目的,它可能是人類投入巨資研究出的、可擾亂、破壞社會(huì)信息、政治、經(jīng)濟(jì)秩序等、或是主宰戰(zhàn)爭(zhēng)目的的一種“信息戰(zhàn)略武器”;它們有可能接受機(jī)外遙控信息,也可以向外發(fā)出信息,比如在多媒體機(jī)上可通過(guò)視頻、音頻、無(wú)線電

34、或互聯(lián)網(wǎng)收發(fā)信息;也可以通過(guò)計(jì)算機(jī)的輻射波,向外發(fā)出信息;也可以潛藏在聯(lián)接Internet的計(jì)算機(jī)中,收集密碼和重要信息,再悄悄地隨著的主人通信,將重要信息發(fā)出去。這些變形病毒的智能化程度相當(dāng)高,因此多態(tài)變形技術(shù)也就越來(lái)越受到人們的關(guān)注。到目前為止,變形技術(shù)僅僅應(yīng)用于P E 文件型病毒中5,完全意義上的變形蠕蟲、病毒還沒(méi)有出現(xiàn)。盡管傳統(tǒng)的特征碼掃描技術(shù)在多態(tài)變形技術(shù)面前逐漸喪失了它以往的上佳表現(xiàn),但是新生技術(shù),如虛擬機(jī)、基于行為的檢測(cè)技術(shù)以及啟發(fā)式掃描技術(shù),在很大程度上能夠有效地遏制多態(tài)變形蠕蟲、病毒的蔓延6。本課題旨在通過(guò)研究多態(tài)變形技術(shù),剖析已經(jīng)存在的變形蠕蟲的工作原理,提出多態(tài)蠕蟲的一般

35、模型結(jié)構(gòu),并設(shè)計(jì)實(shí)現(xiàn)一種多態(tài)蠕蟲產(chǎn)生器,從而實(shí)現(xiàn)對(duì)蠕蟲序列的多態(tài)變化。同時(shí),本課題的研究?jī)?nèi)容還可以為反多態(tài)變形技術(shù)的研究提供一定的依據(jù)。1.4 本文章節(jié)安排本次畢業(yè)設(shè)計(jì)的任務(wù)就是了解多態(tài)蠕蟲的特征,設(shè)計(jì)實(shí)現(xiàn)一個(gè)模擬的多態(tài)蠕蟲產(chǎn)生器,以便對(duì)其多態(tài)變形機(jī)理進(jìn)行深入探索,并有效防止這類蠕蟲和病毒的蔓延。根據(jù)本次畢業(yè)設(shè)計(jì)任務(wù),本文共安排了5個(gè)章節(jié),各章的內(nèi)容安排簡(jiǎn)要介紹如下:第一章為緒論,分為4個(gè)小節(jié)。第一小節(jié)介紹了蠕蟲的研究背景,主要包括蠕蟲和病毒的一些基本知識(shí),包括蠕蟲與病毒的定義及其行為特征。第二小節(jié)介紹了蠕蟲與病毒領(lǐng)域的一些研究現(xiàn)狀。第三節(jié)提出了本課題的研究意義及目的。第四節(jié)介紹了本文的章節(jié)安

36、排。第二章為蠕蟲與多態(tài)蠕蟲的概述及實(shí)例分析,分為3個(gè)小節(jié)。第一小節(jié)介紹了蠕蟲的實(shí)體結(jié)構(gòu)和功能結(jié)構(gòu)。第二小節(jié)介紹了多態(tài)變形技術(shù)的概念。第三小節(jié)對(duì)本章內(nèi)容進(jìn)行了總結(jié)。第三章為多態(tài)蠕蟲產(chǎn)生器的設(shè)計(jì),分為3個(gè)小節(jié)。第一小節(jié)介紹了針對(duì)緩沖區(qū)溢出字符串的多態(tài)變形設(shè)計(jì)。第二小節(jié)介紹了多態(tài)蠕蟲產(chǎn)生器的模型結(jié)構(gòu)及設(shè)計(jì)思想。第三小節(jié)對(duì)本章內(nèi)容進(jìn)行總結(jié)。第四章為多態(tài)蠕蟲產(chǎn)生器的實(shí)現(xiàn),分為3個(gè)小節(jié)。第一小節(jié)介紹多態(tài)蠕蟲產(chǎn)生器的功能實(shí)現(xiàn),對(duì)多態(tài)2003蠕蟲王序列進(jìn)行了詳細(xì)分析。第二小節(jié)對(duì)多態(tài)蠕蟲產(chǎn)生器進(jìn)行功能測(cè)試。第三小節(jié)是對(duì)本章內(nèi)容的總結(jié)。第五章為結(jié)束語(yǔ),對(duì)本文的內(nèi)容進(jìn)行總結(jié),并對(duì)本課題研究方向做出了一些展望。多態(tài)蠕

37、蟲產(chǎn)生器的設(shè)計(jì)與實(shí)現(xiàn) 第二章 蠕蟲與多態(tài)蠕蟲的概述及實(shí)例分析第二章蠕蟲與多態(tài)蠕蟲的概述及實(shí)例分析掌握蠕蟲的相關(guān)概念是對(duì)蠕蟲研究的基礎(chǔ),也只有對(duì)蠕蟲的相關(guān)技術(shù)熟悉才能開(kāi)展對(duì)蠕蟲的進(jìn)一步研究。下面我們從蠕蟲的基本結(jié)構(gòu)入手,介紹一下蠕蟲的緩沖區(qū)溢出攻擊及其多態(tài)變形技術(shù),并通過(guò)實(shí)例對(duì)其進(jìn)行詳細(xì)說(shuō)明,以便加深對(duì)它們的了解。2.1 蠕蟲的實(shí)體結(jié)構(gòu)和功能結(jié)構(gòu)蠕蟲相對(duì)于一般的應(yīng)用程序,在實(shí)體結(jié)構(gòu)和功能結(jié)構(gòu)方面體現(xiàn)更多的復(fù)雜性,通過(guò)對(duì)多個(gè)蠕蟲的分析,可以將蠕蟲結(jié)構(gòu)歸納為以下幾個(gè)部分。2.1.1 蠕蟲的實(shí)體結(jié)構(gòu)蠕蟲的實(shí)體結(jié)構(gòu)共分為以下6部分,具體的蠕蟲可能是由其中的幾部分組成1。1 未編譯的源代碼由于有的程序參數(shù)

38、必須在編譯時(shí)確定,或者包含不同平臺(tái)的鏈接庫(kù),所以網(wǎng)絡(luò)蠕蟲程序可能包含一部分未編譯的公共程序源代碼,由于在源代碼一級(jí)可以有很大的通用性,所以跨系統(tǒng)平臺(tái)的網(wǎng)絡(luò)蠕蟲常常會(huì)包含源代碼部分。2 已編譯的鏈接模塊不同的系統(tǒng)(同族)可能需要不同的運(yùn)行模塊,例如不同的硬件和系統(tǒng)廠商采用不同的運(yùn)行庫(kù)(UNIX族的系統(tǒng)中很常見(jiàn)),這樣可以盡量減少程序編譯的工作。3 可運(yùn)行代碼這是網(wǎng)絡(luò)蠕蟲的主體部分,整個(gè)網(wǎng)絡(luò)蠕蟲可能是由一個(gè)或多個(gè)編譯好的程序組成。4 腳本利用腳本可以節(jié)省大量的程序代碼,充分利用系統(tǒng)shell的功能。5 受感染系統(tǒng)上的可執(zhí)行程序受感染系統(tǒng)上的可執(zhí)行程序如文件傳輸?shù)瓤杀痪W(wǎng)絡(luò)蠕蟲作為自己的組成部分。很多

39、網(wǎng)絡(luò)蠕蟲為了盡量減小自身的大小,同時(shí)完成更強(qiáng)大的功能,會(huì)直接執(zhí)行系統(tǒng)平臺(tái)提供的各種可執(zhí)行文件。6 信息數(shù)據(jù)包括已破解的口令、要攻擊的地址列表、網(wǎng)絡(luò)蠕蟲自身的壓縮包等等。2.1.2 基本功能模塊蠕蟲的基本功能模塊共包括以下5部分:1) 搜索模塊:尋找下一臺(tái)要傳染的機(jī)器。為提高搜索效率,可以采用一系列的搜索算法。2) 攻擊模塊:在被感染的機(jī)器上建立傳輸通道(傳染途徑)。為減少第一次傳染數(shù)據(jù)傳輸量,可以采用引導(dǎo)式結(jié)構(gòu)。3) 傳輸模塊:主要是用于計(jì)算機(jī)間的蠕蟲體復(fù)制。4) 信息搜集模塊:搜集和建立被傳染機(jī)器上的信息。5) 繁殖模塊:建立自身的多個(gè)副本。在同一臺(tái)機(jī)器上提高傳染效率,避免重復(fù)傳染3。2.1

40、.3 擴(kuò)展功能模塊蠕蟲的擴(kuò)展功能模塊由以下4部分組成:1) 隱藏模塊:隱藏蠕蟲,逃避簡(jiǎn)單的檢測(cè)。2) 破壞模塊:摧毀或破壞被感染的計(jì)算機(jī),或在被感染的計(jì)算機(jī)上留下后門程序等等。3) 通信模塊:蠕蟲間、蠕蟲同黑客之間進(jìn)行交流,可能是未來(lái)蠕蟲發(fā)展的側(cè)重點(diǎn)。4) 控制模塊:調(diào)整蠕蟲行為,更新其它功能模塊,控制被感染計(jì)算機(jī),可能是未來(lái)蠕蟲發(fā)展的側(cè)重點(diǎn)3。蠕蟲程序的功能模型結(jié)構(gòu)如圖2.1所示。蠕蟲程序功能模型基本功能模塊擴(kuò)展功能模塊攻擊模塊傳輸模塊信息搜集模塊繁殖模塊通信模塊隱藏模塊破壞模塊控制模塊搜索模塊圖2.1 蠕蟲的結(jié)構(gòu)模型在圖2.1中,蠕蟲模塊分為基本模塊和擴(kuò)展模塊,基本模塊中包含搜索模塊、攻擊

41、模塊、傳輸模塊、信息搜集模塊、繁殖模塊;擴(kuò)展模塊中包含隱藏模塊、破壞模塊、通信模塊和控制模塊。2.1.4 蠕蟲的工作流程蠕蟲程序的工作流程可以分為漏洞掃描、攻擊、傳染、現(xiàn)場(chǎng)處理四個(gè)階段。蠕蟲程序掃描到有漏洞的計(jì)算機(jī)系統(tǒng)后,將蠕蟲主體遷移到目標(biāo)主機(jī),然后蠕蟲程序進(jìn)入被感染的系統(tǒng),對(duì)目標(biāo)主機(jī)進(jìn)行現(xiàn)場(chǎng)處理?,F(xiàn)場(chǎng)處理部分的工作包括:隱藏、信息搜集等。同時(shí)蠕蟲程序生成多個(gè)副本,重復(fù)上述流程,直到運(yùn)行條件不滿足2,如圖2.2所示。是否否否是是掃描攻擊現(xiàn)場(chǎng)處理復(fù)制成功發(fā)現(xiàn)目標(biāo)開(kāi)始是否滿足運(yùn)行條件結(jié)束圖2.2 蠕蟲的工作流程2.1.5特征碼檢測(cè)技術(shù)檢測(cè)特征代碼的方法被廣泛地應(yīng)用在病毒或蠕蟲檢測(cè)工具中。特征代碼

42、法是檢測(cè)已知病毒或蠕蟲的最簡(jiǎn)單、開(kāi)銷最小的方法。特征代碼法的工作原理如下:采集已知病毒或蠕蟲樣本,在病毒或蠕蟲樣本中,抽取特征代碼。抽取時(shí)依據(jù)如下原則,抽取的代碼比較特殊,不大可能與普通正常程序代碼吻合。抽取的代碼要有適當(dāng)長(zhǎng)度,一方面維持特征代碼的唯一性,另一方面又不要有太大的空間與時(shí)間開(kāi)銷。如果病毒或蠕蟲的特征代碼增長(zhǎng)1字節(jié),要檢測(cè)3000種病毒或蠕蟲,增加的空間就是3000字節(jié)8。所以要在保持唯一性的前提下,盡量使特征代碼長(zhǎng)度縮短,以減少空間與時(shí)間開(kāi)銷,并將特征代碼納入病毒或蠕蟲數(shù)據(jù)庫(kù)。檢測(cè)病毒或蠕蟲時(shí),打開(kāi)被檢測(cè)文件,在文件中檢查是否含有病毒或蠕蟲數(shù)據(jù)庫(kù)中的特征代碼。由于特征代碼與病毒或

43、蠕蟲一一對(duì)應(yīng),因此如果在搜索中發(fā)現(xiàn)了符合病毒或蠕蟲特征代碼的內(nèi)容,便可以斷定被查文件中包含有該種病毒或蠕蟲7。要使蠕蟲躲過(guò)這種檢測(cè)方法,就要對(duì)蠕蟲體進(jìn)行多態(tài)變形,使同一種蠕蟲的不同實(shí)例具有相異的形態(tài),令特征碼檢測(cè)技術(shù)失效。至于如何進(jìn)行蠕蟲的多態(tài),正是本課題要研究的內(nèi)容。2.2 多態(tài)變形技術(shù)的概念多態(tài)變形技術(shù)的發(fā)展和形成,最早在計(jì)算機(jī)病毒中得到體現(xiàn)。一般把使用通常的特征碼檢測(cè)法無(wú)法檢測(cè)(或者極難檢測(cè))的病毒(蠕蟲)稱為多態(tài)病毒(蠕蟲)8。為了使蠕蟲代碼躲避檢測(cè)程序的檢測(cè),需要不斷對(duì)自身的執(zhí)行代碼進(jìn)行變換,盡量隱藏檢測(cè)程序依據(jù)的蠕蟲特征代碼,從而使檢測(cè)程序無(wú)法正確偵測(cè)和清除該病毒。針對(duì)這種多態(tài)變形

44、技術(shù),只有對(duì)其自動(dòng)變形機(jī)理進(jìn)行深入的分析,才能找到有效的檢測(cè)方法。因此,本文對(duì)計(jì)算機(jī)蠕蟲的多態(tài)變形機(jī)理進(jìn)行了深入的系統(tǒng)分析,并對(duì)相關(guān)實(shí)例進(jìn)行了討論。2.2.1 什么是多態(tài)變形技術(shù)1 什么是多態(tài)多態(tài)9就是使蠕蟲能夠改變自身的存儲(chǔ)形式的技術(shù),使傳統(tǒng)的依靠特征值檢測(cè)的技術(shù)失效。2 什么是變形變形9則在多態(tài)的基礎(chǔ)上更進(jìn)一步。對(duì)整個(gè)蠕蟲體都進(jìn)行處理,使同一種蠕蟲的不同實(shí)例的代碼完全不同,不但沒(méi)有固定的特征碼,而且也無(wú)需還原成沒(méi)有任何變化的蠕蟲體。如果說(shuō)對(duì)付多態(tài)還可以通過(guò)虛擬機(jī)等技術(shù)7,待蠕蟲體被還原之后檢測(cè)特征值,那么完全的變形則使得這種技術(shù)完全失效10。2.2.2 常見(jiàn)的多態(tài)變形技術(shù)1 多態(tài)變形病毒多

45、態(tài)變形病毒日益增多,這種現(xiàn)象可以看作是病毒作者為了反擊高級(jí)病毒掃描器而做出的反應(yīng)。因?yàn)樵O(shè)計(jì)合理的掃描器可以病毒的特征碼發(fā)現(xiàn)病毒,因此,挫敗掃描器的方法就是設(shè)計(jì)可以改變自身代碼的病毒,從而使搜索字符串的識(shí)別技術(shù)失去效果。 多態(tài)變形病毒面對(duì)掃描器時(shí),主要是通過(guò)代碼變換及加密來(lái)隱藏自己。常見(jiàn)的策略是用變化的key加密病毒體的主要部分,而保持解密執(zhí)行程序不變。為了防止搜索字符串的方法檢測(cè)到,解密代碼在每一次的感染過(guò)程中都會(huì)改變。然而,設(shè)計(jì)多態(tài)變形病毒要求病毒作者有很扎實(shí)的基本功,以及很多技巧。因此,這在段相對(duì)較長(zhǎng)的時(shí)間里,導(dǎo)致世面上較少出現(xiàn)真正的多態(tài)變形病毒。當(dāng)然,世界不會(huì)一成不變。因此,在某個(gè)階段,

46、從事病毒貿(mào)易的大哥級(jí)人物注意到這種現(xiàn)象,決定通過(guò)編寫并分布多態(tài)變形生成器的方式,向那些缺乏技能的小弟們伸出援手。2多態(tài)變形生成器從根本上說(shuō),多態(tài)變形生成器是一些例程,可以與已存在的病毒鏈接。但生成器本身并不是病毒;它們的目的是使用多態(tài)變形的技術(shù)來(lái)隱藏真正的病毒。第一個(gè)通用的多態(tài)變形生成是MutationEngine,也被稱為MtE。在1991年出現(xiàn),大概有十億多種不同的排列,可以與任何病毒鏈接,它的出現(xiàn)宣告了即時(shí)多態(tài)變形的時(shí)代到來(lái)了。時(shí)至今日,大約有33種已知的病毒使用了MtE。 其它的多態(tài)變形生成在MtE出現(xiàn)后接踵而至。1992年的晚些時(shí)候就出現(xiàn)了兩個(gè),其中一個(gè)就是TridenTPolymo

47、rphicEngine(TPE)。TPE出生在荷蘭。從根本上說(shuō),它處理的排列數(shù)比MtE要少一些,但是它為反病毒產(chǎn)品準(zhǔn)備了另外的難題,因?yàn)樗傻淖g碼器比MtE生成的更普通,更沒(méi)有代表性(也就更難被檢測(cè)到)。另一個(gè)是NuKE Encryption Device(NED)。NuKE的生成器不是很高級(jí),但它的獨(dú)到之處是它不像大部分其它的多態(tài)變形生成器那樣發(fā)布目標(biāo)模塊,而是發(fā)布易讀的源碼。 其它比較知名的多態(tài)變形生成器還有:MultipleEncryptor(DAME)DarwinianGeneticMutationEngine(DGME)DarkSlayerMutationEngine(DSME)M

48、utaGenGunsnRosesPolymorphicEngine(GPE)DarkSlayerConfusionEngine(DSCE)。這些生成器都是通過(guò)地址網(wǎng)絡(luò),病毒交換BBS與因特網(wǎng)上的專用區(qū)域交換的。3操作原理 多態(tài)變形生成器的常見(jiàn)形式是一引動(dòng)代碼模塊,程序可以把它插入程序。在這之后,程序就可以調(diào)用代碼模塊中包含的函數(shù)了。這個(gè)過(guò)程被稱為鏈接。生成器一旦鏈接到病毒,將變成病毒的一部分。自那以后,病毒四處傳播時(shí),都會(huì)帶著生成器。應(yīng)該注意,生成器本身并不在意它與哪種程序鏈接。雖然說(shuō)已知的多態(tài)變形生成器明顯是為病毒而寫的,但從根本上說(shuō),它們也可以用于其它種類的程序。 當(dāng)使用多態(tài)變形生成器的病

49、毒感染程序文件時(shí)(或其它的對(duì)象),會(huì)要求生成器生成病毒體的加密拷貝和生成器本身。除此之外,生成器還將生成譯碼器一個(gè)例程,把已加密的代碼還原成真正的病毒代碼。生成器使用的加密技術(shù)相對(duì)比較簡(jiǎn)單。不過(guò),它們?cè)诿看螆?zhí)行時(shí)都會(huì)改變加密key。這樣一來(lái)將使檢測(cè)這樣的病毒變得非常困難,但加密的病毒也有一個(gè)命門:解密例程,如果想要它可執(zhí)行,就不能加密它。因此,多態(tài)變形生成器的真正作用是通過(guò)它變換解密例程的能力來(lái)衡量的。所有的多態(tài)變形生成器為了每次都能創(chuàng)建不同的算法,需要一些隨機(jī)化例程。有些生成器允許病毒作者用自己喜歡的隨機(jī)化例程替換原來(lái)的。多態(tài)變形生成可能創(chuàng)建完全不同的加密方法以及與之對(duì)應(yīng)的各不相同的解密例程

50、。它們一般是通過(guò)以下的方式修改解密例程:移動(dòng)例程周圍的指令,在隨機(jī)的地方增加無(wú)用的指令,使用不同的處理器寄存器和操作碼。這樣做的主要目的是使解密例程對(duì)應(yīng)的二進(jìn)制代碼在不同的感染體內(nèi)完全不一樣。這樣將使那些用固定搜索字符串來(lái)搜索解密例程的方法失效因?yàn)槎鄳B(tài)變形病毒生成的感染體并不存在相同的搜索目標(biāo)(字符串)。 使用多態(tài)變形生成器的病毒怎樣感染文件: 1.在感染之前的干凈文件。我們把它稱為受害文件。 2.病毒通過(guò)修改受害文件的第一條指令開(kāi)始它的感染過(guò)程。它用jump文件尾部的指令替換它們。被替換的字節(jié)保存在病毒體內(nèi)。 3.接下來(lái),病毒調(diào)用多態(tài)變形生成器,生成病毒代碼的加密拷貝和生成器本身。生成器也將

51、生成解密例程,并把它添加到受害文件的尾部。 4.把加密的代碼添加到受害文件的尾部。這個(gè)加密的部分包含三小部分:病毒體的真正拷貝;被替換的受害文件的第一條指令;多態(tài)變形生成器的代碼。2.2.3 多態(tài)變形病毒實(shí)例分析Win98.BlackBat隨著計(jì)算機(jī)技術(shù)的發(fā)展,蠕蟲和病毒的界限越來(lái)越模糊,它們之間的許多技術(shù)都是共用的,并且多態(tài)變形病毒的發(fā)展時(shí)間相對(duì)較長(zhǎng),變形病毒的實(shí)例也比較典型,所以在這里采用了一個(gè)典型的變形病毒的實(shí)例來(lái)分析蠕蟲的多態(tài)變形技術(shù)是合適的,因?yàn)樗麄冇玫降亩鄳B(tài)變形技術(shù)是相同的。Win98.BlackBat是一個(gè)典型變形病毒,它是由RohitabBatra在1999年設(shè)計(jì)的,雖然Win

52、dows95、98的時(shí)代已經(jīng)過(guò)去,但它的設(shè)計(jì)思想代表一個(gè)時(shí)代的病毒設(shè)計(jì),其核心思想仍然被廣泛采用。要想有效地識(shí)別出多態(tài)變形蠕蟲(病毒),就必須了解多態(tài)變形蠕蟲(病毒)的工作原理。Win98.BlackBat病毒的變形功能主要由三個(gè)函數(shù)EncryptVirus、MutateDecryptor和RadomRegister以及程序入口段解密器Decryptor來(lái)完成13。下面是對(duì)每一部分的功能及工作原理的詳細(xì)分析。1 解密函數(shù)Decryptor把程序入口寫成機(jī)器碼而非匯編語(yǔ)言,這純粹是為了編程的方便,因?yàn)閃in98.BlackBat在變形的過(guò)程中,就是對(duì)這段程序中的寄存器進(jìn)行操作,為了編程方便所以采

53、用了機(jī)器碼的表示方法。同時(shí)必須指出的一點(diǎn)是兩段代碼的唯一區(qū)別在于DB 00字節(jié),在翻譯成匯編語(yǔ)言以后,它將和DB80、DB36一起組成xor byte ptresi, 00h,但要明確的是盡管它們是一條匯編指令,可標(biāo)號(hào)EncryptionKey仍然起作用,也就是說(shuō)無(wú)論在何種情況下EncryptionKey都標(biāo)志著DB 00這個(gè)字節(jié),而這個(gè)字節(jié)正是密鑰所在,密鑰的設(shè)置在EncryptVirus函數(shù)中完成,00只是一個(gè)初始值。病毒程序入口處的機(jī)器碼翻譯成匯編語(yǔ)言后的結(jié)果,如表2.1所示。esi中的內(nèi)容就是被加密程序的入口,ecx中的內(nèi)容是被加密的程序代碼的長(zhǎng)度。Encrypted_SIZE的值是$

54、-offset EncryptedVirusCode,操作符“$”所表示的是當(dāng)前程序計(jì)數(shù)器的值,所以Encrypted_SIZE才是加密代碼的長(zhǎng)度。程序按照Encrypted_SIZE的值對(duì)程序進(jìn)行解密,直到ecx的值為0,然后進(jìn)入主程序。在主程序中會(huì)對(duì)程序代碼進(jìn)行再次加密并置密鑰,而病毒重新執(zhí)行時(shí)則用上次生成的新密鑰進(jìn)行解密,以使系統(tǒng)能夠識(shí)別代碼的內(nèi)容。解密器程序的流程如圖2.5所示。表2.1 解密器程序StartOfVirusCode:Call GetDeltaGetDeltaDB 5EhDB 83hDB 0C6hDB offset EncryptedVirusCodeoffset Get

55、DeltaDD ENCRYPTED_SIZEDecryptByte:DB 80hDB 36hEncryptionKey:DB 00hDB 46hDB 49hjnz DecryptByteEncryptedVirusCodejmp WinMainStartOfVirusCode:call GetDeltaGetDelta:pop esiadd esi, EncryptedVirusCode-GetDeltamov ecx, Encrypted_SIZEDecryptByte:xor btye ptresi, 00hEncryptionKey:inc esidec ecxjnz DecryptBy

56、teEncryptedVirusCodejmp WinMain是獲得加密入口和被加密的代碼長(zhǎng)度解密是否解密結(jié)束否開(kāi)始結(jié)束圖2.5 解密函數(shù)流程圖2 加密函數(shù)EncryptVirusWin98.BlackBat病毒的加密函數(shù)程序如表2.2所示。表2.2 加密器程序EncryptVirus PROCpush ediin al,40hIF DEBUGxor al alENDIFmov ecx,ENCRYPTED_SIZEadd edi,LOADER_SIZEEncryptByte:xor byte ptredi,alinc ediloop EncryptByte:pop edimov byte ptredi+EncryptionKey-StartOfVirusC

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論