2)动态分析
动态分析是指在虚拟运行环境中,使用测试及监控软件,.检测恶意代码行为,分析其执行流程及处理数据的状态,从而判断恶意代码的性质,并掌握其行为特点。动态分析针对性强,并且具有较高的准确性,但由于其分析过程中覆盖的执行路径有限,分析的完整性难以保证。恶意代码一般会对运行环境中的系统文件、注册表、系统服务以及网络访问等造成不同程度的影响,因此动态分析通过监控系统进程、文件和注册表等方面出现的非正常操作和变化,可以对其非法行为进行分析。另一方面,恶意代码为了进入并实现对系统的攻击,会修改操作系统的函数接口,改变函数的执行流程、输入/输出参数等,因此动态地分析检测系统函数的运行状态,数据流转换过程,能判别出恶意代码行为和正常软件操作。
虚拟化技术是动态分析中广泛采用的一种技术,将恶意代码放置在虚拟的计算环境中运行,不仅可以很好的保护真正的分析系统,还能较好的解决变形恶意代码的检测问题。经过加密、混淆或多态变形的恶意代码放人虚拟机后,将自动解码并开始执行恶意操作,由于运行在可控的环境中,通过特征码扫描等方法,可以检测出恶意代码的存在。