论文部分内容阅读
Linux恶意代码检测是Linux安全框架的一个重要组成部分。大多数传统的依照特征进行检测的方法通常落后于恶意代码的发展,不能识别经过混淆技术处理过的恶意代码,已经不能满足日益迫切的安全需求。高级检测技术如语义敏感的恶意代码检测和恶意代码模型检查能应对攻击者所使用的混淆技术。然而目前高级检测技术所需要的高层恶意行为规范都是人工开发,减少了这些新技术的吸引力和引进。本文提出的Linux下基于多路径的恶意行为规范自动挖掘方法能有效的自动生成高层恶意行为规范,弥补了高级检测技术在恶意规范获取方面的不足。本文采用的恶意代码规范挖掘方法通过对比一个已知的恶意代码和一系列良好程序的执行路径,可以自动的得到恶意行为的高层规范。文中定义一种新的程序行为的图形化表示,因为系统调用是与操作系统交互的主要方式,这种图形化表示能够明确的捕获程序的系统调用和概述所有其他的程序代码。该方法首先从执行路径中构造系统调用图,然后在恶意的和良好的程序系统调用图之间计算最小差异来得到一个规范。由于收集系统调用的Strace工具只能追踪代码样本的单一执行路径,对于某些只在特定环境下触发的恶意程序来说,就有可能收集不到具有恶意性质的执行路径。针对这一问题,本文对Strace工具进行扩展,使Strace工具具有收集恶意程序多执行路径的功能。不同路径的开发是由监测代码是如何使用某个输入值来驱动的。具体的来说,就是动态追踪程序读入的某个输入值,并且在程序中识别出该输入值被当作控制流判断的点。在该点处首先创建当前程序执行状态的快照,然后依赖该输入值,程序被允许沿着一条分支语句向下执行,随后返回到快照并重写输入值,执行另一条分支语句。本文最后设计和实现了Linux下基于多路径的恶意行为规范自动挖掘原型系统,通过实验验证了该系统在给定条件下具有良好性能。