亚洲一区爱区精品无码_无码熟妇人妻AV_日本免费一区二区三区最新_国产AV寂寞骚妇

淺談用delphi來編寫蠕蟲病毒4篇 用delphi怎么寫病毒

時間:2022-10-09 17:29:00 綜合范文

  下面是范文網(wǎng)小編收集的淺談用delphi來編寫蠕蟲病毒4篇 用delphi怎么寫病毒,以供借鑒。

淺談用delphi來編寫蠕蟲病毒4篇 用delphi怎么寫病毒

淺談用delphi來編寫蠕蟲病毒1

①啟動Word2010,單擊文件--新建--博客文章,

②彈出注冊博客賬戶對話框,單擊注冊按鈕

③選擇博客的提供商,可以是新浪、搜狐等等,

④新建賬戶,輸入博客的相關(guān)信息,賬號以及密碼。

⑤不知道怎么填寫的朋友,可以參看下面的圖片實(shí)例。

淺談用delphi來編寫蠕蟲病毒2

  自1988年出現(xiàn)第一個蠕蟲病毒以來,計算機(jī)蠕蟲病毒以其快速、多樣化的傳播方式不斷給網(wǎng)絡(luò)世界帶來災(zāi)害,特別是網(wǎng)絡(luò)的迅速發(fā)展令蠕蟲造成的危害日益嚴(yán)重,造成一個談毒色變的的網(wǎng)絡(luò)世界。

  不同于一般的病毒,蠕蟲病毒以計算機(jī)為載體,復(fù)制自身在互聯(lián)網(wǎng)環(huán)境下進(jìn)行傳播,蠕蟲病毒的傳染目標(biāo)是網(wǎng)絡(luò)上所有計算機(jī)--局域網(wǎng)條件下的共享文件夾、電子郵件E-mail、網(wǎng)絡(luò)中的惡意網(wǎng)頁、大量存在著漏洞的服務(wù)器等都成為蠕蟲傳播的良好途徑。

  首先,掃描:由蠕蟲的掃描功能模塊負(fù)責(zé)探測存在漏洞的主機(jī)。隨機(jī)選取某一段IP地址,然后對這一地址段上的主機(jī)掃描。笨點(diǎn)的掃描程序可能會不斷重復(fù)上面這一過程。這樣,隨著蠕蟲的傳播,新感染的主機(jī)也開始進(jìn)行這種掃描,這些掃描程序不知道哪些地址已經(jīng)被掃描過,它只是簡單的隨機(jī)掃描互聯(lián)網(wǎng)。于是蠕蟲傳播的越廣,網(wǎng)絡(luò)上的掃描包就越多。即使掃描程序發(fā)出的探測包很小,積少成多,大量蠕蟲程序的掃描引起的網(wǎng)絡(luò)擁塞就非常嚴(yán)重了。

  其次,攻擊:當(dāng)蠕蟲掃描到網(wǎng)絡(luò)中存在的主機(jī)后,就開始利用自身的破壞功能獲取主機(jī)的管理員權(quán)限,

  最后,利用原主機(jī)和新主機(jī)的交互將蠕蟲程序復(fù)制到新主機(jī)并啟動。由此可見,蠕蟲的危害有兩個方面:

  一、蠕蟲大量而快速的復(fù)制使得網(wǎng)絡(luò)上的掃描包迅速增多,造成網(wǎng)絡(luò)擁塞,占用大量帶寬,從而使得網(wǎng)絡(luò)癱瘓。

  二、網(wǎng)絡(luò)上存在漏洞的主機(jī)被掃描到以后,會被迅速感染,使得管理員權(quán)限被竊取。方便 的攻擊。

  魔高一尺,道高一丈,隨著蠕蟲的快速演變,解毒的的高手也不斷涌現(xiàn)。艾泰科技寬帶安全網(wǎng)關(guān)系列就采用了“檢測--屏避”的簡單防毒方法。

  首先,檢測:這一步驟需要手工來操作。由于網(wǎng)絡(luò)中的蠕蟲病毒不斷向外界計算機(jī)發(fā)出掃描包,這些掃描包是有顯而易見的特點(diǎn)的。例如,被感染的計算機(jī)中的蠕蟲病毒會向網(wǎng)絡(luò)中的某段IP地址發(fā)送掃描包。由于網(wǎng)絡(luò)所來往發(fā)送接收的包都要經(jīng)過路由器,而通過路由器的WEB管理界面就可以輕松看到。所以,蠕蟲病毒攻擊的特點(diǎn)反映在上網(wǎng)監(jiān)控頁面上就是:感染的主機(jī)發(fā)出大量的NAT會話,會話中只有上傳包,下載包很小或者為零。如果存在這樣的主機(jī),說明該主機(jī)已經(jīng)被蠕蟲病毒感染。

  這種情況下,就要進(jìn)入第二步,對網(wǎng)絡(luò)中的主機(jī)實(shí)施屏蔽。屏蔽的方法是:利用路由器的管理功能建立相應(yīng)的策略,關(guān)閉病毒向外發(fā)包的端口。采取殺毒措施或者安裝相應(yīng)的補(bǔ)丁程序。這樣,就可以輕松消滅蠕蟲病毒。

