论文摘要
随着计算机技术的成熟和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 Lex3.5.2 Yacc3.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 本章小结结论参考文献攻读硕士学位期间发表的论文和取得的科研成果致谢个人简历
相关论文文献
标签:数据驱动型漏洞论文; 静态检测论文; 语义分析论文;