病毒主要分为5种类型:根扇区感染(BSI)、文件感染、多态病毒、宏病毒、脚本病毒。
注意 Memetic病毒(病毒恶作剧和其他)同前面提到的病毒不是一种,因为它感染人而不是程序。在这里谈到它是因为恶作剧管理通常是负责管理病毒人员的责任之一。
1.根扇区感染(BSI)
针对台式机的病毒感染主引导扇区或DOS引导扇区。这些病毒占到已报道病毒中的大部分,但是殃在他们的比例降低了。这反映了越来越多的用户采用电子邮件或网络进行文件交换而不是用软盘。编写宏病毒,脚本病毒(甚至文件病毒)越来越困难也是同样的道理。
现在当台式机启动时,先要进行电源自检。这个过程包含了硬件检测。许多信息尤其是有关磁盘、内存和配置的信息都储存在CMOS中。如果CMOS中的信息同实际驱动中的信息不符,机器就无法找到系统和文件区,启动过程无法继续。
MBR(Master Boor Record,主引导扇区记录),有时也叫分区,位于硬盘的第一个物理扇区。它含有磁盘其他分区的物理地址。磁盘不分区。也就没有主引导扇区,它的第一个物理扇区是根扇区。根扇区记录是每个分区的第一个扇区。根扉区记录中的程序就是检测硬盘是否可以启支,如果可以启动,就将控制权转给操作系统。
如果计算机软驱中有可启动的软盘,许多计算机会从A驱而不是硬盘启动。这是很糟糕的默认值,因为通常病毒感染的就是软区的根扇区。如果台式机软驱的根扇区感染了病毒(即使软驱中没有引导系统的文件)那硬盘的扇区也会被感染。同时,如果硬盘驱动感染病毒,所有没有写保护的软驱也会被感染。
注意 用户可能听说过使用具有非文档交换功能的FDISK软件就可以保护根扇区。幸运的是大多数情况下,这都起作用。不幸的是,如果用户遇到错误病毒,就会无法访问数据。杀毒软件是十分不成熟的,但还是要比其非专业杀毒软件有用。除非用户很清楚自己在做什么,否则建议用户不要使用FDISK软件。
大多数根扇区病毒会备份原始启动程序。这是很必要的。虽然这样会容易清除病毒,但并不表明病毒编写者想最终让MBR恢复到原始状态;而是因为,必须要这么做。这样当其他程序需要时病毒程序就可以提供这段代码。这样不仅可以使系统立即启动,同时还让杀毒软件无法识别自己。但是,许多病毒只是简单地用自己的代码替换根扇区的代码。
即使用许多根扇区病毒在硬盘上也只感染根扇区记录。这在Windows NT和Windows2000平台上就有问题,它们就会阻止系统启动。大量无害的病毒在一些环境下会成为很讨厌的事情。
提示 新的根扇区病毒相当少见了,但仍然有人还在使用软盘交换文件。杀毒软件还是要检测这类病毒,这样会大大降低染上病毒的几率。许多台式机还默认从软驱启动,但能过更改启动顺序所有的机器都可以设置为从硬盘启动。有的系统(例如康柏公司的系统)可以取消从软驱启支。如果某一系统必须从软驱启支,可以重新进行配置。母板和微机系统的供应商设计了多种CMOS启动菜单。可以参考机器所带文档。但是,注意这样无法限制多态病毒。
2.文件病毒(寄生病毒)
文件病毒感染可执行文件。以前大多数文件病毒在传播方面不是很成功。虽然已编写的很多文件病毒,但真正散播开来的很少。那些能在实际环境中存在的文件病毒感染的范围相当广,例如。CIH病毒。现在许多最流行的文件病毒通常被成为蠕虫病毒,在后面有详细介绍。
当一个文件病毒感染了可执行文件后,在这个文件被执行时,就会感染其他文件。速度相当快。一次感染就会遍及整个目录。甚至整个安装路径。即使一次只有一两个文件感染了病毒,当多个可执行文件运行时,就会导致网络中的系统都感染上病毒。许多应用在启动时会同时打开多个文件,而有些软件会定期打开多个文件。
零散的病毒有时会放弃感染尽可能多的文件,这是因为它们不想引起注意。并不是每次激活病毒都会感染新文件,只有在特定情况下才会感染新文件。
注意 二进制文件不局限于.COM和.EXE文件,还包含运态链接库、重叠文件、VxDs、其他驱动程序,甚至是屏幕保护程序和字体文件。
3.多态病毒
文件和根扇区病毒是常见的多态病毒,多态就是具有多种感染机制。这种情况下,根扇区和可执行文件被感染后成为传播病毒的工具。在多态病毒中结合其他病毒类型的情况越来越多。
4.宏病毒
宏病毒不针对特定的操作系统和环境,而是感染宏编程环境。微软的Office是目前漏洞最多的一种应用。它可以看成是文件病毒的一个特例,因为主要感染的是数据文件而不是可执行文件。然而,这样的理解存在偏差。宏是改变编程环境而不是数据文件。实际上,在支持宏编程的应用环境中(Visual Basic,WordBasic,Access Basic)宏语言不能脱离其应用环境。宏病毒之所以流行就是因为它允许文件和宏代码存在于同一个文件中。那些将两者分开的应用感染宏病毒的可能性就小得多。
5.脚本病毒
脚本其实是一个不准确的术语,在本文中指VBScript等脚本。这些脚本内嵌在HTML文件中,客户端软件通过脚本解释主机来解释执行这些脚本。把这样的病毒称为蠕虫病毒更恰当,在后面有详细阐述。VBScript和Jscript比JavaScript更可怕,主要是因为他们有更多的I/O能力。而JavaScript则利用了浏览器的漏洞。
这样定义脚本病毒有些狭隘。更广的定义是包含HyperCard病毒、批处理文件病毒、UNIXshee脚本病毒和其他。但这些病毒目前不是很重要。