淺談用delphi來編寫蠕蟲病毒3

  由于本人權(quán)限不夠,只能將翻譯的文章直接粘貼過來,不方便之處請大家諒解,還有翻譯不妥和錯誤的請大家不吝賜教

  利用壓縮來分析蠕蟲病毒和網(wǎng)絡(luò)數(shù)據(jù)

  摘要

  網(wǎng)絡(luò)蠕蟲已經(jīng)對系統(tǒng)和網(wǎng)絡(luò)運(yùn)作構(gòu)成分布廣泛的威脅,為了更有效與蠕蟲對抗,分析最新的發(fā)現(xiàn)的蠕蟲程序和攻擊方式是有必要的。這篇文章說明了如何利用基于Kolmogorov復(fù)雜性的技術(shù)來對網(wǎng)絡(luò)蠕蟲和傳輸分析的。利用壓縮,不同的種類的蠕蟲都能由成群。這樣就使得我們能判定一個未知的蠕蟲二進(jìn)制文件事實(shí)上是否是現(xiàn)存的極簡單、自動運(yùn)行方式的蠕蟲的下一個版本。在對惡意二進(jìn)制文件的初始分析中,這也許是個有用的工具。進(jìn)一步,壓縮對辨別不同類型的網(wǎng)絡(luò)傳輸也是有幫助的,因此有助于探測到傳輸?shù)漠惓#和ㄟ^僅查看一個網(wǎng)絡(luò)的會話的壓縮率也許就可以偵測到特定的異常。我們更進(jìn)一步的說明如何利用壓縮來察覺惡意的網(wǎng)絡(luò)會話,極類似于大家熟悉的入侵企圖。這種技術(shù)可能有利于探測一種攻擊的不同變異,所以它能有效阻止標(biāo)示的隱藏。我們提供了兩種新的Snort的插件,它對這兩種方法都做了詳細(xì)說明。

  1 引言

  近些年來,網(wǎng)絡(luò)蠕蟲的大量涌現(xiàn)出來,例如Sasser 和Msblaster,已經(jīng)對全世界的數(shù)百萬系統(tǒng)造成了破壞。蠕蟲是自動運(yùn)行的程序,可以發(fā)掘聯(lián)網(wǎng)計算機(jī)的漏洞,并控制它們。蠕蟲一旦成功地感染了一個系統(tǒng),它們就會持續(xù)不斷拓展受害者范圍。當(dāng)一個蠕蟲程序發(fā)現(xiàn)一臺新的脆弱的電腦,它也會使使這臺機(jī)器受到感染。蠕蟲就這樣通過網(wǎng)絡(luò)主動地擴(kuò)散。

  如果蠕蟲造成大量的問題,重要的是開發(fā)對抗它們的防護(hù)體。為了達(dá)償所愿,我們需要詳細(xì)的分析它們。如果發(fā)現(xiàn)系統(tǒng)感染了蠕蟲,我們最想知道的就是這是怎樣發(fā)生的,蠕蟲進(jìn)行的什么可能操作,以及如何阻止以后再次感染。本文傾向于介紹診斷的步驟的第一步的一種如下:我們想確定,我們以前是否見過這種蠕蟲或者它是否類似于一種眾所周知的蠕蟲。我們可以分析蠕蟲的二進(jìn)制可執(zhí)行文件去獲取這方面信息。許多公開的蠕蟲,像Sasser,經(jīng)常有許多變種。這些通常是由同一作者發(fā)布的相繼版本,用來擴(kuò)展這個蠕蟲的功能。所有這些版本一起可以組成一個相聯(lián)系的蠕蟲類。利用濃縮分析,首先可以將不同版本的蠕蟲按類劃分。通過歸類分析,我們把一個未知的蠕蟲程序與大量的已知的蠕蟲進(jìn)行比較,判別出其歸屬類,這樣就簡化深層次的分析。這種非常簡單的方法不能利用任何手工文本比較或者在傳統(tǒng)分析利用的包含在蠕蟲中特殊的選定的形式。許多混亂的二進(jìn)制文件利用UPX來壓縮,然后可修改它來阻止解壓。這樣就使基于反匯編二進(jìn)制文件和比較兩個程序的執(zhí)行流的方法來分析二進(jìn)制文件變得相當(dāng)困難。令人驚奇的是,我們的方法即使利用UPX加殼,仍然發(fā)揮作用,盡管有些偏差。因此在對新捕獲的蠕蟲程序初始分析中,======是一個有用的工具。

  受感染的系統(tǒng)和網(wǎng)絡(luò)攻擊通常使網(wǎng)絡(luò)傳輸發(fā)生變化。為了確認(rèn)和制止這樣的攻擊,應(yīng)當(dāng)去監(jiān)視這些變化。最具代表性情況下,利用在網(wǎng)絡(luò)傳輸中搜索特定形式方法來探測到反常。例如,當(dāng)字符串“msblast.exe”在TCP會話中被發(fā)現(xiàn)時,Snort[11]就能發(fā)出警報。只要知道我們所尋找的形式,這種方法就能很好的發(fā)揮作用。這里,我們感興趣的是即使不知道要搜索的形式,我們也能確認(rèn)出異常。首先,我們利用壓縮來探究不同類型網(wǎng)絡(luò)傳輸?shù)膹?fù)雜性。這些復(fù)雜性的差別可以使我們粗略了解何種類型的應(yīng)用協(xié)議能引發(fā)特定的網(wǎng)絡(luò)交互。直觀講,對象的復(fù)雜性是由它壓縮性能來決定的。如果其能壓縮性能優(yōu)良,我們說它復(fù)雜性低。另一方面,如果它幾乎不能被壓縮,那我們就認(rèn)為它有高復(fù)雜性。例如,SSH協(xié)議的復(fù)雜性非常高。如果我們觀測到TCP協(xié)議相同的端口有相當(dāng)?shù)偷膹?fù)雜性,就能對異常有所察覺。這并不需要異常的額外的知識或者對特定的傳輸形式進(jìn)行搜索。對Snor插件的壓縮,如果所觀察的傳輸?shù)膹?fù)雜性沒有落在特定范圍,Snort就會引發(fā)警報。

  最后,我們利用壓縮比較不同的傳輸協(xié)議。新的攻擊程序或者新版本的蠕蟲可能產(chǎn)生稍微不同的網(wǎng)絡(luò)傳輸,其中不再包含我們搜索特定的形式,以此來躲避查殺。這里我們所感興趣的是辨別出與現(xiàn)存類似的形式。確且地說,如果兩種會話協(xié)議的組合復(fù)雜性不比它們各自的更復(fù)雜,我們就認(rèn)為它們是緊密聯(lián)系的。也就是這樣一種情況,如果兩種通訊非常相似并且能相互能很好的解釋對方。我們可以利用這種方法來判定可觀測得TCP通訊是否與已記錄的相應(yīng)于已知的攻擊通訊相似。NCD Snort 插件在一個可觀測的通訊與給定的通訊有一定差異是就Snort發(fā)出警報。即使壓縮對網(wǎng)絡(luò)通訊的操作是相當(dāng)耗時的,我們認(rèn)為這種方法對探測新的攻擊類型仍然是有用的。只要辨識攻擊,就可以構(gòu)建特定形式并將它用在傳統(tǒng)的入侵檢測中。

  1.1 相關(guān)工作

  Halvar Flake [5] 以及Carrera and Erd??elyi [1] 利用基于圖形的方法在比較可執(zhí)行程序中取得了驕人的成績。最近,Halvar Flake也已經(jīng)利用這種方法對malware [3]進(jìn)行了分析。對同一種可執(zhí)行文件的不同版本進(jìn)行比較,可能獲得蠕蟲涉及實(shí)際安全問題。這需要對二進(jìn)制文件反匯編。然而,這種方法對優(yōu)點(diǎn)在于揭露關(guān)于安全隱患的本質(zhì)實(shí)際信息,這里我們注意的焦點(diǎn)是不同的。我們提供了不用反匯編就能判別已知蠕蟲的類別的快速方法,這可以用到可執(zhí)行文件的初步分析?;谶@種分析,就能更準(zhǔn)確地利用其它方法。

  為了確定網(wǎng)路傳輸?shù)谋举|(zhì),進(jìn)行了大量的工作。由于我們沒有事先選擇形式或者特定性質(zhì),這就使我們方法根本上不同于其它方法。我們讓壓縮器來完成指出所有的相似性。

  此前Kulkarni and Bush [6]已經(jīng)考慮過利用基于Kolmogorov復(fù)雜性來監(jiān)視網(wǎng)絡(luò)傳輸。然而他們的方法是不同的,因為他們沒有利用壓縮估計Kolmogorov復(fù)雜性。主要是他們認(rèn)為在網(wǎng)絡(luò)傳輸中反常并沒有表現(xiàn)出來,因為它們的復(fù)雜性要比正常的網(wǎng)絡(luò)傳輸還要低。然而,我們發(fā)現(xiàn)例如由硬件中繼發(fā)出假信息就是這樣的,我們假設(shè)反常通常要比我們認(rèn)為正常的協(xié)議要復(fù)雜。例如,如果我們發(fā)現(xiàn)HTTP端口80傳輸正常同時有一部分的復(fù)雜性要高的多,這可能就是惡意入侵者造成的,它正在向外傳輸加密的會話。在這個特定的例子中,由于惡意傳輸增加了復(fù)雜性。

  Evans and Barnett [4比較針對FTP服務(wù)器攻擊于FTP的合法傳輸?shù)膹?fù)雜性。他們通過分析合法和非法的FTP傳輸文件頭達(dá),同時收集上百字節(jié)的好的壞的信息來壓縮到這樣的目的。我們的方法不同之處在于我們利用整個包或者整個TCP會話。這樣做事因為我們相信在真實(shí)世界中,單從單個攻擊利用文件的頭部分收集上百字節(jié)的壞的通信是非常困難的。探測系統(tǒng)的漏洞的攻擊通常情況下是非常短的同時不能在同一個端口中產(chǎn)生任何其它的惡意的通訊。這種情況特別出現(xiàn)在非交互式協(xié)議中例如HTTP,在HTTP中所有交互僅包含一個請求和回應(yīng)。

  Kulkarni, Evans and Barnett [7]也試圖利用Kolmogorov復(fù)雜性去跟蹤服務(wù)拒絕的攻擊?,F(xiàn)在他們通過計算對包含在數(shù)據(jù)包中平均信息量估計來確定Kolmogorov復(fù)雜性。然后,隨著時間的推移,他們利用復(fù)雜性差分方法來跟蹤復(fù)雜性。他們對單個流中的特定的數(shù)據(jù)包進(jìn)行采樣,然后計算一次復(fù)雜的差分。這里,我們總是利用壓縮,但目的并不與探測DDOS攻擊。

  1.2貢獻(xiàn)

  我們提出利用壓縮作為一種新的工具對網(wǎng)絡(luò)蠕蟲的初始分析。

  我們證明了網(wǎng)絡(luò)會話的壓縮率差別有助于辨別傳輸?shù)念愋汀_@樣就形成了不需要知道它們的準(zhǔn)確本質(zhì)先驗知識,而對對異常的檢測一種簡單方法。

  最后,我們論證壓縮對發(fā)現(xiàn)與現(xiàn)存的極其類似的攻擊是有幫助的。

  1.3 概要

  在第二部分中,我們簡單關(guān)注一下規(guī)范化壓縮過程的概念,在整片文章中都將用到。第三部分展現(xiàn)了利用這個概念來對網(wǎng)絡(luò)蠕蟲的分析。在第四章中我們證明壓縮在分析網(wǎng)絡(luò)傳輸中有多大用處。最后,4.1.2和4.2小節(jié)中我們利用這些觀測來構(gòu)建兩個Snort插件來幫助識別網(wǎng)絡(luò)異常。

  2?預(yù)備知識

  在這章中我們利用基于Kolmogorov復(fù)雜性的規(guī)范化壓縮過程概念。正常情況下,一個有限二進(jìn)制字符串x的Kolmogorov復(fù)雜性C(x)與能輸出x最短程序的長度是相等的。事實(shí)上,Kolmogorov復(fù)雜性于附加的常量機(jī)制上是相互獨(dú)立的。這就是說它與編寫程序的利用語言是沒有關(guān)系的,只要這種語言是固定的。這就是我們將所需要的全部。更多的信息可以在由Li and Vitanyi [8]著的書中找到。

  這個概念與壓縮有何關(guān)系?我們把字符串的壓縮版看作在我們的“壓縮機(jī)”運(yùn)行的程序。因此,相對機(jī)器的Kolmogorov復(fù)雜性不比已壓縮的字符串的長度還要大。我們通過壓縮來估計C(x):取一個標(biāo)準(zhǔn)的壓縮器(bzip或者zlib)同時壓縮x得到Xcompressed。然后利用Xcompressed的長度length來代替C(x)。在我們考慮的情況中,字符串x就是蠕蟲程序的執(zhí)行文件或者傳輸數(shù)據(jù)。

  字符串x和y的NCD可以由下列式給出:

  C(xy) min{C(x),C(y)}

  NCD(x,y) =--------------------------- .

  max{C(x),C(y)}

  關(guān)于NCD的更詳細(xì)的信息可以在[13]中查到。NCD是一個非常直觀的概念:如果字符串A和B非常相似,就是說一個可以描述出另一個許多信息。也是說如果告訴A,如果我們僅需要知道A與B的差別,就能將字符串B壓縮的非常好。因此,單獨(dú)壓縮A后結(jié)果的長度要比將A和B的一起壓縮結(jié)果的長度差別很大。然而,如果A和B差別很大,壓縮結(jié)果的長度要比單獨(dú)壓縮結(jié)果要大得多。我們計算集合中所有對象的兩兩NCD來進(jìn)行歸類。同時得到的所有對象之間的距離矩陣。這樣我們利用[13]中介紹的四步來填充矩陣。在樹中,對象如果互相接近,在NCD同樣接近。

  全文中,利用CompLearn 工具包[12]來構(gòu)建樹。在[10]中,我們得到網(wǎng)絡(luò)協(xié)議的信息。我們分析不同的蠕蟲的信息,可以在Encyclopedia[12]找到。

  3分析蠕蟲

  我們利用NCD的概念來分析網(wǎng)絡(luò)蠕蟲的二進(jìn)制可執(zhí)行文件。只要識別出在機(jī)器上的一個惡意程序,我們就確定它與現(xiàn)存的蠕蟲的關(guān)系。許多蠕蟲程序存在很多不同版本。通常蠕蟲作者為了改進(jìn)它的性能而創(chuàng)造出新的版本。最近的Sasser蠕蟲就是這樣的。我們稱這些版本的蠕蟲為一類。現(xiàn)在我們就要提出一個問題:給定一個蠕蟲,有與他相似的嗎和它屬于哪個類?

  為了測試,我們收集了大約790不同的種類的蠕蟲:IRC,vb,linux以及可執(zhí)行的窗口蠕蟲。粗略的計算,這些蠕蟲的290多個有至少一個版本 。

  3.1 蠕蟲分類

  首先,我們利用聚類來評估不同類之間的關(guān)系。我們的方法是利用計算在實(shí)驗中用到的蠕蟲的NCD進(jìn)行的。這樣就生成了距離矩陣以及可視化的與矩陣相對應(yīng)的樹。在這部分中,我們利用Bzip2作為壓縮工具。

  3.1.1 蠕蟲的不同類

  為了獲得這些蠕蟲類的深層次的關(guān)系,我們首先對完全不同的類型的蠕蟲進(jìn)行分類。我們利用基于文本的蠕蟲(像IRC,標(biāo)有mIRC和IRC)以及針對Windows系統(tǒng)名字含有PIF的蠕蟲來對完成以上的工作。有Linux前綴的蠕蟲則是針對Linux系統(tǒng)。所有其他是針對Window系統(tǒng)的蠕蟲同時也是基于二進(jìn)制的。

  從圖1我們可以看出基于文本的蠕蟲已經(jīng)被聚類在一起。就像我們期望的一樣,在基于文本和基于二進(jìn)制的蠕蟲已分開了。在各類內(nèi)部分類當(dāng)然沒有太大用處。然而,單利用我們的方法會產(chǎn)生一些驚奇結(jié)果,這會使我們重新對我們的蠕蟲數(shù)據(jù)進(jìn)行估計。什么是在基于文本的LinuxGodog蠕蟲?在進(jìn)一步分析,我們發(fā)現(xiàn)不同于其他的Linux蠕蟲,它是二進(jìn)制的可執(zhí)行的,LinuxGodog是核腳本,因此與基于腳本的蠕蟲IRC非常相似。當(dāng)看到兩個Window蠕蟲Fozer和Netsp,它們都是Window腳本,就會有相同的發(fā)現(xiàn)。我們還發(fā)現(xiàn)SpthJsp也標(biāo)示錯了,其實(shí)它是一個IRC蠕蟲與IRC-Spth系列非常相似。事實(shí)上,人工分析可以斷定它確實(shí)是另一個變種。同樣,IRCDreamircVi也與其他的IRC蠕蟲歸為一類。它看起來是IRCDreamirc系列的非二進(jìn)制成員。通過聚類Alcaul蠕蟲可以揭示另一個有趣的事實(shí)。許多不同的Alcaul蠕蟲盡可能都是二進(jìn)制格式的。然而在測試中,我們偶然發(fā)現(xiàn)僅有一個是利用多用途的網(wǎng)際郵件擴(kuò)充協(xié)議編碼的,因此它與基于文本的和基于二進(jìn)制相比,與基于文本根相似。我們的測試鑒定也是將二進(jìn)制Linux蠕蟲與其它系統(tǒng)的基于二進(jìn)制蠕蟲歸為一類。僅僅LinuxAdm表現(xiàn)不相近。我們把這歸結(jié)于linux和windows系統(tǒng)的二進(jìn)制并不相離,即使它們屬于不同的執(zhí)行格式。相同類蠕蟲歸結(jié)在一起。例如,我們可以看到基于文本的IRCSimpsalapim與IRCSpth系列的明顯界限。然而,Mimail和Netres的分離說明了這種方法適合于基于二進(jìn)制蠕蟲的分類。MyDoom蠕蟲則起始就是一個列外。兩個版本的MyDoom,與其它的等價類蠕蟲不同。進(jìn)一步測試,然而,我們發(fā)現(xiàn)MyDoom.a事實(shí)上是一個刪節(jié)的二進(jìn)制版本。通常情況下,我們初始分析,就能將不同蠕蟲很好的分類。

  3.1.2 Window 蠕蟲

  基于文本的蠕蟲容易手工分析,所以我們主要針對二進(jìn)制可執(zhí)行體。首先我們對不同的且不是利用UPX壓縮的windows蠕蟲進(jìn)行分類。令人驚奇的是,即使二進(jìn)制蠕蟲也能很好的聚類,那說明它們的確非常相似。壓縮器似乎可以找到利用人工分析不能發(fā)現(xiàn)的許多相似之處。圖2表明兩種可能Sasser變種能完美的聚類在一起。對Nimda的兩個版本也是一樣。這表明了利用壓縮進(jìn)行分類是一個有效的方法。

  3.1.3 UPX壓縮效果

  許多流行的蠕蟲 是壓縮可執(zhí)行的,且基本上都是壓縮是單向的不可逆。這樣就使獲得實(shí)際的蠕蟲二進(jìn)制文件很難。但是如果沒有這個二進(jìn)制文件,我們就不能比較嵌入在可執(zhí)行體中的文本字符串或者就不能反匯編并進(jìn)一步分析程序流。如果一個字符串已經(jīng)壓縮了,那就幾乎不可能在一次壓縮太多。因此,我們預(yù)計利用基于壓縮的方法不會取得好的結(jié)果。

  Figure 1 不同類的蠕蟲

  令人驚奇的是,然而,我們?nèi)匀荒軐肬PX壓縮的蠕蟲進(jìn)行合理分類。這表明UPX,不能象bzip2獲得壓縮的長度,但可以允許二進(jìn)制文件是可執(zhí)行的。

  圖3表明了對起始利用UPX壓縮的蠕蟲的分類實(shí)例。這個實(shí)驗表明即使我們的方法欠準(zhǔn)確,但是我們?nèi)匀豢梢钥吹綄atzback系列的聚類。對其他的蠕蟲,例如Alcaul.q,并沒有很好的聚類在一起。這也說明了,即使蠕蟲是UPX壓縮的,我們?nèi)匀挥袡C(jī)會利用簡單的壓縮對蠕蟲進(jìn)行分類鑒定。在移出UPX壓縮后,圖4 說明了聚類過程的結(jié)果。我們能觀察到更好的結(jié)果。

  然而,在分析蠕蟲前,并不能總是簡單移出UPX壓縮。可以修改UPX壓縮使得蠕蟲仍然可執(zhí)行,但是修改后將不能解壓。這就使得對蠕蟲的分析變得更加困難。因此,我們將研究UPX壓縮如何對歸類過程進(jìn)行不規(guī)則的影響。在下一次實(shí)驗中,我們選擇UPX壓縮及當(dāng)前流行的不規(guī)則的蠕蟲。在Alcaul系列中,只有Alcaul.r是不規(guī)則的。我們選擇其它的UPX壓縮的Alcaul蠕蟲,來判定聚類中包含部分UPX壓縮及不規(guī)則的蠕蟲是否造成歸類的失敗。

  正如圖5所示的,我們的方法給出蠕蟲分類啟示,即使沒有大量人工不能得到UPX解壓。不規(guī)則的Alcaul.r蠕蟲能與規(guī)則的Alcaul蠕蟲聚類在一起。對于Lentin系列蠕蟲也是一樣。

  3.1.4 蠕蟲和合法的Windows程序

  最后,我們檢測現(xiàn)存的windows程序以及它們與蠕蟲的關(guān)系。因此我們從表準(zhǔn)的windows安裝程序收集許多小的windows可行文件并且將它們和蠕蟲混合起來進(jìn)行聚類。圖6 描述了我們測試的結(jié)果。在這里所利用的合法的windows程序有:net,netsh,cacls,cmd,netstart,cscript,debug.exe和。令人驚奇的是,我們的實(shí)驗結(jié)果證明大部分windows程序都緊緊集合在一起。直觀表現(xiàn)是有相似功能的關(guān)系更緊密。只有debug.exe和被置放在樹中其它地方,我們把這歸咎于這樣的事實(shí)與其他程序相比它們的功能的確不同。然而,從這個實(shí)驗斷定壓縮總是能從合法的windows程序辨別出蠕蟲來為時過早。我們測試中僅僅包含非常有限的程序。但是,它也表明了,功能相近的程序關(guān)系非常密切,

  例如CodeGreen和CodeRed就有密切關(guān)系,歸結(jié)于這樣的事實(shí)它們有相同的弱點(diǎn)。

  3.2蠕蟲分類

  現(xiàn)在我們嘗試對一個未知類的蠕蟲進(jìn)行歸類。斷定一個蠕蟲的屬類使進(jìn)一步分析更加容易。再一次,我們不是對特別選定的可執(zhí)行文件進(jìn)行搜索或者對實(shí)際的問題進(jìn)行分析。然而,我們僅僅利用NCD。為了判定一個病毒的類屬,我們計算這個蠕蟲與其它所有可能的二進(jìn)制蠕蟲的NCD。根據(jù)NCD來蠕蟲w與t距離最近,則t與w最匹配。然后,我們就把w歸為t類。簡而言之,我們把新蠕蟲w劃分為F類,使得存在t ∈ F, 對任意k ∈ W,NCD(w,t) ≤ NCD(w,k)其中W是所有測試蠕蟲的集合。為了避免錯誤的劃分,如果蠕蟲存在一個t使得NCD(w,t)>=0.65,則我們把這個新蠕蟲標(biāo)為未知類。這個數(shù)據(jù)是由我們的數(shù)據(jù)的實(shí)驗得到的,可根據(jù)不同的情況進(jìn)行調(diào)整。

  在對719不同二進(jìn)制和非二進(jìn)制蠕蟲進(jìn)行第一次實(shí)驗中,其中284個,經(jīng)過我們的方法判定后,可能屬于不僅僅一個類。對每一個蠕蟲,我們判定在其余的蠕蟲與之最匹配。在284個中179都可能與它的類匹配,這說明我們成功了。我們的到39個錯誤的匹配。這是與正確的匹配相比,所占的比率很低。然而,值得注意的是我們對所有類型的蠕蟲進(jìn)行匹配同時利用一個非常大的蠕蟲集合,這情況僅僅出現(xiàn)在本文中。實(shí)際中,你可以限制蠕蟲被所屬類為一個已選好的數(shù)據(jù)庫,達(dá)到獲得一個好的結(jié)果目的。例如,考慮一個通過email傳播的蠕蟲。如果將我們注意僅限制在“I-Worm”類的蠕蟲,如表1所示就能得到一個好的分類效果。我們對454蠕蟲進(jìn)行分類,其中可能屬于兩個以上類的蠕蟲有184個?,F(xiàn)在如果利用上面的改進(jìn)的方法,僅僅13個分類錯誤。

  我們的實(shí)驗使我們對將來這種簡單的方法可能實(shí)用充滿信心。

  4 分析網(wǎng)絡(luò)傳輸

  為了檢測網(wǎng)絡(luò)攻擊,已投入了大量的精力。盡管有許多的可疑入侵檢測系統(tǒng),但入侵檢測仍然是研究的一個熱門。入侵檢測可以分為兩類:檢測針對特定機(jī)器本身的攻擊即基于主機(jī)的入侵檢測和基于網(wǎng)絡(luò)的入侵檢測即通過觀測網(wǎng)絡(luò)傳輸來檢測攻擊。許多入侵檢測系統(tǒng)包含了這兩個方面。然而,在這章我們僅僅考察基于網(wǎng)絡(luò)的入侵檢測。

  在現(xiàn)存的系統(tǒng)中,最常利用的方法就是信號匹配。當(dāng)確認(rèn)了一個已知的攻擊,就對它進(jìn)行簽名標(biāo)記。然后,在網(wǎng)絡(luò)傳輸中搜索與任意標(biāo)記匹配的數(shù)據(jù)。例如,一個流行的開源入侵檢測系統(tǒng)(Snort[11])就是提供了這種方法。明顯地,這種方法在辨別本質(zhì)明確的攻擊時,非常有效。然而,這種方法首先需要大量的人工勞動:對惡意數(shù)據(jù)的先期確認(rèn)和對特定數(shù)據(jù)進(jìn)行標(biāo)記也是有必要的。其次,如果標(biāo)記的攻擊的數(shù)目太多,在大容量的連接庫中,對它們進(jìn)行檢測就非常困難。在4.1小節(jié)中,我們提出了一非常簡單的基于壓縮的方法,它克服了上述問題。最后,如果一個蠕蟲稍微改變它的行為,它將與標(biāo)記不匹配從而逃過檢測。在4.2節(jié)中,我們提出一種能認(rèn)出與現(xiàn)存攻擊類型相似的威脅的方法。

  有時,標(biāo)記匹配也被看作一個錯用的檢測,因為它僅尋找特定泛濫的攻擊類型。我們所說的異常檢測則是我們所感興趣的是對所有類型異常進(jìn)行確認(rèn),包括新的和不確定的形式攻擊所產(chǎn)生的異常。基于查找表的標(biāo)記方法可以用對異常的檢測。例如,入侵檢測系統(tǒng)有每個應(yīng)用的典型行為輪廓。它將觀測到的行為與這個典型行為輪廓比較。如果差別太大,系統(tǒng)就產(chǎn)生警告。在將神經(jīng)網(wǎng)絡(luò)應(yīng)用到異常檢測中,人們已投入了大量的精力。神經(jīng)網(wǎng)絡(luò)經(jīng)常用來離線的數(shù)據(jù)分析,因為它們的計算量非常大。這就是基于神經(jīng)網(wǎng)絡(luò)的檢測迄今為止沒有廣泛應(yīng)用的原因。接下來,我們對作為一個檢測網(wǎng)絡(luò)數(shù)據(jù)異常的工具(壓縮)進(jìn)行評估。

  4.1網(wǎng)絡(luò)傳輸?shù)膹?fù)雜性

  4.1.1協(xié)議的復(fù)雜性

  我們對不同類型的傳輸進(jìn)行評估,所利用的方法是最簡單的方法。我們從這方面對下列問題提出解答:通過對特定端口協(xié)議的檢測,我們能斷定另一種傳輸是否替代了一種。這種方法對特定的遠(yuǎn)程開拓的檢測的成功起重要作用。例如,我們僅僅觀測端口22的SSH傳輸。在一個威脅成功地攻擊SSH服務(wù),它可能在同一個端口包含了一個遠(yuǎn)程內(nèi)核。它的協(xié)議大大不同于正常的SSH協(xié)議。

  在這里我們利用的方法又是非常簡單的方法。對不同的協(xié)議,我們確認(rèn)數(shù)據(jù)S的平均壓縮率:我們利用數(shù)據(jù)S的裝載量同時利用bzip2壓縮S。壓縮的數(shù)據(jù)Scompresssed的長度為我們提供了對S的復(fù)雜性估計,C(S)。然后,利用??L(Scompressed)

  R = -----------------------???????????????????????????????????????????L(S)

  來計算壓縮率。

  R可以直觀地告訴我們S壓縮的程度。如果R小,說明S壓縮程度大且復(fù)雜性低。如果R接近于1,說明S幾乎不能被壓縮且它的復(fù)雜性非常高。

  為了將這種方法應(yīng)用到實(shí)際中去,特定端口的正常數(shù)據(jù)的平均壓縮率需要來確定。為了在新數(shù)據(jù)中異常,我們對網(wǎng)絡(luò)傳輸進(jìn)行精簡然后對它進(jìn)行壓縮。如果它的壓縮率不同于正常傳輸?shù)臄?shù)據(jù)平均壓縮率,我們就斷定其中數(shù)據(jù)有異常。

  為了下面比較,在一個聯(lián)網(wǎng)的小網(wǎng)站收集數(shù)據(jù),郵件和對10個用戶的內(nèi)核服務(wù)以及ADSL連接。標(biāo)簽“nc”用來表示終端交互。將載入的數(shù)據(jù)進(jìn)行精簡,利用亂碼解碼器分為獨(dú)立分割文件以及利用bzip2來壓縮。然后我們計算每個文件的壓縮率。從這些數(shù)據(jù),我們可以計算平均壓縮率,所有文件的壓縮率與所屬協(xié)議的平均壓縮率的背離程度。

  正如所期望的基于協(xié)議的純文本,例如IRC和nc壓縮程度就非常高。另一方面,加密的協(xié)議數(shù)據(jù)或者二進(jìn)制數(shù)據(jù)通常已經(jīng)是壓縮的,所以它們的壓縮程度不高。例如,SSH和IMAPS包含被加密的載入數(shù)據(jù),壓縮后數(shù)據(jù)大小幾乎不變。HTTP和包含壓縮文件的連發(fā)數(shù)據(jù)也是這樣的。為什么SMTP數(shù)據(jù)壓縮的很差呢?經(jīng)過詳細(xì)探究,發(fā)現(xiàn)被捕獲的SMTP數(shù)據(jù)包含的北壓縮的病毒而不是文本信息。因此,我們應(yīng)該僅僅檢查SMTP數(shù)據(jù)的非數(shù)據(jù)部分。我們可以看到SMTP的標(biāo)準(zhǔn)分離時很大的,這主要是由email包含與文本信息壓縮程度差次不齊的壓縮附件造成的。

  初步的試驗表明這種方法能用來分離在復(fù)雜性存在很大差別的協(xié)議。例如,我們能將IRC數(shù)據(jù)與二進(jìn)制網(wǎng)頁數(shù)據(jù)分開。再如,我們也能從SSH數(shù)據(jù)中鑒定出終端交互。然而這種方法并不適用于文件傳輸協(xié)議與包含加密數(shù)據(jù)的協(xié)議的辨別。我們進(jìn)一步注意到web和SMTP傳輸?shù)耐ǔW畲蟮牟煌谟谒鼈兯蕾嚨膚eb服務(wù)器。因此我們應(yīng)當(dāng)通常對每個網(wǎng)站獨(dú)立的檢測。我們也希望利用這種方法探測新的未知的威脅,只要它的壓縮率與我們所期望的平均壓縮率不同。

  4.1.2利用Snort復(fù)雜性的差別

  為了測試復(fù)雜性的差別,我們?yōu)榱餍虚_源的入侵檢測系統(tǒng)Snort壓縮插件。我們可以利用它來對所允許的壓縮率的上下限。如果可觀測得傳輸數(shù)據(jù)顯示超過了整個屏幕,就出現(xiàn)警報。下面的情況能激發(fā)警報,例如在端口22傳輸?shù)臄?shù)據(jù)復(fù)雜性如果低于0.9,且利用zlib壓縮的結(jié)果為:alert tcp $HOME NET any -> any 22 (msg:“owcomplexity on port 22”; flow:to client,established; classtype:bad-unknown;sid:2565; rev:5;)

  在這個例子中,沒有確定明顯的上界,所以利用默認(rèn)的2作為上界。如果輸入數(shù)據(jù)時完全不可壓縮的實(shí)際上壓縮器放大了文件大小時,壓縮率就是可以大于1。

  壓縮插件利用逗號作為判定的分隔符:

  大于:合法的傳輸數(shù)據(jù)的壓縮率大于x,如果0<1.

  小于:合法的數(shù)據(jù)的壓縮率小于x.

