论文部分内容阅读
恶意代码一直都是互联网面临的主要安全威胁之一。近年来,以APT为代表的高级网络渗透技术日益流行,使得恶意代码分析与行为挖掘方法成为网络安全领域的热点研究课题。随着恶意代码编写者与分析者之间对抗活动的持续演进,现代恶意代码在结构和属性上出现了新的特性,精巧的逃避分析策略、复杂的代码结构和多样的网络活动,使恶意代码行为挖掘方法面临新的挑战。本文围绕挖掘全视图恶意代码执行行为这一主题,从分析与逃避分析持续对抗的视角,对恶意代码的对抗型壳代码检测、抵抗恶意代码分析环境感知、恶意代码执行行为挖掘、恶意代码典型网络协议行为挖掘等关键技术问题进行了深入研究。主要研究成果如下:1.已有的基于机器学习的壳代码检测方法在目标样本的特征向量空间上作分类,没有考虑特征值会被恶意代码编写者故意篡改的问题。本文提出了基于缺失ELM的对抗型加壳恶意代码检测算法(Absent Extreme Learning Machine,A-ELM),将被篡改部分特征分量值的样本集合分类转化为缺失数据学习问题,在保证分类精度和检测效率的情况下,实现了对抗型加壳恶意代码的有效检测。实验结果表明,A-ELM算法优于其他缺失数据分类算法。目前尚未看到其他面向缺失特征的加壳恶意代码检测算法的相关文献。2.分析环境感知行为是恶意代码行为挖掘的主要障碍之一,本文提出了两种方法分别解决恶意代码抵抗模拟分析环境和调试执行环境的问题。执行背离检测是识别恶意代码模拟分析环境感知代码的主要方法,但该方法引入的参考执行平台存在难以精确构造的限制。本文提出了基于动态程序切片的环境感知行为对抗方法(Dynamic Program Slicing for Environment Sensitive Behavior Detection,DSlicing ESBD),用于检测基于操作系统指纹API的环境感知行为,能够避开基于参考执行平台的执行背离检测机制。针对调试执行环境感知行为,本文提出了基于代码模板的检测方法(Code Template based Environment SensitiveBehavior Detection,CT-ESBD)。通过指令执行迹与代码模板的匹配算法实现有效检测,为最终消除或绕过环境感知代码提供支持。实验结果表明,DSlicing ESBD方法能够有效检测基于指纹API的模拟分析环境感知代码,CT-ESBD方法能够有效检测调试分析环境感知代码。3.由于动态分析的单执行路径缺陷,导致经典的恶意代码执行行为挖掘结果不完全,片面的动态分析结果使得理解和刻画目标样本的恶意行为不精确。本文提出了代码结构与执行行为相结合的恶意代码执行行为挖掘方法。首先,将二进制指令的动态执行建模为标记迁移过程。然后,提出了一种代码结构相关的行为描述模型----行为流图(Behavior Flow Graph,BFG),该模型不仅能够刻画细粒度程序行为,还具有全视图的行为描述能力。最后,提出了基于执行路径覆盖的BFG挖掘方法(BFG Extraction,BFG-E),该方法使用简单强制执行策略覆盖执行路径,在代码控制流图和行为依赖图之上实现BFG构造,并给出了BFG压缩算法来简化模型。BFG-E具有构建目标代码执行行为的完全视图的能力。4.在恶意代码网络协议行为研究中,已有的网络流捕获方法主要基于被动监控方式,存在报文捕获时间长、捕获的报文类型不完全的缺陷。本文提出了一种基于二进制分析的特定C&C网络协议行为挖掘方法。首先,提出了一种辅助二进制分析的协议状态模型b PSM。然后,提出了BANTIon Bot SC方法,通过主动提供特殊类型网络报文来触发对应的程序分支路径,推动代码执行,加速网络活动。最后,实现了BANTIon Bot SC方法,并能够在报文-功能映射规则的配合下,标注部分报文的功能。BANTIon Bot SC方法能够提高典型网络协议行为挖掘效率,验证了基于二进制分析挖掘网络协议行为的方法具有较好的应用前景。5.针对现代恶意代码在结构和功能上出现的逃避分析的新特性,本文提出了现代恶意代码分析系统应具有的几点性质,设计并实现了一个支持相应对抗能力的恶意代码综合分析原型系统i Panda。通过典型恶意代码实例的分析,验证了该原型系统功能的正确性和有效性。