摘要 | 第5-6页 |
Abstract | 第6页 |
第一章 引言 | 第11-16页 |
1.1 研究背景 | 第11-14页 |
1.1.1 缓冲区溢出漏洞 | 第11页 |
1.1.2 代码复用攻击 | 第11-12页 |
1.1.3 地址空间随机化技术 | 第12-13页 |
1.1.4 实时代码复用攻击 | 第13页 |
1.1.5 Use-After-Free攻击 | 第13-14页 |
1.2 研究现状及本文动因 | 第14页 |
1.3 本文的主要工作和贡献 | 第14-15页 |
1.4 本文的组织结构 | 第15-16页 |
第二章 堆空间漏洞模型 | 第16-19页 |
2.1 堆缓冲区溢出漏洞模型 | 第16-18页 |
2.1.1 内存数据泄露 | 第16-17页 |
2.1.2 控制流劫持 | 第17页 |
2.1.3 漏洞利用分析 | 第17-18页 |
2.2 Use-After-Free漏洞模型 | 第18-19页 |
第三章 ptmalloc2算法及其安全性分析 | 第19-27页 |
3.1 ptmalloc2算法 | 第19-24页 |
3.1.1 malloc和free函数原型 | 第19-20页 |
3.1.2 重要概念及数据结构 | 第20-23页 |
3.1.3 malloc算法流程 | 第23-24页 |
3.1.4 free算法流程 | 第24页 |
3.1.5 细节说明 | 第24页 |
3.2 安全漏洞分析 | 第24-27页 |
第四章 堆随机化算法设计与实现 | 第27-35页 |
4.1 随机化目标 | 第27页 |
4.1.1 有效性目标 | 第27页 |
4.1.2 性能目标 | 第27页 |
4.2 设计思路 | 第27-30页 |
4.2.1 核心思路 | 第27-28页 |
4.2.2 小区块随机化处理 | 第28-29页 |
4.2.3 大区块随机化处理 | 第29页 |
4.2.4 性能-安全性平衡参数 | 第29-30页 |
4.3 算法实现 | 第30-35页 |
4.3.1 随机化切割 | 第31-32页 |
4.3.2 缓存维护 | 第32页 |
4.3.3 新的合并逻辑 | 第32-34页 |
4.3.4 其它改变 | 第34页 |
4.3.5 glibc版本选取 | 第34-35页 |
第五章 防御效果与性能评测 | 第35-39页 |
5.1 防御效果 | 第35-37页 |
5.1.1 缓冲区溢出攻击防御效果测试 | 第35-36页 |
5.1.2 Use-After-Free攻击防御效果测试 | 第36-37页 |
5.2 性能评测 | 第37-39页 |
第六章 总结和展望 | 第39-40页 |
6.1 总结 | 第39页 |
6.2 展望 | 第39-40页 |
参考文献 | 第40-43页 |
致谢 | 第43-44页 |
参与项目 | 第44-46页 |