:壓縮工具的類型.當(dāng)前值是zlib利用gzip壓縮的結(jié)果,rle僅僅是簡單的運(yùn)行長度編碼估計值。

  4.2利用Snort來確定相似的威脅

  為了判定觀測到的網(wǎng)絡(luò)數(shù)據(jù)與現(xiàn)存的威脅是否相似,我們又一次利用第二章的NCD。如果已知的威脅形式與觀測到數(shù)據(jù)之間的距離很小,我們就判定這是在運(yùn)行中一個相似的攻擊。這種方法可以利用NCD插件完成。由于單個NCD插件包是很小的,將NCD插件與STREAM4 TCP流綁定在一起且僅僅檢測完全綁定的TCP數(shù)據(jù)。

  在下面簡單的例子中,我們記錄利用記錄了一個利用Apache在FreeBSD利用PHP3.0.15的漏洞進(jìn)行攻擊的病毒的數(shù)據(jù)。這種方法通常被廣泛用于搜索phploit.c??梢詫@個搜索不同的選型配置,例如??或者內(nèi)核是否可以直接執(zhí)行。在我們記錄的數(shù)據(jù)中,我們利用將內(nèi)核與另一個端口綁定的配置。然后再Snort配置中添加下面的入口:

  alert tcp $HOME NET any -> webserver 80(msg:Close to phploit attack.? flow:only stream;ncd:dist 0.8, file recordedSession; classtype:bad-unknown;sid:2566; rev:5;)

  這個入口告訴Snort在任意TCP數(shù)據(jù)段如果與包含在已記錄的文件數(shù)據(jù)的NCD小于0.8時就發(fā)出警報。一個新的病毒利用相同選項與被記錄的數(shù)據(jù)的NCD為0.608,則它就會觸發(fā)警報。如果以這種配置執(zhí)行病毒來直接執(zhí)行內(nèi)核,且有0.638的NCD,就會觸犯這個規(guī)則。 在測試服務(wù)器上的網(wǎng)站的映像并不會導(dǎo)致任何錯誤的差別。???因此我們能成功確認(rèn)新的但稍微不同的病毒。盡管上面的變種可以通過選擇不同的類型進(jìn)行初始搜索,然而這也暗含表明了NCD在發(fā)現(xiàn)新病毒時是非常有用的。如果被選擇的形式精簡,這就使得如果病毒僅僅做稍微的變異就能逃脫檢測。

  插件現(xiàn)在利用zlib庫來完成壓縮。其他的方法也是可行的?,F(xiàn)在還有一個獨(dú)單附加:距離〈x〉,〈x〉是在觸犯規(guī)則前的最大安全距離。

  5結(jié)論和開放的問題

  我們分析不同類屬的蠕蟲的二進(jìn)制可執(zhí)行文件并對它們進(jìn)行聚類。我們分析表明很多蠕蟲能很好的聚類。即使這些蠕蟲病毒是利用UPX壓縮的且壓縮的參差不齊,我們的方法仍然能合理的發(fā)揮作用,然而利用傳統(tǒng)的分析方法是相當(dāng)困難的。這表明了在分析未來發(fā)現(xiàn)新蠕蟲病毒時,我們的方法是一個非常有用的工具。而且,我們也可以進(jìn)行多項改進(jìn)。不同的壓縮方法可能給出更好的結(jié)果。其次,可以對蠕蟲病毒進(jìn)行預(yù)分類為email病毒,網(wǎng)絡(luò)病毒,irc蠕蟲和VB腳本。在3.2節(jié)中,可以看到如果將有的蠕蟲標(biāo)為“I-Worm”,就能得到更好的結(jié)果。現(xiàn)在我們的目標(biāo)是為分析蠕蟲病毒提供一個工具。如果這種方法嵌入到一個email病毒自動檢測系統(tǒng)中,將是非常有趣的事。

  我們也觀察到不同的傳輸數(shù)據(jù)有不同的復(fù)雜性。如果傳輸?shù)膹?fù)雜性相差很大,這也許是分辨在同一個端口上合法和非法的傳輸?shù)暮唵味行У墓ぞ摺K膊恍枰谔囟▊鬏旑愋椭刑囟ú《拘问降南闰炛R。Snort的壓縮的插件也可以用來對潛在的惡意數(shù)據(jù)包以及復(fù)雜性不在特定的范圍內(nèi)的數(shù)據(jù)。當(dāng)在大的裝載量情況下,就能看到這種方法如何更有效的發(fā)揮作用。我們的簡單的方法僅僅把傳輸壓縮一次。并且對連續(xù)形式的傳輸數(shù)據(jù)進(jìn)行壓縮時,還能獲得更好的性質(zhì)。壓縮是耗時的操作,但是類型匹配也是一樣的。利用效率高的以及仿真壓縮也許花費(fèi)時間要比處理類型匹配清單要快的多。

  利用標(biāo)準(zhǔn)的壓縮距離NCD,我們就能檢測到與現(xiàn)存的類似的異常。當(dāng)觀察到的數(shù)據(jù)與給定的病毒的NCD很小時,Snort的NCD插件就能發(fā)出警報。這種比較花費(fèi)的時間也很長。然而,我們相信這種方法在對檢測病毒新變種初始檢測中是一個很有用的方法。只要有一種變異被認(rèn)定,我們就可以將新形式病毒簡化以致可以在傳統(tǒng)入侵檢測系統(tǒng)中處理。我們的方法不僅充滿希望而且為進(jìn)一步的開發(fā)留下了充足的空間:在本文中我們僅僅利用了標(biāo)準(zhǔn)的壓縮程序。這就使得我們可以比較超過一定長度的數(shù)據(jù)包和協(xié)議數(shù)據(jù),因為我們可以利用這些程序工具把它們壓縮的更小。也許壓縮程序特定目標(biāo)是壓縮小的數(shù)據(jù)包以便給出更好的結(jié)果。也可以僅僅通過模擬壓縮來創(chuàng)作出新的壓縮工具版本,因為我們將不再解壓數(shù)據(jù)。

  最后應(yīng)當(dāng)提出是,我們的方法方法對能旨在改變傳輸數(shù)據(jù)的復(fù)雜性的病毒則是無能為力的。例如,它可能在實(shí)際的數(shù)據(jù)中插入任意數(shù)據(jù),進(jìn)而人工增加了數(shù)據(jù)的復(fù)雜性。然而,我們?nèi)匀幌嘈庞性S多不是以上情況也有很多使得病毒相當(dāng)困難的情況。

  6致詞

  a.McIntyre 和Alex Le Heux為本文提供了許多珍貴的意見,在此我們真誠感謝他們。同時感謝Anthony Aykut, LukasHey, Jorrit Kronjee, Laurent Oudot, Steven de Rooij以及 Donnie Werner幫助我們收集蠕蟲病毒數(shù)據(jù)。作者從EU的第五工程RESQ IST--37559和NWO vici工程-工程中受益匪淺。

  參考文獻(xiàn)

