第13章计算机病毒13.1计算机病毒概述13.2计算机病毒的基本结构13.3计算机病毒的基本原理13.4反病毒技术13.5典型病毒的特征及清除方法小结习题第13章计算机病毒计算机病毒隐藏在计算机系统的可存取信息资源中,利用系统信息资源进行繁殖并且生存,影响计算机系统正常运行,并通过系统信息关系和途径进行传染,这个观点最早由美国计算机病毒研究专家弗雷德·计算机病毒有很多种定义,国外最流行的定义为:计算机病毒是一段附着在其他程序上的可以实现自我繁殖的程序代码。在《中华人民共和国计算机信息系统安全保护条例》中的定义为:“计算机病毒是指编制或者在计算机程序中插入的破坏计算机功能或者数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码”。从广义上说,凡能够引起计算机故障,破坏计算机数据的程序统称为计算机13.1计算机病毒概述第13章计算机病毒13.1.1在计算机刚刚出现不久的1949年,计算机先驱冯·诺依曼在《复杂自动机组织论》论文中提出了能自我复制的计算机程序的构想,这实际上就是计算机病毒程序。在以后的很多年中,这种能自我繁殖的类似于生命的程序,仅仅作为一种理论存在于科学家的头脑中。直到十年之后,贝尔实验室的年轻程序员受到冯·诺依曼理论的启发,发明了“磁芯大战”游戏。玩这个游戏的两个人编制了许多能自我复制的程序,双方的程序在指令控制下就会竭力去消灭对方的程序。在预定的时间内,谁的程序繁殖得多,谁就获胜。这种第13章计算机病毒1983年11月3日,美国计算机安全专家弗雷德·科恩博士研制出了一种在运行过程中可以自我复制的破坏性程序,伦·艾德勒曼将它命名为计算机病毒,并在每周一次的计算机安全讨论会上正式提出,随后将该程序在VAX/11机上进行了攻击试验,并获得成功,从而在实验上验证了计算机病毒的存在。第13章计算机病毒到了1987年,第一个计算机病毒C-BRAIN诞生了。一般而言,业界公认这是真正具备完整特征的计算机病毒始祖。这个病毒程序是由巴斯特和阿姆杰德所写的,由于当地盗拷软件的风气非常盛行,因此他们的目的主要是为了防止他们的软件被任意盗拷。只要有人盗拷他们的软件,C-BRAIN就第13章计算机病毒1988年11月3日,美国6000台计算机被病毒感染,造成Internet不能正常运行。这次事件中遭受攻击的包括5个计算机中心和12个地区结点,连接着政府、大学、研究所和拥有政府合同的250000台计算机。这次病毒事件导致计算机系统直接经济损失达9600万美元。这个病毒程序的设计者为罗伯特·莫里斯,当年23岁,是在康奈尔(Cornell)大学攻读学第13章计算机病毒1996年,出现了针对微软公司Office的“宏病毒”。1997年被公认为计算机反病毒界的“宏病毒年”。1998年,首例破坏计算机硬件的CIH病毒出现,引起人们的恐慌。1999年4月26日,CIH病毒在全世界大规模爆发,进入21世纪,以蠕虫病毒与木马病毒为主的网络病毒成为计算机病毒的主流。蠕虫病毒与木马病毒是近年爆发最为频繁的病毒。据统计:蠕虫病毒占了2004年所有病毒感染的35%,木马病毒占据49%以上的比例,黑客病毒占据14%的比例,其余2%第13章计算机病毒总体上说,计算机病毒随计算机技术的发展而发展,伴随着操作系统的更新换代,病毒也会采用新的技术实现其功第13章计算机病毒1.第一代计算机病毒的产生年限可以认为在1986~1989年之间,这一期间出现的病毒可称为传统病毒,这一时期是计算机病毒的萌芽和滋生时期。由于当时计算机的应用软件少,而且大多是单机运行环境,因此病毒没有大量流行,流行病第13章计算机病毒这一阶段的计算机病毒具有如下的一些特点:(1)病毒攻击的目标比较单一,或者是传染磁盘引导扇(2)病毒程序主要采取截获系统中断向量的方式监视系(3)目标被病毒传染以后的特征比较明显,如磁盘上出现坏扇区,可执行文件的长度增加,文件建立日期、时间发生变化等。这些特征容易通过人工方式或查毒软件来发现。第13章计算机病毒(4)病毒程序不具有自我保护的措施,容易被人们分析第13章计算机病毒然而,随着计算机反病毒技术的提高和反病毒产品的不断涌现,病毒编制者也在不断地总结自己的编程技巧和经验,千方百计地逃避反病毒产品的分析、检测和解毒,从而出现第13章计算机病毒2.第二代计算机病毒又称为混合型病毒,其产生的年限可以认为在1989~1991年之间,它是计算机病毒由简单发展到复杂,由单纯走向成熟的阶段。这一阶段的计算机病毒具有如下特点:(1)病毒攻击的目标趋于混合型,即一种病毒既可传染(2)病毒程序不采用明显地截获中断向量的方法监视系统的运行,而采取更为隐蔽的方法驻留内存和传染目标。第13章计算机病毒(3)病毒传染目标后没有明显的特征,如磁盘上不出现坏扇区、可执行文件的长度增加不明显、不改变被传染文件(4)病毒程序往往采取了自我保护措施,如加密技术、反跟踪技术等来制造障碍,增加人们分析和解剖的难度,同第13章计算机病毒(5)出现了许多病毒的变种,这些变种病毒较原病毒总之,这一时期出现的病毒不仅在数量上急剧地增加,更重要的是病毒从编制的方式、方法,驻留内存以及对宿主第13章计算机病毒3.第三代计算机病毒的产生年限可以认为在1992~1995年之间,此类病毒称为“多态性”或“自我变形”病毒。“多态性”或“自我变形”病毒在每次传染目标时,放入宿主程序中的病毒程序大部分都是可变的,即在搜集到同一种病毒的多个样本中,病毒程序的代码绝大多数是不同的,这是此类病毒的重要特点。因此,传统的利用特征码法检测病毒的第13章计算机病毒据资料介绍,此类病毒的首创者是MarkWashburn,他并不是病毒的有意制造者,而是一位反病毒的技术专家。他编写此类病毒的目的是为了研究,即证明特征代码检测法不是在任何场合下都是有效的。1992年上半年,在保加利亚发现了黑夜复仇者(DarkAvenger)病毒的变种“MutationDarkAvenger”。这是世界上最早发现的多态性病毒,它可用独特的加密算法产生几乎无限数量的不同形态的同一病毒。我国在1994年发现了多态性病毒——“幽灵”病毒,迫使许多反病毒技术部门开发了相应的检测和杀毒产品。第13章计算机病毒由此可见,第三阶段是病毒的成熟发展阶段。在这一阶段中病毒的发展主要是病毒技术的发展,病毒开始向多维化方向发展。计算机病毒将与病毒自身运行的时间、空间和宿主程序紧密相关,这无疑将导致计算机病毒检测和消除的困第13章计算机病毒4.20世纪90年代中后期,随着远程网、远程访问服务的开通,病毒流行面更加广泛,病毒迅速突破地域的限制,首先通过广域网传播至局域网内,再在局域网内传播扩散。1996年下半年,随着国内Internet的大量普及和E-mail的使用,夹杂于E-mail内的Word宏病毒成为当时病毒的主流。由于宏病毒编写简单、破坏性强、清除繁杂,加上微软对DOC文档结构没有公开,给直接基于文档结构清除宏病毒带来了诸多不便。这一阶段病毒的最大特点是利用Internet作为其主要传第13章计算机病毒现今的网络时代,病毒的发展呈现出以下趋势:(1)(2)(3)制作病毒的方法更简单,传播速度更快,传播渠道(4)第13章计算机病毒13.1.2根据对计算机病毒的产生、传染和破坏行为的分析,所有计算机病毒都具有(或者部分具有)下述的特性,这些特性是病毒赖以生存的手段和机制,是计算机病毒对抗技术中必第13章计算机病毒1.传染性是病毒最基本的特征。计算机病毒的传染性是指病毒具有把自身复制到其他程序中的能力。计算机病毒会通过各种渠道从已被感染的计算机扩散到未被感染的计算机,第13章计算机病毒计算机病毒能通过程序本身的代码,强行传染到一切符合其传染条件而未受到传染的程序之上。计算机病毒可通过各种可能的渠道,如软盘、光盘、移动存储器、计算机网络去传染其他的计算机。是否具有传染性是判别一个程序是否为计算机病毒的首第13章计算机病毒2.任何病毒只要侵入系统,都会对系统及应用程序产生程度不同的影响。轻者会降低计算机工作效率、占用系统资源;根据计算机病毒的破坏性程度可粗略地将病毒分为良性病毒和恶性病毒。良性病毒不包含立即直接破坏的代码,但这类病毒的潜在破坏是有的,它使内存空间减少,占用磁盘空间,降低系统运行效率,使某些程序不能运行,它还与操作系统和应用程序争抢CPU的控制权,严重时导致系统死机、网络瘫痪等。恶性病毒在代码中包含有损伤、破坏计算机系统的操作,在其传染或发作时会对系统直接造成严重损坏。第13章计算机病毒3.计算机病毒一般是具有很高的编程技巧、短小精悍的程序。它通常附在正常程序中或磁盘较隐蔽的地方,也有个别的以隐含文件的形式出现,目的是不让用户发现它的存在。如果不经过代码分析,病毒程序与正常程序是不容易区别开来的。计算机病毒的隐蔽性表现在传染的隐蔽性和病毒程序第13章计算机病毒一般在没有防护措施的情况下,计算机病毒程序取得系统控制权后,可以在很短的时间里传染大量程序,而且受到传染后,计算机系统通常仍能正常运行,不会感到任何异常。正是由于隐蔽性,计算机病毒才可以在没有察觉的情况下扩第13章计算机病毒4.大部分病毒在感染系统后一般不会马上发作,而是长期隐藏在系统中,除了传染外,不表现出破坏性,只有在满足其特定条件后才启动其表现模块,显示发作信息或进行系统破坏。病毒的潜伏性越好,它在系统中的存在时间就会越长,第13章计算机病毒计算机病毒因某个事件或数值的出现,诱使病毒实施感染或进行攻击的特性称为可触发性。使计算机病毒发作的触发条件主要有以下3种:(1)(2)(3)利用计算机内执行的某些特定操作作为触发条件。第13章计算机病毒5.不同种类的病毒,它们的代码千差万别,但有些操作技术是共同的(如驻内存、改中断)。有些人利用病毒的这种共性,制作了声称可查所有病毒的程序。这种程序的确可查出一些新病毒,但由于目前的软件种类极其丰富,有些正常程序也使用了类似病毒的操作,甚至借鉴了某些病毒的技术。使用这种方法对病毒进行检测势必会造成较多的误报情况,而且病毒的制作技术也在不断提高,病毒对于反病毒软件来第13章计算机病毒计算机病毒是一种特殊程序,其最大的特点是具有感染能力。病毒的感染动作受到触发机制的控制,同样受病毒触发机制控制的还有病毒的破坏动作。病毒程序一般由主控模块、感染模块、触发模块和破坏模块组成,但并不是所有的病毒都具备这4个模块,如巴基斯坦病毒就没有破坏模块。13.2第13章计算机病毒1.主控模块在总体上控制病毒程序的运行,协调其他模块的运作。染毒程序运行时,首先运行的是病毒的主控模块。(1)(2)(3)(4)第13章计算机病毒一般来说,主控模块除完成上述动作外,还要执行下述动作:(1)调查运行的环境,如确定系统内存容量、磁盘设置(2)常驻内存的病毒还要请求内存区、传送病毒代码、(3)处理病毒运行时的意外情况,防止病毒自身信息的第13章计算机病毒2.感染模块的作用是将病毒代码传染到其他对象上去,负责实现感染机制。有的病毒有一个感染标志(又称病毒签名),但不是所有的病毒都有感染标志。感染标志是一些数字或字符串,它们以ASCII码方式存放在宿主程序里。第13章计算机病毒一般病毒在对目标程序传染前会判断感染条件,如是否有感染标志或文件类型是否符合传染标准等,具体如下:(1)(2)(3)如果没有感染标志,则进行感染,将病毒代码放入第13章计算机病毒感染标志不仅被病毒用来决定是否实施感染,还被病毒用来实施欺骗。不同病毒的感染标志的位置、内容都不同。通常,杀毒软件将感染标志作为病毒的特征码之一。同时,人们也可以利用病毒根据有无感染标志感染这一特性,人为地、主动地在文件中添加感染标志,从而在某种程度上第13章计算机病毒3.触发模块根据预定条件满足与否,控制病毒的感染或破坏动作。病毒的触发条件有多种形式,主要有日期和时间触发、键盘触发、启动触发、磁盘访问触发和中断访问触发及其他触发方式。病毒触发模块的主要功能如下:(1)(2)(3)第13章计算机病毒4.破坏模块负责实施病毒的破坏工作,其内部是实现病毒编