《杀毒软件的基本原理.doc》由会员分享,可在线阅读,更多相关《杀毒软件的基本原理.doc(5页珍藏版)》请在三一办公上搜索。
1、一个杀毒软件无异于一个信息分析的系统,当它发现某些信息被感染后,就会清除其中的病毒。假设信息是在“源系统”中,必须到达“目标系统”。这里所称的源系统可以是一个软盘,目标系统可能是计算机的硬盘,或者源系统是存储在ISP的一条消息,而目的系统是客户端计算机上基于Winsock协议的Windows通讯系统。信息解释系统依据操作系统、应用程序或者是否需要特殊的机制等因素的不同是有区别的,该解释机制必须明确对应杀毒软件所要作用的操作系统或组件。例如:在Windows 9X系统中,需要采用一个虚拟驱动程序VxD来不断监控磁盘的行为。通过这种方式,每当硬盘或者软盘中的信息被存取时,杀毒软件就会截取对该磁盘的
2、读写操作,并扫描将要读取或保存的信息。此种操作在Windows NT/2000/XP中是通过内核模式中的一个驱动来实现的,而在Novell中,磁盘活动的解释是通过一个NLM模块实现的。对于那些为某些特殊应用而设计(而非为某个操作系统设计)的杀毒软件,其解释机制和上面所介绍的是不同的。例如,对于支持CVP防火墙的杀毒软件,是由防火墙通过CVP协议来为杀毒软件传递需要扫描的信息;而对于支持Sendmail的杀毒软件, MilterAPI过滤器为信息的解释提供了便利。某些时候,解释机制既不是由杀毒软件提供(如VxD虚拟驱动),也不是由某种应用提供(如CVP 协议)。在这种情况下,必须采用介乎于应用和
3、杀毒软件之间的一种特殊的解释机制。换句话说,通过某种资源来解释信息并将其传送给杀毒软件,这些资源和杀毒软件之间是一种紧密集成的关系,这样有助于杀毒软件清除病毒。无论采用何种方式,一旦在扫描信息的过程中检测到一种威胁(病毒),将会采取两种措施: 1. 清除干净的信息将会返回给解释机制,然后再由该解释机制返回给原来的系统以便于它能够继续到达其最终目的地。这意味着如果接收到一封电子邮件,该邮件仍然会被允许到达其目的邮箱;如果是复制一个文件,复制过程将仍然会被允许正常进行直至结束。 2. 会向用户界面发送一个警告,该用户界面可能是多种多样的。对于工作站端的杀毒软件,将会在屏幕上显示一条信息,但是对于针
4、对服务器的杀毒模块,警告将会以电子邮件、内部网络消息、病毒报告中的一条记录或者传递给杀毒软件管理工具的某种消息的形式发送。杀毒程序能够提供高级的防护、阻止任何带给用户的特别“惊奇”。这就象往某个盒子中投入XXX元钱以获得心灵上的平安那么简单。扫描引擎 无论需要扫描的信息是如何获得的,对于杀毒软件而言最重要的特征就是:病毒扫描引擎。该引擎扫描它所截取的数据以查看其中是否包含病毒,如果有病毒就会将其清除。 信息的扫描通常通过两种方式进行:一种是将扫描信息与病毒数据库(即所谓的“病毒特征库”)进行对照,如果信息与其中的任何一个病毒特征符合,杀毒软件就会判断此文件被病毒感染。 但是对于某些新的病毒或危
5、险信息,在病毒数据库中并没有它们的特征,此时通过一种称为“启发式扫描”的方法有可能将其检测出来。该方法是通过分析信息的行为并将其与一个危险行为样式库进行对照以判别信息的危险性。 例如,如果某个文件试图格式化检测到的硬盘,杀毒软件就会警告该用户。尽管该文件也许是用户刚刚安装在系统中的一个新的格式化程序而不是病毒,但是该行为是危险的。一旦杀毒软件通过声音向用户发出警告,接下来就由用户来判断是否要采取这种危险的操作了。 以上两种方法各有优缺点。如果仅采用病毒特征库系统,那么至少每天更新一次病毒库就显得尤为重要。您必须时刻牢记每天全球至少会有超过15种新的病毒出现,如果杀毒软件两三天都不更新病毒库就变
6、得很危险了。 启发式扫描的缺点是会向你误报一些本不是病毒的信息,如果你每天遇到很多此类的误报,很快就会对这种警告感到厌烦。所以通常程序推荐关闭这种选项。永久保护和立即扫描 辨别两种不同类型的保护模式对于我们了解杀毒软件是很重要的。第一种是永久保护,相对比较复杂也更重要。这种扫描方式会不断监控计算机中的所有操作以对付各种入侵的企图。 另一种保护类型是立即扫描,它采用与永久保护相同的扫描引擎,可以根据用户的需要检测系统的任何部分。这种扫描通常用在某些特殊的场合,例如:用户可以用立即扫描方式检测一张新的软盘,或者扫描存储在计算机中已经很久没有使用过的一些信息。杀毒软件是根据什么来进行病毒判断并查杀得
7、呢?病毒检测的方法在与病毒的对抗中,及早发现病毒很重要。早发现,早处置,可以减少损失。检测病毒方法有:特征代码法、校验和法、行为监测法、软件模拟法这些方法依据的原理不同,实现时所需开销不同,检测范围不同,各有所长。特征代码法特征代码法被早期应用于SCAN、CPAV等著名病毒检测工具中。国外专家认为特征代码法是检测已知病毒的最简单、开销最小的方法。特征代码法的实现步骤如下:采集已知病毒样本,病毒如果既感染COM文件,又感染EXE文件,对这种病毒要同时采集COM型病毒样本和EXE型病毒样本。在病毒样本中,抽取特征代码。依据如下原则:抽取的代码比较特殊,不大可能与普通正常程序代码吻合。抽取的代码要有
8、适当长度,一方面维持特征代码的唯一性,另一方面又不要有太大的空间与时间的开销。如果一种病毒的特征代码增长一字节,要检测3000种病毒,增加的空间就是3000字节。在保持唯一性的前提下,尽量使特征代码长度短些,以减少空间与时间开销。在既感染COM文件又感染EXE文件的病毒样本中,要抽取两种样本共有的代码。将特征代码纳入病毒数据库。打开被检测文件,在文件中搜索,检查文件中是否含有病毒数据库中的病毒特征代码。如果发现病毒特征代码,由于特征代码与病毒一一对应,便可以断定,被查文件中患有何种病毒。采用病毒特征代码法的检测工具,面对不断出现的新病毒,必须不断更新版本,否则检测工具便会老化,逐渐失去实用价值
9、。病毒特征代码法对从未见过的新病毒,自然无法知道其特征代码,因而无法去检测这些新病毒。特征代码法的优点是:检测准确快速、可识别病毒的名称、误报警率低、依据检测结果,可做解毒处理。其缺点是:不能检测未知病毒、搜集已知病毒的特征代码,费用开销大、在网络上效率低(在网络服务器上,因长时间检索会使整个网络性能变坏)。其特点:A.速度慢。随着病毒种类的增多,检索时间变长。如果检索5000种病毒,必须对5000个病毒特征代码逐一检查。如果病毒种数再增加,检病毒的时间开销就变得十分可观。此类工具检测的高速性,将变得日益困难。B.误报警率低。非C.不能检查多形性病毒。特征代码法是不可能检测多态性病毒的。国外专
10、家认为多态性病毒是病毒特征代码法的索命者。D.不能对付隐蔽性病毒。隐蔽性病毒如果先进驻内存,后运行病毒检测工具,隐蔽性病毒能先于检测工具,将被查文件中的病毒代码剥去,检测工具的确是在检查一个虚假的“好文件”,而不能报警,被隐蔽性病毒所蒙骗。校验和法将正常文件的内容,计算其校验和,将该校验和写入文件中或写入别的文件中保存。在文件使用过程中,定期地或每次使用文件前,检查文件现在内容算出的校验和与原来保存的校验和是否一致,因而可以发现文件是否感染,这种方法叫校验和法,它既可发现已知病毒又可发现未知病毒。在SCAN和CPAV工具的后期版本中除了病毒特征代码法之外,还纳入校验和法,以提高其检测能力。这种
11、方法既能发现已知病毒,也能发现未知病毒,但是,它不能识别病毒类,不能报出病毒名称。由于病毒感染并非文件内容改变的唯一的非他性原因,文件内容的改变有可能是正常程序引起的,所以校验和法常常误报警。而且此种方法也会影响文件的运行速度。病毒感染的确会引起文件内容变化,但是校验和法对文件内容的变化太敏感,又不能区分正常程序引起的变动,而频繁报警。用监视文件的校验和来检测病毒,不是最好的方法。这种方法遇到下述情况:已有软件版更新、变更口令、修改运行参数、校验和法都会误报警。校验和法对隐蔽性病毒无效。隐蔽性病毒进驻内存后,会自动剥去染毒程序中的病毒代码,使校验和法受骗,对一个有毒文件算出正常校验和。运用校验
12、和法查病毒采用三种方式:在检测病毒工具中纳入校验和法,对被查的对象文件计算其正常状态的校验和,将校验和值写入被查文件中或检测工具中,而后进行比较。在应用程序中,放入校验和法自我检查功能,将文件正常状态的校验和写入文件本身中,每当应用程序启动时,比较现行校验和与原校验和值。实现应用程序的自检测。将校验和检查程序常驻内存,每当应用程序开始运行时,自动比较检查应用程序内部或别的文件中预先保存的校验和。校验和法的优点是:方法简单能发现未知病毒、被查文件的细微变化也能发现。其缺点是:发布通行记录正常态的校验和、会误报警、不能识别病毒名称、不能对付隐蔽型病毒。行为监测法利用病毒的特有行为特征性来监测病毒的
13、方法,称为行为监测法。通过对病毒多年的观察、研究,有一些行为是病毒的共同行为,而且比较特殊。在正常程序中,这些行为比较罕见。当程序运行时,监视其行为,如果发现了病毒行为,立即报警。这些做为监测病毒的行为特征如下:A.占有INT 13H所有的引导型病毒,都攻击Boot扇区或主引导扇区。系统启动时,当Boot扇区或主引导扇区获得执行权时,系统刚刚开工。一般引导型病毒都会占用INT 13H功能,因为其他系统功能未设置好,无法利用。引导型病毒占据INT 13H功能,在其中放置病毒所需的代码。B.改DOS系统为数据区的内存总量病毒常驻内存后,为了防止DOS系统将其覆盖,必须修改系统内存总量。C.对COM、EXE文件做写入动作病毒要感染,必须写COM、EXE文件。D.病毒程序与宿主程序的切换染毒程序运行中,先运行病毒,而后执行宿主程序。在两者切换时,有许多特征行为。行为监测法的长处:可发现未知病毒、可相当准确地预报未知的多数病毒。行为监测法的短处:可能误报警、不能识别病毒名称、实现时有一定难度。软件模拟法多态性病毒每次感染都变化其病毒密码,对付这种病毒,特征代码法失效。因为多态性病毒代码实施密码化,而且每次所用密钥不同,把染毒的病毒代码相互比较,也无法找出相同的可能做为特征的稳定代码。虽然行为检测法可以检测多态性病毒,但是在检测出病毒后,因为不知病毒的种类,难于做消毒处理。