程序缓冲区溢出漏洞检测方法的设计与验证
| 摘要 | 第1-5页 |
| ABSTRACT | 第5-9页 |
| 第一章 引言 | 第9-12页 |
| ·课题背景及意义 | 第9页 |
| ·课题现状 | 第9-10页 |
| ·课题的主要内容 | 第10页 |
| ·论文组织结构 | 第10-12页 |
| 第二章 程序溢出漏洞 | 第12-19页 |
| ·溢出漏洞的产生 | 第12-14页 |
| ·溢出漏洞的分类 | 第14-19页 |
| ·直接缓冲区溢出漏洞和间接缓冲区溢出漏洞 | 第14-16页 |
| ·按缓冲区所在的内存进行分类 | 第16-17页 |
| ·按导致溢出的操作进行分类 | 第17-18页 |
| ·按控制流转移的途径分 | 第18-19页 |
| 第三章 溢出漏洞的防护与检测 | 第19-28页 |
| ·防护机制 | 第19-22页 |
| ·编译保护技术 | 第19-20页 |
| ·库函数链接保护 | 第20页 |
| ·不可执行缓冲区 | 第20-21页 |
| ·内核的强制访问控制 | 第21页 |
| ·硬件级别的保护 | 第21-22页 |
| ·溢出侦测 | 第22-28页 |
| ·带规格说明的静态溢出检测 | 第22-25页 |
| ·动态溢出检测 | 第25-28页 |
| 第四章 基于路径松弛的缺陷侦测 | 第28-46页 |
| ·单一路径上的不确定性 | 第28-29页 |
| ·带约束信息的测试 | 第29-38页 |
| ·基于类型的约束系统 | 第30-33页 |
| ·基于边界的约束系统 | 第33-36页 |
| ·基于区间链的约束系统 | 第36页 |
| ·基于符号表达式的约束系统 | 第36-38页 |
| ·整数数组的分析 | 第38-40页 |
| ·纯动态数组元素约束分析 | 第38-39页 |
| ·静态数组元素约束分析 | 第39-40页 |
| ·指针与指针数组的分析 | 第40-43页 |
| ·约束的传播 | 第40-41页 |
| ·基于不变式的数组元素约束分析 | 第41-43页 |
| ·追踪变量的选择 | 第43-46页 |
| ·危险操作相关变量 | 第43页 |
| ·危险操作相关变量的静态识别 | 第43-44页 |
| ·运行时不确定性分析与依赖关系提取 | 第44-45页 |
| ·待插装变量与位置的识别 | 第45-46页 |
| 第五章 组合测试与报错 | 第46-53页 |
| ·常量化与组合测试 | 第46-47页 |
| ·常量化的组合 | 第47-48页 |
| ·组合生成与优化 | 第48-50页 |
| ·报错机制 | 第50-53页 |
| ·基于分析精度的报错 | 第50页 |
| ·基于组合测试的报错 | 第50-51页 |
| ·基于经验的排序 | 第51页 |
| ·基于约束的排序 | 第51页 |
| ·基于运行时取值的排序 | 第51-53页 |
| 第六章 设计与验证 | 第53-63页 |
| ·SUIF2平台的基本结构 | 第53-54页 |
| ·PIT的结构 | 第54页 |
| ·程序简化 | 第54-55页 |
| ·运行时依赖关系提取和不确定性分析 | 第55-57页 |
| ·追踪目标分析 | 第57-59页 |
| ·约束系统的实现 | 第59-62页 |
| ·错误的报告 | 第62-63页 |
| 第七章 结束语 | 第63-64页 |
| ·论文工作总结 | 第63页 |
| ·问题和展望 | 第63-64页 |
| 参考文献 | 第64-67页 |
| 致谢 | 第67页 |