第二章 计算机病毒
学习目标:
1. 了解计算机病毒的发展过程
2. 理解计算机病毒的原理与分类
3. 掌握不同种类计算机病毒的感染机制
4. 了解计算机病毒的结构
5. 分析计算机病毒程序和一般程序的联系和区别
6. 能够判断计算机是否感染了病毒,并采取相应策略解决问题
2.1 引言
计算机病毒对计算机系统及网络产生的破坏效应,使人们清醒地认识到它所带来的危害。目前,每年的新病毒数量都是呈指数级增长,而且由于近年来传输媒介的改变和因特网的大面积
普及,导致计算机病毒感染的对象也开始由工作站向网络设备(代理、防护和服务器设置等)转变,病毒的类型也由文件型向网络蠕虫型转变。如今,世界上很多国家的科研机构都在对病毒的现状和防护进行深入研究。
计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并能自我复制的一组计算机指令或者程序代码。计算机病毒是类似于生物病毒所具有的一些特征,它会复制自己并传播到其他宿主,并对宿主造成损害。计算机病毒中的宿主也是计算机程序。计算机病毒在传播期间一般会隐蔽自己,经过特定的条件能够触发并产生破坏。
2.2计算机病毒的起源及发展
2.2.1计算机病毒的起源
    关于计算机病毒的起源现在有几种说法,但还没有一个破人们所确认,也没有实质性的论述予以证明。下面将几种起源说简单介绍一下:
科学幻想起源说
    1977年,美国科普作家托马斯··雷恩推出轰动一时的Adolescence of p-1》一书。书中构想了一种能够自我复制,利用信息通道传播的计算机程序,并称之为计算机病毒。这是世界上第一个幻想出来的计算机病毒。人类社会有许多现行的科学技术,都在先有幻想之后才成为现实。因此,不能否认这本书的问世对计算机病毒的产生所起的作用。
游戏程序起源说
    20世纪70年代,计算机在人们的生活中还没有得到普及,美国贝尔实验室的计算机程序员为了娱乐,在自己实验室的计算机上编制吃掉对方程序的程序,看谁先把对方的程序吃光,有人认为这是世界上第一个计算机病毒,但这也只是一个猜测。
软件商保护软件起源说
计算机软件是一种知识密集型的高科技产品,由于人们对于软件资源的保护不尽合理,这就使得许多合法的软件被非法复制的现象极为平常,从而使得软件制造商的利益受到了严重的侵害。因此,软件制造商为了处罚那些非法复制者,而在软件产品中加入了病毒程序并由一定条件触发感染。例如,Pakistani Brain病毒在一定程度上就证实了这种说法。该病毒是巴
基斯坦的两兄弟为了追踪非法复制其软件的用户而编制的,它只是修改磁盘卷标,把卷标改为Brain以便识别。也正是因为如此,当计算机病毒出现之后,有人认为这是软件制造商为了保护自己的软件不被非法复制而导致的结果。
2.2.2计算机病毒的发展
    在病毒的发展史上,病毒的出现是有规律的,一般情况下一种新的病毒技术出现后,病毒迅速发展,接着反病毒技术的发展会抑制其流传。操作系统升级后,病毒也会调整为新的方式,产生新的病毒技术。
1) DOS引导阶段
  1987年,计算机病毒主要是引导型病毒,具有代表性的是小球石头病毒。当时的计算机硬件较少,功能简单,一般需要通过软盘启动后使用.引导型病毒利用软盘的启动原理工作,它们修改系统启动扇区,在计算机启动时首先取得控制权,减少系统内存,修改磁盘读写中断,影响系统工作效率,在系统存取磁盘时进行传播;1989年,引导型病毒发展为可以感染硬盘,典型的代表有石头2”
