《通信网安全与保密》课件第2章_第1页
《通信网安全与保密》课件第2章_第2页
《通信网安全与保密》课件第2章_第3页
《通信网安全与保密》课件第2章_第4页
《通信网安全与保密》课件第2章_第5页
已阅读5页,还剩265页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章计 算 机 病 毒2.1病毒的基本概念2.2引导型病毒2.3文件型病毒2.4宏病毒2.5网络病毒与防护2.6典型病毒原理及防治方法

2.7小结习题

2.1病毒的基本概念计算机病毒的发源地在美国。1977年夏季,美国的Thomas.J.Ryan出版了一本科幻小说,名叫《TheAdolescenceofP-1》。在这本书中,作者构思出了世界上第一个计算机病毒。这种病毒能从一台计算机传播到另一个计算机,最终能控制7000台计算机的操作系统。事实上,在20世纪60年代初期,美国电报电话公司贝尔研究所里就有一群年轻的研究人员,他们做完工作后,常常留在实验室里饶有兴趣地玩一种他们自己创造的计算机游戏。这种被称为“达尔文”的游戏很有刺激性。它的玩法是由每个人编一段小程序,输入到计算机中运行,相互展开攻击,设法毁灭别人的程序。这种程序就是计算机病毒的雏形,然而当时人们并没有意识到这一点。真正的计算机病毒,通常认为是1982年首先产生在贝尔研究所,当时是因为工作失误,无意中造出了计算机病毒。但是,也有人认为,大约在同一时期,首先是施乐公司帕洛阿尔托研究所的研究人员在试验开发中制造出了计算机病毒。从那时起,一些软件开发人员和一些恶作剧者,为了显示自己高超的技艺或存心开玩笑,陆续制造了不少计算机病毒。计算机界真正认识到计算机病毒的存在是在1983年。在这一年的11月3日的计算机安全学术讨论会上,美国计算机安全专家弗雷德·科恩博士首次提出了计算机病毒的概念,随后获准进行实验演示。当天,专家们首先在运行Unix操作系统的VAX11/750机上实验,成功地验证了第一个计算机病毒,一周后,又演示了另外五个实验。在5次实验中,计算机病毒使计算机系统瘫痪所需的时间平均为30分钟。由此证实了计算机病毒的存在,证明计算机病毒可以在短时间内实现其对计算机系统的破坏,并且可以迅速地向外传播。实际上,计算机病毒的广泛传染始于1987年,到1988年,计算机病毒才开始得到人们的重视。尤其是在1988年11月3日以后,计算机病毒才逐步为计算机界人士所了解。1988年11月3日,美国境内的因特网遭到了计算机病毒的攻击,该网络中约有620台基于Unix系统的VAX系列小型机及SUN工作站都染上了病毒,计算机用户的损失约9200多万美元。从此,国际计算机领域掀起了一个研究计算机病毒的高潮。自计算机病毒开始传播算起,仅三年多的时间,就出现了几十种病毒(不包括同类病毒的变种),并传遍了整个世界,世界各地均有受到计算机病毒破坏的恶性事件的报道。早期发现的计算机病毒,主要是攻击IBMPC机及其兼容机,大约有几十种,其中传播最广的是小球病毒,这种病毒很快就产生了十余种变种;其次是大麻病毒、黑色星期五病毒、巴基斯坦病毒。另外还发现了雨点病毒、杨基都督病毒、磁盘杀手病毒、音乐病毒等。在20世纪90年代,随着反病毒技术的提高和计算机网络的发展,计算机病毒也不断变换新的花样。1991年,发现首例专门攻击计算机网络的病毒GPI,它突破了NovellNetWare网络的限制。1992年,又发现了首例Windows中的病毒。1994年后,采用密码技术编写的技巧高超的隐蔽性病毒和多变体型病毒在世界各地接连不断地被发现,如变形金刚、幽灵王等。20世纪90年代中期,出现了病毒工具包或“病毒生产厂”软件。1995年8月9日,在美国首次发现的新型宏病毒(是一种概念病毒,这种病毒的目的是要演示如何利用系统安全漏洞,本身危害性不大)专门攻击Windows系统。

1996年在北美地区流行的宏病毒,不但标志着病毒类型变化的多元化新趋势,而且也说明病毒造成的危害越来越大。1998年6月,世界上发现首例能够破坏硬件的病毒——CIH病毒。1999年3月26日发现的美丽莎病毒仅用12~16个小时就席卷全球互联网,在短短几天之内感染了数以百万计的计算机。“美丽莎”的大流行被称为“前所未有的、席卷全球的因特网病毒风暴”。2000年5月4日,“爱虫”病毒使美国蒙受病毒史上最大的损失,这是第一个能够侵入机密计算机系统的病毒,仅仅2个小时,就造成10多亿美元的损失。其中,美国国防部有4台机密计算机在防火墙被攻破后遭到“爱虫”感染。2000年5月,以“爱虫”病毒为代表的计算机病毒,包括新爱虫、珍妮特·西蒙斯简历等病毒的大爆发,影响了全球数百万使用者,其造成的全球损失估计达到67亿美元。

2001年,全世界已知的计算机病毒超过60000种,而在三年多以前,只有14000多种。据统计,世界上的计算机病毒以每星期10种的速度递增。随着手机的普及,手机病毒也开始出现,并且慢慢地渗透进我们的生活。实际上,手机病毒与其它计算机病毒一样,也是一种特殊的计算机程序,它具有传染性、潜伏性、触发性和破坏性。手机病毒可利用发送短信、彩信、电子邮件、浏览网站、下载铃声等方式进行传播。手机病毒可能会导致用户手机死机、关机、资料被删、向外发送垃圾邮件、自动拨打电话等,甚至还会损毁SIM卡、芯片等硬件。无论手机病毒如何表现,其本质与其它计算机病毒没有差别。之所以会出现手机病毒,是因为手机其实是一套具有嵌入式系统的智能通信设备,这个系统中拥有嵌入式操作系统软件和通信系统应用软件,所以会遭受病毒攻击。手机病毒就是靠软件系统的漏洞来入侵手机的。手机病毒传播和运行的必要条件是移动服务商要提供数据传输功能,而且手机需要支持Java等高级程序写入功能。现在许多具备上网及下载功能的手机都可能会被手机病毒入侵。最早的手机病毒出现在2000年,当时,手机公司Movistar收到大量由计算机发出的名为“Timofonica”的骚扰短信,该病毒通过西班牙电信公司“Telefonica”的移动系统向系统内的用户发送垃圾短信。事实上,该病毒最多只能被算做短信炸弹。真正意义上的手机病毒直到2004年6月才出现,就是“Cabir”蠕虫病毒,这种病毒通过诺基亚60系列手机复制,然后不断寻找安装了蓝牙的手机。之后,手机病毒开始泛滥。计算机病毒已经成为通信网络安全的主要威胁。本节从计算机病毒的本质开始,介绍计算机病毒的特点、类型、存储方式等基本概念。2.1.1病毒的本质从本质上讲,计算机病毒就是一种特殊的计算机程序。因为这种特殊的程序能像微生物学所称的病毒一样,在计算机系统中繁殖、生存和传播,并像微生物病毒对动植物体带来疾病那样,这种特殊的计算机程序可以对计算机系统资源造成严重的破坏,所以人们就借用了这个微生物学名词,来形象地描述这种特殊的计算机程序。

1.计算机病毒的定义计算机病毒的定义最早是由美国计算机专家弗雷德·科恩博士给出的,他指出,计算机病毒是一种程序,它用修改其它程序的方法将自己的精确拷贝或者可能深化的形式放入其它程序中,从而感染它们。由于这种感染特性,病毒可在信息交流的途径中迅速传播,并且破坏信息的完整性。在1994年2月28日颁布的《中华人民共和国计算机信息系统安全保护条例》中是这样定义计算机病毒的:“计算机病毒是指在计算机程序中编制或者插入的破坏计算机功能或者毁坏数据,影响计算机使用,且能自我复制的一组计算机指令或者程序代码。”计算机专家B.W.Burnham认为:计算机病毒是一种能够使其自身的拷贝插入(通常以非破坏方式)到某个接受拷贝的程序中(或宿主程序中)的指令序列。这些定义都从不同的角度阐述了计算机病毒的概貌,但这似乎还不够,因为它仅仅是说明了计算机病毒的一些形式。由这些病毒的定义我们可以看出,计算机病毒本质上是一段程序,这段程序具有隐蔽性、传染性、潜伏性和破坏性。

