第一篇 认识计算机病毒
第1章 什么是计算机病毒
1.1 计算机病毒的定义
我们知道,生物界的“病毒”(Virus)是一种没有细胞结构、只有由蛋白质的外壳和被包裹着的一小段遗传物质两部分组成的比细菌还要小的病原体生物。如H5N1、O-157大肠杆菌、HIV(艾滋病毒)、口蹄疫病毒、狂犬病毒、天花病毒、肺结核病毒、禽流感病毒、埃博拉病毒等。绝大多数病毒只有在电子显微镜下才能看得到,而且不能独立生存,必须寄生在其他生物的活细胞里才能生存。由于病毒利用寄主细胞的营养生长和繁殖后代,因此给寄主生物造成极大的危害。在人类或动物的传染性疾病中,有许多是由病毒感染引起的,如人类所患的病毒性肝炎、流行性感冒、艾滋病、脊髓灰质炎、SARS等疾病,动物中的猪瘟、鸡瘟、牛瘟等瘟疫。
我们通常所说的“计算机病毒”(Computer Virus),实际上应该被称做“为达到特殊目的而制作和传播的计算机代码或程序”,或者被称为“恶意代码”。这些程序之所以被称做病毒,主要是由于它们与生物医学上的病毒有着很多的相同点(如图1-1所示)。例如,它们都具有寄生性、传染性和破坏性。有些恶意代码会像生物病毒隐藏和寄生在其他生物细胞中那样寄生在计算机用户的正常文件中,而且会伺机发作,并大量地复制病毒体,感染本机的其他文件和网络中的计算机。而且绝大多数的恶意代码都会对人类社会生活造成不利的影响,造成的经济损失数以亿计。由此可见,“计算机病毒”这一名词是由生物医学上的病毒概念引申而来的。与生物病毒不同的是,计算机病毒并不是天然存在的,它们是别有用心的人利用计算机软、硬件所固有的安全上的缺陷有目的地编制而成的。
图1-1 计算机病毒的结构
从广义上讲,凡是人为编制的,干扰计算机正常运行并造成计算机软硬件故障,甚至破坏计算机数据的可自我复制的计算机程序或指令集合都是计算机病毒。依据此定义,诸如逻辑炸弹、蠕虫、木马程序等均可称为计算机病毒。按照目前信息安全领域的普遍观点,我们可以总结出计算机病毒的十大特征,即非法性、隐藏性、潜伏性、可触发性、表现性、破坏性、传染性、针对性、变异性及不可预见性。为了使读者进一步了解计算机病毒,我们将在下一节对计算机病毒的十大特征进行详细论述。
需要指出的是,单独根据以上某一个特征是不能判断某个程序是否是病毒的。拿“破坏性”来讲,例如DOS操作系统中的“Format”程序,虽然能消除磁盘上数据,造成对数据的破坏,但它显然不是病毒,因为它除了不具备病毒的传染性这个根本特征以外,也不具有其他大部分特征。
在1994年中华人民共和国国务院颁布的《中华人民共和国计算机信息系统安全保护条例》中,计算机病毒被明确定义为:“指编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码”。
1.2 计算机病毒的特征
1.非法性
正常情况下,计算机用户调用执行一个合法程序时,把系统控制权交给这个程序,并给其分配相应的系统资源,如内存,从而使之能够运行以达到用户的目的,程序执行的过程对用户是透明和可知的,因此,这种程序是“合法”的。
而计算机病毒是非法程序,计算机用户不会明知是病毒程序而故意去执行它。但由于计算机病毒具有正常程序的一切特性,它会将自己隐藏在合法的程序或数据中,当用户运行正常合法程序时,病毒伺机窃取到系统的控制权,得以抢先运行,然而此时用户还认为在执行正常程序。由此可见,病毒的行为都是在未获得计算机用户的允许下“悄悄地”进行的,而病毒所进行的操作,绝大多数都是违背用户意愿和利益的。从这种意义上来讲,计算机病毒具有“非法性”。
例如我们将在第6章讲到的木马病毒,有些木马病毒会将自己加载到启动项中,用户每一次启动计算机或运行某些常用程序时都会“顺便”激活病毒,一般的计算机使用者很难察觉。
2.隐藏性
隐藏性是计算机病毒最基本的特征,正像我们上面讲到的,计算机病毒是“非法”的程序,不可能正大光明地运行。换句话说,如果计算机病毒不具备隐藏性,也就失去了“生命力”,从而也就不能达到其传播和破坏的目的。另一方面,经过伪装的病毒还可能被用户当做正常的程序而运行,这也是病毒触发的一种手段。
从病毒程序本身来讲,计算机病毒是一种具有很高编程技巧、短小精悍的可执行程序。一般只有几百字节或几千字节,而PC机对DOS文件的存取速度可达每秒几百千字节以上,所以病毒转瞬之间便可将这短短的几百字节附着到正常程序之中,使之非常不易被察觉,从而更好地隐藏自己。
从病毒隐藏的位置来看,有些病毒将自己隐藏在磁盘上标为“坏簇”的扇区中,以及一些空闲概率较大的扇区中;也有个别的病毒以隐含文件的形式出现;还有一种比较常见的隐藏方式是将病毒文件放在Windows等系统目录下,并将文件命名为类似Windows系统文件的名称,使对计算机操作系统不熟悉的人不敢轻易删除它。
不同类型的病毒的隐藏方式也是多种多样的。引导型病毒通常将自己隐藏在引导扇区中,在系统启动前就发作。一些蠕虫病毒非常注重隐藏和伪装自己,它们不但伪造邮件的主题和正文,利用社会工程学引诱用户打开邮件,并且可以使用双扩展名的病毒文件作为附件,例如将病毒体命名为ABC.jpg.exe,使用户以为是一个图片文件,从而丧失警惕。还有些借助系统漏洞传播的病毒利用漏洞来隐藏和传播病毒体,如果用户没有对操作系统添加或安装相应的补丁程序,病毒便无法被彻底清除。
另一种隐藏方式比较特别的病毒是“兄弟病毒”。这种病毒的隐藏方式只在早期的DOS类病毒中出现过。它将病毒体放在一个已有的文件夹中,并且把病毒的名称命名为和可执行文件同名的.com文件,它利用.com文件的执行优先级高于.exe文件的特性来运行病毒文件。比如,某个游戏程序的运行文件是play.exe,那么病毒便会把自己命名为play.com,而大多数人在DOS下不会输入文件的全名,而仅仅输入play,用户自以为执行的是play.exe,其实真正运行的是paly.com这个病毒体文件,从而使病毒得以触发。
如果不经过代码分析,病毒程序与正常程序是不容易区别开来的。一般在没有防护措施的情况下,计算机病毒程序取得系统控制权后,可以在很短的时间里传染大量程序。而且受到传染后,计算机系统通常仍能正常运行,使用户不会感到任何异常。总之,病毒会使用更巧妙的方法隐藏自己,使之不容易被发现。正是由于具有隐蔽性,计算机病毒得以在用户没有察觉的情况下扩散到上百万台计算机中。计算机用户如果掌握了这些病毒的隐藏方式,加强对日常文件的管理,计算机病毒便无处藏身了。
3.潜伏性
计算机病毒具有依附于其他媒体而寄生的能力,我们把这种媒体称为计算机病毒的宿主。依靠病毒的寄生能力,病毒传染合法的程序和系统后,不立即发作,而是悄悄隐藏起来,然后在用户不察觉的情况下进行传染。这样,病毒的潜伏性越好,它在系统中存在的时间也就越长,病毒传染的范围也越广,其危害性也越大。
计算机病毒在传染计算机系统后,其触发是由发作条件来确定的。在发作条件满足前,病毒可能在系统中没有表现症状,从而不影响系统的正常运行。
大部分病毒感染系统之后一般不会马上发作,它可长期隐藏在系统中,只有在满足其特定条件时才启动其表现(破坏)模块。只有这样它才可进行广泛传播。如“PETER-2”在每年2月27日会提三个问题,答错后会将硬盘加密。著名的“黑色星期五”在逢13号的星期五发作。中国的“上海一号”会在每年三月、六月及九月的13日发作。当然,最令人难忘的便是26日发作的CIH。这些病毒在平时会隐藏得很好,只有在发作日才会露出本来面目。
4.可触发性
计算机病毒一般都有一个或者几个触发条件。满足其触发条件或者激活病毒的传染机制就会使之进行传染或者激活病毒的表现部分或破坏部分。触发的实质是一种条件的控制,病毒程序可以依据设计者的要求,在一定条件下实施攻击。这个条件可以是键入特定字符,使用特定文件、某个特定日期或特定时刻,或者病毒内置的计数器达到一定次数等。
在一定的条件之下,通过外界刺激可以使计算机病毒程序活跃起来。激发的本质是一种条件控制。根据病毒炮制者的设定,使病毒体激活并发起攻击。病毒被激发的条件可以与多种情况联系起来,如满足特定的时间或日期,期待特定用户识别符出现,特定文件的出现或使用,一个文件使用的次数超过设定数等。
按照时间来触发的病毒很多,比如CIH病毒。它的v1.2版本的发作日期是每年的4月26日,这个时间指的是计算机的系统时间;而CIH病毒的v1.3版本的发作日期是每年的6月26日;v1.4版本的发作日期是每月的26日。很多人都有一个错误的想法,以为只要将系统时间调整到其他的日期,就可以避免病毒的发作。其实按照时间发作只是病毒触发的条件之一,而且系统时间没有及时调整回来,或者满足病毒的其他触发条件时,病毒还是会被触发的。调整时间只是应急的办法,根本的解决办法还是彻底清除病毒体。
按照一定条件触发的病毒也很多,比如,当你试图更改或运行某些文件时病毒就发作等。而“Happy time”(欢乐时光)病毒发作的条件是:“月份+日期=13”,这是按照一定的逻辑条件来发作的病毒。另外,“求职信”病毒在单月的6日和13日发作等。但绝大多数病毒是随机发作或者运行后发作的。
要注意的是,病毒的传播和发作是两个完全不同的问题,我们在平时所遇到的大多数问题是由病毒发作引起的,因为病毒发作的现象比较明显,比如文件被删除或计算机无法使用。而病毒传播时由于其所具有的隐蔽性和潜伏性,通常不被人们注意,但其一旦发作就会造成重大的损失。所以我们要尽可能在病毒传播时及时清除病毒,等到病毒发作时才意识到,可能为时已晚了。
5.表现性
无论何种病毒程序一旦侵入系统都会对操作系统的运行造成不同程度的影响。即使不直接产生破坏作用的病毒程序也要占用系统资源(如占用内存空间,占用磁盘存储空间和系统运行时间等)。而绝大多数病毒程序要显示一些文字或图像,影响系统的正常运行;还有一些病毒程序删除文件,加密磁盘中的数据,甚至摧毁整个系统和数据,使之无法恢复,从而造成无可挽回的损失。因此,病毒程序的副作用轻则降低系统工作效率,重则导致系统崩溃、数据丢失。病毒程序的表现性或破坏性体现了病毒设计者的真正意图。
一般来讲,带有个人情绪或者政治目的的病毒往往表现力比较强,例如比较著名的“中国黑客”病毒,病毒会利用聊天工具OICQ发送即时信息,循环发送以下信息中的一条:“反对邪教,崇尚科学!”、“打倒本·拉登!”、“向英雄王伟致意!”、“反对霸权主义!”、“世界需要和平!”、“社会主义好!”等,如图1-2所示。
图1-2 中国黑客发作现象
6.破坏性
计算机病毒造成的最显著的后果是破坏计算机系统,并使之无法正常工作或删除用户保存的数据。无论是占用大量系统资源导致计算机无法正常使用,还是破坏文件,甚至毁坏计算机硬件,都会影响用户正常使用计算机。
病毒根据其破坏性可分为良性病毒和恶性病毒。
绝大多数被认定为病毒的程序都具有恶意破坏性的特征,但也有一些病毒程序并不具有恶意破坏性。我们把没有恶意破坏性的程序称之为良性病毒。良性病毒是指不会直接对计算机系统进行破坏的病毒。比如,某些良性病毒运行后会在屏幕上出现一些可爱的卡通形象,或演奏一段音乐。编写这类小程序也许仅仅是因为好玩,或开个玩笑,甚至可以和某些小游戏看做是一类。但是,这并不代表其没有危害性。这类病毒有可能占用大量的系统资源,导致系统无法正常使用。
除了良性病毒以外,绝大多数病毒是恶性病毒。这类恶性病毒对计算机系统来说是很危险的。比如WYX病毒,该病毒是典型的引导区病毒,其发作时会改写计算机硬盘引导扇区的信息,使系统无法找到硬盘上的分区。由于硬盘上的所有数据都是通过硬盘分区表和文件分配表来确定的,所以如果计算机硬盘上的这些重要信息丢失或发生错误,不但用户会无法正常访问硬盘上的所有数据,甚至在开机时,计算机会显示找不到引导信息,出现硬盘没有分区等错误信息提示,给我们的工作、生活造成很大的损失。
病毒的破坏方式是多种多样的。例如,“Happy Time”(欢乐时光)病毒在发作时会删除文件,并启动大量的病毒进程,导致计算机系统资源的严重缺乏直至计算机无法工作。还有破坏并且覆盖文件的CIH和“求职信”病毒,发作时会用垃圾代码来覆盖用户的文件,这种破坏造成的危害比简单的删除或格式化硬盘更为严重,往往可以造成不可修复的破坏。这也反映出病毒编制者的险恶用心。还有的病毒以恶作剧的形式破坏系统,如“旋转”病毒(如图1-3所示),病毒在发作时会高速的横向或纵向旋转用户的电脑桌面,使计算机使用者无法进行任何操作。
图1-3 “旋转”病毒发作现象
7.传染性
传染性是计算机病毒最重要的特征,是判断一段程序代码是否为计算机病毒的依据。病毒程序一旦侵入计算机系统就开始搜索可以传染的程序或者磁介质,然后通过自我复制迅速传播。由于目前计算机网络日益发达,计算机病毒可以在极短的时间内通过像Internet这样的网络传遍世界。
计算机病毒可以从一个程序传染到另一个程序,从一台计算机传染到另一台计算机,从一个计算机网络传染到另一个计算机网络,从而在各个系统上传染、蔓延,同时使被传染的计算机程序、计算机、计算机网络成为计算机病毒的生存环境及新的传染源。
在生物界,病毒通过传染从一个生物体扩散到另一个生物体。在适当的条件下,它可得到大量繁殖,并使被感染的生物体表现出病症甚至死亡。同样,计算机病毒也会通过各种渠道从已被感染的计算机扩散到未被感染的计算机,在某些情况下造成被感染的计算机工作失常甚至瘫痪。与生物病毒不同的是,计算机病毒是一段人为编制的计算机程序代码,这段程序代码一旦进入计算机并得以执行,就会搜寻其他符合其传染条件的程序或存储介质,确定目标后再将自身代码插入其中,达到自我繁殖的目的。只要一台计算机染毒,如不及时处理,那么病毒会在这台计算机上迅速扩散,其中的大量文件(一般是可执行文件)会被感染。而被感染的文件又成了新的传染源,再与其他机器进行数据交换或通过网络接触,病毒会继续进行传染。
正常的计算机程序一般是不会将自身的代码强行连接到其他程序之上的,而病毒却能使自身的代码强行传染到一切符合其传染条件的未受到传染的程序之上。计算机病毒可通过各种可能的渠道,如软盘、计算机网络去传染其他的计算机。当你在一台机器上发现了病毒时,曾在这台计算机上用过的软盘往往已经感染上了病毒,而与这台机器联网的其他计算机也许也被感染上了该病毒。是否具有传染性是判别一个程序是否为计算机病毒的最重要条件。
一般来说,正常的程序是由用户调用,再由系统分配资源,从而完成用户交给的任务。其目的对用户来说是可见的、透明的。而病毒具有正常程序的一切特性,它隐藏在正常程序中,当用户调用正常程序时窃取到系统的控制权,先于正常程序执行,病毒的动作、目的对用户来说是未知的,是未经用户允许的。
近一段时期,蠕虫类病毒可以说是传播速度最快、传播范围最广的病毒了。近年来随着互联网的迅速发展,人们在工作和生活中也越来越依赖网络,E-mail这种联系方式也因其方便快捷的优点被人们广泛采用。不仅是个人用户使用,很多正式的商业联系和各类组织、政府机构的信息传递也是通过E-mail完成的。因此病毒的编制者就利用了电子邮件的这个特点,使所编制的病毒通过E-mail的方式来传播,这种传播方式不仅传播范围广,而且传播的速度也非常快。而且此类病毒通常会盗取计算机中所保存的邮件地址信息,通过这些信息大量复制自身并向这些地址发送带毒邮件。所以,蠕虫病毒有时也被称为“E-mail”病毒。
“美丽莎”、“SirCam”、“Nimda”、“求职信”等病毒就是通过这种方式传播的,它们的传播速度和范围是非常惊人的,24小时之内便可通过E-mail传遍全世界。而且“Nimda”和“求职信”病毒不仅通过邮件传播,还可以通过局域网文件共享和操作系统的漏洞等多种方式进行传播,传播能力更强。
8.针对性
一种计算机病毒(版本)并不能感染所有的计算机系统或计算机程序。有的病毒是感染Apple公司的Macintosh机的,有的病毒是感染IBM PC机的,有的病毒感染磁盘引导区,有的病毒感染可执行文件,等等。
9.变异性
计算机病毒在发展、演化过程中可以产生变种。有些病毒能够产生几十种甚至上百种变种。
10 .不可预见性
从对病毒的检测方面来看,病毒还有不可预见性。不同种类病毒的代码千差万别,但有些操作是共有的(如驻留内存,修改中断)。有些人利用病毒的这种共性,制作了声称可检查所有病毒的程序。这种程序的确可以查出一些新病毒,但由于目前的软件种类极其丰富,且某些正常程序也使用了类似病毒的操作甚至借鉴了某些病毒的技术。使用这种方法对病毒进行检测势必会造成较多的误报情况。而且病毒的制作技术也在不断提高,病毒对反病毒软件来说永远是超前的。
1.3 计算机病毒的结构
1.3.1 计算机病毒的程序结构
前面已经谈到了计算机病毒的特征,一般来讲,事物的特征往往是由事物自身的结构决定的。计算机病毒也是这样,病毒本身的特征也是由其结构决定的。计算机病毒的种类虽多,但对病毒代码进行分析和比较可以看出,它们的主要结构是类似的,有其共同特点。计算机病毒程序虽然长短不同、大小各异,但一般来讲都包含三个部分:引导部分、传染部分、表现或破坏部分。
引导部分的作用是将病毒主体加载到内存,为传染部分做准备(如驻留内存、修改中断、修改高端内存、保存原中断向量、修改注册表等操作)。
传染部分的作用是将病毒代码复制到传染目标上去。不同类型的病毒在传染方式、传染条件以及传播所借助的媒体上各有不同。
表现部分是病毒间差异最大的部分,前两个部分也是为这部分服务的。大部分的病毒都要满足一定条件才会触发其表现部分,如以计算机时钟、计数器作为触发条件或用键盘输入特定字符来触发。这一部分也是最为灵活的部分,这部分根据编制者的不同目的而千差万别,或者根本没有这部分。
后两个部分各包含一段触发条件验证代码,当各段验证代码分别验证出传染和表现或破坏的触发条件满足时,病毒就会进行传染和表现或破坏。必须指出的是,不是任何病毒都包含这三个部分。
1.3.2 计算机病毒的存储结构
计算机病毒大部分都是存储在磁盘中的,我们现在先来介绍一下磁盘的存储结构。
1.磁盘空间的总体划分
经过格式化后的磁盘包括:主引导记录区(只有硬盘有)、引导记录区、文件分配表(FAT)、目录区和数据区。主引导记录区和引导记录区中存有操作系统启动时所用的信息。FAT是反映当前磁盘扇区使用状况的表,它与目录一起对磁盘数据区进行管理。目录区存放磁盘上现有的文件目录及其大小、存放时间等信息。数据区存储和文件名相对应的文件内容数据。
(1)软盘空间的总体划分
当格式化一张软盘后,不仅把磁盘划分为若干磁道,每一磁道划分为若干扇区,而且同时把划分的扇区分为五大区域,它们分别是引导记录区、文件分配表1、文件分配表2、根目录区以及数据区。
对于软盘只有一个引导区,引导区在磁盘的0面0道1扇区,它的作用是在系统启动时负责把系统的两个隐含文件IO.SYS和MSDOS.SYS装入内存,并给DOS提供进行磁盘读写所必需的磁盘I/O参数表。FAT是反映磁盘上所有文件各自占用的扇区的一个登记表,此表非常重要,一旦被破坏,将无法查找文件的内容。即使对精通DOS的人来说,要修复FAT表损坏的磁盘文件亦非易事。为此系统在划分磁盘区域时,保留了两份完全相同的文件分配表。根目录区是记载磁盘上所有文件的一张目录登记表。主要记载每个文件的文件名、扩展名、文件属性、文件长度、文件建立日期、文件建立时间以及其他一些重要信息。
(2)硬盘空间的总体划分
对于不同类型、不同介质的磁盘,DOS划分磁盘的格式是不同的。对于硬盘来说,由于其存储空间比较大,为了允许多个操作系统分享硬盘空间,并希望能从磁盘启动系统,DOS在格式化硬盘时,把硬盘划分为主引导记录区和多个系统分区。
对于硬盘空间的分配由两个部分组成:第一部分就是整个硬盘的第一扇区,这一扇区称之为硬盘的主引导程序扇区,它由两部分内容组成:一是主引导程序,二是分区信息表。主引导程序是硬盘启动时首先执行的程序,由它装入执行活动分区(活动分区)引导程序,从而进一步引导系统。分区信息表登记各个分区引导指示符、操作系统指示符以及该分区占用硬盘空间的位置及其长度;第二部分是各个系统分区。各个系统分区是提供给各操作系统使用的区域,每一区域只能存放一种操作系统,在该区域中的系统具有自己的引导记录、文件分配表区、文件目录区以及数据区。若整个硬盘归DOS使用,硬盘上的信息包括5个部分,即第1扇区的主引导程序和分区信息表、分区引导程序、文件分配表区、文件根目录区、文件数据区。
硬盘主引导扇区很特殊,它不在DOS的管辖范围内,所以用DOS的非常驻命令FORMAT、FDISK、DEBUG都不能触及它。当该扇区损坏时,硬盘不能启动。用FORMAT、FDISK都不能修复它。DEBUG的L命令和W命令都不能用于主引导扇区。只有 在DEBUG下借用INT 13H或低级格式化方法才能修复。
2.系统型病毒的磁盘存储结构
系统型病毒是指专门传染操作系统的启动扇区,主要指传染硬盘主引导扇区和DOS引导扇区的病毒。下面简单介绍一下系统型病毒在磁盘上的存储结构。
病毒程序被划分为两部分,第一部分存放在磁盘引导扇区中,第二部分则存放在磁盘的其他扇区中。病毒程序在感染一块磁盘时,首先根据FAT表在磁盘上找到一个空白簇(如果病毒程序的第二部分占用若干个簇,则需要找到一个连续的空白簇),然后将病毒程序的第二部分以及磁盘原引导扇区的内容写入该空白簇,接着将病毒程序的第一部分写入磁盘引导扇区。
但是,由于磁盘的型号不同,病毒程序第二部分所占用的空白簇的位置就不同,而病毒程序在侵入系统时,又必须将其全部程序装入内存,在系统启动时装入的是磁盘引导扇区中的病毒程序,该段程序在执行时要将其第二部分装入内存,这样第一部分必须知道其第二部分所在簇的簇号或逻辑扇区号。为此,在病毒程序感染一个磁盘时,不仅要将其第一部分写入磁盘引导扇区,而且必须将病毒程序第二部分所在簇的簇号(或该簇第一扇区的逻辑扇区号)记录在磁盘的偏移地址01F9处,存放其第二部分所在簇的第一扇区的逻辑扇区号。
另外,由于DOS分配磁盘空间时必须将分配的每一个簇与一个文件相联系,但是系统型病毒程序第二部分所占用的簇没有对应的文件名,它们是以直接磁盘读写的方式被存取的,这样它们所占用的簇就有可能被DOS分配给新建立的磁盘文件,从而被覆盖。为了避免这样的情况发生,病毒程序在将其第二部分写入空白簇后,立即将这些簇在FAT中登记项的内容强制地标记为坏簇(FF7H),经过这样的处理后,DOS就不会将这些簇分配给其他新建立的文件了。
3.文件型病毒的磁盘存储结构
文件型病毒是指专门感染系统中的可执行文件,即扩展名为.COM、.EXE的文件或依赖于文件而发作的病毒。对于文件型病毒来说,病毒程序附着在被感染文件的首部、尾部、中部或“空闲”部位,病毒程序没有独立占用磁盘上的空白簇。也就是说,病毒程序所占用的磁盘空间依赖于其宿主程序所占用的磁盘空间。但是,病毒入侵后一定会使宿主程序占用的磁盘空间增加。
绝大多数文件型病毒属于所谓的外壳病毒。什么是文件外壳呢?简单地说是计算机软件的一种层次结构。比方说计算机软件公司编制了一种教育软件,经过设计调试,软件本身的功能已经很完善,可以作为独立的磁盘文件提供给用户。但为了提高产品的商品化程序,公司决定为软件加一个漂亮的封面,为此设计人员可以在已经完成的软件的基础上附加一段显示封面的程序。通常我们称软件本身为内核,而附加的显示封面的程序称为外壳。
尽管在结构上外壳接在内核后面,但运行的顺序仍然是先显示封面然后再跳转去执行内核。可执行文件的外壳一般具有相对独立的功能和结构,去掉外壳将不会影响内核部分的运行。如果我们用“病毒外壳”去替换“封面外壳”,那么就已经说明了文件型病毒的基本机理。计算机病毒一般不传染数据文件,这是由于数据文件是不能执行的,如果病毒传染了数据文件以后,病毒自身得不到执行权,也就不能进行进一步的传播,所以计算机病毒不可能存在于数据文件中,但可能修改和破坏数据文件。
1.4 计算机病毒的分类及命名
从第一个病毒问世以来,病毒的数量在不断增加。根据每年从计算机用户反馈的有关病毒的信息分析,计算机病毒数量的增长,已经从20世纪90年代初的每月几种达到了现在的每天200种以上。
从已经发现的计算机病毒来看,小的病毒程序只有几十条指令,不到上百个字节,而大的病毒程序简直像个操作系统,由上万条指令组成。有些病毒传播速度很快,并且一旦侵入计算机就会立即摧毁系统;而另外一些病毒则有较长的潜伏期,感染后需要经过二至三年甚至更长时间才发作;有些病毒感染系统内所有的程序和数据;有些病毒只对某些特定的程序或数据感兴趣;而有的病毒则对程序或数据毫无兴趣,只是不断自身繁衍,抢占磁盘空间,其他什么都不干。
由于计算机病毒及其所处环境的复杂性,以某种方式遵循单一标准为病毒分类无法达到对病毒的准确认识,也不利于对病毒的分析与防治。因此在本节中,我们将从多个角度对计算机病毒进行详细分类。
需要说明的是,按照计算机病毒的特点及特性,其分类方法有许多种。由于同一种病毒可能同时具备多种特征,因此在分类隶属关系上会产生交叉。
1.4.1 根据寄生的数据存储方式划分
根据寄生的数据存储方式可划分为三种类型:引导区型、文件型和混合型。
1.引导型病毒
直到20世纪90年代中期,引导型病毒一直是最流行的病毒类型,主要通过软盘在DOS操作系统里传播。引导型病毒感染软盘中的引导区,蔓延到用户硬盘,并能感染到用户盘中的“主引导记录”。一旦硬盘中的引导区被病毒感染,病毒就试图感染每一个插入计算机的软盘的引导区。
引导型病毒是这样工作的:磁盘引导区传染的病毒主要用病毒的全部或部分逻辑取代正常的引导记录,而将正常的引导记录隐藏在磁盘的其他地方。由于引导区是磁盘能够正常使用的先决条件,因此,这种病毒在运行的一开始(如系统启动)就能获得控制权,其传染性较大。由于病毒隐藏在磁盘的第一扇区,使它可以在系统文件装入内存之前先进入内存,从而使它获得对DOS的完全控制,这就使它可以传播并造成危害。由于在磁盘的引导区内存储着许多重要信息,如果对磁盘上被移走的正常引导记录不进行保护,则在运行过程中就会导致引导记录的破坏。引导区传染的计算机病毒较多,例如,“大麻”和“小球”病毒就是这类病毒。
引导型病毒会改写(即一般所说的“感染”)磁盘上的引导扇区(Boot Sector)的内容,软盘或硬盘都有可能感染病毒,再不然就是改写硬盘上的分区表(FAT)。如果用已感染病毒的软盘来启动的话,则会感染硬盘。
引导型病毒是一种在ROM BIOS之后,系统引导时出现的病毒,它先于操作系统的运行,依托的环境是BIOS中断服务程序。
引导型病毒利用操作系统的引导模块被放在某个固定的位置,并且其控制权的转交方式以物理地址为依据,而不是以操作系统引导区的内容为依据,因而病毒占据该物理位置即可获得控制权,而将真正的引导区内容搬家转移或替换,待病毒程序被执行后,将控制权交给真正的引导区内容,使得这个带病毒的系统看似正常运转,而实际上病毒已隐藏在系统中伺机传染和发作。
引导型病毒按其寄生对象的不同又可分为两类,即MBR(主引导区)病毒和BR(引导区)病毒。MBR病毒也称为分区病毒,将病毒寄生在硬盘分区主引导程序所占据的硬盘0头0柱面第1个扇区中。典型的病毒有大麻(Stoned)、2708等。BR病毒是将病毒寄生在硬盘逻辑0扇区或软盘逻辑0扇区(即0面0道第1个扇区)。典型的病毒有“Brain”、“小球”病毒等。
顾名思义,文件型病毒主要以感染文件扩展名为 .COM、.EXE及.OVL等可执行程序为主。它的安装必须借助于病毒的载体程序,即要运行病毒的载体程序,方能把文件型病毒引入内存。已感染病毒的文件执行速度会减缓,甚至完全无法执行。有些文件遭感染后,一执行就会被删除。大多数文件型病毒都会把它们自己的程序码复制到其宿主的开头或结尾处。这会使已感染病毒文件长度变长,但用户不一定能用DIR命令列出其感染病毒前的长度。也有部分病毒是直接改写“受害文件”的程序码,因此感染病毒后文件的长度仍然维持不变。
2.文件型病毒
文件型病毒是文件感染者,它运行在计算机存储器里,通常感染扩展名为COM、EXE、DRV、DLL、BIN、OVL、SYS、DOC、DOT、EXL的文件。每一次激活时,感染文件把自身复制到其他文件中,并能在存储器里保存很长时间,并在特定条件下进行表现或破坏。
与引导型病毒不同的是,文件病毒不但可以感染DOS系统文件,还可以感染Windows系统、IBM OS/2系统和Macintosh系统的文件。
随着计算机操作系统的不断更新换代和互联网在社会生活中的不断普及,文件型病毒有了更多的生存空间。即使在当前的计算机病毒多样性传播的大环境下,文件感染仍然是很多主流病毒所保留的“必要手段”。
文件型病毒分为源码型病毒、嵌入型病毒和外壳型病毒。源码型病毒是用高级语言编写的,若不进行汇编、链接则无法传染扩散。嵌入型病毒是嵌入在程序中的,它只针对某个具体程序起作用,如dBASE病毒。由于受环境限制,这两类病毒尚不多见。目前流行的文件型病毒几乎都是外壳型病毒,这类病毒寄生在宿主程序的前面或后面,并修改程序的第一个执行指令,使病毒先于宿主程序执行,从而随着宿主程序的使用而传染扩散。
3.混合型病毒
混合型病毒同时具备引导型和文件型两类病毒特征,又称综合型或复合型病毒。这类病毒既感染磁盘引导区,又感染可执行文件。这类病毒有极强的传染性,清除难度更大,并且常常因为杀毒不彻底而造成“病毒杀不死”的假象,令普通计算机用户谈毒色变。
对染有混合型病毒的计算机,如果只清除了文件上的病毒而没有清除硬盘引导区的病毒,系统引导时还会将病毒调入内存,从而重新感染文件;如果只清除了引导区的病毒,而没有清除可执行文件上的病毒,那么当执行带毒文件时,就又会感染硬盘引导区。
1.4.2 根据感染文件类型划分
保守地讲,计算机系统文件类型在300种以上。若按扩展名来说,截止目前能被病毒感染的文件包括EXE、COM、DLL、SYS、VXD、DRV、BIN、OVL、386、HTM、FON、DOC、DOT、XLS、XLT、VBS、VBE、JS、JSE、CSS、WSH、SCT、HTA、HTT、ASP、ZIP、ARJ、CAB、RAR、ZOO、ARC、LZH、PKZIP、GZIP、PKPAK、ACE等文件。虽然被感染的对象文件的表现形式不一样,但从本质上讲,病毒都是感染文件的程序指令代码部分的。
1.4.3 根据传播途径分类
1.单机病毒
单机病毒的载体是磁盘、光盘和U盘等可移动存储介质,常见的是病毒从软盘、光盘等传入硬盘,感染操作系统及已安装的软件或程序,然后再通过存储介质的转移又传染其他系统。
2.网络病毒
网络病毒的传播媒介不再是移动式载体,而是网络数据通道。这种病毒的传染能力更强,破坏力更大。
1.4.4 列举几种具有代表性的病毒类型
1.宏病毒
随着微软公司Office软件应用的不断普及,1996年出现了感染Word、Excel文件的病毒。直到20世纪90年代中期,文件型病毒还是最流行的病毒。但随后几年情形有所变化,宏病毒变得越来越流行。与当时已经流行十几年的病毒类型相比,宏病毒作为“后起之秀”,在短短两年左右就占了全部病毒数量的80%以上。另外,宏病毒还可衍生出各种变形变种病毒,这种“父生子,子生孙”的传播方式令许多系统防不胜防,这也使宏病毒成为威胁计算机系统的又一“杀手”。
宏病毒是一种寄存于文档或模板的宏中的计算机病毒。一旦打开这样的文档,宏病毒就会被激活并转移到计算机上,然后驻留在Normal模板上。此后,所有自动保存的文档都会“感染”上这种宏病毒,而且如果其他用户打开了感染了病毒的文档,宏病毒也会转移到他的计算机上。
宏病毒一般指的是用BASIC编写的病毒程序,是寄存在Microsoft Office文档上的宏代码。它影响对文档的各种操作,如打开、存储、关闭或清除等。当打开Office文档时,宏病毒程序就会被执行,即宏病毒处于活动状态,当触发条件满足时,宏病毒就会开始传染、表现和破坏。
2.蠕虫病毒
提起蠕虫病毒,读者可能不大能说清楚它到底是一个什么样的病毒,但是一提起“红色代码”、“尼姆达”、“爱情后门”、“2003蠕虫王”、“冲击波”、“震荡波”等臭名昭著的病毒,我想大家一定记忆犹新,这些病毒一旦暴发,便会在全球泛滥,引起整个网络的动荡。如果你经常上网的话,很可能遭遇过它们的侵害。
作为对互联网危害严重的一种计算机程序,网络中的蠕虫病毒的破坏力和传染性不容忽视。与传统病毒不同,蠕虫病毒以计算机为载体,以网络为攻击对象,而且具有自身复制的功能。蠕虫的传播无需用户操作,也不必通过“宿主”程序或文件,因此可潜入用户的系统并允许其他人远程控制用户的计算机。蠕虫病毒可自动向电子邮件地址簿中的所有联系人发送自己的副本,那些联系人的计算机也将执行同样的操作,结果会造成多米诺效应,消耗内存或网络带宽,导致用户计算机系统崩溃,使商业网络和整个Internet的速度减慢。
计算机病毒自出现之日起,就成为计算机的一个巨大威胁。而当网络迅速发展的时候,蠕虫病毒引起的危害开始显现。蠕虫病毒和一般的病毒有着很大区别。对于蠕虫病毒,现在还没有一个完整的理论体系。一般认为,蠕虫是一种通过网络传播的恶性病毒,它具有病毒的一些共性,如传播性、隐蔽性及破坏性等。与此同时,它还具有自己的一些特征,如不利用文件寄生(有的只存在于内存中),对网络造成拒绝服务,以及和黑客技术相结合等。在产生的破坏性上,蠕虫病毒也不是普通病毒所能比拟的,特别是网络的发展使得蠕虫病毒可以在短短的时间内蔓延整个网络,造成网络瘫痪。
蠕虫病毒的传播方式是多种多样的。有一些蠕虫病毒(如“红色代码”和“尼姆达”等)利用操作系统的漏洞主动进行攻击。有一些蠕虫病毒通过电子邮件、恶意网页的形式迅速传播,如“爱虫”病毒和“求职信”病毒等。这类病毒自从2001年大规模出现并迅速充斥人们的视野后就已经被所有反病毒产品生产厂商所重视,但直到2011年,对于我们的计算机系统和网络而言,蠕虫病毒仍然是仅次于木马病毒的第二大威胁因素。
3.特洛伊木马病毒
在神话传说中,特洛伊木马表面上是“礼物”,但实际上藏匿了袭击特洛伊城的希腊士兵。现在,特洛伊木马是指表面上是有用的软件、实际目的却是危害计算机安全并导致严重破坏的计算机程序。最近的特洛伊木马以电子邮件的形式出现,电子邮件包含的附件声称是微软的安全更新程序,但实际上是一些试图禁用防病毒软件和防火墙软件的病毒。
一旦用户经不起诱惑从而打开了以为来自合法来源的程序,特洛伊木马便趁机传播。为了更好地保护用户,微软公司常通过电子邮件发出安全公告,但这些邮件从不包含附件。在用电子邮件将安全警报发送给客户之前,他们也会在安全网站上公布所有安全警报。
特洛伊木马也可能包含在免费下载软件中,因此切勿从不信任的来源下载软件。
1.5 计算机病毒的命名规则
通常病毒名是由以下6字段组成的:主行为类型.子行为类型.宿主文件类型.主名称.版本信息.主名称变种号,其中字段之间使用“.”分隔。
1.主行为类型与病毒子行为类型
主行为类型:主行为类型标识某种病毒的最显著的行为特征,病毒可能包含多个主行为类型特征,这种情况可以根据每种主行为类型的危害级别,确定危害级别最高的作为病毒的主行为类型。其中危害级别是指对病毒所在计算机的危害程度。
下面列举了几种常见的病毒主行为类型。
(1)Backdoor危害级别:1
说明:中文名称——“后门”,是指在用户不知道、不允许的情况下,在被感染的系统上以隐蔽的方式运行,可以对被感染的系统进行远程控制,而且用户无法通过正常的方法禁止其运行。“后门”其实是木马的一种特例,它与木马之间的区别在于“后门”可以对被感染的系统进行远程控制(如:文件管理、进程控制等)。
(2)Worm危害级别:2
说明:中文名称——“蠕虫”,是指利用系统的漏洞、外发邮件、共享目录、可传输文件的软件(如:MSN、QQ、Fetion等)、可移动存储介质(如:U盘、移动硬盘)等方式传播自己的病毒。
(3)Trojan危害级别:3
说明:中文名称——“木马”,是指在用户不知道、不允许的情况下,在被感染的系统上以隐蔽的方式运行,而且用户无法通过正常的方法禁止其运行,这种病毒通常都含有利益目的。
(4)Virus危害级别:4
说明:中文名称——“感染型病毒”,是指将病毒代码附加到被感染的宿主文件(如:PE文件、DOS下的COM文件、VBS文件、具有可运行宏的文件)中,使病毒代码在被感染宿主文件运行时取得运行权的病毒。
(5)Harm危害级别:5
说明:中文名称——“破坏性程序”,是指那些既不会传播也不感染,但运行后直接破坏本地计算机,(如:格式化硬盘、大量删除文件等)导致本地计算机无法正常使用的程序。
(6)Dropper危害级别:6
说明:中文名称——“释放病毒的程序”,是指不属于正常的安装或自解压程序,其运行后会释放病毒并将它们运行。
(7)Hack危害级别:无定义
说明:中文名称——“黑客工具”,是指可以在本地计算机通过网络攻击其他计算机的工具。
(8)Binder危害级别:无定义
说明:捆绑病毒的工具。
子行为类型:同样的,病毒也可能包含多个子行为类型,这种情况可以根据每种主行为类型的危害级别确定危害级别最高的作为病毒的子行为类型。
标识病毒传播途径的子行为类型字段,例如:
(1)Mail危害级别:1
说明:通过邮件传播。
(2)MSN危害级别:3
说明:通过MSN传播。
(3)QQ危害级别:4
说明:通过OICQ传播。
(4)DL危害级别:3
说明:下载病毒并将其运行。
● 判定条款:
没有可调出的任何界面,逻辑功能为:从某网站上下载文件,然后加载或运行。
● 逻辑条件引发的事件:
事件1:不能正常下载或下载失败的文件不能判定为病毒。
操作准则:不符合正常软件功能组件标识条款的文件,确定为:Trojan.DL
事件2:下载的文件是病毒
操作准则:下载的文件是病毒,确定为:Trojan.DL
标识病毒行为目的的子行为类型字段,例如:
(5)Spy危害级别:1
说明:窃取用户信息(如:文件等)。
(6)PSW危害级别:2
说明:具有窃取密码的行为。
(7)Proxy危害级别:9
说明:将被感染的计算机作为代理服务器。
(8)Clicker危害级别:10
说明:点击指定的网页。
● 判定条款:
没有可调出的任何界面,逻辑功能为:点击某网页。
操作准则:该文件不符合正常软件功能组件标识条款的,确定为:Trojan.Clicker。(若该文件符合正常软件功能组件标识条款,就参考流氓软件判定规则进行判定)
(9)Dialer危害级别:12
说明:通过拨号来骗取Money的程序。
(10)Exploit
说明:漏洞探测攻击工具。
(11)Ddoser
说明:拒绝服务攻击工具。
(12)Flooder
说明:洪水攻击工具。
(13)Spam
说明:垃圾邮件。
(14)Anti
说明:免杀的黑客工具。
2.宿主文件字段
宿主文件是指病毒所使用的文件类型,是否有显示的属性。目前的宿主文件有以下几种。
(1)JS
说明:JavaScript脚本文件。
(2)VBS
说明:VBScript脚本文件。
(3)HTML
说明:HTML文件。
(4)Java
说明:Java的Class文件。
(5)COM
说明:Dos下的COM文件。
(6)EXE
说明:Dos下的EXE文件。
(7)Boot
说明:硬盘或软盘引导区。
(8)Word
说明:MS公司的Word文件。
(9)Excel
说明:MS公司的Excel文件。
(10)PE
说明:PE文件。
(11)Winreg
说明:注册表文件。
(12)Ruby
说明:一种脚本。
(13)Python
说明:一种脚本。
(14)BAT
说明:BAT脚本文件。
(15)IRC
说明:IRC脚本。
3.主名称
病毒的主名称是由分析员根据病毒体的特征字符串、特定行为或者所使用的编译平台来定的,如果无法确定则可以用字符串“Agent”来代替主名称,小于10k大小的文件可以命名为“Small”。
4.版本信息
版本信息只允许为数字,对于版本信息不明确的可不加版本信息。
5.主名称变种号
如果病毒的主行为类型、行为类型、宿主文件类型、主名称均相同,则可认为是同一家族的病毒,这时需要变种号来区分不同的病毒记录。如果一位版本号不够用则最多可以扩展3位,并且均为小写字母a~z,如:aa、ab、aaa、aab以此类推,由系统自动计算,不需要人工输入或选择。
1.6 计算机病毒的入侵方式
由于病毒是由很多无联系的个人或组织分别编写的,他们采用的技术各不相同,因此入侵方式也多种多样。
1.源代码嵌入攻击
病毒在源程序编译之前插入病毒代码,最后随源程序一起被编译成可执行文件,因此刚生成的文件就是带毒文件。这类软件并不多,因为这些病毒开发者不可能轻易得到那些软件开发公司编译前的源程序,况且这种入侵方式的难度较大,病毒制造者需要具备非常专业的编程水平。
2.代码取代攻击
这类病毒主要用自身的病毒代码取代宿主程序的整个或部分模块,这类病毒在早期的DOS时代非常普遍,清除起来也比较困难。
3.外壳寄生入侵
这类病毒通常将病毒代码附加在正常程序的头部或尾部,即相当于给程序添加了一个外壳。在被感染的程序执行时,病毒代码先被执行,然后才将正常程序调入内存。有很多病毒采用此类入侵方式。
4.系统修改入侵
这类病毒主要用自身程序覆盖或修改系统中的某些文件来达到调用或替代操作系统中部分功能的目的。由于是直接感染系统,因此危害较大,这是病毒目前的主流入侵方式。
1.7 计算机病毒的生命周期
计算机病毒的产生过程包括:设计—编写—传播—潜伏—触发—攻击。计算机病毒有一个生命周期,即从生成到完全根除。下面我们将介绍病毒生命周期的各个时期。
1.开发期
在几年前,制造一个病毒需要计算机编程语言的知识。但是今天有一点计算机编程知识的人都可以制造一个病毒。通常,计算机病毒是一些试图传播计算机病毒和破坏计算机的个人或组织制造的。
2.传染期
在一个病毒制造出来后,病毒的编写者将其复制并确认其已被传播出去。通常的办法是感染一个流行的程序,然后再将其放到BBS站点、校园网和其他大型组织当中以达到分发其复制物的目的。
3.潜伏期
病毒是自然复制的。一个设计良好的病毒可以在活化前的很长一个时期里被复制。这就给了它充裕的传播时间。这时病毒的危害在于暗中占据存储空间。
4.发作期
带有破坏机制的病毒会在满足某一特定条件时发作。一旦遇上某种条件,比如遇到某个日期或用户采取的某种特定行为,病毒就被活化了。没有感染程序的病毒处于没有活化的状态,这时病毒的危害在于暗中占据存储空间。
5.发现期
通常情况下,当一个病毒被检测到并被隔离出来后,它会被送到计算机安全协会或反病毒厂家,在那里病毒被通报和描述给反病毒研究工作者。通常,发现病毒是在病毒成为计算机界的灾难之前完成的。
6.分析期
在这一阶段,反病毒开发人员修改他们的软件以使其可以检测到新发现的病毒。这个阶段的长短取决于开发人员的素质和病毒的类型。
7.消亡期
若是所有用户安装了最新版的杀毒软件,那么任何病毒都将被扫除,因此没有什么病毒可以广泛地传播。但有一些病毒在消失之前有一个很长的消亡期。至今,还没有哪种病毒已经完全消失,但是某些病毒已经在很长时间里不再是一个重要的威胁了。
1.8 计算机病毒的传播
计算机病毒的传播主要是通过复制文件、传送文件、运行程序等方式进行的。而主要的传播途径有以下几种。
1.移动存储介质
通过使用被感染的软盘、光盘、U盘、存储卡等使计算机感染病毒。软盘和U盘主要是携带方便,在网络还不普及时,为了计算机之间互相传递文件,经常使用软盘,这样,通过软盘也会将一台计算机的病毒传播到另一台计算机。随着数码消费产品市场的成熟,U盘、CF、SD等各类存储卡成为了病毒传播的移动存储介质。
2.硬盘
在人们互相借用或维修硬盘时可将病毒传播到其他的硬盘或软盘上。
3.光盘
光盘的存储容量大,所以大多数软件都刻录在光盘上,以便于保存或互相传递。盗版软件主要是刻录在光盘上的,因其是只读的,所以一旦把带毒的软件刻录在光盘上,则不能清除,从而使得病毒无法永远去除。
4.网络
在计算机和网络日益普及的今天,人们通过计算机局域网、互联网以电子邮件、即时通信工具互相传递文件和信件,从而使病毒的传播速度更快了。因为资源共享,人们经常在网上下载免费及共享软件,病毒也难免会夹杂在其中。
5.点对点通信系统和无线通道
目前,这种传播途径还不是十分广泛,但预计在未来的信息时代,这种途径很可能与网络传播途径一起成为病毒扩散的两大“时尚渠道”。