在Windows的早期年代,病毒游走于系統(tǒng)之間,偶爾刪除文件(但被刪除的文件幾乎都是可恢復(fù)的),并彈出一些顯示費(fèi)解內(nèi)容的對(duì)話框,F(xiàn)今,Windows惡意軟件鎖住你的數(shù)據(jù),劫持它索要贖金。它控制你的PC發(fā)動(dòng)攻擊,尋找保護(hù)信用卡號(hào)碼和口令的文件,更可怕的是,這些病毒還能夠讓核濃縮離心機(jī)瘋狂地旋轉(zhuǎn)—這真是令人討厭的東西。
20年間,Windows惡意軟件造就了許多價(jià)值數(shù)幾十億美元的殺毒公司,賦予足以裝滿亞歷山大大圖書館的文章以靈感,為成千上萬(wàn)的安全專業(yè)人士創(chuàng)造了職位,并給人們帶來(lái)無(wú)窮無(wú)盡的煩惱。
這些討厭的程序不是一夜之間從初學(xué)走路的孩子變成打遍天下無(wú)敵手的惡棍的。惡意軟件的成長(zhǎng)有著清晰的繼承性,其手段、方法和目標(biāo)隨著時(shí)間的發(fā)展而不斷變化。如同任何技術(shù)一樣,創(chuàng)新的思想指引著惡意軟件的前進(jìn)道路。讓我們看一看為達(dá)到邪惡目的的創(chuàng)造力是如何將Windows黑客技術(shù)變成價(jià)值數(shù)十億美元的產(chǎn)業(yè)的,以及Windows惡意軟件的成長(zhǎng)足跡指向了未來(lái)的何處。
早期病毒展示
一些最具創(chuàng)新性的并且(仍)廣泛使用的惡意軟件技術(shù)在Windows誕生之際就出現(xiàn)了,經(jīng)過(guò)Windows 3.0面市之前幾年時(shí)間的發(fā)展,為未來(lái)針對(duì)Windows的惡意軟件打下了牢固的基礎(chǔ)。
以第一個(gè)感染可執(zhí)行文件的病毒VirDem為例。Ralf Burger于1986年在德國(guó)發(fā)明了這種病毒,他將一個(gè)自復(fù)制程序粘在COM文件的前面,把文件原始的指令移動(dòng)至文件尾部。隨后不久出現(xiàn)了Cascade惡意軟件。這種出現(xiàn)在1987年的惡意軟件是第一種采用加密技術(shù)來(lái)偽裝自己的病毒。不幸的是,加密程序在所有被感染的文件中都是相同的,因此掃描程序很容易發(fā)現(xiàn)它。該病毒并不成功。
GhostBalls集兩種感染技術(shù)于一體,創(chuàng)造出第一種多技術(shù)或混合型威脅病毒。GhostBalls把自己附著在COM文件上,通過(guò)將自己復(fù)制到其它COM文件上來(lái)進(jìn)行傳播,但它還尋找“A:”驅(qū)動(dòng)器中的軟盤,如果找到,就將修改后的啟動(dòng)磁盤病毒復(fù)制到軟盤上。
為克服Cascade病毒先天的不足,1990年Mark Washburn推出了1260病毒,第一種多形態(tài)病毒。多形態(tài)病毒每一次被加密時(shí)就會(huì)變身—常常改變加密程序本身—從而大大增加了檢測(cè)病毒的困難。
在雷達(dá)盲區(qū)飛行是1990年出籠的另兩種病毒—Frodo和Whale--的犯罪手法。這兩種病毒因千方百計(jì)隱藏自己而被稱為“stealth”病毒。 Frodo讓W(xué)indows在被感染的COM文件的大小上說(shuō)謊,使這些文件看起來(lái)像沒(méi)有被感染一樣。Whale—長(zhǎng)度9KB,是當(dāng)時(shí)長(zhǎng)度最大的病毒—利用 Frodo技術(shù)隱藏自己的長(zhǎng)度,并利用1260的獨(dú)門絕技來(lái)變身。這兩種程序都沒(méi)有感染太多的東西,但它們?cè)陔[身方面技?jí)?ldquo;群毒”。
二十年后,Windows惡意軟件的萬(wàn)神殿塞滿了被感染的可執(zhí)行程序、多技術(shù)、變形和stealth技術(shù)。
Microsoft宏病毒的興起
Windows 3.0于1990年5月22日上市,這種平臺(tái)很快就火了起來(lái)。除了Michelangelo(一種摧毀Windows機(jī)器、將“計(jì)算機(jī)病毒”一詞注入到地球上幾乎所有語(yǔ)言中、幫助維持利潤(rùn)豐厚的殺毒產(chǎn)業(yè)的普通引導(dǎo)區(qū)病毒)之外,病毒創(chuàng)新停滯不前了。一直到1995年夏天,新的魔鬼出現(xiàn)了:有人——我們現(xiàn)在仍不知道是誰(shuí)——利用WordBasic(MicrosoftWord背后的宏語(yǔ)言)編寫了一種非常簡(jiǎn)單的宏病毒。
當(dāng)使用Word 6打開(kāi)文檔時(shí),被這種病毒感染的文檔就向Word缺省模板NORMAL.DOT添加4個(gè)宏。隨后,NORMAL.DOT會(huì)感染你隨后保存的任何Word文檔。這個(gè)宏攜帶無(wú)害的有效載荷,只是顯示一個(gè)古怪的對(duì)話框。宏代碼中包含 “That's enough to prove my point”的正文--因此這種病毒被取名為Concept。
水閘打開(kāi)了。1995年8月,多位Microsoft雇員告訴我,Microsoft的Redmond園區(qū)中所有PC中的80%以上都被Concept感染了。Concept在幾周內(nèi)傳遍全世界。殺毒公司忙作一團(tuán),試圖防止這種全新的攻擊向量,而病毒編寫者在1996年廣為傳播的宏病毒構(gòu)建工具的幫助下大顯身手。Word遭受到了最初的打擊,但以后Excel電子報(bào)表也受到攻擊,第一次是Laroux,隨后是1,000多種宏病毒的攻擊。
Microsoft在Office 97中加強(qiáng)了安全性,但是病毒編寫者迅速找到了如何繞過(guò)安全控制機(jī)制的辦法,許多老病毒利用Microsoft的自動(dòng)升級(jí)工具,自動(dòng)變身轉(zhuǎn)移到新系統(tǒng)。直到殺毒廠商開(kāi)始占據(jù)上風(fēng),但主要是靠蠻力。最終,Microsoft在Office 2000中讓感染變得更加困難后,這股病毒浪潮的勢(shì)頭才緩下來(lái)。即使這樣,Word和Excel宏攻擊仍是惡意軟件世界中的主力軍,直到Microsoft在Office 2007改變了缺省文件格式之后才有所緩解。
世紀(jì)末:通信攻擊
當(dāng)一位臺(tái)灣程序員,Chen Ing Hau,創(chuàng)造了CIH(也叫切爾諾貝利)時(shí),針對(duì)Windows的惡意軟件進(jìn)入了全盛期,把stealth感染提升到一個(gè)新高度。
利用可移植的可執(zhí)行文件格式,CIH縮身變?yōu)镋XE文件的一部分,在不改變可執(zhí)行文件大小的情況下感染它們。那些運(yùn)氣不佳的在1999年4月26日喚醒Windows 95、98或ME系統(tǒng)上的這些間隙病毒的人,面對(duì)的是紋絲不動(dòng)的PC。CIH是一種破壞性的病毒,但它并不會(huì)自己傳播。
電子郵件成為這種病毒強(qiáng)有力的提交機(jī)制——壞人們沒(méi)有放過(guò)這點(diǎn),他們的“Good Times”惡作劇(“如果你閱讀主題為‘Good Times’的郵件,你的硬盤將被摧毀”)讓幾百萬(wàn)人感到恐懼。
惡意軟件技術(shù)的下一個(gè)大飛躍伴隨著在寫著“Happy New Year 1999!”標(biāo)題窗口中的焰火到來(lái)了。Happy99(也叫SKA)通過(guò)劫持一個(gè)Windows程序進(jìn)行感染,它接管通信程序Wsock32.dll。如果你從被感染的機(jī)器發(fā)送郵件,假冒的Wsock32.dll提交這個(gè)郵件,但隨后向同一個(gè)收信人發(fā)出第二封帶有附件(通常叫Happy.exe)的空白信件。如果收件人雙擊這個(gè)文件,他們看到屏幕上顯示焰火—以及可惡的感染—的問(wèn)候。
在Happy99之前,另一些惡意軟件利用同樣的技術(shù)掛在Windows上,但Happy99具有接管通信程序的遠(yuǎn)見(jiàn);因此,它大量傳播。讓這種病毒如虎添翼的是:Microsoft自Windows 95起停止顯示文件擴(kuò)展名,因此多數(shù)收到Happy99.exe的用戶只看到“Happy99”文件名,并且常常會(huì)點(diǎn)擊它。
隨后,新澤西的David L. Smith編寫了Melissa。這種宏病毒掃描被感染PC的Outlook地址簿,把自己的副本發(fā)給地址簿的前50個(gè)地址。這是許多Windows垃圾郵件制造病毒中的第一個(gè)成功者。
Melissa繁殖力非常強(qiáng),它在1999年3月26日造成世界各地的Exchange服務(wù)器癱瘓。CERT說(shuō),一臺(tái)服務(wù)器在45分鐘內(nèi)收到了 32,000個(gè)Melissa副本。Smith先生因自己的行為在聯(lián)邦監(jiān)獄中坐了20個(gè)月的牢。幾個(gè)月后,另一種破壞性病毒,ExploreZip,也利用Outlook地址簿傳播,這種病毒有著通過(guò)重寫Office文檔來(lái)刪除文檔的惡習(xí)。
20世紀(jì)末,惡意軟件編寫者利用了運(yùn)行Windows Script Host的Visual Basic腳本:一種將在隨后幾年里大獲成功的組合。
BubbleBoy病毒帶來(lái)第一個(gè)大獲成功的drive-by攻擊。如果有人發(fā)給你一封受感染的信件——不一定附著文件——你在Outlook打開(kāi)這封件或在Outlook Express中預(yù)覽它,就會(huì)中招。BubbleBoy利用了HTML和Outlook在不發(fā)出警告的情況下運(yùn)行嵌入式 Visual Basic腳本的嗜好。
根源問(wèn)題?在那些日子里,Outlook利用Internet Explorer顯示基于HTML的電子郵件。即使你從沒(méi)有看到運(yùn)行著的IE,它仍在運(yùn)行,隱藏在后臺(tái),不經(jīng)允許運(yùn)行VBS程序。幾年后,Klez蠕蟲利用了同樣的辦法,但卻是利用了一個(gè)不同的安全漏洞。
2000年5月5 日,ILOVEYOU蠕蟲發(fā)動(dòng)了襲擊,而PC過(guò)去的日子將一去不復(fù)返。這是一次推動(dòng)今天惡意軟件的社會(huì)工程學(xué)技術(shù)的令人難忘的展示,被感染的文件附在信件上傳播。信件的主題是:ILOVEYOU,附件的文件名是LOVE-LETTER-FOR-YOU.TXT.vbs。由于 Windows隱藏.vbs文件擴(kuò)展名,許多人(有傳言說(shuō),包括一位非常高級(jí)的Microsoft經(jīng)理)雙擊這個(gè)表面上看起來(lái)像是TXT文件的附件,結(jié)果卻是自投羅網(wǎng)—造成了與Happy99蠕蟲襲擊許多人同樣的致命缺陷。
ILOVEYOU蠕蟲重寫許多不同類型的文件,然后劫持Outlook地址簿,向地址簿中的每個(gè)地址發(fā)送副本,這點(diǎn)與Melissa很像。它于2000年5月4 日開(kāi)始傳播。到5月13日,5五千萬(wàn)臺(tái)PC被感染。
隨后,幾種取得巨大成功的惡意軟件攻擊沿著ILOVEYOU的技術(shù)足跡繼續(xù)前進(jìn)。2001年,Anna Kournikova出現(xiàn)在名為 AnnaKournikova.jpg.vbs的電子郵件附件中。Sircam劫持被感染PC上的一個(gè)Word或Excel文件,并利用同樣的技術(shù)發(fā)送被劫持文件的被感染的版本。許多機(jī)密文件被發(fā)送給無(wú)關(guān)的收件人。Sircam還通過(guò)把自己復(fù)制到網(wǎng)絡(luò)共享中傳播。
僵尸網(wǎng)(botnet)的開(kāi)始
富有進(jìn)取心的程序員并不滿足于通過(guò)Internet傳播惡意軟件,他們開(kāi)始研究利用Internet直接控制Windows PC的途徑。
1999年12月,一位自稱Vecna的巴西程序員發(fā)布了一種叫做Babylonia的新木馬。Babylonia集CIH式的間隙感染和 Happy99式的Winsock替換于一體,為惡意軟件基因庫(kù)帶來(lái)了一個(gè)重要的新型能力:它每隔一分鐘,回連控制端一次,如果有了新版本,就更新自己。
盡管其作者聲稱Backorifice并不是為破壞系統(tǒng)而發(fā)明的,但它肯定在Windows 95和98系統(tǒng)上提供了這種能力。同今天的僵尸網(wǎng)控制器非常像,BackOrifice具有遙控能力——通過(guò)Internet從一臺(tái)PC運(yùn)行另一臺(tái)PC的能力。BackOrifice并不是病毒;確切地說(shuō),它是等待被病毒或木馬放置的有效載體。
Sobig蠕蟲開(kāi)創(chuàng)了第一個(gè)商業(yè)上取得成功的垃圾郵件制造僵尸網(wǎng),它通過(guò)被感染的電子郵件附件做到了這點(diǎn)。在某個(gè)時(shí)刻,在Internet上傳送的20封電子郵件中就有一封包含被染上Sobig的附件。Sobig收集被感染的計(jì)算機(jī)上的電子郵件地址。
入侵Windows
到2001年,多數(shù)惡意軟件通過(guò)在Internet上發(fā)送被感染的文件或通過(guò)將被感染的文件放在網(wǎng)絡(luò)共享中來(lái)傳播。那一年,惡意軟件編寫者擴(kuò)大了他們的攻擊面,直接瞄準(zhǔn)Windows本身存在的安全漏洞。它們?cè)趶?fù)雜性上也躍升了幾級(jí)。一些惡意軟件編寫者不再熱衷于摧毀數(shù)據(jù)或惡作劇,他們將自己的卓越才能轉(zhuǎn)向了賺錢。
臭名昭著的CodeRed感染了300,000多臺(tái)Windows Servers,它利用一個(gè)緩沖區(qū)溢出漏洞控制IIS并篡改運(yùn)行在被感染的服務(wù)器上的Web網(wǎng)站網(wǎng)頁(yè)。被CodeRed感染的機(jī)器發(fā)動(dòng)噴射(spray)攻擊,隨機(jī)向Internet上的機(jī)器發(fā)送緩沖區(qū)溢出包。Microsoft在 CodeRed出現(xiàn)前的1個(gè)月修補(bǔ)了這個(gè)漏洞,但管理員沒(méi)有很快打這個(gè)補(bǔ)丁。經(jīng)過(guò)完全改寫的CodeRed II,不僅發(fā)動(dòng)噴射攻擊,而且還攻擊本地機(jī)器。
隨后,Nimda青出于藍(lán)而勝于藍(lán)。它利用了5種不同的感染向量:一種最高級(jí)的混合病毒。Nimda利用電子郵件附件感染。它感染沒(méi)有保護(hù)的網(wǎng)絡(luò)共享;它試圖控制網(wǎng)站;它以CodeRed方式攻擊服務(wù)器;它可以利用CodeRed留下的后門。
2003年,SQL Slammer橫掃了Internet,在它出現(xiàn)的頭10分鐘內(nèi)感染了75,000臺(tái)機(jī)器。這種蠕蟲利用SQL Server和 SQL Desktop Engine中的一個(gè)安全漏洞,而這個(gè)漏洞早在半年前就被修補(bǔ)了。SQL Slammer不在硬盤上留下自己的拷貝,它選擇呆在內(nèi)存中:重新啟動(dòng)被感染的機(jī)器,以后這臺(tái)機(jī)器就不再被感染了。
同SQL Slammer一樣,Blaster(也叫Lovsan)以極快地速度在Internet上傳播,它掃描連接在Internet上的機(jī)器并傳播自己。同Slammer一樣,它利用了一個(gè)已經(jīng)被修補(bǔ)的漏洞。與Slammer不同的是,Blaster攻擊每一臺(tái)Windows XP和 Windows 2000計(jì)算機(jī)。其有效載體試圖通過(guò)DDoS攻擊讓Microsoft的windowsupdate.com癱瘓。
今天,金錢流向了何處?
幾年前組成的僵尸網(wǎng)仍在運(yùn)行中——一個(gè)向利潤(rùn)豐厚的惡意軟件行業(yè)提供資金的家伙們很清楚的事實(shí)。
這些程序后面的專業(yè)人員容不下競(jìng)爭(zhēng)對(duì)手。Mydoom緊隨Sobig而來(lái)。Mydoom是另一種電子郵件附件僵尸網(wǎng)生成器。一場(chǎng)惡意軟件戰(zhàn)爭(zhēng)在 Mydoom、Netsky、Sasser(它拿下了成千上萬(wàn)家公司)和Bagel之間爆發(fā),每一種病毒都試圖擊敗另一種病毒。德國(guó)一名18歲的計(jì)算機(jī)科學(xué)學(xué)生因開(kāi)發(fā)Sasser和Netsky.AC變種而被宣布有罪。Zlob木馬采用了新的欺騙手段,把自己偽裝成一種被認(rèn)為運(yùn)行某種視頻文件所必需的視頻編解碼器。Zlob有幾十種變種,其中的多數(shù)因?yàn)榱髅⒍拒浖舛劽哼@是一項(xiàng)賺錢的消遣。Zlob過(guò)一段時(shí)間就變會(huì)變形,5年后變成了臭名遠(yuǎn)揚(yáng)的 Alureon rootkit。
2007年,Storm Worm出現(xiàn)了。它是又一種電子郵件附件僵尸網(wǎng)生成器,但有一點(diǎn)不同:Storm Worm不是通過(guò)一臺(tái)服務(wù)器運(yùn)行僵尸網(wǎng),而是借用對(duì)等技術(shù)實(shí)施分散控制。100多萬(wàn)臺(tái)Windows PC被感染。2008年底,Storm/Waledac僵尸網(wǎng)大爆發(fā),不過(guò)據(jù) Symantec說(shuō),它在上個(gè)月再次蘇醒,開(kāi)始發(fā)送垃圾郵件。Waldec的操縱者正為第二輪大爆發(fā)積蓄力量。
過(guò)去幾年里,其它許多僵尸網(wǎng)走馬燈似地你方唱罷我登場(chǎng),其中的多數(shù)因阻斷通信線路和阻塞被控制的服務(wù)器而被阻止或被大大削弱。但其中的一些仍在制造麻煩,其中最著名的是Zeus和Conficker。Zeus是一種DIY僵尸網(wǎng)工具,它收集被感染機(jī)器上的口令、賬戶號(hào)等信息,然后把它們發(fā)送到選擇的存放區(qū)。Conficker是一種被認(rèn)為處于休眠狀態(tài),沒(méi)有被徹底根除的僵尸網(wǎng)。
Waledac等制造垃圾郵件的僵尸網(wǎng)去年10月受到了Microsoft律師的痛擊。最大的垃圾郵件僵尸網(wǎng)之一,Bredolab,被荷蘭國(guó)家犯罪總署搗毀(盡管沒(méi)有被徹底消除)。
惡意軟件將向何處發(fā)展
隨著Windows XP的行將就木,將被Windows 7取代,攻擊Windows的難度增加了幾個(gè)數(shù)量級(jí)。小惡意軟件參與者已經(jīng)被擠出市場(chǎng),大惡意軟件參與者正在等待新的機(jī)會(huì),尋找不多的容易摘到的果實(shí)。
但是,Windows零天安全漏洞仍很值錢,那些找到它們的人不太可能只是利用它們來(lái)制造古怪的對(duì)話框。
因此,可以預(yù)期Windows惡意軟件將繼續(xù)以創(chuàng)新的方式演進(jìn)。一個(gè)顯著的趨勢(shì)是Microsoft領(lǐng)地之外的攻擊的興起。例如,Koobface運(yùn)行在Windows上,但它被用于從Facebook和MySpace收集信息,說(shuō)服Facebook用戶安裝流氓惡意軟件殺毒程序,否則就會(huì)把社交網(wǎng)信息變?yōu)殄X財(cái)。
另一個(gè)趨勢(shì)將可能將圍繞著工業(yè)間諜發(fā)展。不管你信不信,Stuxnet蠕蟲是為破壞伊朗核濃縮離心機(jī)而設(shè)計(jì)的,毫無(wú)疑問(wèn),一個(gè)能力非常的團(tuán)隊(duì)構(gòu)建了利用多個(gè)零天Windows漏洞和Siemens Step 7代碼的驚人組合。預(yù)計(jì)有動(dòng)機(jī)的組織將混合各種創(chuàng)新威脅,以達(dá)到他們想要達(dá)到的目的。
至于惡意軟件構(gòu)建工具,ZeuS看起來(lái)才是個(gè)開(kāi)始。天才的惡意軟件構(gòu)建工具發(fā)明者可以靠構(gòu)建惡意軟件民主化過(guò)上體面的生活,同時(shí)面臨的風(fēng)險(xiǎn)大大降低。有了可待價(jià)而沽的工具,這些發(fā)明者不必為分發(fā)惡意軟件被抓著、維護(hù)存放網(wǎng)站或?qū)⑿畔⒆兂慑X而操心。最近,Brian Krebs報(bào)告說(shuō),ZeuS和 SpyEye顯然相互勾結(jié)在一起,最新的ZeuS源代碼只需花上1萬(wàn)美元就可以買到。有了源代碼,你可以開(kāi)發(fā)和銷售你自己定制的ZeuS構(gòu)建工具?梢园堰@認(rèn)為是一幅惡意軟件多級(jí)營(yíng)銷圖。
不過(guò),惡意軟件創(chuàng)新的最多產(chǎn)的病毒可能將出現(xiàn)在社會(huì)工程學(xué)領(lǐng)域。畢竟,盡管攻擊Windows程序變得更加困難了,但攻擊最薄弱的環(huán)節(jié)同過(guò)去一樣容易:用戶耳朵之間的環(huán)節(jié)。我們將看到更多的缺點(diǎn),更多的假“Windows技術(shù)支持”呼叫,更多的欣然向任何聲稱可以幫助修補(bǔ)漏洞的人交出敏感信息的不知所措的用戶。
Windows惡意軟件在過(guò)去20年里有了很大的變化,但人卻沒(méi)有變。