杀毒软件的原理

相信有过病毒查杀经历的朋友都遇到过一种“郁闷”的现象,即使将软件的病毒库升级到最新的版本,对某些强悍的病毒或木马依然无法进行有效的查杀。其实如果您了解杀毒软件的工作原理和杀毒引擎技术的话,那么心中的疑惑自然就解开了!

一、杀毒软件的工作流程
对于一款杀毒软件来说,一次成功的病毒查杀过程,通常都要经历病毒识别、病毒报警、病毒清除、文件或系统复原这几个过程。各个过程中又运用了很多复杂的技术,但其中最关键的应该是杀毒引擎技术,从广义上来讲,是指通过文件、网页监视等实时监控行为,运用文件识别技术来完成病毒扫描、识别、报警以及清除,甚至防御的一整套的机制,因此引擎技术也决定了杀毒软件的优劣,而引擎所包含的众多技术中,病毒识别技术又是重中之重。

二、必不可少的脱壳过程
病毒、木马加壳已经是非常普遍的现象了,目前主要有两种脱壳技术:算法脱壳和动态脱壳,目前主流的杀毒软件都引入了虚拟机技术,虽然这会占用一定的系统资源,但使带壳的病毒文件,运行于虚拟机之上,不仅可以更好的识别各种壳,还可以有效防止病毒真正的感染文件。

算法脱壳:此法是根据加壳程序的解密算法对病毒进行脱壳,虽然有速度快、消耗资源少的优点,但也有无法脱变形壳的缺点。不过,很多杀毒软件还是能够向用户发出警报,以弥补无法脱壳的缺憾。

动态脱壳:众所周知,只有让加过壳的程序运行起来,才能将其还原成本来的面目,此时为了避免程序运行后真正感染系统文件,因此引入了虚拟机技术,为带壳的病毒程序虚拟一个计算机环境,使它运行于虚拟环境。此法虽优势明显,但也会消耗很多的系统资源,因此拥有一套自己的、成熟的虚拟机技术,将大大提高检测的速度。

三、识别病毒的几种方法
如何识别病毒,对于任何杀毒软件来说,都是非常重要,同时也是非常核心的工作。识别病毒的能力,往往决定了这款杀毒软件的病毒查杀能力,若连病毒都无法识别,当然也就不能对病毒作出妥当的处理。检测病毒方法通常有:特征代码法、校验和法、行为监测法、软件模拟法几种,各安全厂商会衡量不同方法之间的查杀效果、运行开销等因素,再结合自身的技术特点,选择相应的病毒识别方法。这里只介绍各种方法的优缺点,对于具体的实现步骤,已经超出了“菜鸟”的范畴。

特征代码法:这种方法根据正常程序与病毒程序代码的差别来识别病毒文件。有人认为,对于已知病毒来说,这种方法是最简单、最直接的方法,这种方

法的优、缺点都很突出。
优点:检测的准确率较高,误报率低。
缺点:查杀速度慢,由于已知病毒越来越多,因此病毒特征码也随之增加,因此查杀速度也会越来越慢。不能检测未知病毒和多态性病毒以及隐蔽性病毒。另外这种检测方法也不适合网络版杀毒软件采用,因为它会消耗我们宝贵的网络资源。

校验和法:此法计算文件的校验和(只要知道是一种算法就可以了)并保存,可定期或调用文件时进行对比,从而判断文件是否被病毒感染。虽然此法可以发现未知病毒,但由于其较高的误报率,已经逐渐不被采用。
优点:可发现未知病毒。
缺点:无法报出病毒名称,误报率高,当软件更新,口令修改或修改文件内容时,校验和法都可能会误报,因为这种方法无法区分文件内容的变化是不是属于正常的程序使用引起的。

行为监测法:此法根据病毒的行为特征来识别病毒,这需要对病毒行为进行详细的分类和研究,分析那些病毒共同的行为,以及正常程序的罕见行为,根据程序运行时的行为进行病毒判断和预警。
优点:由于其归纳和总结各种病毒的共同特征,因此可以发现未知病毒,对于多数未知病毒预报非常有效。
缺点:对于未知行为病毒,不能有效检测,同时也存在误报现象,对查到的未知病毒,不能识别病毒名称,因此普通用户不能对发现的未知病毒进行有效的清除。

