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