摘要 | 第4-5页 |
Abstract | 第5-6页 |
第一章 绪论 | 第11-15页 |
1.1 引言 | 第11-13页 |
1.2 论文主要工作 | 第13-14页 |
1.3 论文框架结构 | 第14-15页 |
第二章 代码复用攻击的原理和防御方法 | 第15-29页 |
2.1 内存破坏漏洞及利用 | 第15-17页 |
2.2 代码复用攻击的发展路线 | 第17-20页 |
2.2.1 return-to-libc攻击 | 第17-18页 |
2.2.2 ROP攻击 | 第18-20页 |
2.2.3 JOP攻击 | 第20页 |
2.3 代码复用攻击的防御方法 | 第20-27页 |
2.3.1 代码指针完整性 | 第21-22页 |
2.3.2 基于随机化的方案 | 第22-24页 |
2.3.3 基于控制流完整性的方案 | 第24-27页 |
2.4 针对栈的攻击和防御 | 第27-28页 |
2.5 本章小结 | 第28-29页 |
第三章 后向控制流完整性 | 第29-48页 |
3.1 影子调用栈 | 第29-35页 |
3.1.1 RAD | 第29-32页 |
3.1.2 基于硬件分段机制的影子调用栈 | 第32-35页 |
3.1.3 平行影子栈 | 第35页 |
3.2 现有影子栈方案的不足 | 第35-36页 |
3.3 改进措施 | 第36-41页 |
3.3.1 从单线程到多线程 | 第36-38页 |
3.3.2 影子栈的隐藏 | 第38-41页 |
3.4 实验设计与评估 | 第41-47页 |
3.4.1 HSS架构 | 第41-44页 |
3.4.2 实验结果 | 第44-46页 |
3.4.3 潜在风险与规避 | 第46-47页 |
3.5 本章小结 | 第47-48页 |
第四章 栈切换的检测 | 第48-57页 |
4.1 栈切换 | 第48-49页 |
4.2 现有防御方法与不足 | 第49页 |
4.3 改进措施 | 第49-51页 |
4.3.1 stack pivot gadget分类 | 第49-50页 |
4.3.2 explicit SP-Update指令的合法使用 | 第50-51页 |
4.3.3 栈指针局部性 | 第51页 |
4.4 实验设计与评估 | 第51-55页 |
4.4.1 SPI架构 | 第51-53页 |
4.4.2 实验结果 | 第53-55页 |
4.4.3 潜在风险 | 第55页 |
4.5 本章小结 | 第55-57页 |
第五章 结束语 | 第57-58页 |
5.1 论文总结 | 第57页 |
5.2 工作展望 | 第57-58页 |
参考文献 | 第58-61页 |
致谢 | 第61-62页 |
附录 | 第62-63页 |