基于二进制程序的缓冲区漏洞静态检测技术研究
摘要 | 第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页 |