[1] E. Carrera and G. Erd′elyi. Digital genomemapping - advanced binary malware analysis.In Virus Bulletin Conference September 2004,2004.

[2] R. Cilibrasi, A. Cruz, Julio B.,and S. Wehner. Complearn toolkit.

/.

[3] T. Dullien. Personal communication.

[4] S. Evans and B. Barnett. Network securitythrough conservation of complexity, . MIL-COM 2002.

[5] H. Flake. Structural comparison of executableobjects. In DIMVA, pages 161C173, 2004.

[6] A. Kulkarni and S. Bush. Active network man-agementand kolmogorovcomplexity, 2001. Ope-nArch 2001, Anchorage Alaska.

[7] A. Kulkarni, S. Bush, and S. Evans. Detectingdistributed denial-of-service attacks using kol-mogorov complexity metrics, 2001. GE CRDTechnical Report 2001CRD176.

[8] M. Li and P. Vitanyi. An Introduction to Kol-mogorov Complexity and Its Applications (2nd

  Edition). Springer Verlag, .

[9] Security.is. Apache/php exploit.packetstormsecurity.org/0010-exploits/phploit.c.

[10] A. S. Tanenbaum. Computer Networks, 3rd edi-tion. Prentice-Hall, .

[11] Snort Development Team. Snort. the opensource network intrusion detection system.

  www.snort.org.

