论文部分内容阅读
随着社会的进步与时代的发展,计算机与社会中的各行各业结合的愈加紧密,对于存在于网络流量中能对计算机产生危害的漏洞利用程序已经成为当前不可忽视的威胁,如何对存在于网络流量中的漏洞利用程序进行检测已经成为国内外研究人员的一个研究热点。在近些年对于漏洞利用程序的研究过程中,国内外研究人员提出了许多种关于如何防护和检测漏洞利用程序的方法,并在实际应用中取得了一定的成效。尽管当前针对网络流量中的漏洞利用程序的检测和防护已经取得了一定程序的成效,但是针对异常跳转的漏洞利用程序方面,目前在漏洞利用程序特征分析及漏洞利用程序检测框架方面的研究还不够充分,主要体现在以下两个方面:一是目前对于漏洞利用程序的特征描述还停留在比较原始的层次,不能体现漏洞利用程序特征的本质,对于漏洞利用程序的特征化描述缺乏比较成熟的成果。二是缺乏通过模型的角度来对漏洞利用程序进行检测的方法,现有的检测方法主要是通过在代码中加入标识ID,在动态执行前通过对标识ID的检测来判断控制流的合法性,缺乏一种能够通过对漏洞利用程序特征进行描述的漏洞利用程序检测模型。针对以上问题,本文开展了针对网络流量中漏洞利用程序检测的研究,主要工作如下所示:1.对漏洞利用程序的特征进行分析,实现了基于漏洞利用程序特征的漏洞利用程序检测方法。在阅读大量针对漏洞利用程序研究的现有的研究文献基础上,通过结合程序的控制流图(Control Flow Graph,记为CFG),并在其中加入漏洞利用程序的程序特征,跳转指令特征等特点,提出了基于跳转的控制流图(Control Flow Graph based Jump,记为JCFG)。并对漏洞利用程序中会导致出现异常跳转的指令节点进行形式化描述,介绍了形成JCFG图的各个模块架构,并对其进行详细阐述,其中主要对IDA控制流图的生成方法和JCFG生成方法进行了重点介绍。2.构建了漏洞利用检测框架,并实现了基于JCFG的漏洞利用程序检测方法。首先论文提出了根据前面的JCFG图,针对异常跳转的漏洞利用程序的漏洞利用程序特征,提出了相关定义,并给出了异常跳转的相关约束。收集漏洞利用程序动静态检测信息,结合已有的漏洞利用程序检测方法,控制流完整性检测方法(Control-Flow-Integrity,记做CFI),提出了基于JCFG的漏洞利用程序检测方法(Vulnerability Exploit Detection Method based on JCFG,记作JCFG-VEDM)。本文主要对漏洞利用程序动态执行时的漏洞利用程序特征进行了形式化描述,并通过对执行的关键指令进行信息提取得到对应的执行节点,结合漏洞利用程序特征,给出了漏洞利用程序检测函数的相关定义和约束。主要研究了基于JCFG的漏洞利用程序检测算法(JCFG-VEDM算法)。3.根据基于漏洞利用程序特征的网络流量中漏洞利用程序检测方法设计了一个原型系统,并将其实现。系统主要包括三个模块:流量监控模块、JCFG生成模块和漏洞利用程序判定模块。通过系统的这三个模块,来对网络流量中的漏洞利用程序进行检测,能够对本文提出的基于控制流图的网络流量中漏洞利用程序检测方法进行验证,得知其是否有效。