基于二进制程序的缓冲区漏洞静态检测技术研究
| 摘要 | 第5-6页 |
| ABSTRACT | 第6-7页 |
| 第一章 绪论 | 第10-17页 |
| 1.1 课题背景及意义 | 第10-11页 |
| 1.1.1 研究背景 | 第10-11页 |
| 1.1.2 研究意义 | 第11页 |
| 1.2 国内外的研究现状 | 第11-16页 |
| 1.2.1 手工测试技术 | 第11-12页 |
| 1.2.2 Fuzzing 测试技术 | 第12-13页 |
| 1.2.3 二进制比对技术 | 第13-14页 |
| 1.2.4 静态分析技术 | 第14-15页 |
| 1.2.5 动态分析技术 | 第15-16页 |
| 1.3 论文结构安排 | 第16-17页 |
| 第二章 缓冲区溢出漏洞易发点检测模型 | 第17-23页 |
| 2.1 相关平台 | 第17-18页 |
| 2.1.1 反汇编工具 | 第17页 |
| 2.1.2 逆向分析平台 | 第17-18页 |
| 2.2 检测模型 | 第18-19页 |
| 2.3 中间表示语言 | 第19-22页 |
| 2.3.1 REIL 介绍 | 第19-20页 |
| 2.3.2 eREIL 设计考虑 | 第20-21页 |
| 2.3.3 eREIL 扩展方法 | 第21-22页 |
| 2.4 小结 | 第22-23页 |
| 第三章 基于漏洞模式的缓冲区溢出易发点定位 | 第23-35页 |
| 3.1 缓冲区漏洞概述 | 第23-24页 |
| 3.2 缓冲区溢出模式分类 | 第24-27页 |
| 3.2.1 不安全函数调用出错模式 | 第25-26页 |
| 3.2.2 循环拷贝出错模式 | 第26-27页 |
| 3.3 检测不安全函数调用引发的漏洞 | 第27页 |
| 3.4 检测循环拷贝出错引发的漏洞 | 第27-34页 |
| 3.4.1 检测难点 | 第28-30页 |
| 3.4.2 模式的标准定义 | 第30-33页 |
| 3.4.3 检测循环拷贝操作 | 第33-34页 |
| 3.5 小结 | 第34-35页 |
| 第四章 基于数据依赖分析的漏洞筛选 | 第35-45页 |
| 4.1 基于数据依赖分析的漏洞检测原理 | 第35-36页 |
| 4.2 数据依赖分析 | 第36-38页 |
| 4.2.1 数据依赖定义 | 第36页 |
| 4.2.2 数据依赖信息的提取 | 第36-38页 |
| 4.3 过程内的漏洞筛选 | 第38-40页 |
| 4.3.1 选择关键变量 | 第39页 |
| 4.3.2 过程内数据依赖信息辅助筛选漏洞 | 第39-40页 |
| 4.4 过程间的漏洞筛选 | 第40-44页 |
| 4.4.1 基于函数摘要的过程间分析 | 第40-43页 |
| 4.4.2 选择关键变量 | 第43页 |
| 4.4.3 过程间数据依赖信息辅助筛选漏洞 | 第43-44页 |
| 4.5 小结 | 第44-45页 |
| 第五章 检测设计与实现 | 第45-52页 |
| 5.1 检测框架 | 第45-46页 |
| 5.2 建立漏洞模式库 | 第46页 |
| 5.3 建立关键变量库 | 第46-47页 |
| 5.4 设计数据依赖分析模块 | 第47-49页 |
| 5.4.1 提取关键变量 | 第47-48页 |
| 5.4.2 提取数据依赖信息 | 第48-49页 |
| 5.5 设计漏洞检测模块 | 第49-51页 |
| 5.5.1 基于漏洞模式的漏洞易发点的定位 | 第49-50页 |
| 5.5.2 漏洞易发点的筛选 | 第50-51页 |
| 5.5.2.1 过程内漏洞筛选 | 第50-51页 |
| 5.5.2.2 基于过程间分析的漏洞筛选 | 第51页 |
| 5.6 小结 | 第51-52页 |
| 第六章 实验及结果分析 | 第52-55页 |
| 6.1 搭建实验环境 | 第52页 |
| 6.2 实验数据 | 第52-55页 |
| 6.2.1 选择待测软件 | 第52-53页 |
| 6.2.2 实验数据及分析 | 第53-54页 |
| 6.2.3 系统性能测试 | 第54-55页 |
| 结束语 | 第55-57页 |
| 一、工作总结 | 第55-56页 |
| 二、课题展望 | 第56-57页 |
| 致谢 | 第57-58页 |
| 参考文献 | 第58-62页 |
| 附录 | 第62-63页 |
| 详细摘要 | 第63-64页 |