3.4 基于不同分析环境的恶意代码检测方法
按照恶意代码静态分析和动态分析方式的不同原理,静态分析方式通常就是在主机上对恶意代码本身或者其衍生品开展分析,而动态分析因为要实际运行恶意代码,就需要根据不同的应用需要选择不同的运行环境。为避免恶意代码对主机造成破坏,通常情况下会搭建虚拟执行环境运行代码。但是,一些恶意代码能够在运行之前首先探测运行环境是否为虚拟环境,所发现是虚拟环境则会不执行恶意操作。针对这种具备规避能力的恶意代码,一些研究人员又提出了搭建裸机环境激发恶意代码充分执行的策略,通过比较代码在裸机环境下的行为特征进行检测。
3.4.1 基于虚拟机的检测
在对恶意代码开展动态分析的过程中,往往是利用虚拟机搭建虚拟环境让恶意代码运行,捕获恶意代码运行踪迹,且避免恶意代码对主机系统造成破坏。所以,构建不同类型的虚拟机以获取不同粒度、不同类型的行为特征信息,也是研究人员分析恶意代码的一种常用方法。常见的基于虚拟机开展恶意代码检测的典型方法如表3-13所示。
表3-13 基于虚拟机的检测方法

3.4.2 基于裸机环境的检测
当前的动态分析方法普遍采用虚拟环境运行恶意代码,以避免恶意代码对运行平台的底层操作系统造成破坏。但是,一些恶意代码会在运行之前探测所处环境特点,如果发现是处于虚拟环境之中,则会停止运行,或者是不执行恶意行为,由此欺骗恶意代码检测。为确保恶意代码毫无保留地释放恶意操作行为,一些研究人员提出为恶意代码搭建真实的运行环境,以激活恶意代码充分运行表现其恶意行为。这种在真实硬件平台上搭建的真实执行环境通常被称为裸机环境(bare-metal)。当前,典型的基于裸机环境的检测方法如表3-14所示。
表3-14 基于裸机的检测方法

3.4.3 基于不同分析环境检测方法的比较
本节对基于不同分析环境的恶意代码检测方法进行比较,以方便研究者选择适合自己的研究方法。比较结果如表3-15所示。
表3-15 基于不同分析环境检测方法的比较