2) DOS可执行阶段
  1989年,可执行文件型病毒出现,它们利用DOS系统加载执行文件的机制工作,代表为耶路撒冷星期天病毒,病毒代码在系统执行文件时取得控制权,修改DOS中断,在系统调用时进行传染,并将自己附加在可执行文件中,使文件长度增加。1990年,发展为复合型病毒,可感染COMEXE文件。
3) 伴随、批次型阶段
1992年,伴随型病毒出现,它们利用DOS加载文件的优先顺序进行工作,具有代表性的是金蝉病毒,它感染EXE文件时生成一个和EXE同名但扩展名为COM的伴随体;它感染文件时,改原来的COM文件为同名的EXE文件,再产生一个原名的伴随体,文件扩展名为COM,这样,在DOS加载文件时,病毒就取得控制权计算机病毒的定义.这类病毒的特点是不改变原来的文件内容,日期及属性,解除病毒时只要将其伴随体删除即可。在非DOS操作系统中,一些伴随型病毒利用操作系统的描述语言进行工作,具有典型代表的是海盗旗病毒,它在得到执行时,询问用户名称和口令,然后返回一个出错信息,将自身删除。批次型病毒是工作在DOS下的和海盗旗病毒类似的一类病毒。
4) 多形阶段
1994年,随着汇编语言的发展,实现同一功能可以用不同的方式进行完成,这些方式的组合使一段看似随机的代码产生相同的运算结果。幽灵病毒就是利用这个特点,每感染一次就产生不同的代码。例如一半病毒就是产生一段有上亿种可能的解码运算程序,病毒体被隐藏在解码前的数据中,查解这类病毒就必须能对这段数据进行解码,加大了查毒的难度。多形型病毒是一种综合性病毒,它既能感染引导区又能感染程序区,多数具有解码算法,一种病毒往往要两段以上的子程序方能解除。
5) 变种阶段
1995年,在汇编语言中,一些数据的运算放在不同的通用寄存器中,可运算出同样的结果,随机的插入一些空操作和无关指令,也不影响运算的结果,这样,一段解码算法就可以由生成器生成,当生成器的生成结果为病毒时,就产生了这种复杂的病毒生成器,而变体机就是增加解码复杂程度的指令生成机制。这一阶段的典型代表是病毒制造机” VCL,它可以在瞬间制造出成千上万种不同的病毒,查解时就不能使用传统的特征识别法,需要在宏观上分析指令,解码后查解病毒。
6) 网络蠕虫阶段
1995年,随着网络的普及,病毒开始利用网络进行传播,它们只是以上几代病毒的改进.在非DOS操作系统中,蠕虫是典型的代表,它不占用除内存以外的任何资源,不修改磁盘文件,利用网络功能搜索网络地址,将自身向下一地址进行传播,有时也在网络服务器和启动文件中存在。
7) 视窗阶段
1996年,随着WindowsWindows95的日益普及,利用Windows进行工作的病毒开始发展,它们修改(NEPE)文件,典型的代表是DS.3873,这类病毒的机制更为复杂,它们利用保护模式和API调用接口工作,解除方法也比较复杂。
8) 宏病毒阶段
1996年,随着Windows Word功能的增强,使用Word宏语言也可以编制病毒,这种病毒使用类Basic语言、编写容易、感染Word文档等文件,在ExcelAmiPro出现的相同工作机制的病毒也归为此类,由于Word文档格式没有公开,这类病毒查解比较困难。
9) 互联网阶段
1997年以后,因特网发展迅速,各种病毒也开始利用因特网进行传播,一些携带病毒的数据包和邮件越来越多,如果不小心打开了这些邮件或登录了带有病毒的网页,计算机就有可能中毒。典型代表有尼姆达欢乐时光欢乐谷等病毒。
2003年,“2003蠕虫王病毒在亚洲、美洲、澳大利亚等地迅速传播,造成了全球性的网络灾难。其中受害最严重的无疑是美国和韩国这两个因特网发达的国家。韩国70%的网络服务器处于瘫痪状态,网络连接的成功率低于10%,整个网络速度极慢。美国不仅公众网络受到了破坏性的攻击,而且连银行网络系统也遭到了破坏,全国1.3万台得自动取款机处于瘫痪章台。
2004年是蠕虫泛滥的一年,网络天空(Worm.Netsky)、高波(Worm.Agobot)、爱情后门(Worm.Lovgate)、震荡波(Worm.Sasser)、无极(Worm.SoBig)等严重危害了互联网的使用和安全。
    2007年的熊猫烧香使所有程序图标变成熊猫烧香,并使它们不能应用。
    2008扫荡波同冲击波和震荡波一样,也是个利用漏洞从网络入侵的程序。而且正好在黑屏事件的期间,大批用户关闭自动更新以后,这更加剧了这个病毒的蔓延,这个病毒可以导致被攻击者的机器被完全控制。
    2010年的鬼影病毒成功运行后,在进程中、系统启动加载项里不到任何异常,同时即使格式化重装系统,也无法将彻底清除该病毒。犹如鬼影一般阴魂不散,所以称为鬼影病毒。
    如今,计算机病毒变得更加活跃,木马、蠕虫、后门等病毒层出不穷,甚至出现了2006年炒的火热的流氓软件。自2000年以来,由于病毒的基本技术和原理被越来越多的人所掌握,新病毒的出现以及原有病毒的变种层出不穷,病的的增长速度超过了以往的任何时期。
