病毒的昨天、今天和明天 张佳昺 2000年 第16期   4月26日,新千年的第一个4月26日。一年以前的今天,两年以前的今天,CIH,这个令人闻风丧胆的病毒在全球范围内造成了上百亿美元的损失,巨额的损失提醒着人们:病毒并没有随着反病毒软件的不断壮大而退出历史舞台,相反在这个电脑日益代替人力的社会,它的危害只有愈演愈烈。所以,今天我们有必要对病毒的发展历史做一个回顾。   要说病毒,那么什么是病毒呢?1984年5月Cohen博士在世界上第一次给出了计算机病毒的定义——计算机病毒是一段程序,它通过修改其它程序把自身拷贝嵌入而实现对其它程序的传染。其后对于病毒的定义进行了不断的修改和增补,目前业界公认病毒具有以下四大特性:传染性、破坏性、隐藏性、可激活性。同时也将诸如特洛伊木马等视为广义的病毒。虽然病毒并不仅仅存在在PC机上,也可以存在于大型机、小型机等计算机上,但由于PC机的巨大拥有量和影响力,本文将主要谈及PC机上的病毒。 #1 DOS时代   DOS是PC机上一个具有重要意义的操作系统,自1981年伴随着IBM PC机推出诞生至今已有二十个年头,至今仍隐藏在Windows9x中,活跃在PC机上,直到近日Windows2000的推出才正式退出历史舞台。DOS是一个安全性较差的操作系统,所以在DOS时代,计算机病毒无论是数量还是种类都是如此的众多。按照传染方式,我们可以将它们划分成四类:   系统引导病毒:也称操作系统病毒。当DOS引导时,病毒程序装入内存,获得对系统的控制权,对外传播;或把攻击逻辑隐藏在假坏簇上,再秘密进入内存感染,有很强的破坏力。这类病毒的代表是大麻病毒、磁盘杀手病毒等。   外壳型病毒:也称文件型病毒。它或者包围在系统可执行文件的周围,对原来的文件不进行修改,或者隐藏在程序的无用程序段中。运行文件时,病毒程序首先被执行,进入系统中再传染。这类病毒的代表是黑色星期五等。一般来说,被感染的文件的文件长度会有所增加,习惯上也用增加的长度来命名病毒。   复合型病毒:就是同时具备系统引导型和外壳型病毒特征的病毒。   当然,以上只是一个很简单的分类,事实上,随着病毒编制技术的不断发展,病毒的分类和原理都在发生变化。   俗话说,道高一尺,魔高一丈。病毒制造技术不断前进,查杀病毒的技术也相应地在不断进步。下面就将介绍一下如何杀病毒。   如果你是高手的话,那么完全可以采用手工杀毒的方法。当然,事实上绝大多数的用户没有手工杀毒的水平,所以我们需要使用特定的杀毒程序。杀毒程序由扫描器、特征信息库、消毒器三部分组成。程序利用扫描器对用户要求检测的对象进行病毒特征信息扫描,特征信息库中存放的是病毒最具有代表性的特征字,扫描器通过比较检测对象与特征信息库中的特征字比较,如果有一致的存在就可以判断是有毒的,再利用消毒器除去病毒。   查毒程序曾经以病毒卡和纯软件两种形式存在过。病毒卡将杀毒程序固化在EPROM,病毒卡的好处是杀毒权限高(高于DOS),能够主动防御,并且本身不会受到病毒的感染。但缺点更多,因此在DOS时代的中期就退出了历史舞台。而纯软件方式由于所有的软件都存放在软盘上,所以便于升级,可以不断增加病毒代码库,查杀新的病毒,同时由于成本较低,所以售价也比较能为众人接受,但是缺点在于往往只能杀病毒,而防病毒功能或是没有或是形同虚设,有点马后炮的味道,如果用户不勤于查毒杀毒,仍旧容易受到病毒的侵害。纯软件类的杀毒程序,国外比较著名的有SCAN、CPAV,国内有KILL、KV系列、AV系列等。 #1 Windows时代   1995年8月24日,微软发布了Windows95,标志着个人电脑的操作系统全面进入了Windows9x时代,而Windows9x对DOS的弱依赖性则使得计算机病毒也进入了Windows时代。这个时代的最大特征便是大量DOS病毒的消失以及宏病毒的兴起。   数据显示,在DOS时代最为猖狂的病毒大多属于文件型或复合型,也就是主要依靠可执行文件来进行传染。而运行于Windows9x的可执行文件的文件可是与DOS下的可执行文件大相径庭,绝大多数被DOS病毒感染之后的Windows程序都无法继续运行,从而也失去了进一步破环或传染的可能性,DOS病毒也因此走上了恶性循环,最后大多消声匿迹。因此,病毒制造者开始着手编制可以运行于Windows下的病毒,其中部分人是按照传统的病毒编制方法根据Windows可执行文件的结构改写病毒的传染模块,产生了部分传统型的Windows病毒,其中佼佼者便是臭名昭著的CIH病毒。而另一类则彻底改变思路,放弃可执行文件,而将目标转向了具备宏功能的文档。   软件编制者为了加强软件的功能和可定制性,在软件中提供了功能强弱不等的宏功能。其中广为人知的便是微软的Office系列中Word和Excel。微软为我们提供了如此强大的宏语言,以至于一个略微懂得VisualBasic for Word的人利用几条代码就能够完成一个宏病毒的破坏模块,用十几条代码就能够完成一个宏病毒的传染模块。于是,宏病毒顿时泛滥起来,使用Office软件包的用户纷纷中招。   制造病毒的技术进步了,防杀病毒软件自然也不敢原地踏步。除了由DOS转向Windows,界面变得越发好看之外,Windows时代的防杀病毒软件经过不断修炼终于炼成了一门绝技——防火墙技术。从此,防杀病毒软件有了实时查毒功能,无论是复制还是查看一个文件,防杀病毒软件都会利用防火墙技术先查看一下是否有毒,如果有,便在用户的首肯下杀之为快。有了此项技术之后,用户因为懒惰而受到病毒破坏的事情便极少发生了。   除了防杀病毒软件开发商的努力之外,作为宏病毒的间接帮助者微软从Office97开始提供了宏病毒的提醒机制,并在Office97的SR-1版本中限制了宏复制的多个语句,使许多宏病毒的传染部分失效。 #1 Internet时代   可以这样说,网络病毒大多是Windows时代宏病毒的延续,它们往往利用强大的宏语言读取用户E-mail软件的地址簿,并将自身作为附件发向地址簿内的那些E-mail地址去。由于这些邮件都来自于用户的好朋友,所以用户往往失去警惕,而一旦执行了病毒,后果不堪设想。由于网络的快速和便捷,网络病毒的传播是以几何级数进行的,其危害比以前的任何一种病毒都要大,这一点我们只须看看Melissa(美丽杀手)便可以知道了。   Melissa(美丽杀手)是一个专门针对微软的电子邮件服务器MS Exchange和电子邮件收发软件Outlook Express的网络病毒。它利用微软的Word宏和Outlook Express发送载有80个色情文学网址的列表,它可以感染Word97和Word2000。当用户打开受感染的文件,病毒会自动通过被感染着的MS Exchange和Outlook Express的通讯录,给前50个地址发出带有病毒的电子邮件。   面对网络病毒汹涌的进犯,杀毒软件自然是兵来将挡水来土淹,纷纷增加了监控网络的功能。这样凡是从网络上下载的软件或是从E-mail中获得的附件一被下载到本地的机器上就会受到杀病毒软件的检测,十分有效地防止了网络病毒的几何级数传播。同时,杀毒软件还开始提供网上下载升级的功能,这样用户便可以更迅速地更新病毒信息库,防杀最新的病毒了。 #1 反病毒要点   病毒的发展仍旧在继续,所以反病毒软件的发展也不能止步。那么,今后的反病毒软件的要点会有哪些呢?   1.对压缩软件的监测。随着Internet网的发展,压缩文件的使用越来越广泛。当带毒文件被压缩进压缩包后,其内部包含的病毒码也会由于压缩的作用而被改变,这时采用通常的特征值扫描法就不能发现其中的病毒了。虽然其病毒防火墙(即实时监控器)可在压缩包被打开的时候检测出病毒,防止病毒侵害,但是它不能防止带病毒的压缩文件的拷贝,因此这些病毒有可能在用户不知道的情况下被拷贝到别的机器,进行破坏。所以,对压缩软件的监测已经成为反病毒软件发展的当务之急。   2.完善的升级功能。使用反病毒软件的用户大多数是初级用户,要求他们能够下载病毒库或是最新版本进行升级还是一件要求颇高的事情,所以,反病毒软件应该具有利用网络自动升级的功能。   3.良好的自我验证功能。虽然是反病毒软件,但它和别的软件一样,有被病毒感染的可能。设计优秀的软件应该考虑到各种情况,包括自身被感染的情况。所以,反病毒软件在执行之前应该首先监测一下自己有没有受到感染,从技术上来说只须增加一段校验的代码,很容易,关键在于设计者是否有心。   4.快速的查毒速度。曾几何时,查毒速度慢曾经成为查毒仔细的代名词而作为反病毒软件的优势宣传,但是随着几十个G的硬盘的大量普及,反病毒软件如果没有飞速的查毒速度,那么漫长无比的查毒时间将使用户忍无可忍。