第二个选择就是安装一套杀毒软件,它可以使您的PC免受恶意代码的攻击,但是它们是如何工作的呢?这些程序是如何让您可以安装一个游戏,却阻止游戏中的病毒进入您计算机的呢?下面我们就做一个介绍……
一个杀毒软件无异于一个信息分析的系统,当它发现某些信息被感染后,就会清除其中的病毒。信息的分析(或扫描)方式取决于其来源,杀毒软件在监控软驱、电子邮件或局域网间数据移动时工作方式是不同的,虽然原理相同,但细致处是有所区别的。
假设信息是在“源系统”中,必须到达“目标系统”。这里所称的源系统可以是一个软盘,目标系统可能是计算机的硬盘,或者源系统是存储在ISP的一条消息,而目的系统是客户端计算机上基于Winsock协议的Windows通讯系统。
信息解释系统依据操作系统、应用程序或者是否需要特殊的机制等因素的不同是有区别的,该解释机制必须明确对应杀毒软件所要作用的操作系统或组件。例如:在Windows 9X系统中,需要采用一个虚拟驱动程序VxD来不断监控磁盘的行为。通过这种方式,每当硬盘或者软盘中的信息被存取时,杀毒软件就会截取对该磁盘的读写操作,并扫描将要读取或保存的信息。此种操作在Windows NT/2000/XP中是通过内核模式中的一个驱动来实现的,而在Novell中,磁盘活动的解释是通过一个NLM模块实现的。
对于那些为某些特殊应用而设计(而非为某个操作系统设计)的杀毒软件,其解释机制和上面所介绍的是不同的。例如,对于支持CVP防火墙的杀毒软件,是由防火墙通过CVP协议来为杀毒软件传递需要扫描的信息;而对于支持Sendmail的杀毒软件,MilterAPI过滤器为信息的解释提供了便利。
某些时候,解释机制既不是由杀毒软件提供(如VxD虚拟驱动),也不是由某种应用提供(如CVP协议)。在这种情况下,必须采用介乎于应用和杀毒软件之间的一种特殊的解释机制。换句话说,通过某种资源来解释信息并将其传送给杀毒软件,这些资源和杀毒软件之间是一种紧密集成的关系,这样有助于杀毒软件清除病毒。 无论采用何种方式,一旦在扫描信息的过程中检测到一种威胁(病毒),将会采取两种措施: 1. 清除干净的信息将会返回给解释机制,然后再由该解释机制返回给原来的系统以便于它能够继续到达其最终目的地。这意味着如果接收到一封电子邮件,该邮件仍然会被允许到达其目的邮箱;如果是复制一个文件,复制过程将仍然会被允许正常进行直至结束。
2. 会向用户界面发送一个警告,该用户界面可能是多种多样的。对于工作站端的杀毒软件,将会在屏幕上显示一条信息,但是对于针对服务器的杀毒模块,警告将会以电子邮件、内部网络消息、病毒报告中的一条记录或者传递给杀毒软件管理工具的某种消息的形式发送。
正如您所看到的,杀毒软件不是一种能够执行奇迹的产品,它仅仅是一种集成了精确和高级技术的安全产品。您可以想像一下,当您向计算机硬盘中复制几兆大小的文件时,杀毒软件必须在不影响计算机正常功能而且在用户不知不觉中检测超过65,000种病毒。 杀毒程序能够提供高级的防护、阻止任何带给用户的特别“惊奇”。这就象往某个盒子中投入XXX元钱以获得心灵上的平安那么简单。
扫描引擎
无论需要扫描的信息是如何获得的,对于杀毒软件而言最重要的特征就是:病毒扫描引擎。该引擎扫描它所截取的数据以查看其中是否包含病毒,如果有病毒就会将其清除。
信息的扫描通常通过两种方式进行:一种是将扫描信息与病毒数据库(即所谓的“病毒特征库”)进行对照,如果信息与其中的任何一个病毒特征符合,杀毒软件就会判断此文件被病毒感染。
但是对于某些新的病毒或危险信息,在病毒数据库中并没有它们的特征,此时通过一种称为“启发式扫描”的方法有可能将其检测出来。该方法是通过分析信息的行为并将其与一个危险行为样式库进行对照以判别信息的危险性。
例如,如果某个文件试图格式化检测到的硬盘,杀毒软件就会警告该用户。尽管该文件也许是用户刚刚安装在系统中的一个新的格式化程序而不是病毒,但是该行为是危险的。一旦杀毒软件通过声音向用户发出警告,接下来就由用户来判断是否要采取这种危险的操作了。
以上两种方法各有优缺点。如果仅采用病毒特征库系统,那么至少每天更新一次病毒库就显得尤为重要。您必须时刻牢记每天全球至少会有超过15种新的病毒出现,如果杀毒软件两三天都不更新病毒库就变得很危险了。
启发式扫描的缺点是会向你误报一些本不是病毒的信息,如果你每天遇到很多此类的误报,很快就会对这种警告感到厌烦。所以通常程序推荐关闭这种选项。
永久保护和立即扫描
辨别两种不同类型的保护模式对于我们了解杀毒软件是很重要的。第一种是永久保护,相对比较复杂也更重要。这种扫描方式会不断监控计算机中的所有操作以对付各种入侵的企图。
另一种保护类型是立即扫描,它采用与永久保护相同的扫描引擎,可以根据用户的需要检测系统的任何部分。这种扫描通常用在某些特殊的场合,例如:用户可以用立即扫描方式检测一张新的软盘,或者扫描存储在计算机中已经很久没有使用过的一些信息。