
3.2 典型攻击方法及其原理
3.2.1 扫描器法
1.扫描器法原理
该方法是利用C/S结构中的请求-应答机制来实现的。它通过使用不同的请求信息依次向远程主机或本地主机发送服务请求,然后根据远程主机或本地主机的响应情况来判别它们目前所处的工作状态,最后决定下一步的操作。如果远程主机或本地主机有响应,则表明与服务请求所对应的服务正在进行中,这时,再进一步分析和确定服务软件的版本信息,并试探该版本中的漏洞是否存在,从而实现扫描的目的。
常用的扫描方法有利用网络命令、端口扫描和漏洞扫描三种。
一个完整的扫描器应具备的基本功能包括:
(1)发现目标主机和网络;
(2)发现目标主机后,能够扫描正在运行的各种服务;
(3)能够测试这些服务中是否存在漏洞。
2.利用网络命令
大多数网络操作系统都会提供一些用于网络管理和维护的网络命令,利用这些网络命令可收集到许多有用的信息,例如,DNS服务器的地址,主机上的用户名、操作系统类型和服务程序等。但这些工具也常被入侵者用来扫描网络信息,当他们知道了目标主机上运行的操作系统、服务软件及其版本号后,就可利用已经发现的漏洞来攻击系统。
如果目标主机的管理员疏忽大意,没有及时修补系统中存在的漏洞,则入侵者就会轻易地侵入系统,并留下后门。当得知主机上的用户名后,入侵者将会利用口令破解工具不断猜测口令直到破译,进而以合法身份在系统中实施攻击行为。
例如,使用ping命令向目标主机发送一个ICMP数据包后,如果主机正在工作,则将返回响应信息,从中可得知主机的工作状态、网络时延和主机的IP地址信息。
再如,使用tracert命令可以跟踪一个数据包发送到主机所经过的全部路由信息,进而获得有关的路由器地址信息。
系统中提供的网络命令既方便了管理,同时也为入侵者提供了便利的攻击工具。
3.端口扫描
(1)端口扫描的工作原理
通过使用一系列TCP或UDP端口号,不断向目标主机发出连接请求,试图连接到目标主机上,并记录目标主机的应答信息。然后,进一步分析主机的响应信息,从中判断是否可以匿名登录,是否有可写入的FTP目录,是否可以使用telnet登录等。
(2)常用的端口扫描技术
向目标主机提出连接请求的方式很多,以下列举的是一些常见的请求形式。需要注意这些连接请求并不是真的要与目标主机建立连接,只是想获取目标主机的响应信息,以便进一步分析目标主机上可利用的信息资源。
1)TCP connect请求
这种请求使用标准的connect()函数向目标主机提出连接请求,如果目标主机在指定的端口上处于侦听状态并且准备接收连接请求,则connect()将操作成功,此时表明目标主机的端口处于开放状态,如果connect()操作失败,则表明目标主机的端口未开放。
使用这种方法可以检测到目标主机上的各个端口的开放情况。
2)TCP SYN请求
这种请求是通过TCP三次握手的过程实现的。首先向目标主机发送一个SYN数据包,接着等待目标主机的应答;如果目标主机返回RST,则说明目标主机的端口不可用,中止连接。如果目标主机返回SYN|ACK,则说明目标主机的端口可用,此时,向目标主机发送RST数据包中止连接。
使用这种方法不会在目标主机上留下记录,但是,一般需要利用目标主机可信任的主机进行扫描才能完成相应的操作。
3)TCP FIN请求
当向目标主机的某个端口发送FIN数据包后,一般会出现两种情况:一是目标主机没有任何回应信息;二是目标主机返回RST。第一种情况说明目标主机的端口可用,第二种情况说明目标主机的端口不可用。
FIN数据包可穿过一些防火墙和包过滤器而不留痕迹。但是,某些系统对所有的FIN数据包都返回RST,这时,TCP FIN扫描就用不上了。
4)IP分段请求
事先将一个探测用的TCP数据包分成两个较小的IP数据包,然后向目标主机传送。目标主机收到这些IP分段后,会将它们重新组合成原来的TCP数据包。这样不直接发送TCP数据包而选择IP分段发送的目的是使它们能够穿过防火墙和包过滤器而到达目标。
5)FTP反射请求
在FTP中,当某台主机与目标主机在FTP server-PI上建立一个控制连接后,可以通过对server-PI进行请求来激活一个有效的server-DTP,并使用这个server-DTP向网络上的其他主机发送数据。
利用这种特性,可以借助一个代理FTP服务器来扫描TCP端口。其实现过程是:首先连接到FTP服务器上;然后向FTP服务器写入数据;最后激活数据传输过程,由FTP服务器把数据发送到目标主机上的端口。
对于端口扫描,可先利用FTP和PORT命令来设定主机和端口,然后执行其他FTP文件命令,根据命令的响应码可以判断出端口的状态。这种方法的优点是能穿过防火墙和不被怀疑,缺点是速度慢和完全依赖于代理FTP服务器。
6)UDP请求
当向目标主机的某个端口发送UDP数据包时,会产生两种情况:一是无任何信息返回;二是返回一个ICMP_PORT_UNREACH错误。第一种情况说明目标主机的UDP端口已打开或UDP数据包已丢失;而第二种情况则说明目标主机的UDP端口不可用。
在第一种情况下,如果可以确认所发送的UDP数据包没有丢失,则可确认目标端口的状态。如果估计所发送的UDP数据包已丢失,则需要重新发送数据包,直到探明目标主机端口的状态或终止扫描为止。
使用UDP扫描速度较慢,而且判断端口状态也较困难。
4.漏洞扫描
漏洞扫描是根据已发现的漏洞来判断正在运行的服务中是否还存在着相应的漏洞问题,如果存在,则应立即打上补丁,否则就可能被入侵者利用来攻击系统。
目前存在的扫描器分为基于主机的和基于网络的两种类型。基于主机的扫描器是运行在被检测的主机上的,用于检测所在主机上存在的漏洞信息;而基于网络的扫描器则是用于检测其他主机的,它通过网络来检测其他主机上存在的漏洞现象。
需要提醒的是:扫描器只能扫描到已被发现的漏洞,那些未被发现的漏洞是不能通过扫描器找到的。因此,利用扫描器发现漏洞,并打补丁后,也不能放松警惕。
3.2.2 特洛伊木马法
特洛伊木马(简称木马)是一种C/S结构的网络应用程序。其中,木马的服务器端程序可以驻留在目标主机上并以后台方式自动运行。攻击者使用木马的客户端程序与驻留在目标主机上的服务器木马程序进行通信,进而获取目标主机上的各种信息。例如,窃取用户口令、复制或删除文件、控制目标主机的运行状态等。
木马的服务器端程序常以下列三种形式存在于目标主机上,极具隐蔽性和危害性。
1)将它的程序代码作为单独的程序出现,这个程序可以在设定的时间自动运行。
2)将它的程序代码集中隐藏在合法程序中,随合法程序运行而独立工作。
3)更改合法程序,将其代码分布到合法程序中,随合法程序运行而独立工作。
系统中出现木马程序的原因主要有两种:一种是合法用户故意获得木马程序并将其安装在系统上;另一种是在网上下载的或由他人提供的软件中包含木马程序,在安装软件时,无意识地将木马程序安装到了系统上。另外,攻击者在入侵某个系统后,也会将木马程序复制到系统上,为自己留个后门,以便对系统进行远程操纵和控制。
安装木马程序的主要目的是用于远程管理和控制主机系统。但也经常被攻击者用做对系统进行攻击的一种手段。根据木马程序的启动特点,在Windows系统中,可以通过检查Windows系统启动时自动加载程序的几种方法来检查并清除木马程序。
检查和清除Windows系统中的木马程序的一般方法如下:
1)在“开始→程序→启动”菜单组中,如果发现有异常程序,则可直接清除。
2)在autoexec.bat文件中,如果发现有类似“win程序名”的命令行,则在命令中的程序很可能就是木马程序。
3)在win.ini文件中,检查[windows]段上由“run=”和“load=”两个项目指定的程序是否有异常,如果有,很可能是木马,则应立即清除。
4)在system.ini文件中,检查[boot]段上由“shell=”项指定的程序是否有异常。正常情况下,应该为“shell=explorer.exe”,如果变成“shell=explorer.exe程序名”,则其中的程序名很可能是木马程序。
5)在注册表中,与启动相关的注册表项是需要注意的。可以使用regedit命令打开注册表编辑器。然后,依次检查相关的注册表项的值,如果发现异常,则需要及时修正。下列注册表项是需要重点检查的项目内容。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Runonce
HKEY_CLASSES_ROOT\exefile\shell\open\command
一般采用对比的方法来检查注册表项,用正确的注册表与当前的注册表进行对比,从中找出可疑的内容。例如,在HKEY_CLASSES_ROOT\exefile\shell\open\command表项中包含的正确值为“"%1"%*”,如果被改为“程序名"%1"*”,则可能是木马程序名。
如果发现异常程序,除了在上述文件中删除它们之外,还要找到它们所在的目录,彻底清除,否则,它们有可能还会自动加到相应的启动位置。
3.2.3 缓冲区溢出法
缓冲区溢出是利用系统中的堆栈实现的。下面以32位的CPU的堆栈操作为例来说明缓冲区溢出的攻击原理。
当CPU执行入栈(PUSH)操作时,首先将堆栈寄存器ESP减4,然后将数据存入由ESP指向的存储单元;而执行出栈操作时,则先取出由ESP指向的存储单元中的数据,然后将ESP加4。
在调用函数时,CPU先将下一条指令的地址值(返回地址)EIP入栈保存,然后再依次(从左至右或从右至左)把函数的参数入栈。如果函数内部还有局部变量时,则在堆栈中再开辟空间以保存这些变量。正常情况下,函数调用结束时,由函数参数和局部变量所占用的堆栈空间全部被释放出栈,并恢复EIP寄存器的值开始执行下一条指令。同时,堆栈指针被恢复成函数调用前的状态。图3-2描述了正常调用C函数main(int arg ,char *arv)时,堆栈指针的变化情况(C语言中的函数参数是从右至左依次入栈的)。

