数据驱动型漏洞检测技术研究

数据驱动型漏洞检测技术研究

论文摘要

随着计算机技术的成熟和Internet技术在各行各业的应用,信息安全问题变得越来越重要。各种各样的软件漏洞可能会被病毒、木马利用而产生各种各样的信息安全问题。在所有的软件漏洞中,数据驱动型漏洞是最常见的也是最容易被利用的漏洞之一。近几年CERT发布的公告中,数据驱动型漏洞几乎占了50%以上。数据驱动型漏洞通常在C/C++等传统高级语言编写的软件中被发现。对C/C++语言来说,产生数据驱动型漏洞的根本原因是C/C++语言具有安全缺陷。例如,C/C++语言本身并不对数组边界进行检查等。另外,使用这些高级语言的程序员也经常疏忽可能由此漏洞引起的安全问题。现阶段对数据驱动型漏洞的静态检测技术主要是基于编译原理思想来实现的,通常是对源代码文件进行词法分析和语法分析,根据分析结果给出漏洞报告。但现阶段的检测工具往往不够深入,仍然存在许多的不足,总体来说主要有:检测结果会存在大量误报、漏报,检测结果准确率较低;会消耗很多系统资源,检测效率比较低。针对这一状况本文提出了可实现语义分析的数据驱动型漏洞的静态检测算法。该算法定义了漏洞的词法成分和语法成分,在词法分析和语法分析的基础上,通过缓冲区预先搜索,区间运算和改进的Wagner算法等方法,实现了对漏洞的语义层次检测。与传统的采用编译原理方法实现的静态检测工具相比,实现了对数据驱动型漏洞更准确的检测。最后,设计并实现了一个静态检测原型系统,并通过实验证明了系统的有效性。实验结果显示检测准确率有了提高,并且检测效率也保持在比较稳定的水准。

论文目录

  • 摘要
  • Abstract
  • 第1章 绪论
  • 1.1 研究背景
  • 1.2 国内外研究现状
  • 1.2.1 漏洞报告的现状
  • 1.2.2 数据驱动型漏洞的攻击现状
  • 1.2.3 数据驱动型漏洞的检测现状
  • 1.3 研究的内容与结构
  • 第2章 漏洞的攻击原理及当前静态检测技术
  • 2.1 数据驱动型漏洞的形成原理
  • 2.1.1 缓冲区溢出漏洞的形成原理及攻击手段
  • 2.1.2 格式化字符串漏洞的形成原理及攻击手段
  • 2.2 现阶段的检测技术及工具简介
  • 2.2.1 静态检测技术
  • 2.2.2 动态检测技术
  • 2.3 本章小结
  • 第3章 数据驱动型漏洞的检测技术
  • 3.1 词法、语法分析简介
  • 3.2 相关概念和定义
  • 3.3 自底向上语法分析方法
  • 3.4 语义分析方法
  • 3.4.1 语法制导翻译
  • 3.4.2 缓冲区的数学描述
  • 3.5 LEX和YACC简介
  • 3.5.1 Lex
  • 3.5.2 Yacc
  • 3.6 静态检测算法
  • 3.7 现有研究的分析
  • 3.8 本章小结
  • 第4章 面向语义分析的静态检测方法
  • 4.1 漏洞文法的描述
  • 4.1.1 构成漏洞的词法成分
  • 4.1.2 构成漏洞的语法成分
  • 4.1.3 构成漏洞的语义成分
  • 4.2 划分漏洞的特征文法
  • 4.3 漏洞文法划分的规则及可行性证明
  • 4.3.1 产生式的集合描述
  • 4.3.2 文法划分的前后等价性
  • 4.4 漏洞语义分析
  • 4.4.1 缓冲区的区间运算
  • 4.5 检测系统的总体设计与实现
  • 4.5.1 词法分析模块
  • 4.5.2 缓冲区搜索模块
  • 4.5.3 创建程序执行流程模块
  • 4.5.4 综合分析模块
  • 4.6 本章小结
  • 第5章 实验结果及分析
  • 5.1 实验环境
  • 5.2 实验过程及结果
  • 5.2.1 检测自定义的源代码
  • 5.2.2 检测开源的工程项目
  • 5.3 实验结果分析
  • 5.4 本章小结
  • 结论
  • 参考文献
  • 攻读硕士学位期间发表的论文和取得的科研成果
  • 致谢
  • 个人简历
  • 相关论文文献

    标签:;  ;  ;  

    数据驱动型漏洞检测技术研究
    下载Doc文档

    猜你喜欢