在与病毒的对抗中,及早发现病毒很重要。早发现,早处置,可以减少损失。检测病毒方法有:特征码检测、校验和检测、行为监测、启发式扫描和虚拟机检测。这些方法依据的原理不同,实现时所需开销不同,检测范围不同,各有其特点。
1.特征码检测
所谓特征码查毒法,就是在获取病毒样本后,提取出其特征码(例如,杨基病毒的特征码是16进制的“F4 7A 2C 00”,快乐时光病毒中的“Fun Time”字符串等),然后通过该特征码对目标文件或内存等进行扫描。如果发现这种特征码,就说明感染了这种病毒,然后针对性地清除病毒。
特征码技术是最早被采用,而且被许多反病毒软件一直沿用至今的病毒检测方法。特征码检测方法检测病毒,方法简单、准确、快速,可识别病毒的名称,误报警率低。
但是,特征码技术只能诊断已知的计算机病毒,其响应速度永远滞后于病毒,而且不能检查未知病毒和变形病毒,不能对付隐蔽性病毒。
随着计算机病毒的发展,不断出现的新的病毒,甚至有些病毒具有自动变形功能,例如,“卡死脖”病毒,采用传统病毒特征码搜索技术的杀毒软件常常难以应付这些变形病毒。为此,人们提出了广谱特征码过滤技术,该技术在一定程度上可以弥补以上缺陷。
2.校验和检测
先计算正常文件的内容和正常的系统扇区数据的校验和,将该校验和写入数据库中保存。检测时,检查文件现在内容的校验和与原来保存的校验和是否一致,从而可以发现文件或扇区是否被感染,这种方法称校验和检测。
校验和检测技术的优点是:方法简单、能发现未知病毒、被查文件的细微变化也能发现。但是,它不能识别病毒种类。而且,由于病毒感染并非是文件内容改变的唯一原因,文件内容的改变有可能是正常程序引起的,所以校验和检测技术受到种种限制,同时这种方法也会影响文件的运行速度。另外,校验和不能检测新的文件,如从网络传输来的文件、磁盘和光盘拷入的文件、备份文件和压缩文档中的文件等。
3.行为监测
通过研究发现,病毒不论伪装得如何巧妙,它们总是存在着一些和正常程序不同的行为,而这些行为在正常应用程序中却十分罕见,这就是病毒的行为特性。
常见的病毒行为特性有:对可执行文件进行写操作、写磁盘引导区、病毒程序与宿主程序的切换、程序自己重定位、通过搜索函数索引表来获取API函数地址等。
利用这些特征,就可以对病毒实施监视,在病毒程序体进行活动时发出报警。采用这种行为特性检测方法不仅可以检测出已知病毒,而且可以检测出新出现的未知病毒,无论该病毒是什么种类,或是否变形。但是,行为监测技术也可能误报警,而且不能识别病毒名称。(www.xing528.com)
4.启发式扫描
在特征码扫描技术的基础上,利用对病毒代码的分析,获得一些统计的、静态的启发性知识,可以用于静态的启发性扫描技术(Heuristic Scanning)。
启发式扫描主要分析文件中的指令序列,根据统计知识,判断该文件可能被感染或者没有被感染,从而有可能找到未知的病毒。因此,启发式扫描技术是一种概率方法,遵循概率理论的规律。早期的启发式扫描软件采用代码反编译技术作为它的实现基础。这类病毒检测软件在内部保存数万种病毒行为代码的跳转表,每个表项对应一类病毒行为的必用代码序列,如病毒格式化磁盘必须用到的代码等。启发式病毒扫描软件利用代码反编译技术,反编译出被检测文件的代码,然后在这些表格的支持下,使用“静态代码分析法”和“代码相似比较法”等有效手段,就能有效地查出已知病毒的变种,以及判定文件是否含有未知病毒。
由于病毒代码千变万化,具体实现启发式病毒扫描技术是相当复杂的。通常这类病毒检测软件要能够识别并探测许多可疑的程序代码指令序列,如格式化磁盘类操作、搜索和定位各种可执行程序的操作、实现驻留内存的操作、子程序调用中只执行入栈操作、远距离(如超过文件长度的三分之二)跳往文件头的指令等。一般来说,仅仅一项可疑的功能操作不足以触发病毒报警。但如果同时具有多项可疑操作,目标程序就很可能是病毒程序。
5.虚拟机
自动变形病毒,也称为多态性病毒或多型(形)性病毒。自动变形病毒每次感染宿主时都自动改变自身的程序代码和特征码,这类病毒的代表有“幽灵”病毒等。
一般而言,自动变形病毒采用以下几种操作来不断变换自己:采用等价代码对原有代码进行替换;改变与执行次序无关的指令的次序;增加许多垃圾指令;对原有病毒代码进行压缩或加密等。因为自动变形病毒对其代码不断进行变换,而且每次传染使用不同的密钥。将染毒文件的病毒代码相互比较,也难以找出相同的可作为病毒特征的稳定特征码,因此用传统检测方法根本无法检测出这类病毒。但是,自动变形病毒也有一个共同的规律:即无论病毒如何变化,每一个自动变形病毒在其自身执行时都要对自身进行还原。
对于如何检测自动变形病毒,又出现了一种新的病毒检测方法——“虚拟机技术”。该技术用软件方法让病毒在一个虚拟的环境中,仿真一部分系统指令和功能调用,对病毒代码作解释执行,而且仿真运行不对系统产生实际的影响,即可获得程序运行的后果,并在此基础上对程序运行分析,进而判断是否存在病毒。不管病毒使用什么样的加密、隐形等伪装手段,只要在虚拟机所营造的虚拟环境下,病毒都会随着运行过程自动褪去伪装(实际上是被虚拟机动态还原)。正是基于上述设计原理,虚拟机在处理加密、变换、变形病毒方面具有很强的优越性。
虚拟机检测方法,实际上是用软件实现了模拟人工反编译、智能动态跟踪、分析代码运行的过程,其效率更高,也更准确。使得反病毒从单纯的静态分析进入了动态和静态分析相结合的新时期,极大地提高了对已知病毒和未知病毒的检测水平。在今后相当长的一段时间内,虚拟机技术还会有很大的发展。
通过以上方法,可以检测出病毒,接着就需要将感染的病毒进行清除。将病毒代码从宿主中去除,使之恢复为可正常运行的系统或程序,称为病毒清除。大多数情况下,采用反病毒软件或采用手工处理方式可以恢复受感染的文件或系统。
但需要注意的是,不是所有染毒文件都可以消毒,也不是所有染毒的宿主都能够被有效恢复。依据病毒的种类及其破坏行为的不同,感染病毒后,如果宿主数据没有被删除,常常可以恢复;如果宿主数据被病毒删除或覆盖、或者宿主数据的逻辑关系被病毒破坏,常常不能恢复。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。