[12]. Virus encyclopedia./eng/viruslist.html.

[13] P. Vitanyi and R. Cilibrasi. Clus-tering by compression, .arxiv.org/abs/cs.CV/0312044.

淺談用delphi來編寫蠕蟲病毒4

{

  注:由于小弟水平有限,并且是小弟第一次寫文章,自然難免有很多不足的地方,還請大家包涵!

  如果你有什么意見和建議,也請給我來信,大家互相學(xué)習(xí),互相探討!

}

  前言:

  可能大家想到病毒,第一反應(yīng)就是可能是用asm來編寫,或者是vbsript,而高級語言如delphi就好象不能編寫一樣,其實(shí)事實(shí)并不是這個樣子的,只要我們花一些時間,照樣可以寫出簡短而高效的病毒程序來,一點(diǎn)也不輸那些用匯編寫出來的程序哦,

  一個病毒程序首先要短小,我們的目標(biāo)是經(jīng)過壓縮后控制在30k以下。用過delphi的朋友都知道,如果在uses里面加入forms,classes.....等就會使目標(biāo)文件非常的大,所以,在我們的程序里,我們要盡可能的不用這些庫。我們只用windows,winsock,shellapi,sysutils(這個里面包含了一些常用的函數(shù),比如對文件的操作,對字符串的操作,如果用自己的程序來代替,目標(biāo)文件會更加的小)

  首先,我們知道,一個病毒程序一般都分下面三個模塊:

