恶意移动代码是一段计算机程序,能够在计算机或网络之间传播,未经授权、故意修改计算机系统。一般来说,公认的恶意移动代码的变异型可以分为3类:病毒类、蠕虫类和木马程序。很多恶意程序的组件就像这些类型中的两个或者更多,称作混合威胁。
简介恶意移动代码的生命周期主要分为发现、利用、感染、复制。
与人类不同,恶意软件不需要休息和进食,它们每时每刻都在进行生产复制周期。自动化的攻击往往非常擅长于捕捉并利用漏洞,只有在补丁关闭漏洞使得科技将它们离弃远去之时,它们才会随着时间而消逝。但是一旦给予它们传播的机会,它们会立即疯狂起来。
红色蠕虫代码出先于2001年6月16日,攻击了没有安装补丁的微软互联网信息服务器(IIS)。这似乎是很久以前的事情吗?即便是很多年之后,成千上万曾经损害系统的红色代码仍然存活在网络中。直到日前,即使你在计算机当中再也找不到一个软盘,有关上世纪80年代末到90年代初的软盘引导扇区病毒传播的报道仍然频繁出现。你仍然可以了解知道引导扇区病毒最初是在1993~1994年发布的,如Monkey(猴子)、Form(形式)、Stoned(扔石头)、New Zealand(新西兰)、Anti-Exe(反执行)以及Michelangelo(米开朗琪罗)均可在网络上的感染名单中找到。病毒高效的感染及复制循环是保证其存活的重要手段。
现代的恶意软件始终延续着从前的技术来繁殖及存活。根据赛门铁克安全机制应变中心的研究,图一列举了部分恶意软件的名单,包含最近20年出现的极度威胁的木马程序、病毒和蠕虫病毒。正如联邦调查局的头号名单那样,该名单包含的恶意软件是被很多在前线工作的安全人员所熟知的,他们不得不在公司的网络中与这些恶意软件战斗。
具体介绍计算机病毒病毒是一种能够用自我复制的程序,通过利用主文件或者代码来复制。多数的病毒能够感染文件,所以一旦感染病毒的主文件运行,那么病毒也会随着运行。换一种说法,病毒感染其实就是病毒在宿主中的自我复制和替代自身代码,如果感染病毒的主文件运行的话,那么病毒也随之运行。病毒能够感染程序文件、引导扇区、磁盘分区表、数据文件、内存、宏程序和脚本文件。
病毒分析 病毒(或真正的恶意软件程序)往往通过有效负载进行破坏。除了必要的复制之外,绝大多数的恶意程序文件并不携带具有毁灭性的有效负载。这意味着它们不是创造者故意设计用来制造破坏的。然而,由于其自身的特性,使得它们不经过合理的授权就处理并修改其他文件,最终导致一种或另一种程序崩溃。对于大多数攻击者来说,常规错误校验并不在优先级列表中。
至少,“无害的”病毒占领CPU周期和存储空间。有效负载可能在本质上是无害的,但其会产生奇怪的噪音、不正常的图片或者弹出文本信息。有些病毒启动计算机扬声器播放胜利之歌,告诫员工在下午5点下班。还有的病毒会任意插入按键,使键盘用户认为他们最近打字出错率很高。
当然,有效负荷可以进行故意破坏、删除文件、毁损数据、复制机密信息、格式化硬盘以及删除安全设置。有些病毒非常狡猾,它们会从用户的硬盘中获取文档,并将这些文档随机地发送给用户电子邮件地址列表中的成员。恶意软件会将涉密的财务报表和业务计划发送给竞争对手。一封发送给同事的情书曝光了私人办公室内的不正当事务,而这封情书恰巧被发送到他的配偶以及所有的亲戚那里。更有甚者,有些病毒能够感染电子表格,将数字0变成字母O,使单元格的数字内容变成了文本内容,最后得到了数值0。电子表格的用户可能认为表格中求和得到的数字是正确的,但是隐藏的O会使得行列相加发生错误。当文档被复制或者打开的时候,一些病毒便会乘虚而入,它们会随机改变文档中的两个字节。这会慢慢地破坏硬盘上所有的文件,而且很多时候这意味着,所有的磁带备份包含的只是被感染和破坏的文件。病毒已经知道以这样的方式加密硬盘内容,如果你要删除病毒的话,这些文件将会不可恢复。一种称之为“卡里古拉”的病毒成功证明了病毒是可以窃取私人密钥的。计算机病毒可以做很多事情,但是也受到创造者的想象力以及计算机本身物理和逻辑的限制。
病毒是如此强大和不可以预知,因此很多都市传奇都归功于病毒可以做到一些不可能做到的事。病毒不能损坏硬盘的读写磁头,使人触电身亡或者引发火灾。但是,有人指出引发火灾这种情况也很可能发生。当病毒集中单一像素在计算机屏幕上很长时间的话,会导致显示器着火。然而多数的管理员可以肯定地告诉你,他们使用多年的数以百万计显示器从没有发生过火灾。
计算机蠕虫计算机蠕虫使用自己的编码进行复制,尽管它可能依赖于其他相关代码的存在。蠕虫关键在于它不直接修改其他主代码而进行复制。蠕虫会游荡在互联网中,尝试一个又一个的漏洞,直到找到合适的漏洞进而损害计算机,假如成功的话,它会将自己写入计算机,然后开始再次复制。
熊熊虫病毒Bugbear就是互联网蠕虫中的一个。它夹带在一封虚假的电子邮件的附件当中,时间是2003年6月。当用户只是预览信息的时候,它能在没有补丁的电子邮件系统中启动。多数情况下,它需要终端用户打开文件附件才能开启。一旦打开的话,它会感染计算机,获取用户邮件系统中的邮件地址,进而将自己发送给新的收件人。它将自己添加在Windows启动项中,所以每次Windows系统启动的时候它就跟随启动。熊熊虫病毒Bugbear寻找并尝试进入弱密码保护的网络共享,进而终止反病毒程序。它也能激活键盘记录器程序,该记录器程序记录了用户的击键次数,以此来获取密码。捕获到的击键次数以及任何缓存发现的拨号密码会以电子邮件的形式发送,而该邮件地址是10个预定义电子邮件地址中的一个。最后,熊熊虫病毒在端口1080上开启后门服务,允许攻击者篡改和删除文件。熊熊虫病毒是2003年最成功的蠕虫之一。
攻击者可能会研究单台主机上各种各样的漏洞,但正在复制的蠕虫往往会攻击每台主机上相同的漏洞。举例来说,SQL“杀手”会针对它所发现的所有具有漏洞的系统进行利用,即使它的攻击只对那些未打补丁的Microsoft SQL Server 2000或者Microsoft Desktop Engine(MSDE) 2000系统平台起作用。蠕虫向1434端口(Microsoft SQL Server的开放端口)发送376字节溢出攻击。不到1%的互联网主机系统很脆弱。任意攻击数量庞大的主机是为了摧毁小数量的主机,这种方式是有效的吗?显然这种方式很有效,SQL“杀手”在最初的10分钟内感染了90%的潜在可感染主机,而在接下来的每8.5秒钟,这个数据会加倍,直到最后总计破坏200万台主机。SQL“杀手”本可以感染更多的主机,但是快速的复制导致大面积的网络瘫痪和拒绝服务事件,事实上降低了传播的速度。
计算机世界是幸运的,因为带有混合威胁特征的尼姆达病毒并不包含故意破坏的攻击负载。然而,大多数的蠕虫只利用一个漏洞,而尼姆达病毒会尝试利用多个漏洞。尼姆达病毒在2001年9月开始在全球蔓延,它采用多种传播渠道感染计算机。首先,它能以邮件附件的形式传播。当执行该病毒后,它会寻找利用密码保护级别较弱的网络共享,然后打开新的连接点。它还会攻击低版本的IIS服务器,将已感染的JavaScript编码植入网页。已感染的JavaScript编码通过强制下载被感染的电子邮件,进而感染网页访问浏览器。计算机安全供应商依据威胁的种类进行了归类,指出尼姆达病毒拥有4~12种漏洞利用机制。假如尼姆达病毒不能以一种方式感染主机,那么它会采用另一种方式。幸运的是,SQL“杀手”和尼姆达都不包含故意破坏的攻击负载。未来的蠕虫会瞄准所有Windows设备中共同的漏洞(比如未打补丁的互联网漏洞),并采用一定的传播路径对计算机造成更多更大的破坏。
邮件蠕虫病毒邮件蠕虫是社交工程和自动化相结合而成的一种奇怪的产物。它们以信息或者文件附件的形式出现到用户的收件箱中,而这些邮件往往来自于朋友、陌生人或者公司。它们伪装成色情邮件、小游戏、微软的官方补丁或者来自于数字市场的非官方应用程序。通常这些附件有着令人无法抗拒的魅力,即便计算机用户被多次警告,仍然会打开这封意想不到的邮件。
由于互联网邮件蠕虫病毒很难被追踪到,所以它们在网络上很流行。病毒创造者制造出这些恶意病毒后,他们会用匿名邮件服务器来发送该病毒。他们可能花钱去网吧,利用网吧终端来释放蠕虫病毒,这使得追踪过程很复杂。多数时候,他们会将感染的邮件发送给一个无监管的邮件列表,那么成千上万接收到邮件的用户并不会怀疑该邮件是否携带病毒。而用户也因此而被迫执行了病毒程序。
蠕虫病毒首先会采用一种方式修改计算机的设置,当计算机被启动后,蠕虫病毒总能被加载到内存中(第4章会涉及更多这方面的内容)。之后它会寻找合适的邮件地址,并将自身发送过去。它可能利用微软消息应用程序编程接口(MAPI)或者通过注册中心查找通讯录文件的实际位置。无论哪种方式,它都会将自身尽可能多地发送出去,它会找寻到邮件地址并伪造发件人地址。以下的示例代码就能很好地说明Visual Basic蠕虫病毒通过利用微软MAPI接口获得地址并将自身发送出去的过程:
CreateObject("Outlook.Application") GetNameSpace("MAPI") For Each X In AddressLists For 1 To AddressEntries.Count AddressEntries(Y) If Z = 1 Then Address Else End If Next Subject = "Re: You g0tta see th1s!"Body = "I can't believe I have these pictures."Attachments.Add WScript.ScriptFullName Send 为了防止利用漏洞,本案例中的恶意代码已被故意修改。本案例意在说明邮件蠕虫是如何进行自我复制的。
邮件蠕虫病毒可以使用现有的SMTP服务器或者自身的SMTP引擎。在执行蠕虫病毒后,大多数被感染的用户注意到他们的计算机极度缓慢,其中有些用户知道这是什么情况并且关闭计算机。但是其他人只是当作常规的计算机问题,并且也检测不到蠕虫病毒的存在。不论哪种方式,蠕虫都已经侵入,正在感染着众多新的主机。
特洛伊木马程序特洛伊木马程序(或称为特洛伊)伪装成合法程序并被没有防备的用户激活。木马程序被执行后,为了在后台从事恶意活动,它还试图继续伪装成其他的合法程序(如屏幕保护程序)。很多人的计算机在感染木马程序数月甚至数年之后,可能都没有发现过它的存在。不伪装成合法程序而直接开始恶意活动的木马程序称为直接作用式木马程序。由于用户能很快发现破坏,并且不太可能或者不能将该病毒传播给其他没有防备的用户,所以该种木马程序传播得并不广泛。
JS.ExitW是直接作用式木马程序之一。当不知情的用户浏览恶意网站时,该病毒程序会被下载并激活。有一个例子,当用谷歌引擎搜索时,该木马程序以伪装成贾斯汀·汀布莱克的图片集形式出现。这个链接并不会连接到贾斯汀的图片集,而是下载并安装JS.ExitW木马程序。执行后,JS.ExitW会以HTML应用程序的形式自行安装到Windows启动文件夹中,并关闭Windows。由于它在启动文件夹中,这将导致被感染的计算机一直处在启动和关闭的无限循环中。幸运的是,这种病毒不会造成真正的危害。然而,很多木马程序有着较高的危险级别。1
本词条内容贡献者为:
王慧维 - 副研究员 - 西南大学