Linux环境下缓冲区溢出漏洞检测方法研究
摘要 | 第3-5页 |
ABSTRACT | 第5-6页 |
1 绪论 | 第10-20页 |
1.1 研究背景及意义 | 第10-13页 |
1.2 国内外研究现状 | 第13-18页 |
1.2.1 缓冲区溢出漏洞静态检测方法 | 第13-16页 |
1.2.2 缓冲区溢出漏洞动态检测方法 | 第16-17页 |
1.2.3 缓冲区溢出漏洞动静结合检测方法 | 第17-18页 |
1.3 论文研究的主要思路和内容框架 | 第18-20页 |
2 缓冲区溢出漏洞相关理论基础 | 第20-25页 |
2.1 进程的内存组织形式 | 第20页 |
2.2 缓冲区溢出原理 | 第20-21页 |
2.3 缓冲区溢出类别 | 第21-22页 |
2.3.1 栈溢出 | 第21页 |
2.3.2 堆溢出 | 第21-22页 |
2.3.3 格式化字符串溢出 | 第22页 |
2.4 缓冲区溢出漏洞形成原因 | 第22-23页 |
2.5 正报率、误报率和漏报率 | 第23页 |
2.6 缓冲区溢出漏洞的预防方法 | 第23-24页 |
2.7 小结 | 第24-25页 |
3 缓冲区溢出漏洞静态检测方法 | 第25-31页 |
3.1 基于源代码的静态检测方法 | 第25-28页 |
3.1.1 静态分析方法 | 第25-26页 |
3.1.2 程序验证方法 | 第26-28页 |
3.2 基于源代码的静态检测方法的工具 | 第28页 |
3.3 静态检测方法的整体流程及侧重点 | 第28-30页 |
3.3.1 静态检测方法的检测流程 | 第28-29页 |
3.3.2 静态检测方法的侧重点 | 第29-30页 |
3.4 小结 | 第30-31页 |
4 缓冲区溢出漏洞综合检测系统设计 | 第31-44页 |
4.1 综合检测方法的整体流程 | 第31-33页 |
4.2 预处理模块设计 | 第33-34页 |
4.2.1 检测工具的选取 | 第33-34页 |
4.2.2 检测报告格式的统一化 | 第34页 |
4.3 综合检测数据模块设计 | 第34-37页 |
4.3.1 漏洞危险等级的统一量化 | 第35页 |
4.3.2 工具可信度权值的计算 | 第35-37页 |
4.3.3 漏洞综合估分的计算 | 第37页 |
4.4 工具可信度权值训练模块设计 | 第37-38页 |
4.5 检测结果优化模块设计 | 第38-43页 |
4.5.1 危险函数及其分类 | 第38-41页 |
4.5.2 检测工具误报原因分析 | 第41-42页 |
4.5.3 函数安全规范 | 第42-43页 |
4.6 小结 | 第43-44页 |
5 缓冲区溢出漏洞综合检测系统实现与测试分析 | 第44-57页 |
5.1 预处理模块实现 | 第44-48页 |
5.1.1 模块说明 | 第44页 |
5.1.2 模块实现 | 第44-47页 |
5.1.3 数据库实现 | 第47-48页 |
5.2 综合检测数据模块实现 | 第48-51页 |
5.2.1 模块说明 | 第48页 |
5.2.2 模块实现 | 第48-50页 |
5.2.3 数据库实现 | 第50-51页 |
5.3 工具可信度权值训练模块实现 | 第51-52页 |
5.3.1 模块说明 | 第51页 |
5.3.2 模块实现 | 第51-52页 |
5.3.3 数据库实现 | 第52页 |
5.4 检测结果优化模块实现 | 第52-54页 |
5.4.1 模块说明 | 第52页 |
5.4.2 模块实现 | 第52-53页 |
5.4.3 数据库实现 | 第53-54页 |
5.5 系统测试与分析 | 第54-56页 |
5.5.1 测试方案及环境 | 第54页 |
5.5.2 测试结果分析 | 第54-56页 |
5.6 小结 | 第56-57页 |
6 结论与展望 | 第57-59页 |
致谢 | 第59-60页 |
参考文献 | 第60-64页 |
附录 | 第64页 |