摘要

传统的恶意代码动态分析方法大多基于序列挖掘和图匹配来进行恶意代码检测,序列挖掘易受系统调用注入的影响,图匹配受限于子图匹配的复杂性问题,并且此类方法并未考虑到样本的反检测行为,如反虚拟机.因此检测效果越来越差.本文设计并提出一种基于程序语义API依赖图的真机动态分析方法,在基于真机的沙箱中来提取恶意代码的API调用序列,从而不受反虚拟机检测的影响.本文的特征构建方法是基于广泛应用于信息理论领域的渐近均分性(AEP)概念,基于AEP可以提取出语义信息丰富的API序列,然后以关键API序列依赖图的典型路径来定义程序行为,以典型路径的平均对数分支因子来定义路径的相关性,利用平均对数分支因子和直方图bin方法来构建特征空间.最后采用集成学习算法-随机森林进行恶意代码分类.实验结果表明,本文所提出的方法可以有效分类恶意代码,精确度达到97.1%.