基于模型检测的漏洞挖掘方法研究
| 摘要 | 第5-6页 |
| ABSTRACT | 第6-7页 |
| 符号对照表 | 第11-12页 |
| 缩略语对照表 | 第12-16页 |
| 第一章 绪论 | 第16-22页 |
| 1.1 研究背景 | 第16-17页 |
| 1.2 研究现状 | 第17-20页 |
| 1.2.1 静态分析技术 | 第17-19页 |
| 1.2.2 动态执行技术 | 第19页 |
| 1.2.3 动静结合进行漏洞挖掘 | 第19-20页 |
| 1.3 研究内容与贡献 | 第20页 |
| 1.4 论文结构 | 第20-22页 |
| 第二章 面向二进制的漏洞挖掘技术 | 第22-36页 |
| 2.1 基于模糊测试的漏洞挖掘技术 | 第22-27页 |
| 2.1.1 模糊测试基本过程 | 第22-24页 |
| 2.1.2 模糊测试类型 | 第24-25页 |
| 2.1.3 模糊测试数据生成方法 | 第25-26页 |
| 2.1.4 模糊测试小结 | 第26-27页 |
| 2.2 基于污点分析的漏洞挖掘技术 | 第27-30页 |
| 2.2.1 污点分析基本原理 | 第27-28页 |
| 2.2.2 污点分析实例 | 第28-29页 |
| 2.2.3 污点分析小结 | 第29-30页 |
| 2.3 基于符号执行的漏洞挖掘技术 | 第30-32页 |
| 2.3.1 符号执行基本原理 | 第30-31页 |
| 2.3.2 符号执行检测漏洞实例 | 第31-32页 |
| 2.3.3 符号执行小结 | 第32页 |
| 2.4 基于模型检测的漏洞挖掘技术 | 第32-35页 |
| 2.4.1 模型检测的基本原理 | 第32-33页 |
| 2.4.2 模型检测实例分析 | 第33-34页 |
| 2.4.3 模型检测小结 | 第34-35页 |
| 2.5 本章小结 | 第35-36页 |
| 第三章 基于模型检测的漏洞挖掘系统设计 | 第36-54页 |
| 3.1 基于SPIN的模型检测技术 | 第38-44页 |
| 3.1.1 模型检测平台SPIN | 第38-39页 |
| 3.1.2 Promela语言 | 第39-43页 |
| 3.1.3 可行性分析 | 第43-44页 |
| 3.2 基于程序切片的代码转化技术 | 第44-51页 |
| 3.2.1 中间语言BIL | 第44-49页 |
| 3.2.2 漏洞模型建立与插入 | 第49页 |
| 3.2.3 可行性分析 | 第49-51页 |
| 3.3 基于IDA的静态分析技术 | 第51-53页 |
| 3.3.1 反编译器IDA | 第51-52页 |
| 3.3.2 IDApython | 第52-53页 |
| 3.3.3 可行性分析 | 第53页 |
| 3.4 本章小结 | 第53-54页 |
| 第四章 基于模型检测的漏洞挖掘系统实现 | 第54-74页 |
| 4.1 预处理 | 第55-59页 |
| 4.1.1 IDApython实现静态分析 | 第55-58页 |
| 4.1.2 自动化信息提取 | 第58-59页 |
| 4.2 代码转化 | 第59-66页 |
| 4.2.1 二进制代码到中间语言的转化 | 第59页 |
| 4.2.2 中间语言到Promela模型 | 第59-64页 |
| 4.2.3 实现漏洞模型的建立与插入 | 第64-66页 |
| 4.3 模型检测 | 第66-73页 |
| 4.3.1 外部C代码引入 | 第67-71页 |
| 4.3.2 漏洞信息的输出 | 第71页 |
| 4.3.3 自动化检测 | 第71-73页 |
| 4.4 本章小结 | 第73-74页 |
| 第五章 实例测试与结果分析 | 第74-82页 |
| 5.1 漏洞挖掘样例 1-FTP程序 | 第74-79页 |
| 5.1.1 程序简介 | 第74-75页 |
| 5.1.2 漏洞挖掘流程 | 第75-77页 |
| 5.1.3 结果分析 | 第77-79页 |
| 5.2 漏洞挖掘样例 2-libzip程序 | 第79-81页 |
| 5.2.1 程序简介 | 第79页 |
| 5.2.2 漏洞挖掘流程 | 第79-80页 |
| 5.2.3 结果分析 | 第80-81页 |
| 5.3 本章小结 | 第81-82页 |
| 第六章 总结与展望 | 第82-84页 |
| 6.1 本文总结 | 第82-83页 |
| 6.2 未来工作展望 | 第83-84页 |
| 参考文献 | 第84-88页 |
| 致谢 | 第88-90页 |
| 作者简介 | 第90-91页 |