6.2.1 宏病毒概述

6.2.1 宏病毒概述

在恶意代码出现的早期,反病毒研究者就在讨论宏病毒了。20世妃80年代,两位出色的研究者Fred Cohen博士和Ralf Burger对此进行了讨论,1989年Harold Highland曾经写过一篇关于安全方面的文章(A Macro Virus),反病毒界知道了实现宏病毒的可能性,并且为它们在Lotus 1-2-3和Word Perfect中出现而感到困惑。或许病毒制造者正在等待合适的程序出现。这个合适的程序就是Microsoft Word。第一个做微软Office宏病毒于1994年12月发布。到1995年Office宏病毒就已经感染了世界上几乎所有的Windows计算机。曾几何时,宏病毒让其他类型的恶意代码都黯然失色。

1.宏病毒的运行环境

在Word中,宏是由一系列的Word命令和指令组合在一起形成的一个命令(就像之前DOS中的批处理文件一样),以实现任务执行的自动化,用来完成所需任务。微软公司在Ofifce软件中,提供“宏”功能,目的是为了让用户能够用简单的编程方法编制一些小程序(即“宏”),来简化一些经常性的日常操作。宏的最典型应用包括加速日常的编辑和格式设置,组合多个命令,使对话框中的选项更易于访问,使一系列复杂的任务自动完成等。宏病毒与有用的正常宏采用相同的语言编写,只是这些宏的执行结果是有害的。

宏语言是一种编程语言,但是有自己的弱点。首先,宏语言不能脱离母程序运行。这就导致了第二个弱点,宏语言是解释型的,而不是编译型的。每一个宏命令要在其运行时融入相应的位置,这种解释非常耗费时间。Office新的宏语言实际上是部分编译成中间代码,成为p代码,但是p代码仍然需要解释执行。

Word宏病毒是一些制作病毒的专业人员利用Microsoft Word的开放性而专门制作的一个或多个具有病毒特点的宏的集合,这种病毒宏的集合影响到计算机的便用,并能通过DOC文档及DOT模板进行自我复制及传播。

尽管宏病毒可以在任何一个功能丰富的宏语言应用程序下创建,但它多数还是在微软Office程序下运行的。根据InfoWorld杂志的说法,世界上有超过9 000万的微软Office用户,因此多数宏病毒是为Word和Excel设计的。

2.宏病毒的特征

宏病毒在很多方面与其他计算机病毒相似,如包含有在某些条件下自动复制的代码,这些代码可以造成破坏、显示一些信息、做一些程序可以做的任何事等。另外,宏病毒还具有以下不同的特征。

(1)从编写语言上看,引导型病毒总是使用汇编语言编写;感染可执行文件的病毒常用汇编语言编写(有时也用高级语言如C语言);宏病毒总是使用宏语言编写。

(2)从感染方式上看,为感染引导型病毒,你必须使用感染引导型病毒的软盘启动机器;为感染文件型病毒,你需要运行带病毒的文件;而感染宏病毒,你只需双击染毒的文档,查看它。

(3)因为宏病毒是用宏语言写的,因此,宏病毒就可以在任何能够理解和解释宏指令的环境中运行和传播。如概念病毒(Word.Cocnept),它是用Word Basic编写的,使用了两个宏(AutoOpen和FileSave As),而这两个宏只能在英文版的Word中理解和解释。而英文版的Word,在DOS、win95、win98、NT等平台上运行,因此,这个宏病毒就能在这些软件平台上传播。这也是宏病毒另一个特别的地方,某些宏病毒(如上面介绍的概念病毒)只能在英文版的Word中感染和传播,而在其他语言,如德语、日语、朝鲜语等版本的软件中不会感染。不过中文版的Word是采用英文版的内核,因此,也是可能感染这类宏病毒的。

(4)宏病毒总是针对特别的某一类应用软件的。如一种名叫Laroux的宏病毒只感染Excel用户,名叫绿色条纹(Green Stripe)的宏病毒只感染Ami Pro用户,而Word宏病毒只感染微软Word软件。因此WordPerfect不会感染Word宏病毒,Lotus123不会感染Excel宏病毒,国内的字处理软件也不会感染宏病毒。

(5)一个宏病毒只是包含一系列宏命令,这些宏必须被保存在应用软件存储宏的地方。以Word为例,宏命令只是被存储在模板中,并没有在文档中。Word把所有文件名后缀为DOT的文件识别为模板,其他识别为文档。然而,一种有着模板结构(包含宏)的文件,也能够包含文本内容,从外表上看起来像一个标准的文档,这种模板能够以任何的扩展名存储。当这种文件被载入系统时,一方面表现为模板(所有的宏得到运行),另一方面表现为文档(里面可以看到一些文本内容)。所以,某些Word宏病毒不但感染通用模板(NORMAL.DOT),而且把感染的文档文件转化为以.DOC作为扩展名的模板,用户没有办法区分.DOC文件是包含文本内容的模板还是真实的文档。正是这样,宏病毒得以在用户不经意情况下轻而易举地对用户的计算机进行感染。

(6)宏病毒的破坏性极大,主要表现在两个方面。

①对Word运行的破坏。不能正常打印、关闭或改变文件存储路程,将文件改名,乱复制文件,封闭有关菜单以及使文件无法正常编辑。例如,Taiwan NO.1病毒每月13日发作,发作时所有编写工作无法进行。

②对系统的破坏。Word Basic语言能够调用系统命令,造成破坏。宏病毒Nuclear就是破坏操作系统的典型病毒。

(7)宏病毒还有两个显著的特征:由于网络特别是互联网的发展,宏病毒传播的速度比历史上其他病毒都快。另外,与用汇编语言编制的病毒相比,宏病毒的编制容易得多,会编写宏的人数远远多于会写汇编语言的人数,这就造成宏病毒的种类、数量都更快速地增加。

(8)宏病毒已经改变了许多原有的关于病毒的观念和定义。

我们曾经认为浏览病毒并不会被感染,但是,只要你的浏览器能解释和运行它的宏,浏览宏病毒也会被感染。

曾经我们认为收发电子邮件不会被感染,现在,如果邮件附件被宏病毒感染,你只是简单地看一下,也会被感染。

我们曾经认为检查病毒并不需要检查所有的文件,因为病毒不会感染文档和数据库文件,今天,宏病毒能在Word识别的所有文档文件中找到,甚至在数据库文件也能被感染。

我们曾经建议用户只运行可信来源的程序,今天,我们必须考虑只浏览以前浏览过的文档。