图3-2 正常调用C函数时堆栈指针的变化情况
假设C函数定义为:
int main(int arg ,char *arv){ char buff[60];strcpy(buff , arv);}
由于字符串处理函数没有对超长字符加以判断和限制,因此,那些超出缓冲区长度的字符内容必将覆盖缓冲区以外的数据。在函数main( )中,如果使用strcpy( )函数把多于60个字符的字符串复制到堆栈内的缓冲区中,则堆栈中的其他数据将会被覆盖。如果精心设计所覆盖的内容,如用特定的地址值覆盖堆栈中的EIP值(图3-2中的斜体字部分就是覆盖后的堆栈内容),那么,当函数调用结束时,就会将这个特定的地址值赋给指令寄存器EIP,进而导致指令执行的顺序发生改变。这就是缓冲区溢出攻击的实现原理。
3.2.4 拒绝服务攻击法
拒绝服务攻击(DOS,Deny of Service)是以停止目标主机的网络服务为目的。采用这种攻击方法时,攻击者不需获取目标主机的任何操作权限,就可以对目标主机进行攻击。其攻击原理是:利用各种手段不断向目标主机发送虚假请求或垃圾信息等,使目标主机一直处于忙于应付或一直处于等待回应的状态而无法为其他主机提供服务。
常见的拒绝服务攻击方法包括广播风暴、SYN淹没、IP分段攻击、OoB攻击、分布式攻击和IIS上传攻击等。
1.广播风暴
当某台主机使用广播地址发送一个ICMP echo请求包时,其他一些主机会向该主机回应ICMP echo应答包。如果不断地发送这样的数据包,则会有大量的数据包被回应到相应的主机上,导致该主机一直处于接收响应数据包的状态而无法做其他的事。广播风暴就是基于这样一个原理。攻击者在广播发送ICMP echo请求包前,先将源地址指定为被攻击的主机的IP地址,然后,开始连续发送ICMP echo请求包,进而导致大量的回应数据包被发送到所攻击的主机上,以消耗它的网络带宽和CPU周期,使其服务中断。
2.SYN淹没
正常情况下,建立一个TCP连接需要一个三方握手的过程,即需要进行三次包交换。当服务器收到一个由客户机发来的SYN包时,必须回应一个SYN/ACK包,然后再等待该客户机回应一个ACK包来确认后,才建立连接。但是,如果客户机只发送SYN包,而不向服务器发送确认包,则导致服务器一直处于等待状态直到超时为止。SYN淹没攻击就是利用这样一个原理,定时向服务器发送SYN包而不去回应它,致使服务器无法响应其他客户的请求,服务被中断。
3.IP分段攻击
某些操作系统(如早期的Linux)在处理分段的IP数据包时,存在一个致命的漏洞。当IP包被分段发送时,操作系统需要将分段的IP包组合成一个完整的IP包。在这个组合过程中,需要不断地调整和计算每一个IP分段在IP包中的数据偏移地址和有效长度,直到组合完成。如果计算出某个IP分段的有效长度为负数,那么,将会导致向内核缓冲区复制大量的数据,从而死机。IP分段攻击就是利用这个漏洞,故意使操作系统计算出负数,造成系统崩溃。
通常,攻击者向目标主机发送两个特殊的IP分段包(正常情况下,不会有这样的分段),第1个IP分段包的数据偏移地址为0,有效长度为N,分段标志位置1,表示后面还有IP分段包。第2个IP分段包的数据偏移地址为K,并使K<N,有效数据长度为S,并使K+S<N,分段标志位置0,表示后面没有IP分段包了。
目标主机收到第2个IP分段包后,发现该分段的偏移地址指向了第1个分段中的有效数据部分(如果K≥N,则不会出现这个问题),这时,操作系统需要调整第2个分段的数据偏移地址和有效长度的值。调整后,第2个分段的数据偏移地址为N,有效长度为((K+S)-N),因此得到第2个IP分段的有效长度为负数,导致系统瘫痪。
4.OoB攻击
在某些网络协议中,没有全面考虑如何处理带外数据OoB(Out of Band)的问题,一旦遇到带外数据将会导致异常发生。
例如,Windows 95/NT下的NetBIOS协议对带外数据的处理就存在明显的漏洞。当一个数据包以OoB方式发送到某些端口上(如113, 137, 138, 139)时,就可能造成死机。
5.分布式攻击
由于攻击者自身的带宽有限,所以很难通过大量的网络传输来威胁目标主机。为了克服自身带宽的限制,出现了分布式拒绝服务攻击(DDoS,Distributed Deny of Service)。攻击者把攻击用的工具软件驻留到多台主机上,利用这些主机的带宽一起向目标主机发送大量的具有欺骗性的请求信息,致使目标主机中断服务。这种攻击方法,即使目标主机没有漏洞,也能对目标主机构成严重威胁,导致目标主机的服务中断。
这些分布在不同主机上的攻击者可以采用相同的请求格式,也可以采用不同的请求格式,使目标主机顾此失彼,无力回天,如图3-3所示。