①保護(hù)模塊;

②感染模塊;

③發(fā)作模塊。

  下面我們就從這三個模塊開始,分別實(shí)現(xiàn)他們的代碼。

  一)保護(hù)模塊。

  一般,我們都是把自身拷貝到系統(tǒng)的一些目錄里,比如%systemroot%

  那么,我們首先要取得這些特定的目錄的路徑

  sdk里面給我們提供了一個這樣的函數(shù)getsystemdirectory

  uint getsystemdirectory(

  lptstr lpbuffer,???// 存放返回的字符串的緩沖區(qū)

  uint usize???????????//?上面的緩沖去的長度

);

  相關(guān)的函數(shù)還有g(shù)etwindowsdirectory可以得到%windows%的路徑

  得到了系統(tǒng)的目錄后,第二步就是拷貝文件了。sdk為我們提供了一個函數(shù)copyfile

  bool copyfile(

  lpctstr lpexistingfilename,????// 源文件的路徑

  lpctstr lpnewfilename,???// 目標(biāo)文件的路徑

  bool bfailifexists???????????// 這是一個標(biāo)志,如果目標(biāo)文件已經(jīng)存在,是否強(qiáng)制覆蓋

);

  拷貝文件完畢后,我們來把這個文件設(shè)置為系統(tǒng)和隱藏,那么一般情況是看不見該文件的,

  除非選取查看所有文件,以及顯示受保護(hù)文件。

  同樣,介紹一個函數(shù)setfileattributes

  bool setfileattributes(

  lpctstr lpfilename,????????????// 需要設(shè)置的文件的文件名

  dword dwfileattributes????// 設(shè)置的值。

);

  我們這里要設(shè)置為隱藏和系統(tǒng),那么就為第二個參數(shù)傳遞file_attribute_hidden+file_attribute_system

  下面就

  關(guān) 鍵 字:病毒防治

淺談用delphi來編寫蠕蟲病毒4篇 用delphi怎么寫病毒相關(guān)文章: