网络安全 频道

【安全大讲堂之UTM】病毒检测技术之检测方法

    通常的UTM,从调用角度来说,防病毒在UTM所有模块中的位置是置于防火墙、IPS之后的,数据包经过IPS的协议解析、文件还原、调用防病毒引擎,对所要检测的流文件进行病毒检测。

    UTM中的防病毒除了引用传统的病毒检测技术外,还应该采用一些新的技术来提高病毒检测的效率与性能,如采用流检测的技术、混合攻击的检测技术和对未知病毒的检测方法。

    病毒检测技术主要有下列五种方法:特征码检测、校验和计算、行为检测、启发式扫描以及虚拟机技术。

    1)特征码检测

    这是当今应用得最多也最广的杀毒检测方式,通过分析受感染文件,可以总结出病毒特征、记录所得病毒的特征码并保存在病毒库中。这些特征码通常是从一种病毒代码中提取的连续不含空格的字符串,并依次作为此类病毒的特征记录。

    2)校验和计算

    根据正常文件的信息(包括文件名称、大小、时间、日期及内容),计算其校验和,将校验和写入文件中或写入其他文件中保存。在文件使用过程中和定期地或每次使用文件前,检查文件现有信息算出的校验和与原来保存的文件校验和是否一致,可以发现文件是否已被感染。

    校验和法既能发现已知病毒又能发现未知病毒,但是它不能识别病毒种类、而且对隐蔽性的病毒无效。另外,病毒也并非是文件内容改变的唯一特征,所以校验和检测常常误报,而且此法会影响文件的运行速度。

    3)行为检测

    最近在国内外大量宣传的行为检测,其实并不是什么新的技术。这是一种利用病毒的特有行为特征检测病毒的方法,也称为人工智能陷阱。通过对病毒多年的观察、研究,研究者发现病毒的一些行为是病毒的共同行为,而且比较特殊。

    在正常程序中,这些行为比较罕见。当程序运行时,监视其行为;如果发现了特征行为,则立即报警或阻塞可疑程序。用于检测病毒的行为特征主要有以下几点:盗用截流系统中断、修改内存总量和内存控制块、对可执行文件做写入操作、引导扇区或执行格式化磁盘等可疑动作、病毒程序与宿主程序切换和搜索API函数地址。

    4)启发式扫描

    启发式扫描源于人工智能技术,是基于给定的判断规则和定义的扫描技术。若发现被扫描程序中存在可疑的程序功能指令,则做出存在病毒的预警或判断。启发式代码分析扫描技术是传统的特征码扫描技术的改进。在特征码扫描技术的基础上,利用对病毒代码的分析,获得一些统计的、静态的启发知识,形成一种静态的启发式扫描分析技术。

    在具体实现上,启发式扫描技术是相当复杂的。通常这类病毒检测软件要能够识别并探测许多可疑程序代码指令序列,并按照安全和可疑的等级进行排序,根据病毒可能使用和具备的特点而授以不同的加权值。如果一个程序的加权值的总和超过一个事先定义的阀值,那么病毒检测程序就可以称为发现病毒。为了避免“狼来了”的误报行为,病毒检测程序常把多种可疑操作同时并发的情况定为发现病毒的报警标准。因此启发式扫描技术是一种概率方法。

    5)虚拟机技术

    虚拟机技术是动态特征码扫描技术的关键,在与多态病毒进行对抗中发挥了巨大的作用。虚拟机(Virtual Machine)是一种软件仿真器或软件分析器,通过软件虚拟化、硬件虚拟化,让程序在一个虚拟/仿真环境中运行。

    实现虚拟技术的关键在于软件虚拟化和硬件虚拟化,其实不光是防病毒领域,经常遇到的虚拟机有很多,如GWBasic、Java虚拟机等。虚拟机的主要作用是能够运行一定规则的描述语言,它有两方面的含义,一个含义是运行一定规则的描述语言的机器并不一定是一台真实的以该语言为机器码的计算机(如Java虚拟机);另外一个含义是运行对应规则描述语言的机器并不是描述语言的原设计机器,称为仿真环境(如MS-DOS)。

    在防病毒行业中,虚拟机被称为通用解密器。虚拟机技术在实际设计中难度很大,其需要模拟的元素过多且行为分析需要人工智能理论。通常在杀毒软件中提到的虚拟机,严格地说,是不能称为虚拟机的,定义为虚拟CPU或者通用解密器更为合适。杀毒虚拟机是一个软件模拟的CPU,可以进行取指令、编译、执行,可以模拟一段代码在CPU上的运行结果。

    虚拟机首先从文件中确定并读取病毒入口代码,然后解释执行病毒头部的解密段,最后在执行完的机构中查找病毒的特征码。也可以这样认为,这里的虚拟,并非是创建了一个虚拟环境,而是指染毒文件并没有实际执行,只是虚拟机模拟了其真实执行时的效果,这就是虚拟机查毒的基本原理。

0
相关文章