计算机病毒技术:此病毒非彼病毒
2009年1月,法国海军内部计算机系统的一台电脑受病毒入侵,迅速扩散到整个网络,一度不能启动,海军全部战斗机也因无法“下载飞行指令”而停飞两天。人们不仅会问,什么是计算机病毒呢?这个病毒怎么这么厉害?这样的病毒又是怎么传播的呢?
其实,计算机病毒是一种人为制造的、在计算机运行中对计算机信息或系统起破坏作用的程序。这组程序不是独立存在的,它隐蔽在其他可执行的程序之中,既有破坏性,又有传染性和潜伏性。轻则影响机器运行速度,使机器不能正常运行;重则使机器处于瘫痪,会给用户带来不可估量的损失。通常就把这种具有破坏作用的程序称为计算机病毒。计算机病毒具有以下特点:寄生性,计算机病毒寄生在其他程序之中,当执行这个程序时,病毒就起破坏作用,而在未启动这个程序之前,它是不易被人发觉的;传染性,计算机病毒不但本身具有破坏性,更有害的是具有传染性,一旦病毒被复制或产生变种,其速度之快令人难以预防;潜伏性,有些病毒像定时炸弹一样,让它什么时间发作是预先设计好的,比如“黑色星期五”病毒,不到预定时间一点都觉察不出来,等到条件具备的时候一下子就爆发开来,对系统进行破坏;隐蔽性,有的可以通过病毒软件检查出来,有的根本就查不出来,有的时隐时现、变化无常,这类病毒处理起来通常很困难。
那么,计算机病毒是如何作用的呢?绝大多数病毒的工作方式与内存驻留程序(TSR)相似,它们不停地唤醒自己并监视系统的行为,当系统的行为符合某一特定的条件时(例如,一个可执行文件的执行),病毒就立即行动起来,把自己附加到当前的活动程序中。病毒是一种感染可执行文件或目标文件的程序。任何未经你允许而复制自己的程序都属病毒的范畴。病毒程序通过下面途径将其自身附着在一个文件上:无论何时系统执行被感染的文件,病毒都会在你的内存或操作系统中运行。另外,感染可执行文件或目标文件的病毒不仅在你将软盘或U盘插入被感染的计算机时感染软盘或U盘,同样会感染硬盘驱动器的引导扇区。病毒将其自身写入软盘或硬盘,保证在你打开计算机时,它们总能被执行。大部分病毒都是将其自身精确地复制到每个要感染的文件上。然而,随着反病毒软件的普及和更加有效,病毒编写者也相应地编写出能随着拷贝而更改自身的病毒。当病毒选定了要感染的可执行文件后,它将自己从被感染的载体复制到要感染的可执行文件中。多数病毒感染系统所遵循的过程大致相似。例如,一种简单的附着在文件上的病毒将遵照以下的步骤来感染系统中的文件:(1)假设你已经把一个感染的文件装入计算机内存。该文件可能来自U盘或你所在的局域网或互联网上。当你运行该文件时,病毒就将其自身复制到计算机内存。(2)病毒将自身拷贝到计算机内存后,它将等待你来运行电脑上的其他程序。这时候,病毒是在内存中等待新的载体,就仿佛感冒病毒飘浮在空气中一样。(3)当你执行另外一个程序时,病毒便将其自身附着在内存中的文件上。另外,病毒还会将其自身附着到已存在磁盘上的程序备份上。(4)病毒继续这个过程,直到计算机上的所有程序被感染或关机。当你关机时,机器会把病毒从内存中删除,但却不能将其从被感染的文件中删除。(5)当你再次开机时,并装入一个已被病毒感染的程序,病毒将重新感染内存并继续感染其他正在运行的程序。一旦病毒存在于你的硬盘上,那么每当你打开计算机时,它们都能够自动地运行。另一些病毒会隐藏在压缩文件中。病毒甚至可以通过字处理软件感染你的计算机,但值得注意的是:仅当你运行程序时,病毒才会感染你的计算机。有些病毒甚至可以通过字处理文档中的字处理箱运行病毒的宏程序来感染你的计算机。
那么,计算机病毒是怎么像瘟疫一样传播的呢?计算机病毒的传染是指计算机病毒由一种载体传播到另一个载体,由一个系统进入另一个系统的过程。这种载体一般为磁盘或磁带,它是计算机病毒赖以生存和进行传染的媒介。但是,只有载体还不足以使病毒得到传播,促成病毒的传染还有一定的先决条件。可分为两种情况,或者叫作两种方式。第一,用户在进行拷贝磁盘或文件时,把一个病毒由一个载体复制到另外一个载体上。或者是通过网络上的信息传递,把一个病毒程序从一方传递给另一方。这种传染方式叫作计算机病毒的被动传染。第二,计算机病毒是以计算机系统的运行以及病毒程序处于激活状态为先决条件。在病毒处于激活的状态下,只要传染条件满足,病毒程序能主动地把自身传染给另外一个载体或另外一个系统。这种传染方式叫作计算机病毒的主动传染。对于病毒的被动传染,其传染过程是随着拷贝磁盘或文件工作的进行而进行的,而对于计算机病毒的主动传染而言,其传染过程是这样的,在病毒引导模块将病毒传染模块驻留内存的过程中,通常还要修改系统中断向量入口地址,使该中断向量指向病毒程序传染模块。这样,一旦系统执行磁盘读写操作或系统功能调用,病毒传染模块就会被激活,传染模块在判断传染条件满足的条件下,把病毒自身传染给被读写的磁盘或被加载的程序,也就是实施病毒的传染,然后再转移到原中断服务程序执行原有的操作。
那么,计算机病毒都有哪些类型呢?人们经常遇到的病毒主要有哪些呢?(1)特洛伊木马。特洛伊木马藏身在非可执行文件的代码中(例如,压缩文件和文档文件),为了不被众多的检测程序发现,有时也藏身在一个可执行文件中。特洛伊木马在安全地通过了反病毒程序检测后开始运行,这种病毒经常作为有用软件出现,或者在压缩备份中作为库文件出现。然而,一个特洛伊木马经常含有病毒子程序。特洛伊木马是一个满怀敌意的破坏安全性的程序,它佯装成某种形式,例如,路径列表、备份、游戏或者查找并破坏病毒的程序。(2)多态病毒。这种病毒能够自身加密,加密的病毒经常隐藏它的特征,避开反病毒软件。为了传播多态病毒(或其他加密病毒),病毒首先用一种专门的解密程序为加密端口解密。多态病毒的解密程序取得计算机控制权时病毒自身解密。解密后,解密程序把计算机控制权传给病毒,病毒因此而传播。最早的加密病毒是非多态的,在感染过程中,它们用的解密工具是从来不变的。因此,尽管这种病毒能够自身加密,隐藏起来避开反病毒软件,反病毒软件仍然能够根据病毒的解密程序的可预测的不变的特征来识别并杀死这种病毒。(3)行骗病毒。病毒通过监控操作系统从存储介质中读文件或扇区的系统函数,并消除它们调用系统函数产生的后果,从此达到隐藏修改的目的。这样当程序读这些被感染的文件或扇区时,他们看到的是原始的、未被感染的形式,而不是被感染的形式。因此反病毒程序可能检测不出病毒的修改。为了不在存储介质中被发现,当运行反病毒程序时,它们寄居在存储器中。如果程序被装入内存,任何好的反病毒程序都能发现这种病毒。行骗病毒通常具有长度行骗或读取行藏病毒的功能,长度行骗是文件感染型病毒的变种。这种病毒将自身覆盖在目标程序文件上然后开始复制,这使得该文件长度增大。因为它是一种行骗病毒,它能够屏藏文件长度,感染病毒的用户在通常使用机器期间不能发现这种病毒的活动。读取行骗病毒,窃取读被感染扇区的记录或文件的请求,并且向请求者提供原始的未感染的目录,又一次隐藏了病毒的存在。(4)多成分病毒。可执行文件和引导区分区,有时也感染软盘引导扇区。命名为多成分病毒是因为它有多种方法感染计算机。当运行一个被多成分病毒感染的应用程序时,它就会感染计算机的硬盘引导区。在下次开机时,病毒就开始活动,感染你运行的每一个程序。
病毒刚出现时,还仅仅是个人所为,发展到现在的网络战,病毒就不仅仅是个人的事了,各国政府、军方也将参与其中,随着各国投入的人力和物力的增加,病毒种类将会越来越多。