2.计算机病毒的传播载体病毒的传播载体主要有网络、电磁性介质和光学介质三种。这些病毒传播的载体,为计算机病毒的广泛传播提供了基础。

(1)网络传播载体。在计算机网络中,每一台主计算机系统都要与其它主计算机系统之间进行通信,实现系统中的资源共享和数据传输,这个网络中各主机系统之间的通信线路就构成了病毒传播的载体,使得病毒能够从一台主机传播到另一台主机,在网络中扩散传播。“蠕虫”就是通过计算机网络传播的病毒。现代通信技术的进步,已使得数据、文件、电子邮件可以很方便地在各个网络工作站间传送。计算机病毒可以附着在正常文件中,如果从网络另一端得到一个被感染的程序,且在用户的计算机上未加任何防护措施的情况下运行它,病毒就开始传染。在计算机网络普及的今天,这种病毒的传染方式是很常见的。在计算机网络中,计算机病毒可以通过网络自动在内存中复制,也可以通过E-mail、FTP甚至WWW网页的浏览进行传播和传染。

(2)电磁性介质传播载体。这种传播载体主要有硬盘、软盘、磁带、移动硬盘、Flash存储器甚至存储芯片。早期,由于软磁盘体积小、便于携带、操作方便,因此被广泛采用。病毒程序如果隐藏在软盘中,随着该软盘被拷贝复制,或在不同的计算机系统中使用,病毒就被传播出去。近年来,随着移动硬盘和Flash存储器的不断普及,利用这些存储介质进行传播的病毒不断出现。目前,出现了通过存储芯片传播的病毒。这种病毒程序具有较强的感染力和破坏力。隐藏在专用芯片中的病毒具有很强的隐蔽性,在没有收到指令时它静止地驻留在芯片内,极不容易被发现;一旦接到指令,它便会被触发,进行扩散和破坏。这种病毒是很难遇到的,但在分析、研究计算机病毒的传染途径时,应该重视这样一条病毒传染的途径。目前还没有检测手段可以用于这方面的检查。

(3)光学介质传播载体。随着光电技术的发展,光盘得到了极大的发展,目前,它成了普遍使用的新型存贮介质,当然也成为传播计算机病毒的又一种新的载体。随着计算机无线网络技术的迅速发展和普及应用,无线电波也成了计算机病毒传染的渠道。

3.计算机病毒传染的基本条件计算机病毒传染的两个先决条件是计算机系统的运行和发生读写介质(磁盘)上数据的操作,没有这两个条件,计算机病毒是不会传染的。如果计算机没有运行,病毒程序就不会运行,当然也就无法传播。如果没有读写操作,病毒就不能传入存储介质,而只是驻留于内存或者是存储于设备之中,孤立地存在,不会向其它存储介质传播病毒。通常情况下,只要计算机运行,就可能有读写操作,而且计算机磁盘的读写操作还会很频繁。所以,计算机病毒传染的两个先决条件很容易得到满足。

4.计算机病毒的传播步骤计算机病毒主要通过以下三个步骤进行传播。

(1)驻留内存。病毒要达到传染的目的,必须驻留在内存之中,这样才有可能获得对系统的控制权,所以病毒首先要驻留内存。一般病毒在内存中申请一定的空间,并常驻内存。病毒程序通过其自我保护功能来保证这一空间的相对独立性,使其不被其它数据覆盖掉。通常病毒程序驻留在内存高端,或者驻留在某一特定的内存区域。

(2)寻找传染的机会。病毒驻留内存之后,首先寻找可进行攻击的对象,并判定这一对象是否可被传染(有些病毒的传染是无条件的,即不进行任何判别)。

(3)进行传染。当病毒寻找到传染的对象并判定传染条件满足之后,通过对INT13H磁盘中断服务程序的修改(修改中断向量或者中断服务程序的内容),达到传染病毒的目的,并将病毒写入磁盘系统。

5.计算机病毒的传染方式计算机病毒的传染方式可以归为两大类,一类是引导扇区(包括硬盘的主引导扇区)传染,另一类是可执行文件传染。前者是以病毒程序的全部或部分代替原来的正常引导程序,在系统开始执行引导程序时,它获得系统的控制权,将病毒自身引导到内存,达到传染的目的。当然,病毒自身引导完后,它要把控制权交给正常引导程序。因此,这类病毒叫做引导型病毒。后者是把病毒程序全部链接到可执行的文件中,当然也存在病毒程序替换原来正常程序中的一个或部分模块的情况,这种病毒程序传染的首要任务是在受传染的正常程序执行之前,获得对系统的控制权,或者说,是在正常的未受传染的程序运行之前先行对该执行文件进行感染。因此,这类病毒叫做文件型病毒。

6.计算机病毒的种类尽管计算机病毒的名称千奇百怪,但是,从病毒的本质上看,每一种病毒都可划归为某一种病毒类型。我们可以按不同的分类标准对病毒进行分类。就计算机病毒破坏性产生的后果而言,一般将计算机病毒分为良性病毒和恶性病毒两大类。良性病毒是指那些只是为了表现自己而并不破坏系统数据,只占用系统CPU资源或干扰系统工作的计算机病毒;恶性病毒是指病毒制造者在主观上故意要对被感染的计算机实施破坏,这类病毒一旦发作,就会破坏系统的数据、删除文件、加密磁盘或格式化系统盘,使系统处于瘫痪状态。就计算机病毒的寄生方式来说,一般将计算机病毒分为两种类型。第一类是系统引导型病毒,这种病毒也称为操作系统型病毒,其特点是当系统引导时,病毒程序被装入内存,同时获得对系统的控制权,对外传播病毒,并在一定的条件下发作,实施破坏。第二类是文件型病毒,也叫外壳型病毒,这类病毒是将其自身嵌入到系统可执行文件之中,对原来的文件不作修改。运行可执行文件时,病毒程序获得控制权而首先被执行,并且进入到系统中,获得对系统的控制权,再按同样的方式将病毒程序传染到其它执行的文件中。按照广义的计算机病毒概念,病毒可以分为5类。

(1)蠕虫。蠕虫是一种短小的程序,这种程序使用未定义过的处理器(即网络上的空闲处理器)来自行完成并行处理。这种程序常驻于一台或多台机器中,并有重定位的能力。如果它检测到网络中某台机器未被占用,就把自身的一个拷贝发送到那台机器上。

(2)逻辑炸弹。这是一种当满足某些触发条件(如时间、地点、字符串、特定名字等)时就会发作引起破坏的程序。

(3)特洛伊木马。它通常是由远程计算机通过网络控制本地计算机的程序,为远程攻击提供服务。这种病毒遵循TCP/IP协议,往往出现在网络的电子告示牌上。

(4)陷门。这是由程序的开发者有意安排的。当程序进入计算机网络时,实际运行后只有开发者自己掌握操作的秘密,使该程序完成某种特定的事情,而其他人则往往进入子程序死循环。

(5)细菌。这是一种可不断在系统上复制自己,以占据计算机系统存储器的程序。这种程序进入网络后,将不断繁殖至填满整个网络的存储系统,使得用户必须关机,清除所有由这一程序繁殖的子程序之后,才能使网络系统恢复正常运行。2.1.2病毒的特点计算机病毒是一段具有特殊性质的程序,其特殊性表现在它的隐蔽性、传染性、潜伏性、可触发性以及表现性(或破坏性)等方面。

1.隐蔽性病毒的隐蔽性是指它隐藏于计算机系统中,不容易被人发现的特性。隐蔽性是病毒程序得以长期潜伏的首要条件。计算机病毒都是一些可以直接运行或间接运行的程序,它常隐藏在操作系统的引导扇区、可执行程序或数据文件以及磁盘上某些被标记为坏簇的扇区中,不易被察觉。