软件模拟法:这种方法通过模拟病毒运行的方式来检测病毒特征,由于特征码法无法检测多态性病毒,虽然行为监测法可以发现病毒,但是无法确定病毒名称,也无法对其进行相应的杀除,因此产生了软件模拟法。
优点:可识别未知病毒,病毒定位准确,误报率低。
缺点:检测速度受到一定影响,消耗系统资源较高。

上述几种检测方法各有所长,往往都不能单纯使用一种方法完成大规模病毒的检测报警工作,通常都是几种技术相结合,根据实际情况和应用场合配合运用相应的检测手段。

四、清除病毒和文件还原
正确地识别出了病毒后,接着就需要对其进行清除了。此时,又分为两种情况。对于那些尚未感染文件或展开破坏行为的病毒,在这种情况下杀毒引擎只需要简单删除文件就可以了。然而用户遇到最多的,还是已经被病毒感染的情况,此时,杀毒引擎将根据病毒特征库中记录的病毒行为来判断当前系统环境遭受破坏的情况并进行恢复。对于受病毒感染的文件,杀毒引擎必须根据一定的算法在文件体内找出病毒代码寄生的部分并给予清除,这个过程必须非常谨慎,否则直接的后果就是导致原文件

被破坏,这样的杀毒就毫无意义了(很多朋友也许都遇到过查杀大量的受感染的系统文件后,系统无法正常启动的情况,其实就是因为查杀病毒的过程中,系统文件也遭到了破环!)。而对于非文件型的木马和恶意程序,由于它们会通过各种方式篡改系统注册表或系统文件,从而达到加载自身(也就是平常所说的自启动)之目的,杀毒引擎在清除了这些病毒后,需要准确、有效的恢复受破坏的系统环境,这也是对杀毒引擎的最大挑战。而对于那些不能识别名称的病毒,虽然无法对其进行精确的清除,但很多杀毒软件也可以将其放入“病毒隔离区”,通过禁止其运行的方法来抑制病毒的扩散和传播。

病毒隐藏技术已经从最初的简单加载单一启动项,演化到今天的多重启动项、进程互相保护、线程监视、远程注射、可执行文件关联、服务项目加载、驱动形式加载等方式,甚至采用多项结合的方法,使得查杀工作变得十分困难,甚至只要遗漏了一个文件未能清除,病毒便能卷土重来,因此,如何有效准确的判断和修复受损环境,也是衡量杀毒引擎技术是否成熟的关键。

五、未来之路
目前,虚拟机、实时监控、主动防御等技术均已经渐渐成为主流。除此之外,还有两种处于试验阶段的新技术,分别是智能码标识技术和行为拦截技术。

智能码标识技术:这种技术如同给各种程序分配一个可以对其进行唯一识别的ID,这样对付那些非法的木马、后门等程序就变得简单了很多,即使是文件或程序遭到病毒感染,杀毒软件也可以根据那一串智能识别码对其进行拦截和阻击。目前,此项技术还处于理论阶段,还没有哪个安全公司的产品中已经包含了此技术的模块。

行为拦截技术:从概念上来说,这优点类似主动防御的概念。这里的行为拦截指的是即时的监控执行应用程序行为,并且拦截显示恶意的程序活动。如果有必要,甚至可以对系统的API进行阻挡,但同时也表现出来一定的负面影响,如果错误的拦截了合法程序的正常执行行为,将导致系统运行的异常,轻则系统的某些功能无法使用,重则引起系统的瘫痪,对于那些对于操作系统知之甚少的用户来说,这一点尤为突出。虽然目前很多软件(如:NOD32、AVAST等)都已经开始尝试使用这种技术,但很有很多内容需要研究。

最近,看到很多国内的杀毒软家厂商借助各种媒体,宣传自己又通过了某某认证,虽然通过某些权威机构的认证,可以作为自己产品质量的佐证,也许这些只能证明过去。面对层出不穷的病毒、日新月异的攻击,不断完善已有的技术和开发研究新技术同

样重要。其实杀毒软件更贴切的称呼应为“反病毒软件”,因为越来越多的产品已经向防病毒的思想迈进。防毒能力是指预防病毒侵入计算机系统的能力。通过采取防毒措施,应可以准确地、实时地监测预警经由网络或文件等多种方式进行的传输;能够在病毒侵入系统是发出警报,并记录携带病毒的文件,即时清除其中的病毒。

结束语:很多用户在挑选杀毒软件的时候,都有无所适从的感觉,其实杀毒软件的引擎实现技术无非也就那么几个,不要只注重界面和厂家的宣传,安全厂商的研发能力和服务效率也是值得考虑的因素。

相关主题
相关文档
最新文档