首页 百科知识 反病毒软件

反病毒软件

时间:2022-06-17 百科知识 版权反馈
【摘要】:9.5.2 反病毒软件反病毒软件按其工作原理可分为病毒扫描程序、内存扫描程序、完整性检查器和行为监视器。查病毒软件中使用的病毒特征码过滤法就是基于这种工作原理的。串扫描程序在反病毒领域已经取得了很大成功。类属解密是目前检测多态病毒最成功的技术。完整性检查器是一种强有力的防病毒保护方式。在智能式探测器中,需设计病毒行为过程判定知识库,应用人工智能技术,有效区分正常程序与病毒程序行为。

9.5.2 反病毒软件

反病毒软件按其工作原理可分为病毒扫描程序、内存扫描程序、完整性检查器和行为监视器。

1.病毒扫描程序

病毒扫描程序是在文件和引导记录中搜索病毒的程序。它只能检测出已经知道的病毒,对于防止新病毒和未知病毒感染几乎没有什么帮助。多数杀毒软件在它们的反病毒产品套件中都提供某种类型的病毒扫描程序。

(1)串扫描算法

病毒扫描程序使用得最多的是串扫描算法。这种扫描搜索程序文件和引导记录的每个字节,查找病毒的字节序列。如果扫描程序检测出相应的字节序列,它就会报告文件已被病毒感染。查病毒软件中使用的病毒特征码过滤法就是基于这种工作原理的。根据病毒的某一部分特征,去对比每一个程序,有某特征即判定为某病毒。后来,研究人员认识到大多数病毒感染都发生在可执行文件的开头或结尾附近,大多数病毒喜欢把自己前置或后置到宿主体文件中。因此,用不着扫描每个文件的每个字节,病毒扫描程序只需要把注意力集中于可执行文件的最前面和最后面几个KB就行了。但是,面对新病毒和变形病毒,这种方法的弱点就暴露无遗:因为特征选取不当容易造成误判;病毒数量增多时,进行特征对比耗时越来越多。但它的优点是操作简单,可隔离大部分病毒。

串扫描程序在反病毒领域已经取得了很大成功。这种技术在现在许多产品中仍然使用。然而它通常检测不出一些非常简单的多态病毒,因为这种病毒在不同的感染体之间变化很大。多态病毒的出现要求对病毒扫描技术加以改进。现有的通配符串扫描程序无法可靠地检测出这些病毒。因此,近年来反病毒产品把串扫描技术与其他新技术结合使用,运用更聪明的扫描算法,如入口点扫描、增加通配符功能的改进型串扫描算法等。

国际上用于分析测试目的的特征字符串EICAR Test String如下:

将该字符串输入到文本编辑器中,保存为普通文本文件(.TXT),如果计算机中装有较灵敏的反病毒软件并打开实时监控,可以看到“发现病毒”等字样。注意:这不是一个病毒。

(2)入口点扫描算法

入口点打描算法认为在一个感染的文件中,程序的入口点既可以直接指向病毒,也可指向把控制传送给病毒的一些机器代码。入口点扫描程序利用一个有限机器代码模拟器跟踪一个目标程序,并且跟踪简单的机器语言跳转(控制)指令。扫描程序在目标程序入口点检查机器代码。如果此代码使用一种可以识别的方法把控制传送给另一个程序区,内置的模拟器就会试图定位传送的目标,然后把这个目标文件作为程序的新入口点。扫描程序重复这一过程直到机器代码不再把控制传送给其他程序部分。

当前所有的反病毒产品都使用入口点扫描技术并与其他算法结合起来,以达到提高扫描速度和病毒检测能力的目的。

(3)类属解密法

由于多态病毒在每次感染中使用变化的解密例程,变化多端。前面提到的扫描技术对多态病毒无能为力,必须使用一种全新的技术,称为类属解密法(GD)。GD法扫描多态病毒时是在一个完全封闭的虚拟机中执行目标文件的机器代码,这个仿真的程序执行时好像正常运行在操作系统下一样。然而,因为程序在虚拟机中运行,它根本无法感觉到计算机的实际状态。如果目标文件已经感染病毒,这个仿真程序继续进行直到病毒把它自己解密并且把控制传送给不变的病毒体。这个解密过程完成之后,扫描程序逻辑搜索虚拟机中的被解密的区域以确定病毒种类。

类属解密是目前检测多态病毒最成功的技术。它可以检测出使用非常复杂加密算法的病毒,可以在已感染的文件中准确地识别出多态病毒的种类。除此之外,因为病毒在仿真期间解密自己,所以杀毒软件还可以找出在病毒内被正常解密的信息并用于修复已感染的文件。

2.内存扫描程序

内存扫描程序采用与病毒扫描程序同样的基本原理进行工作,它的工作是扫描内存以搜索内存驻留文件和引导记录病毒。

尽管病毒可以在用户毫无觉察的情况下把自己隐藏在程序和文件中,但病毒不能在内存中隐藏自己,因此内存扫描程序可以直接搜索内存,查找病毒代码。如果一个反病毒产品不使用内存扫描,其病毒检测技术是很不完善的,很可能漏查、漏杀某些病毒。

3.完整性检查器

完整性检查器的工作原理是基于如下的假设:在正常的计算机操作期间,大多数程序文件和引导记录不会改变。这样,在计算机未感染状态时,可取得每个可执行文件和引导记录的信息指纹,并将这一信息存放在硬盘的数据库中。这些信息可以用于验证原来记录的完整性。在验证时,如果发现文件中的指纹与数据库中的指纹不同,则说明文件已经改变,极有可能已遭病毒感染。大多数完整性检查器会从程序文件中保留以下信息:可执行文件内容的循环冗余校验和;程序入口的前几条机器语言指令;程序的长度,日期和时间。

完整性检查器是一种强有力的防病毒保护方式。因为几乎所有的病毒都要修改可执行文件引导记录,包括新的未发现的病毒,所以它的检测率几乎百分之百。引起完整性检查器失效的可能有:有些程序执行时必须要修改它自己;对已经被病毒感染的系统再使用这种方法时,可能遭到病毒的蒙骗等。

4.行为监视器

行为监视器又叫行为监视程序,它是内存驻留程序,这种程序静静地在后台工作,监视病毒或其他有恶意的损害活动。如果行为监视程序检测到这类活动,它就会通知用户,并且让用户决定这一类活动是否继续。

尽管内存驻留的病毒扫描程序可能会漏掉新病毒,但行为监视程序则可能检测出病毒对可执行文件的修改。所以,行为监视程序可以防止新的、未知的病毒的传播。行为监视技术的进一步完善就是智能式探测器。在智能式探测器中,需设计病毒行为过程判定知识库,应用人工智能技术,有效区分正常程序与病毒程序行为。是否会误报取决于知识库选取的合理性。其局限性在于:单一的知识库无法覆盖所有的病毒行为,对不驻留内存的新病毒就会漏报。目前有些防病毒卡就采用这种方法,它们设计病毒特征库(静态)、病毒行为知识库(动态)、受保护程序存取行为知识库(动态)等多个知识库及相应的可变推理机,通过调整推理机,能够对付新类型病毒,使误报、漏报减少。这也是未来防毒技术的发展方向。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