2.传染性传染性是指病毒将自身复制到其它程序或系统的特性。病毒程序一进入计算机系统中,就开始寻找感染对象,包括可执行程序或存储信息的媒介,通过自我复制,它很快地传播到整个系统或其它存储介质上。病毒可以传染一个局部网络、一个大型计算机中心或者一个多用户系统。病毒的传染性是计算机病毒的再生机制,是衡量一种程序是否为病毒的首要条件,它是构成计算机病毒的重要条件之一。

3.潜伏性潜伏性是指病毒具有依附于其它介质而寄生的特性。编制巧妙的病毒程序,可以在几天、几周、几个月、甚至几年内隐蔽在合法文件之中,悄悄地进行传播和繁殖,而不被人们发觉。在此期间,只要计算机系统工作,就会传染病毒,使得编制的程序和数据文件的备份等可能染上病毒,而成为病毒的“携带者”。计算机病毒的潜伏性与传染性相辅相成,潜伏性越好,它在系统中存在的时间就会越长,病毒的传染范围也就会越大,其破坏程度也就越大。4.可触发性可触发性是指只有达到设定的条件,病毒才开始传染或者表现的特性。计算机病毒一般都有一个或若干个触发条件,比如在一定的条件下激活一个病毒的传染机制,使之进行传染,或者是在一定条件下激活计算机病毒的表现部分或破坏部分,表现其自身的存在或破坏系统以及存储介质上的数据。触发条件可以是外界的,也可以是系统内部的,但对病毒本身而言,触发条件都是外部因素。一种病毒只是设置一定的触发条件,这个触发条件由外部因素提供,通过病毒自身的判断功能来实现。触发的实质是一种条件控制。一个病毒程序可以按照设计者的要求,在某个点上激活,并对系统发起攻击。攻击是否进行,可以与多种情况联系起来,比如指定的某个时间、日期、特定的用户识别标志符的出现、特定文件的出现、某一文件使用的次数、某些特定的操作、外部命令等等。

5.表现性或破坏性表现性是指当病毒触发条件满足时,病毒在受感染的计算机上开始发作,表现出特定的行为。如果这种行为是恶意的,以毁坏数据、干扰系统为目的,则这种表现性就是一种破坏性。病毒程序的最终目的是要干扰系统,破坏数据,因此它一定要表现其自身的存在,这主要体现在占用系统资源(如占用内存空间、占据硬盘空间、消耗系统运行时间等)、破坏系统中的数据文件、干扰程序的正常运行甚至摧毁整个系统上。病毒程序的表现性或破坏性体现了病毒程序设计者的真正目的,这是构成计算机病毒的第二个重要条件。由于病毒程序的破坏性会带来严重的危害,因此,它成为计算机系统安全的首要威胁。2.1.3病毒的程序结构由于计算机病毒本身是一类可执行的程序,因此,它必然要利用现有的计算机系统软件和硬件资源,作为其生存、繁殖和扩散的保障。现代计算机系统的硬件环境和软件环境决定了计算机病毒的结构。计算机病毒的制造者就是根据计算机系统的软、硬件环境,抓住计算机系统的薄弱环节,来构造其病毒程序的。尽管各类计算机病毒程序的表现千差万别,但是在结构上它们确实具有一些共性。各类计算机病毒大都由三部分组成,即引导部分、传播部分和表现部分。个别病毒尚没有表现部分,比如大麻病毒、巴基斯坦病毒等。驻留在传播介质上的计算机病毒程序结构如图2.1所示。图2.1计算机病毒程序结构计算机病毒的传播部分和表现部分依附在引导部分上,它们必须由引导部分带入计算机系统后,才能发挥其各自的作用。这时的病毒处在静止状态,尚不具备向外传染和破坏的能力。病毒进入到系统后,传播部分和表现部分均直接与系统打交道,控制或干扰系统的某些工作。这时病毒程序已从静态转变为动态,并开始向外传播病毒。当满足触发条件后,其表现部分发作,干扰系统的正常工作,有的甚至删除操作系统文件。

1.引导部分病毒程序的引导模块主要是将整个病毒程序送入计算机系统中,完成病毒程序的安装。对于含有较长代码的病毒程序(如小球病毒,病毒程序被分成两部分在介质中存放),则要首先实现几部分病毒程序的合并,然后再进行安装。在此之后,引导程序还要修改系统的中断向量,使之分别指向病毒程序的传播部分和表现部分。这样就使病毒程序的这两部分由静态转变为动态,并脱离引导模块,直接与计算机系统打交道。最后,引导模块还要执行原来系统正常的引导工作(对操作系统型病毒而言),或执行被调入内存的可执行文件(对外壳型病毒而言)。这样,在用户看来,计算机仍在“正常”地工作,而丝毫觉察不到病毒的入侵。

2.传播部分病毒程序的传播模块完成将病毒程序向其它网络、硬盘等介质传染的工作,担负着向外扩散病毒的任务。该模块一般包括两部分:一部分是传播条件判断部分,对满足条件的介质施行传染;另一部分是传染部分,将整个病毒程序传至被攻击的目标上。一个程序是否具有传染能力,是判断它是否为计算机病毒程序的先决条件。正是其传染性,才使得病毒程序得以生存和繁殖。对于引导型病毒而言,病毒程序的传播过程只是在读、写盘操作瞬间;对于文件型病毒而言,病毒程序的传播过程是在它所寄生的可执行文件启动运行的瞬间。因此,传播过程很难被察觉。

3.表现部分病毒程序表现模块的作用,体现了该病毒设计者的真正目的。恶作剧者所编写的计算机病毒的表现模块,只是为了表现病毒自身的存在,并以此来宣扬设计者的才华,显示自己的编程技巧,或通过这种表现使计算机效率降级,从中求得乐趣。而作为恶毒攻击者,他所编写的计算机病毒的表现部分,其主要作用是对系统的数据进行破坏,干扰系统的运行,甚至致使计算机系统瘫痪。表现模块也分为两部分。第一部分为触发判断条件,根据这一部分来确定病毒程序是否对计算机系统进行破坏。这个触发条件就像定时炸弹一样构成了对系统数据的严重威胁。第二部分为表现部分工作段,具体地体现病毒制造者的目地,实施对系统的破坏。2.1.4病毒与存储结构病毒隐藏在计算机系统中,无论它如何隐秘,必然是存储在其赖以寄生的介质上。在计算机系统中,无论是系统程序、应用程序还是数据,都是按着一定的结构进行存储的,特定的结构形成了特定的存储文件。一般情况下,病毒程序不以单独的文件存储,它要寄生于其它文件或者存储介质上。因此,病毒程序对这些存储结构了解得非常清楚,它知道引导程序存放在什么地方,按什么样的结构进行存储,位置和结构的改变对系统有什么样的影响,它也知道文件系统的结构和属性。病毒就是利用这些存储信息来寄存自己,实现隐藏和潜伏目的的。对于计算机病毒的存储结构来说,不同类型的病毒,在磁盘上的存储结构是不同的。在分析、研究病毒时,首先要研究计算机系统的存储结构以及病毒的存储方式。磁盘经过格式化后,包括主引导记录区(只有硬盘有)、引导记录区、文件分配表(FAT)、目录区和数据区等分区。主引导记录区和引导记录区中存有操作系统启动时所用的信息。文件分配表(FAT)是反映当前磁盘扇区使用状况的表。每张操作系统盘含有两个完全相同的FAT表,即FAT1和FAT2。FAT2是一张备份表。FAT与目录一起对磁盘数据区进行管理。目录区存放磁盘上现有的文件目录及其大小、存放时间等信息。数据区存储和文件名相对应的文件内容数据。

