恶意移动代码是一段电脑程式,能够在计算机或网路之间传播,未经授权、故意修改计算机系统。一般来说,公认的恶意移动代码的变异型可以分为3类:病毒类、蠕虫类和木马程式。很多恶意程式的组件就像这些类型中的两个或者更多,称作混合威胁。
基本介绍
- 中文名:恶意移动代码
- 外文名:Malicious Mobile Code
- 类型:电脑程式病毒
简介
恶意移动代码的生命周期主要分为发现、利用、感染、複製。
与人类不同,恶意软体不需要休息和进食,它们每时每刻都在进行生产複製周期。自动化的攻击往往非常擅长于捕捉并利用漏洞,只有在补丁关闭漏洞使得科技将它们离弃远去之时,它们才会随着时间而消逝。但是一旦给予它们传播的机会,它们会立即疯狂起来。
红色蠕虫代码出先于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。由于它在启动资料夹中,这将导致被感染的计算机一直处在启动和关闭的无限循环中。幸运的是,这种病毒不会造成真正的危害。然而,很多木马程式有着较高的危险级别。