图3-3 分布式拒绝服务攻击示意图
TFN(Tribe Flood Network)攻击就采用了分布式攻击的方法。TFN由客户机和端口监控程序构成,可选择广播风暴、SYN淹没、UDP等多种攻击手段,同时提供了一个绑定在TCP端口上的即时响应的命令处理器。攻击者可控制一个或多个客户机,每个客户机能够控制多个端口监控程序,并通过指令来控制端口监控制程序向目标主机发起攻击。
6.IIS上传攻击
在Internet服务中,某些协议对上传到服务器上的数据长度一般没有限制,这使得拒绝服务攻击十分容易。例如,在HTTP协议中,利用POST方法上传数据时,所上传的数据长度是由字段Content Lenth指定的,但没有大小限制。如果用户指定一个非常大的数值,则导致IIS一直等待接收这些数据,直到传送完成,才会释放所占用的内存资源。攻击者就是利用这种缺陷,轻而易举地向IIS发送大量的垃圾数据,导致服务器的内存资源耗尽。当内存资源不足时,服务器将会频繁使用磁盘缓冲区进行数据交换,CPU的处理速度明显下降。
这种攻击由于采用了协议所支持的正确格式,并且IIS一直处于接收状态,因此,在IIS的日志上也不会记录该操作(只有在操作结束时才记录),所以很难被发现。除非对上传的数据长度值进行限制,否则,防火墙也不会发现这样的攻击行为。
3.2.5 网络监听法
在网络上,任何一台主机所发送的数据包,都会通过网络线路传输到指定的目标主机上,所有在这个网络线路上的主机都可以侦听到这个传输的数据包。正常情况下,网卡对所经过的数据包只做简单的判断处理,如果数据包中的目标地址与网卡的相同,则接收该数据包,否则不做任何处理。如果将网卡设为杂凑模式,则该网卡就可接收任何流经它的数据包,不论数据包的目标地址是什么。攻击者利用这样一个原理,将网卡设置成杂凑模式,然后截获流经它的各种数据包进行分析,对一些具有敏感性的数据包做进一步的解析,如含有用户名(username)和密码(password)字样的数据包。
这种攻击一般需要进入到目标主机所在的局域网内部,选择一台主机实施网络监听,如果在一台路由器或具有路由功能的主机上进行监听,则能捕获到更多的数据信息。
通常,操作系统本身也提供一些用于网络监听的工具软件。例如,Linux中的rcpdump,NT中的Network Monitor,以及Solaris中的Snoop等。使用这些工具可以方便地对网络进行有效的监控和管理。但是,它们也会变成攻击者对网络进行监听的工具,进而对网络安全构成了巨大威胁。由于监听工具不主动向网络发送数据包,它们只是默默窃取流经它的数据,这种攻击更具有隐蔽性。
防止网络被监听的一般方法有:
① 经常检查当前正在运行的程序列表,如发现有不明身份的程序在运行,则应提高警惕;
② 检查可疑的日志文件,如果有大小不断增加和时间不断更新的日志文件存在,则应立即检查其内容;
③ 检测网卡的工作模式,如果处于杂凑模式,则应加强防范,查明原因;
④ 使用安全通信协议,加强通信数据的保密性;
⑤ 使用安全的网络拓扑结构,缩小数据包流经的范围。
由于网络监听只能在一个以太网段上实现,所以将网络划分成多个网段,可以增强网络的安全性能和降低因网络监听而带来的损失。
3.2.6 电子欺骗法
攻击者为了获取目标主机上的资源,可能会采用电子欺骗的手段来达到目的。电子欺骗法主要是通过伪造数据包,并使用目标主机可信任的IP地址作为源地址把伪造好的数据包发送到目标主机上,以此获取目标主机的信任,进而访问目标主机上的资源。
由于TCP/IP协议本身存在很多缺陷,因此,不论目标主机上运行的是何种操作系统,电子欺骗都是容易实现的,它也常被用做获取目标主机信任的一种攻击方式。例如,TCP序列号欺骗、路由欺骗、源地址欺骗和授权欺骗等都是针对TCP/IP本身的缺陷实现的攻击方法。
1.TCP序列号欺骗
TCP序列号欺骗是通过TCP的三次握手过程,推测服务器的响应序列号而实现的。这种欺骗即使在没有得到服务器响应的情况下,也可以产生TCP数据包与服务器进行通信。
为了确保端到端的可靠传输,TCP对所发送出的每个数据包都分配序列编号,当对方收到数据包后则向发送方进行确认,接收方利用序列号来确认数据包的先后顺序,并丢弃重复的数据包。TCP序列号在TCP数据包中占32位字节,有发送序列号SEQS和确认序列号SEQA两种,它们分别对应SYN和ACK两个标志。当SYN置1时,表示所发送的数据包的序列号为SEQS ;当ACK置1时,表示接收方准备接收的数据包的序列号为SEQA 。
在客户机与服务器建立连接的三次握手过程中,序列号的变化如下。
① Client → Server :SYN(SEQS=ISNC)
② Server → Client :SYN(SEQS=ISNS),ACK(SEQA=ISNC+1)
③ Client → Server :ACK(SEQA=ISNS+1)
其中,客户机首先向服务器发送一个初始序列号ISNC,并置SYN=1,表示需要与服务器建立连接;服务器确认这个传输后,向客户机返回它本身的序列号ISNS,并置ACK=1,同时通知客户机下一个期待获得的数据序列号是ISNC+1;最后,客户机再次确认,完成三次握手的过程。
在这个三次握手的过程中,如果能够推测出由服务器返回的序列号ISNS的值,则可实现序列号欺骗攻击。假设User是服务器上的可信任主机,Xser是冒充User的入侵者,那么,如果Xser预测出了ISNS的值,则TCP序列号欺骗攻击的过程如下。
① Xser → Server:SYN(SEQS=ISNC);使用User的IP作为源地址
② Server → User :SYN(SEQS=ISNS),ACK(SEQA=ISNC+1)
③ Xser → Server:ACK(SEQA=ISNS+1);使用User的IP作为源地址
在这里,Xser以User的身份向服务器发送初始序列号,并置SYN=1,请求与服务器建立连接;当服务器收到该请求后,向User返回应答序列号,如果此时User能正常工作,则认为这是一个非法数据包而终止连接,使攻击者的目的落空,否则,攻击者将继续以User的身份向服务器发送已推测出的确认序列号ISNS+1,并与服务器建立连接,进而可在服务器上行使User的权限,执行相应的操作。
使用这种攻击需要具备两个基本条件:一是能推测出序列号ISNS的值;二是所冒充的可信任主机不能正常工作。其中,最关键的是要推测出由服务器返回的序列号ISNS的值。由服务器返回的这个值可能是个随机数,它通常与被信任主机和服务器间的RTT时间有关,必须经过多次采样和统计分析,才可能推测到这个值。通常,可重复多次与被攻击主机的某个端口(如SMTP)建立正常连接,然后断开,并记录每次连接所设定的ISN值。另外,还需要多次测试可信任主机与服务器间的RTT时间,并统计出平均值。根据这个RTT时间值,可以通过下式估算出ISN的值。

