论文部分内容阅读
随着信息化的发展,软件满足了人们各方面的需求。但是随着软件规模逐渐增大,也变得越来越脆弱,随时威胁着计算机的正常运行。这也让人们面临了更多软件安全方面的挑战。针对这一挑战,本文设计了基于行为模板的软件行为分析系统。本系统应用了静态、动态相结合的方法建立软件行为模板,并对软件异常行为进行检测。系统共包括三个模块,分别为预处理模块、建模模块和检测模块。首先,预处理模块应用基于软件中断的插桩方法对软件源代码进行预处理。通过调试器将软件中断插入到每个函数之间,便于在动态建模过程中,获取函数与系统调用序列的对应关系。其次,建模模块提出了基于行为模板的双层转移图,分别为函数转移图和最小功能块转移图,并根据最小功能块转移图建立基于行为模板的有限状态自动机。本文应用控制流分析建立函数转移图,并对已插桩的软件源代码进行分析,建立最小功能块转移图,根据最小功能转移图建立有限状态自动机,实现待测软件的自动化检测,该自动机可以对软件行为较为完整的描述。最后,检测模块应用建模模块中生成基于行为模板的有限状态自动机对待测软件行为进行检测,将待测软件运行过程中调用的系统调用序列与自动机中的每个状态逐一的进行匹配。本文介绍了两种检测方法,一种为模块覆盖率检测方法,另一种为本文提出的基于软件行为变长序列的检测比对方法。在对变长的软件行为序列比较时,将变长序列转化为定长序列,并计算序列间的距离,确定序列的相似性,这一方法突破了定长序列相似性检验在软件行为应用的局限性。此外在实验中,本文对该方法在Windows和Linux的平台性均进行验证。在Windows平台上,通过RSS阅读器作为实例,对建模、变长软件序列检测等方法进行实例展示。同时,在Linux平台上,将本文与N-gram、Var-gram、FSA模型进行对比实验,对Bash 4.3和Tcpdump中的漏洞进行检验。对比实验证明,本文方法可以对攻击行为有效检测。