自20世纪80年代出现具有危害性的计算机病毒以来,计算机专家就开始研究反病毒技术,反病毒技术随着病毒技术的发展而发展。
常用的计算机病毒诊断技术有以下几种。这些方法依据的原理不同,实现时所需的开销不同,检测范围也不同,各有所长。
(一)特征代码法
特征代码法是现在的大多数反病毒软件的静态扫描所采用的方法,是检测已知病毒最简单、开销最小的方法。
当防毒软件公司收集到一种新的病毒时,就会从这个病毒程序中截取一小段独一无二而且足以表示这种病毒的二进制代码(Binary Code),来当作扫描程序辨认此病毒的依据,而这段独一无二的二进制代码,就是所谓的病毒特征码。分析出病毒的特征码后,并集中存放于病毒代码库文件中,在扫描的时候将扫描对象与特征代码库比较,如果吻合,则判断为感染上病毒。特征代码法实现起来简单,对于查杀传统的文件型病毒特别有效,而且由于已知特征代码,清除病毒十分安全和彻底。使用特征码技术需要实现一些补充功能,如近来的压缩可执行文件自动查杀技术。特征代码法的特点如下。
1.特征代码法的优点
检测准确、可识别病毒的名称、误报警率低、依据检测结果可做杀毒处理。
2.特征代码法的缺点主要表现在以下几个方面
(1)速度慢。检索病毒时,必须对每种病毒特征代码逐一检查,随着病毒种类的增多,特征代码也增多,检索时间就会变长。
(2)不能检查多形性病毒。
(3)不能对付隐蔽性病毒。隐蔽性病毒如果先进驻内存,然后运行病毒检测工具,隐蔽性病毒就能先于检测工具,将被查文件中的病毒代码剥去,检测工具只是在检查一个虚假的“好文件”,而不会报警,被隐蔽性病毒所蒙骗。
(4)不能检查未知病毒。对于从未见过的新病毒,病毒特征代码法自然无法知道其特征代码,因而无法检测这些新病毒。
(二)校验和法
病毒在感染程序时,大多都会使被感染的程序大小增加或者日期改变,校验和法就是根据病毒的这种行为来进行判断的。首先把硬盘中的某些文件(如计算磁盘中的实际文件或系统扇区的CRC检验和)的资料汇总并记录下来。在以后的检测过程中重复此项动作,并与前次记录进行比较,借此来判断这些文件是否被病毒感染。校验和法的特点如下。
1.校验和法的优点
方法简单,能发现未知病毒,被查文件的细微变化也能被发现。
2.校验和法的缺点主要体现在以下几方面(www.daowen.com)
(1)由于病毒感染并非文件改变的唯一原因,文件的改变常常是正常程序引起的,如常见的正常操作(如版本更新、修改参数等),所以校验和法误报率较高。
(2)效率较低。
(3)不能识别病毒名称。
(4)不能对付隐蔽型病毒。
(三)行为监测法
病毒感染文件时,常常有一些不同于正常程序的行为。利用病毒的特有行为和特性监测病毒的方法称为行为监测法。通过对病毒多年的观察、研究,发现有一些行为是病毒的共同行为,而且比较特殊,而在正常程序中,这些行为比较罕见。当程序运行时,监视其行为,如果发现了病毒行为,立即报警。
行为监测法就是引入一些人工智能技术,通过分析检查对象的逻辑结构,将其分为多个模块,分别引入虚拟机中执行并监测,从而查出使用特定触发条件的病毒。
行为监测法的优点在于:不仅可以发现已知病毒,而且可以相当准确地预报未知的多数病毒。但行为监测法也有其短处,即可能误报警和不能识别病毒名称,而且实现起来有一定的难度。
(四)虚拟机技术
多态性病毒每次感染病毒代码都发生变化。对于这种病毒,特征代码法失效。因为多态性病毒代码实施密码化,而且每次所用密钥不同,把染毒的病毒代码相互比较,也无法找出相同的可能作为特征的稳定代码。虽然行为监测法可以检测多态性病毒,但是在检测出病毒后,因为不知病毒的种类,难于进行杀毒处理。
为了检测多态性病毒和一些未知的病毒,可应用新的检测方法——虚拟机技术(软件模拟法)。“虚拟机技术”即是在计算机中创造一个虚拟系统。虚拟系统通过生成现有操作系统的全新虚拟镜像,其具有真实系统完全一样的功能。进入虚拟系统后,所有操作都是
在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,不会对真正的系统产生任何影响。将病毒在虚拟环境中激活,从而观察病毒的执行过程,根据其行为特征,从而判断是否为病毒。这个技术主要对加壳和加密的病毒非常有效,因为这两类病毒在执行时最终还是要自身脱壳和解密的,这样,杀毒软件就可以在其“现出原形”之后通过特征码查毒法对其进行查杀。
虚拟机技术是一种软件分析器,用软件方法来模拟和分析程序的运行。虚拟机技术一般结合特征代码法和行为监测法一起使用。
Sandboxie(又叫沙箱、沙盘)即是一种虚拟系统。在隔离沙箱内运行程序完全隔离,任何操作都不对真实系统产生危害,就如同一面镜子,病毒所影响的是镜子中的影子系统而已。
在反病毒软件中引入虚拟机是由于综合分析了大多数已知病毒的共性,并基本可以认为在今后一段时间内的病毒大多会沿袭这些共性。由此可见,虚拟机技术是离不开传统病毒特征码技术的。
总的来说,特征代码法查杀已知病毒比较安全彻底,实现起来简单,常用于静态扫描模块中;其他几种方法适合于查杀未知病毒和变形病毒,但误报率高,实现难度大,在常驻内存的动态监测模块中发挥重要作用。综合利用上述几种技术,互补不足,并不断发展改进,才是反病毒软件的必然趋势。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。