软件脆弱性模型检查与测试技术研究
| 摘要 | 第1-5页 |
| Abstract | 第5-9页 |
| 第1章 绪论 | 第9-14页 |
| ·研究背景 | 第9-10页 |
| ·研究现状 | 第10-12页 |
| ·研究意义 | 第12页 |
| ·本文内容 | 第12-14页 |
| 第2章 软件脆弱性及其分析技术概述 | 第14-29页 |
| ·概念和定义 | 第14-15页 |
| ·软件脆弱性的分类 | 第15-16页 |
| ·常见软件脆弱性类型 | 第16-19页 |
| ·缓冲区溢出脆弱性 | 第16-17页 |
| ·整数溢出脆弱性 | 第17页 |
| ·随机数 | 第17-18页 |
| ·竞争条件 | 第18-19页 |
| ·软件脆弱性分析方法 | 第19-29页 |
| ·手工分析 | 第19-20页 |
| ·软件脆弱性静态分析技术 | 第20-25页 |
| ·软件脆弱性动态分析技术 | 第25-29页 |
| 第3章 基于模型检查的二进制文件脆弱性分析 | 第29-46页 |
| ·逆向工程简介 | 第29-33页 |
| ·逆向工程作用 | 第30-31页 |
| ·反汇编工具IDAPro | 第31-33页 |
| ·自动机模型 | 第33-36页 |
| ·语言及文法 | 第33-34页 |
| ·有限状态自动机 | 第34-36页 |
| ·模型检查X86 可执行文件的原理 | 第36-40页 |
| ·汇编指令处理 | 第36-37页 |
| ·可执行文件的有限状态机模型 | 第37-38页 |
| ·安全属性的形式化定义 | 第38-39页 |
| ·模型检查器 | 第39-40页 |
| ·X86EBMC设计与实现 | 第40-43页 |
| ·文件抽象模块 | 第40-43页 |
| ·其它模块 | 第43页 |
| ·实验过程与结果分析 | 第43-45页 |
| ·实验过程 | 第43-44页 |
| ·结果分析 | 第44-45页 |
| ·本章小结 | 第45-46页 |
| 第4章 基于遗传算法的 Fuzzing测试方法 | 第46-64页 |
| ·Fuzzing方法与遗传算法简介 | 第46-57页 |
| ·Fuzzing方法 | 第46-49页 |
| ·遗传算法 | 第49-54页 |
| ·控制依赖树 | 第54-57页 |
| ·系统框架 | 第57-59页 |
| ·对二进制文件的静态分析 | 第57-58页 |
| ·动态测试数据的产生 | 第58-59页 |
| ·GA-Fuzzer系统设计与实现 | 第59-60页 |
| ·静态分析器 | 第60页 |
| ·动态测试 | 第60页 |
| ·实验结果 | 第60-62页 |
| ·脆弱性分析性能 | 第61页 |
| ·渗透速度评估 | 第61-62页 |
| ·本章小结 | 第62-64页 |
| 第5章 软件脆弱性的利用与防范方法研究 | 第64-72页 |
| ·基于缓冲区溢出攻击 | 第64-68页 |
| ·缓冲区溢出攻击原理 | 第64-66页 |
| ·缓冲区溢出攻击方法分类 | 第66-68页 |
| ·漏洞修补方案 | 第68-69页 |
| ·软件脆弱性防范技术 | 第69-72页 |
| ·软件开发阶段 | 第69-70页 |
| ·编译检查阶段 | 第70页 |
| ·安全配置使用阶段 | 第70-72页 |
| 第6章 总结与展望 | 第72-74页 |
| 参考文献 | 第74-78页 |
| 致谢 | 第78-79页 |
| 攻读硕士学位期间发表的论文 | 第79页 |