1.硬盘空间的分区结构硬盘由很多盘片组成,每一个盘片的每一面都有一个读写磁头,如果有N个盘片,就有2N个磁头。每个盘片的每一面被划分成若干个同心圆,称为磁道,磁道数的最大值是1024。所有盘片上具有相同半径的磁道构成一个柱面。每个盘片的每一条磁道被划分成若干个扇区,扇区数最大值是64,每个扇区容量是512B。由此可以看出,一块硬盘的容量计算公式是:硬盘容量=磁头数×柱面数×扇区数×512(字节)由上述公式及数据算出的硬盘容量的最大值是8GB,这是过去硬盘容量的极限。现代硬盘技术中,采用LBA线性地址寻址方式,结合扩展的INT13H线性寻址方式读取硬盘,突破了8GB的限制。对于不同类型、不同介质的磁盘,操作系统划分磁盘的格式是不同的。对于硬盘来说,由于其存储空间比较大,为了允许多个操作系统分享硬盘空间,并希望能从磁盘启动系统,操作系统在格式化硬盘时,把硬盘划分为主引导记录区和多个系统分区。硬盘空间的分配由两个部分组成:第一部分就是整个硬盘的第一扇区,这一扇区称为硬盘的主引导程序扇区,第二部分是各个系统分区。主引导程序扇区由两部分内容组成,一是主引导程序,二是分区信息表。主引导程序是硬盘启动时首先执行的程序,由它装入执行活动分区的引导程序,从而进一步引导系统。分区信息表登记各个分区引导指示符、操作系统指示符以及该分区占用硬盘空间的位置及其长度。各个系统分区是提供给各操作系统使用的区域,每一个区域只能存放一种操作系统,在该区域中的系统具有自己的引导记录区、文件分配表区、文件目录区以及数据区。若整个硬盘归操作系统使用,则硬盘上的信息由5部分构成,即第1扇区的主引导程序和分区信息表、分区引导程序、文件分配表区、文件根目录区以及文件数据区。硬盘主引导扇区很特殊,它不在操作系统的管辖范围内,所以用操作系统的非常驻命令FORMAT、FDISK、DEBUG都不能触及它。当该扇区被损坏时,硬盘不能启动,用FORMAT、FDISK都不能修复它。DEBUG的L命令和W命令都不能用于主引导扇区,只有在DEBUG下借用INT13H或低级格式化方能修复。

2.磁盘文件存储结构文件的存储结构一般也称为物理结构,是指文件在存储介质上如何存放以及与文件逻辑结构的关系。它对文件的存取方法有较大的影响。为了有效地利用存储介质的存储空间,便于对文件信息进行处理,通常把文件的存储空间划分成若干个物理块,并以物理块作为分配和传送信息的单位。块长一般是固定的,例如以128B为一块或者以512B、1024B为一块。在记录式文件中,允许一块中存放一个或几个记录,也可以一个记录占用几块。根据文件存储结构分类,文件可以分为连续文件、串联文件和索引文件。

3.引导型病毒的磁盘存储结构系统引导型病毒是指专门传染操作系统的引导扇区的病毒,它主要传染硬盘主引导扇区和操作系统引导扇区。系统引导型病毒在磁盘上存储被划分为两部分,第一部分存放在磁盘引导扇区中,第二部分则存放在磁盘的其它扇区中。病毒程序在感染一个磁盘时,首先根据FAT表在磁盘上找到一个空白簇(如果病毒程序的第二部分占用若干个簇,则需要找到一个连续的空白簇),然后将病毒程序的第二部分以及磁盘原引导扇区的内容写入该空白簇,接着将病毒程序的第一部分写入磁盘引导扇区。但是,由于磁盘不同,病毒程序第二部分所占用的空白簇的位置就不同,而病毒程序在侵入系统时,又必须将其全部程序装入内存,在系统启动时,首先装入的是磁盘引导扇区中的病毒程序,该段程序在执行时要将其第二部分装入内存,这样第一部分必须知道其第二部分所在簇的簇号或逻辑扇区号。为此,在病毒程序感染一个磁盘时,不仅要将其第一部分写入磁盘引导扇区,而且必须将病毒程序第二部分所在簇的簇号(或该簇第一扇区的逻辑扇区号)记录在磁盘的某个偏移地址上。另外,操作系统分配磁盘空间时,必须将分配的每一簇与每一个文件相联系,但是,系统型病毒程序第二部分所占用的簇没有对应的文件名,它们是以直接磁盘读写的方式被存取的,这样它们所占用的簇就有可能被操作系统分配给新建立的磁盘文件,从而被覆盖。为了避免这样的情况发生,病毒程序在将其第二部分写入空白簇后,立即将这些簇在FAT中登记项的内容强制性地标记为坏簇(FF7H),经过这样的处理,操作系统就不会将这些簇分配给其它新建立的文件。

4.文件型病毒的磁盘存储结构文件型病毒是指专门感染系统中可执行文件的病毒,这些可执行文件以 .COM、.EXE为扩展名。对于文件型病毒来说,病毒程序附着在被感染文件的首部、尾部、中部或“空闲”部位,病毒程序没有独立占用磁盘上的空白簇。也就是说,病毒程序所占用的磁盘空间依赖于其寄生的程序所占用的磁盘空间。但是,病毒入侵后,一定会使所寄生的程序占用的磁盘空间增加。绝大多数文件型病毒属于所谓的外壳病毒。文件外壳简单地说是计算机软件的一种层次结构,比方说,计算机软件公司编制了一种教育软件,经过设计调试,软件本身的功能已经很完善,可以作为独立的磁盘文件提供给用户。但是为了提高产品的商品化程度,公司决定为软件加一个漂亮的界面,为此设计人员可以在已经完成的软件基础上附加一段显示界面的程序。通常我们称软件本身为内核,而称附加的显示界面程序为外壳。虽然在结构上外壳接在内核后面,但运行的顺序仍然是先显示界面后再跳转去执行内核。可执行文件的外壳一般具有相对独立的功能和结构,去掉外壳将不会影响内核部分的运行。如果我们用“病毒外壳”去替换程序中的“界面外壳”,那么就实现了文件型病毒的基本机理。计算机病毒一般不传染数据文件,这是由于数据文件是不能执行的,如果病毒传染了数据文件,病毒自身得不到执行权,也就不能进行进一步的传播,所以计算机病毒整体不可能存在于数据文件中,但它的一部分则有可能插入到数据文件里,在病毒执行过程中,再把这部分调入内存。病毒可能修改和破坏数据文件,这是它的一个主要的破坏目的。2.1.5中断的概念及病毒与中断的关系计算机病毒最基本的特征就是传染,而病毒传染最普通的途径是修改正常的磁盘访问中断向量。特别是引导型病毒,几乎都要修改中断向量INT13H。因此,中断的概念是研究计算机病毒必须了解的知识。

1.中断基本概念中断是CPU处理外部突发事件的一个重要技术。它能使CPU在运行过程中对外部事件发出的中断请求及时地进行处理,处理完成后又立即返回断点,继续进行CPU原来的工作。引起中断的原因或者说发出中断请求的来源叫做中断源。根据中断源的不同,可以把中断分为硬件中断和软件中断两大类,而硬件中断又可以分为外部中断和内部中断两类。外部中断一般是指由计算机外设发出的中断请求,如键盘中断、打印机中断、定时器中断等。外部中断是可以屏蔽的中断,也就是说,利用中断控制器可以屏蔽这些外部设备的中断请求。内部中断是指因硬件出错(如突然掉电、奇偶校验错等)或运算出错(除数为零、运算溢出、单步中断等)所引起的中断。内部中断是不可屏蔽的中断。软件中断其实并不是真正的中断,它们只是可被调用和执行的一般程序。例如,ROMBIOS中的各种外部设备管理中断服务程序(键盘管理中断、显示器管理中断、打印机管理中断等),以及操作系统的功能调用(INT21H)等都是软件中断。

CPU为了处理并发的中断请求,解决中断嵌套问题,规定了中断的优先权。

2.病毒与中断的关系计算机操作系统是开放的,用户可以修改扩充操作系统,在计算机上实现新的功能。修改操作系统的主要方式之一是扩充中断功能。计算机提供很多中断,合理合法地修改中断,会给计算机增加非常有用的新功能。如INT10H是屏幕显示中断,通常情况下,它只能显示西文,而在各种汉字系统中都可以通过修改INT10H使计算机能够显示中文。另一方面,计算机病毒也可以通过篡改中断,达到其传染、触发的目的。中断服务子程序的入口地址存放在计算机内存的最低端,病毒能够窃取和修改中断的入口地址来获得中断的控制权,在中断服务过程中插入病毒自身的程序代码。计算机病毒经常修改和利用的主要中断如表2.1所示。表2.1计算机病毒经常修改和利用的中断总之,中断可以被用户程序所修改,从而使中断服务程序被用户指定的程序所替代。这样虽然大大地方便了用户,但也给计算机病毒制造者以可乘之机。病毒正是通过修改中断,使该中断指向病毒自身来进行发作和传染的。2.1.6病毒的危害与防治计算机病毒的危害表现为病毒的破坏能力。病毒破坏行为的激烈程度取决于病毒作者的主观愿望和他的技术能力。数以万计、不断发展的病毒破坏行为千奇百怪,不可穷举。目前,人们对计算机病毒的预防主要是从管理手段上制定出一些有关的规定,并辅助以一定的技术措施,采取预防、检测、清除等多项措施防治计算机病毒。因为计算机病毒的传染总是通过一定的途径来实现的,所以采取一定的方法,堵塞这些传染途径,是阻止病毒侵入的最好办法。