一旦估计出ISN的值,就可进行攻击,这个攻击过程是利用IP欺骗法实现的。
2.IP欺骗
IP欺骗是利用可信任主机的IP地址向服务器发起攻击的。
为了实现IP欺骗,必须首先使可信任主机丧失工作能力,然后,使用可信任主机的IP与服务器建立连接,进而达到攻击的目的。
3.2.7 计算机病毒
1.计算机病毒的概念与特征
所谓计算机病毒(Computer Viruses)是指编制或者在计算机程序中插入的破坏计算机功能或者毁坏数据,影响计算机使用,并具有自我复制功能的一组计算机指令或者程序代码,以下简称病毒。
计算机病毒具有五大基本特性,分别是主动传染性、破坏性、寄生性、隐蔽性和不可预见性,其中,主动传染性是病毒与其他一般程序的本质区别。
2.病毒的传播途径
病毒的传播途径大致分为两类,一类是通过主机上的移动介质,例如,软盘、光盘、磁带、优盘等;另一类是通过网络,例如,电子邮件、Web页面、网络协议,故意将有病毒的设备接入网络传播病毒等。病毒的传播过程为:首先使某台主机或网络设备染上病毒,然后,再通过移动介质或网络进行传播。使某台主机染病毒的方法很多,例如,事先将开发好的病毒隐藏在主机内部,通过遥控触发,使该机感染病毒,然后进行传播泛滥。
3.病毒的种类
根据病毒的破坏性质,可将病毒分为良性病毒和恶性病毒两类。
根据病毒所攻击的操作系统情况,可将病毒分为DOS病毒、Windows病毒、Linux病毒和UNIX病毒等类型。
根据病毒所应用的技术情况,可将病毒分为引导型、文件型和混合型病毒三种类型。
根据Internet应用情况,可将病毒分为变形病毒、宏病毒、电子邮件病毒、脚本病毒、网络蠕虫病毒、黑客、木马/后门、Java/Active X恶意代码等多种类型。
4.感染病毒的症状
当系统受到病毒感染时,可能会出现下列症状:
1)程序装入时间比平时长,运行异常;
2)有规律地发现异常信息;
3)用户访问设备时发现异常情况,如打印机不能联机或打印符号异常;
4)磁盘的空间突然变小了,或不识别磁盘设备;
5)程序或数据神秘地丢失了,文件名不能辨认;
6)显示器上经常出现一些莫名奇妙的信息或异常显示(如白斑或圆点等);
7)机器经常出现死机现象或不能正常启动;
8)发现可执行文件的大小发生变化或发现来历不明的隐藏文件等。
5.清除病毒的基本方法
清除病毒的基本方法包括人工处理和利用反病毒软件两种。
人工处理方法是清除病毒的最基本方法,也是非常重要的方法,它通过准确的分析判断直接清除病毒,例如,如果发现磁盘引导区的记录被破坏,可直接用正确的引导记录覆盖磁盘引导区;如果发现某一文件被病毒感染,可直接使用正常的文件覆盖被感染的文件或消除链接在该文件上的病毒,或者干脆清除该文件等就可清除病毒。人工处理方法依赖于操作者的经验和熟练程度,它对人的知识、技术等综合素质要求都比较高,但是,人工处理容易出错,有一定的危险性,如果操作不慎,将会造成系统数据的丢失,不合理的处理方法还可能导致意料不到的后果。
通常反病毒软件具有对特定种类的病毒进行检测的功能,有的软件可查出几十种甚至几百种病毒,并且大部分反病毒软件可同时消除查出来的病毒。另外,利用反病毒软件消除病毒时,一般不会因清除病毒而破坏系统中的正常数据。特别是反病毒软件有理想的菜单提示,使用户的操作非常简便,但是,利用反病毒软件很难处理某些变种的病毒。
6.预防病毒的基本措施
计算机病毒的危害极大。必须采取有效措施,防止计算机感染病毒。预防病毒的主要措施包括人工预防、软件预防、硬件预防和管理预防四个方面。
(1)人工预防也称标志免疫法。因为任何一种病毒均有一定标志,将此标志固定在某一位置,然后把程序修改正确,达到免疫的目的。
(2)软件预防主要是使用计算机病毒的疫苗程序,这种程序能够监督系统运行,并防止某些病毒入侵。国际上推出的疫苗产品,如英国的Vaccin软件,它发现磁盘及内存有变化时,就立即通知用户,由用户采取措施处理。
(3)硬件预防主要采取两种方法:一是改变计算机系统结构;二是插入附加固件。目前主要是采用后者,即将防病毒卡的固件(简称防毒卡)插到主机板上,当系统启动后先自动执行,从而取得CPU的控制权。
(4)管理预防是目前最有效和普遍采用的一种预防措施,它通过以下两种途径实现:
1)法律制度。规定制造计算机病毒是违法行为,对罪犯用法律制裁。
2)计算机系统管理制度。建立系统使用权限体系、建立健全系统资料和文件的使用管理制度、建立定期清除病毒和更新磁盘的管理规定等。