在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹出一些含有令人费解内容的对话框。现今,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年里有了很大的变化,但人却没有变。