1.病毒的危害根据对有关病毒资料的分析,可以发现计算机病毒的破坏目标和攻击部位主要有以下几个方面。

1)攻击系统数据区攻击部位包括硬盘主引导扇区、引导记录扇区、FAT表和文件目录。一般来说,攻击系统数据区的病毒是恶性病毒,受损的数据不易恢复。

2)攻击文件病毒对文件的攻击方式很多,如删除文件、修改文件名、替换内容、丢失簇和对文件加密等。

3)攻击内存内存是计算机的重要资源,也是病毒攻击的重要目标。病毒额外地占用和消耗内存资源,可导致一些大程序运行受阻。病毒攻击内存的方式有大量占用、改变内存总量、禁止分配和蚕食内存等。

4)干扰系统运行病毒可以干扰系统运行,从而使系统运行速度下降。干扰行为花样繁多,具体表现有计算机不执行正常命令、产生虚假警报、无法打开文件、产生内部栈溢出、占用特殊数据区、系统时钟倒转、系统重启动、计算机死机、计算机强制运行游戏程序、串并接口无法正常通信等。病毒触发时,系统时间延迟程序启动,在时钟中纳入循环计数,迫使计算机空转,从而导致运行速度明显下降。

5)干扰外部设备病毒会干扰键盘显示器、打印机等外部设备的工作。病毒干扰键盘操作的表现有封锁键盘、换字、抹掉缓存区字符、使输入紊乱等。许多病毒运行时,会使计算机的喇叭发出响声。病毒扰乱显示的方式很多,如字符跌落、环绕、倒置、显示前一屏、光标下跌、滚屏、抖动、乱写等。病毒干扰打印机主要表现为假报警、间断性打印、更换字符等。

6)攻击CMOS在计算机的CMOS中,保存着系统的重要数据,如系统时钟、磁盘类型和内存容量等。有的病毒触发时,能够对CMOS进行写操作,破坏CMOS中的数据。例如CIH病毒乱写某些主板的BIOS芯片,使计算机瘫痪。病毒攻击CMOS可表现为极易对计算机硬件产生破坏,但是,这种破坏不是直接的硬件损坏,而是由于CMOS中的软件被修改或删除而不能运行。在受到这种攻击后,如果能够重新写入CMOS的内容,则系统仍然可以正常运行。因此,我们说,计算机病毒对硬件的破坏都是通过软件间接造成的。

7)破坏网络系统计算机病毒对网络的攻击有两类形式。一类是针对网络系统的攻击,网络病毒破坏网络系统,非法使用网络资源,破坏电子邮件,发送垃圾信息,占用网络带宽,甚至使网络阻塞直至瘫痪;另一类是利用网络系统对网络上的其它计算机进行攻击,通过网络对其它计算机系统进行控制,实施破坏。

8)破坏计算机控制系统计算机病毒程序可以导致计算机控制的空中交通指挥系统失灵,使卫星、导弹失控,使银行金融系统瘫痪,使自动生产线控制紊乱等。由此可见,计算机病毒的破坏性触及到计算机及其通信系统的各个方面,已经成为通信网络系统主要的安全威胁。要尽量降低病毒所造成的损失,就要及早发现和清除病毒。病毒的传播和表现都需要花费时间,都有一定的过程。在这些过程中,在病毒实施破坏之前,计算机系统中往往会表现出一些异常现象。通过观察这些异常,常常可以发现病毒的存在。下面给出一些病毒传播时系统常见的异常表现。(1)程序装入时间比平时长。(2)磁盘访问时间比平时长。(3)有规律地出现异常信息。(4)用户并没有访问的设备出现“忙”的信号。(5)可用的存储空间比平常小。(6)程序或数据神秘地丢失。(7)磁盘空间突然变小,而并没有向其中写入数据。(8)可执行文件的长度发生变化。(9)出现莫明其妙的隐藏文件。(10)磁盘并没有任何损伤,却发现有坏簇。(11)机器喇叭不断发出蜂鸣声。(12)屏幕上出现一些无意义的显示画面。(13)系统出现异常的重新启动现象或经常死机。(14)操作系统中断向量发生变化。在计算机系统运行过程中,只要细心观察并不断积累经验,就有可能发现各类病毒传播时系统出现的异常反应,从而能够及时地发现病毒,并及时地进行清除。

2.病毒的预防措施对计算机病毒行之有效的预防措施包括访问控制、进程监视、校验信息的验证以及病毒程序扫描。

1)访问控制建立访问控制策略不仅是一种良好的安全措施,而且可以防止恶意程序的传播。真正的访问需要通过多用户操作系统实现,由系统管理员对各用户建立文件的许可权限。访问控制不会删除甚至不会检测是否有恶意程序,只是保护用户系统防止被病毒传染。例如,多数病毒程序传染是依靠拥有对所有文件完全的访问权限(如WindowsXP系统的默认许可权设置),如果系统管理员修改了这些默认许可权,使用户只能读取自己需要的可执行程序,则病毒就无法感染这些文件。这种办法不是对所有可执行程序都有效。有些程序需要在运行过程中被修改,用户需要拥有对这些可执行程序的写入权,而且文件的时间和日期标志也要规律性地变动。需要对哪些程序拥有写入权,用户通常无法全部搞清楚。查看可执行程序在未提供写访问时,日期和时间标志是否改变,只是了解是否被感染的一个方面。这些自行写入的可执行程序很少,用户也不会经常碰到。

2)进程监视进程监视是另一种防止恶意程序侵入系统的方法。进程监视观察不同的系统活动,并且拦截所有可疑行为。例如,多数现代台式计算机的BIOS都有一些防病毒设置,当这些设置打开时,允许计算机拦截所有对系统主引导记录进行写入的企图。如果引导型病毒试图把自身存储在这一区域,BIOS会拦截这个请求,并且要求用户进行确认。

BIOS病毒警报虽然可能是误报,但用户实际上很少使用FDISK或其它应用程序向引导扇区写入信息。一般情况下,这些活动会在用户安装新的操作系统时发生,误报的几率很小。

3)校验信息的验证校验信息也称为循环冗余校验码CRC,是一种对文件中的数据进行验证的数学方法。如果文件内部有一个字节发生变化,校验信息就会改变,而文件大小可能还是相同的。一般情况下,未被病毒感染的系统首先应该生成一个基准记录,然后规律性地使用CRC方式检查文件的改变情况。

4)病毒扫描程序最流行的病毒检测方法是使用病毒扫描软件。病毒扫描程序使用特征文件,在被传染的文件中查找病毒。特征文件实际上是列出了所有已知病毒和它们的属性的数据库,这些属性包括各病毒的代码、传染文件的类型和有助于查找病毒的其它信息。通过使用独立的文件存储这些信息,用户可以对已有软件的相应文件进行替代而升级,以查找最新的病毒,而不需要对整个程序进行升级。目前每个月都会有新病毒出现,因此这种特点是十分有用的。扫描程序检查文件的时候,查看文件中是否包含与特征文件匹配的代码。一旦发现匹配,程序便通知用户发现了病毒,之后,多数扫描程序会接着运行下一个进程,对病毒进行清除。病毒扫描程序有按需扫描型和内存驻留型两种基本类型。按需扫描型程序必须手工启动,或者由一个自动进程启动运行。这种程序启动后,一般会在整个驱动器或者选择的范围内查找病毒,包括RAM内存、硬盘、U盘等存储设备。内存驻留型程序是一种在系统后台运行的程序,它们一般在系统启动的时候初始化,然后一直在内存中保持激活状态。当有文件访问活动时,内存驻留的扫描程序拦截对文件的调用,查看文件中是否有病毒,然后才允许文件装入内存。