2.3计算机病毒的定义
    计算机病毒(Computer Virus)在《中华人民共和国计算机信息系统安全保护条例》中被明确定义,病毒是编制者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码
另外一种定义是:一种人为制造的程序,通过不同的途径潜伏或寄生在存储媒体(如磁盘、内存)或程序里。当某种条件或时机成熟时,它会自我复制并传播,使计算机的资源受到不同程度的破坏。这些说法在某种意义上借用了生物病毒的概念,计算机病毒同生物病毒的相似之处是计算机病毒能够入侵计算机系统和网络,危害正常工作的病原体(是指计算机中存放的数据或系统本身),能够对计算机系统进行各种破坏,同时能够自我复制,具有传染性。
2.4计算机病毒的分类
  根据多年对计算机病毒的研究,按照计算机病毒属性的方法进行分类,计算机病毒可以根据下面的属性进行分类:
按病毒存在的媒体
根据病毒存在的媒体,病毒可以划分为网络病毒,文件病毒,引导型病毒。网络病毒通过计算机网络传播感染网络中的可执行文件,文件病毒感染计算机中的文件(如:COMEXEDOC等),引导型病毒感染启动扇区(Boot)和硬盘的系统引导扇区(MBR)。
还有这三种情况的混合型,例如:多型病毒(文件和引导型)感染文件和引导扇区两种目标,这样的病毒通常都具有复杂的算法,它们使用非常规的办法侵入系统,同时使用了加密和变形算法。目前很多病毒都是这种混合类型的,一旦中毒,很难删除。病毒在感染系统之后,会在多处建立自我保护功能,比如注册表、进程、系统启动项等位置。如果进行手工清除,在注册表中到病毒对应项,删除后进程一旦检测出来,会重新写入注册表。而在进程中,病毒也不是单一地建立一个进程,而一般是两个或多个进程,同时这些病毒进程之间互为守护进程,即关掉一个,另外的进程会马上检测到,并新建一个刚被删除的进程。
按病毒传染的方法
  根据病毒传染的方法可分为驻留型病毒和非驻留型病毒,驻留型病毒感染计算机后,把自身的内存驻留部分放在内存(RAM)中,这一部分程序挂接系统调用并合并到操作系统中去,他处于激活状态,一直到关机或重新启动.非驻留型病毒在得到机会激活时并不感染计算机内存,一些病毒在内存中留有小部分,但是并不通过这一部分进行传染,这类病毒也被划分为非驻留型病毒。