3.病毒的检测所谓检测计算机病毒,就是要到病毒寄生场所去检查、发现异常情况,最终确认计算机病毒是否存在。病毒在静态时,存储于磁盘、光盘等外存储介质中,在激活时驻留在内存中。因此,计算机病毒的检测分为对内存的检测和对外存储介质的检测两类。对外存储介质进行病毒检测时,要求内存中不带病毒,因为某些计算机病毒会向检测者报告假情况,从原始的、未受病毒感染的操作系统启动,可以保证内存中不带病毒。启动必须是上电启动而不是热启动,因为某些病毒通过截取键盘中断,仍然驻留在内存中。检测磁盘中的病毒可以分为检测引导型病毒和检测文件型病毒。这两种检测从原理上说基本上是一样的,但是由于各自的存储方式不同,检测方法是有差别的。主要的病毒检测方法有以下几种。

1)比较法比较法是用原始备份与被检测的引导扇区或被检测的文件进行比较。比较时可用打印的代码清单进行比较,或者用程序进行比较。比较法还可以发现一些不能被现有的查病毒程序发现的计算机病毒。使用比较法可以发现异常情况,如文件长度的变化或文件内的程序代码的变化等。对硬盘主引导区或对操作系统的引导扇区进行检测,通过比较法能够发现其中的程序代码是否发生了变化。由于需要比较,因此保留原始备份是非常重要的。制作备份时必须在无病毒的环境里进行,制作的备份必须妥善保管。比较法的优点是简单、方便和不需要专用软件,缺点是无法确认病毒的种类和名称,造成被检测程序与原始备份之间差别的原因尚需进一步验证,以查明是否真的有病毒。另外,这种方法需要大量的存储空间和比较运算时间。

2)搜索法绝大部分病毒含有特定字符串或者特征字,搜索法用每种病毒体含有的特定字符串或者特征字,对被检测的对象进行扫描。若在被检测对象内部发现了某种特定字符串或者特征字,表明发现了该字符串或者特征字所代表的病毒。搜索法所用的软件叫做病毒扫描软件,它由两部分组成:一部分是病毒代码库,含有特别选定的各种计算机病毒的代码串或者特征字;另一部分是利用该代码库进行扫描的扫描程序。病毒扫描程序能够识别多少计算机病毒,完全取决于病毒代码库内所含病毒的种类。库中病毒代码种类越多,扫描程序能够辨认的病毒也就越多。病毒代码串的选择非常重要。病毒代码长度可从短的100字节到长的超过10×210字节。如果随意从病毒体内选择一段代码作为代表该病毒的特征代码串,可能在不同的环境中,该特征串并不真正具有代表性。所以,病毒代码库的特征串是不能随意选择的。

3)分析法分析法是通过对病毒代码的分析,确认被检测的磁盘引导区和程序中是否真的含有病毒,若有病毒,则需要确认病毒种类,并判断是否是新病毒,如果是新病毒,则要搞清楚病毒体的大致结构,提取特征识别用的字符串或特征字,增添到病毒代码库,供病毒扫描和识别程序用,详细分析病毒代码,为制定相应的反病毒措施制定方案。使用分析法需要DEBUG、PROVIEW等分析工具和专用的试验用计算机。

4)通用解密法基于CPU仿真器的通用解密,是最近几年新发展起来的一种对付多态病毒的有效技术。通用解密方法基于以下假定:第一,被检测的多态病毒必须包含至少一小段机器代码,这些代码在上一代和下一代之间是一致的,即使这个代码被加密也是一样;第二,如果多态病毒执行,病毒的解密例程必须能够正确地解密,且把控制传给静态的病态代码。通用解密方法用以下方式扫描多态文件病毒:扫描程序在一个完全封闭的虚拟机中执行目标文件的机器代码,这个仿真程序执行时好像正常运行在原操作系统下一样。如果目标文件已经感染病毒,这个仿真程序将继续进行,直到病毒自己解密,并且把控制传给静态的病毒体。在这个解密过程完成之后,扫描程序搜索虚拟机中的区域,确定病毒的种类。

5)数字免疫数字免疫技术通过扩展通用解密程序仿真技术,提供一种能够用于更一般的目的的仿真和病毒检测系统。这个系统的目标是提供很快的响应速度,以便病毒一进入系统就能够被消灭。当一个新的病毒进入该系统时,免疫系统就会自动俘获它、分析它,增加对它的检测和防御,最后消除它,并且把有关它的一些信息发送到反病毒系统中。这样,在这种新的病毒运行之前就可以检测到它。数字免疫系统成功与否,取决于病毒分析及检测新的独特病毒的能力。通过经常分析和监视各种新生的病毒,能够不断地升级数字免疫系统的软件,对付新病毒的威胁。

4.病毒的清除检测到病毒后,要立刻把它清除掉。清除病毒的方法很多。对普通用户来讲,最简单的方法就是使用杀毒软件,一般专业人员更喜欢使用手工的清除方法。下面介绍4种基本的病毒清除方法。

1)引导型病毒的清除磁盘格式化是清除引导型病毒的最直接的方法。但是,这种方法有一个缺点,就是磁盘被格式化之后,虽然病毒被杀掉了,但是数据也被清除了。引导型病毒还可采用不格式化磁盘的方法来清除。用无病毒的操作系统引导软盘启动计算机,运行FDISK/MBR重写无病毒的MBR和分区表,就可以达到目的。也可以使用DEBUG重写无毒的引导扇区内容,将病毒的引导部分覆盖掉。

2)文件型病毒的清除有些破坏性感染病毒在感染时,是将病毒程序硬性覆盖掉一部分寄生程序,使寄生程序遭到破坏,即使把病毒杀掉,程序也无法修复,如果没有备份,将造成损失。如果病毒程序是以插入的方式寄生到文件中的,则可以通过特征码定位,找到病毒的插入位置,安全地将病毒程序清除掉。

3)宏病毒的清除清除宏病毒最简单的方法是在Word中只保留自己定义的宏,删掉其它所有的宏。通常情况下,Word宏病毒编制很简单,只要用户学习过简单的BASIC编程,就可阅读病毒源程序,找出病毒标志,不仅可以杀病毒,而且可以给文档“注射”一个疫苗。

4)病毒交叉感染的清除在病毒泛滥的情况下,一台计算机内可能潜伏着好几种病毒。当一个健康程序在这台计算机上运行时,会同时感染上多种病毒,引起交叉感染。在多种病毒对一个程序形成交叉感染的情况下,清除病毒时必须分清病毒感染的先后顺序,按照感染的先后次序的逆序清除感染的病毒,否则可能会出现这样的现象,即虽然病毒被清除了,但同时程序也不能运行了。2.1.7病毒的免疫通常我们所说的生物病毒免疫力是指通过注射疫苗,使生物体对某种病毒具有抵抗能力,而不能被这种病毒所感染。同样,对计算机病毒的免疫能力,是指计算机系统(包括软件、存储介质、数据等)对某种病毒具有抵抗能力,不能被这种病毒所感染。一般情况下,某种病毒都有其特定的标识,比如小球病毒的特定标识是“1357”。当病毒程序进行传播时,首先要进行传染条件的判断,其中的传染条件之一是攻击对象是否被传染过。例如,在对被传播介质进行检测时,如果在固定位置(特定病毒具有特定位置)上已有表示这种病毒的特定标识,则它认为该介质已经被传染,就不再进行传染。这样做是为了防止病毒的重复多次写入。为了使计算机系统对某一种病毒具有免疫能力,就要利用这种病毒的特殊标识,在存储介质的固定位置上设置该病毒的特定标识,这样,如果系统出现了这种病毒,该病毒在检查传染对象时,发现有自己的特定标识,它会认为这是已经被感染过的对象,因此也就不会再感染这个对象,这就达到了病毒免疫的目的。当然,一个计算机系统并不一定能够对所有的病毒产生免疫能力,其原因有两个:一个原因是有些病毒不做特定标识的检查,发作的时候立即对目标进行传染,不管这个目标是否被感染过;另一个原因是有些病毒没有明显的特定标识。2.2引 导 型 病 毒寄生于磁盘引导扇区中的病毒通常是引导型病毒。当计算机从带病毒的磁盘引导时,该病毒就被激活。硬盘中有主引导扇区和操作系统引导扇区两个引导扇区,所以,引导型病毒严格说来又分为操作系统引导扇区病毒(如“小球”病毒)和主引导扇区病毒(或称为分区表病毒,如“大麻”、“Blood”病毒)。本节详细剖析引导型病毒的特点、传播方式以及检测清除方法。2.2.1引导型病毒的特点从磁盘寄生、内存驻留和传染途径等方面来看,引导型病毒的特点主要有以下几个方面:

(1)引导部分占据磁盘引导区。

(2)只有在计算机启动过程中,磁盘被引导时,引导型病毒才被激活。

(3)具有磁盘引导扇区内容“复原”功能。

(4)修改内存容量,病毒驻留内存。

(5)修改磁盘访问中断,在进行磁盘写操作的时候进行传播。引导型病毒的这些特点,决定了它的寄生方式、激活方式以及传染方式。2.2.2引导型病毒的传播方式为了说明引导型病毒的传染方式,我们首先介绍计算机的启动过程。实际上,引导型病毒就是在计算机启动的过程中获取系统的控制权,开始自我复制的。

1.正常的操作系统启动过程正常操作系统的启动按照下列过程进行:

(1)加电开机后进入系统的检测程序,并执行该程序,对系统的基本设备进行检测。

(2)检测正常后,从系统盘0面0道1扇区(即逻辑0扇区)读入Boot引导程序到内存的0000:7C00处。

(3)执行Boot引导程序。

(4) Boot判断是否为系统盘,如果不是系统盘,则提示:non-systemdiskordiskerrorReplaceandstrikeanykeywhenready

(5)否则,读入BIO.COM和DOS.COM两个隐含文件。

(6)执行BIO.COM和DOS.COM两个隐含文件,将COMMAND.COM装入内存。

(7)系统正常运行,操作系统启动成功。

2.感染引导型病毒的操作系统启动过程如果系统盘已感染了病毒,操作系统的启动将按照下列过程进行:

(1)加电开机后进入系统的检测程序,并执行该程序,对系统的基本设备进行检测。

(2)将Boot区中病毒代码首先读入内存的0000:7C00处。

(3)病毒将自身全部代码读入内存的某一安全区,并且常驻内存,监视系统的运行。

(4)修改INT13H中断服务处理程序的入口地址,使之指向病毒控制模块,并执行之。因为任何一种病毒要感染U盘或者硬盘,都离不开对磁盘的读写操作,所以修改INT13H中断服务程序的入口地址是一项少不了的操作。

(5)病毒程序全部被读入内存后才读入正常的Boot内容到内存的0000:7C00处,进行正常的启动过程。

(6)病毒程序伺机等待,随时准备感染新的系统盘或非系统盘。如果发现有可攻击的对象,病毒要进行下列工作:

(1)将目标盘的引导扇区读入内存,判别该盘是否传染了病毒。

(2)当满足传染条件时,则将病毒的全部或者一部分写入Boot区,把正常的磁盘的引导区程序写入磁盘特定位置。

(3)返回正常的INT13H中断服务处理程序,完成对目标盘的传染。可见,引导型病毒在计算机操作系统中是从引导区开始传播的。2.2.3引导型病毒的清除方法对引导型病毒的诊断,如果仅仅从计算机出现的一些表面的异常现象来观察是远远不够的,我们必须通过技术手段对病毒进行诊治。诊治计算机病毒的方式有两种,即人工诊治方式和自动诊治方式。引导型病毒的人工诊治是利用DEBUG、CHKDSK等一般软件所具有的功能进行病毒诊治。病毒的自动诊治是利用一些专用的病毒诊治工具(如病毒检测和清除软件、防病毒卡等)进行病毒的诊治。这两种诊治方式应视具体情况灵活应用,当一种新病毒出现而且又没有像防病毒卡这样的广谱反病毒工具时,人工诊治十分必要;而如果已经具有了相应的诊治工具,则自动诊治显然是既方便又有效的。

1.病毒诊断通过检查内存的变化,可以诊断引导型病毒存在与否。系统内存容量分为BIOS报告的系统基本内存容量和操作系统报告的系统内存容量两种。BIOS报告的基本内存容量是计算机系统在开机后的自检过程中所检测到的,其值存放在ROM通信区0:413~414H两个字节单元内,其低位在前,高位在后。而操作系统报告的系统内存容量则是根据内存分配链中每一个内存控制块所拥有的控制块大小累加而得到的。操作系统在引导过程中通过系统中断INT12H读取0:413中的内容作为参数,建立自己的内存控制块。内存控制块一旦建立,操作系统也就不再访问0:413中的内容了。从目前发现的病毒看,绝大多数引导型病毒为了使自身的病毒程序能够在内存中有一席“合法”之地,都采用修改系统内存容量的方法,以欺骗操作系统,最终表现为系统报告的内存大小比实际内存容量少1KB或几KB。根据这一特性,我们可以借用多种工具软件来诊断当前系统是否染有引导型病毒。

1)用DEBUG诊断在操作系统提示符下,执行命令:

C>DEBUG

-DO:413,L2;显示系统基本内存容量正常情况下(例如用无病毒的系统盘启动),具有512 KB基本内存的计算机显示的结果为0002,具有64 KB基本内存的计算机显示的结果为8002。当感染有引导型病毒时,则显示结果比实际要小。如:“Bloody”病毒,512 KB基本内存的计算机显示为FE01,64KB基本内存的计算机显示为7E02;“2708”病毒,512 KB基本内存的计算机显示为FF01,64KB基本内存的计算机显示为7F02。

2)用CHKDSK命令诊断操作系统提供了一种用于检测磁盘和内存空间的CHKDSK.COM检测程序,我们可以通过观察该软件显示的由操作系统报告的系统内存空间和用户可用内存空间的变化,对引导型病毒进行诊断。下面给出的是无毒和有毒两种情况下CHKDSK的检测结果。在无病毒情况下,CHKDSK的执行结果如下:655360totalbytesmemory579008bytesfree当内存中驻有“Boody”病毒时,CHKDSK的执行结果如下:653312totalbytesmemory577040bytesfree

2.手工清除病毒的方法清除引导型病毒的通用方法是设法获取等同于原扇区内容的信息,然后直接覆盖到相应的扇区中。

1)硬盘主引导扇区病毒清除在事先没有备份的情况下,硬盘主引导扇区病毒的清除方法一般是先具体分析病毒传染的过程,找到正常主引导扇区内容的暂存位置,从相应的位置读取信息,再写回到主引导扇区。另外,还有一种广谱的反病毒方法,其主要思想是将一段健康的主引导程序覆盖到主引导扇区中的程序区。实现这一过程,最方便的方法是利用FDISK程序。用一张系统软盘,将其插入A驱动器中,重新启动(主要是清除内存中的病毒),然后执行命令:A>FDISK/MBR。这样,硬盘主引导扇区中的任何病毒均可被FDISK提供的健康主引导程序所覆盖,而硬盘中其它位置的数据仍保持不变。这种方法可用来清除寄生于硬盘主引导扇区中的一切病毒。需要注意的是:FDISK/MBR命令是FDISK的保留命令格式,一般的操作系统手册中未能提及此种命令格式,且只是在某些版本中有效;切勿用FDISK重新分区的办法进行重新创建,否则硬盘中的文件将会全部丢失。

2)硬盘操作系统引导扇区病毒清除硬盘操作系统引导扇区病毒的清除方法也很多,用格式化硬盘的方法可以将病毒清除,但硬盘中的数据也会随之丢失。最简单的方法是采用系统命令SYS。该方法是用同一版本的系统软盘启动,然后执行命令:A>SYSC。这样正确的引导程序将自动覆盖引导扇区中的病毒程序。如果将上面这两种清除硬盘主引导扇区病毒和清除硬盘操作系统引导扇区病毒的方法结合起来使用,可排除硬盘启动时死机的故障。2.3文 件 型 病 毒寄生于文件系统上的病毒通常是文件型病毒。它通常感染属性为 .COM和 .EXE的可执行程序文件。还有的文件型病毒,通过将自身的代码插入到用C语言编制的源文件来感染源代码文件,一旦被病毒感染的源代码文件产生的可执行的文件被运行,就可以进行病毒的复制。文件型病毒有其自身的特点及诊断、检测和清除的方法。文件型病毒与其传染的可执行文件的结构有着密切的关系。2.3.1文件格式文件型病毒主要感染可执行文件。了解各类可执行文件的格式,对于我们解剖计算机病毒、提高反病毒技术非常有意义。在DOS环境下有4种基本的可执行文件:

(1)批处理文件:是以 .BAT结尾的文件,在 .BAT文件中可以包括一些DOS命令,在批处理文件中调用其它的可执行文件。批处理文件还有一些简单的流程控制功能,可以实现循环、条件判断等简单的编程工作。

(2)设备驱动文件:以 .SYS结尾的文件,如Config.SYS和IO.SYS等,是DOS操作系统使用的设备驱动程序。

(3) .COM文件:以.COM结尾的纯代码文件。没有文件头部分,默认情况下总是从0X100H处开始执行,没有重定位项,这也限制了它的所有代码和数据必须控制在64 KB以内。

(4) .EXE文件:以 .EXE结尾的文件,这种文件以英文字母“MZ”开头,通常称之为MZ文件。MZ文件有一个文件头,用来指出每个段的定义,以及重定位表。EXE文件摆脱了代码大小最多不能超过64KB的限制,是DOS中最主要的文件格式。在Windows中,微软推出了一种新的可执行文件格式,在MZ文件头之后又有一个以“NE”开始的文件头,称为NE文件。由于Windows的可执行文件同DOS相比增加了很多内容,如资源、动态库等,因此NE格式表现极为复杂,NE格式文件在装载程序读取磁盘上的文件后,需要在内存中组装成一个完全不同的数据结构才开始运行。在WindowsXP系列中,微软又推出了一种新的可执行文件格式——可移植的可执行文件格式,即PE格式。它同NE格式不同的是,在MZ文件头之后是一个以“PE”开始的文件头。PE文件格式是从COFF的对象格式发展而来的,它比NE格式前进了一大步,其文件在磁盘中的格式同内存中的格式区别不大,装载程序实现起来相当简单。下面结合文件型病毒的感染原理,主要讨论MZ、PE两种可执行文件格式。

1.MZ文件格式

MZ文件由三部分构成:文件头、重定位表和二进制代码(可重定位程序映像)。许多程序常在扩展文件头中保存版权信息。要了解MZ文件,首先需要了解其文件头结构,如表2.2所示。表2.2MZ文件头结构表

MZ文件头包含MS-DOS用于加载程序的信息,例如程序的大小和寄存器的初始值。文件头还指向一个重定位表,该表包含指向程序映像中可重定位段地址的指针链表。

MZ文件开始的两个字节中存储“MZ”文件标记。计算机病毒要感染MZ文件,首先应判断这两个字节是否是MZ,以判断是否是 .EXE文件。文件以大小为512B的页为单位存储。在偏移02H、04H处的4字节分别代表了最后一页的字节数和文件的总页数。这样,我们通过这两个值就可以确定该MZ文件的大小。这两个字段也是病毒比较感兴趣的地方。还有一个比较重要的字段是偏移量为08H的exHeadSize,这对病毒修改MZ文件很有用,可以用来确定 .EXE文件的代码开始位置。当MZ文件存在堆栈时,它会按照初始的堆栈地址SS和偏移SP设置堆栈。文件头中的0EH、10H处4个字节一般由编译程序设置。偏移量为14H、16H的两个字段,分别代表了代码段的偏移和段地址。通过CS:IP指向的地址,系统就可以找到MZ文件的执行代码入口地址,即第一个执行语句的位置。病毒通常也会在此插入自己的病毒代码,以便获得控制权。

MZ文件的载入模块包含处理器代码和程序的初始数据,它紧接在文件头之后。操作系统通过把载入模块直接从文件复制到内存而实现EXE程序的加载,然后调整定位表中说明的和重定位段的地址。重定位表是一个重定位指针数组,每个指针指向程序映像中的可重定位段地址。

2.PE文件格式

Win32可执行文件,如 .EXE、.DLL、.OCX等,都是PE格式。PE的意思是可移植、可执行,它意味着此文件格式是跨Win32平台的。PE文件结构如图2.2所示。图2.2PE文件结构

1) DOS插桩程序

PE结构中紧随MZ文件头之后的DOS插桩程序,实际上是一个显示诸如“ThisprogramcannotberuninDOSmode”之类信息的DOS小程序。这部分也用于自解压文档。一般情况下,它是由汇编器/编译器自动生成的。通常,它简单调用INT21H9号服务来显示上述字符。

2)PE文件头

PE文件头是PE相关结构IMAGE_NT_HEADERS的简称,即NT映像头,存放PE整个文件信息分布的重要字段,包含了许多PE装载器用到的重要域。执行体在支持PE文件结构的操作系统中执行时,PE装载器将从DOSMZ头中找到PE文件头的起始偏移量,从而跳过DOS插桩程序,直接定位PE文件头。

PE文件最前面紧随MZ文件头的是一个DOS可执行文件,这使PE文件成为一个合法的MS-DOS可执行文件。DOSMZ文件头后面是一个32位的PE文件标志0X50450000,即PE00。接着就是PE的映像文件头,包含的信息有该程序的运行平台、字节数、文件的链接时间、文件类型等。接下来是一个可选头部,包含了关于PE文件的逻辑分布信息、程序加载信息、开始地址、保留堆栈数量、数据段大小等。还有一个域,称为“数据目录表”的数组,表中的每一项都是一个指向某一个节的指针。

PE文件头由PE文件标志、映像文件头和可选映像头等组成。

3)节表可选头部下面是“节表”。节表是一个结构数组,其成员的数目由映像文件头结构中NumberOfSections域的域值来决定。节表中每个结构包含了该节的具体信息。节表实现节的索引。

4)节节表下面是节,节的内容是要真正执行的程序和相关数据。每一个节都有一些有关的标志,例如它包含什么数据、能否共亨以及数据特征等。多数情况下,每个节会被一个或多个目录表指向,目录表可通过可选头的“数据目录表”的入口找到,也存在没有目录表指向的节,如可执行代码或者初始化数据。

2.3.2文件型病毒的特点文件型病毒的主要特点如下:

(1)系统执行病毒所寄生的文件时,该病毒才被激活。

(2)有可能直接攻击目标对象,主要是 .EXE、.COM等可执行文件,如果是混合型病毒,则还要攻击硬盘的主引导扇区或操作系统引导扇区。

(3)修改系统内存分配,病毒驻留内存。

(4)修改系统中断,等待时机进行病毒的发作或再次传播。2.3.3文件型病毒的传播方式文件型病毒寄生在一个文件上,通常是寄生在可执行的应用程序(例如一个字处理程序或操作系统程序)上。通常情况下,文件型病毒不会感染数据文件,然而数据文件可以包含有嵌入的可执行代码,例如,宏可以被病毒使用或被特洛伊木马的作者使用,Word特别容易受到宏病毒的威胁。批处理文件以及那些可被其它程序编译或解释的含有命令的文件都是病毒潜在的攻击目标。文件型病毒主要感染的是 .COM和 .EXE文件。下面以 .COM文件的感染为例介绍相应的过程。

.COM文件是操作系统可执行文件格式中最简单的一种,其装入过程也是最简单的。操作系统直接把程序读入内存,然后跳转到程序的第一条指令,程序完全控制了计算机,并一直到程序执行完毕后才将控制权交给操作系统。根据 .COM文件病毒置入的位置,可以把病毒的感染方式分为前置感染、后置感染、覆盖感染和扩展覆盖感染等几种方式。

1.前置感染前置感染是 .COM文件病毒把自己复制到 .COM文件前部,而原来的程序段移到病毒代码之后,这样可以确保在该程序再次执行时,首先执行病毒代码。

2.后置感染后置感染将

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论