代码重用攻击构建与防御技术研究
摘要 | 第4-6页 |
ABSTRACT | 第6-7页 |
第1章 绪论 | 第11-15页 |
1.1 引言 | 第11-13页 |
1.2 论文主要工作 | 第13-14页 |
1.3 论文框架结构 | 第14-15页 |
第2章 相关研究工作 | 第15-29页 |
2.1 代码重用攻击 | 第15-20页 |
2.1.1 Return-to-libc | 第16-17页 |
2.1.2 ROP | 第17-18页 |
2.1.3 JOP | 第18-19页 |
2.1.4 CPROP | 第19-20页 |
2.1.5 BROP | 第20页 |
2.2 代码重用攻击的防御 | 第20-25页 |
2.2.1 控制流完整性 | 第20-23页 |
2.2.2 地址空间布局随机化 | 第23-24页 |
2.2.3 其它防御技术 | 第24-25页 |
2.3 JIT-ROP攻击及防御 | 第25-28页 |
2.3.1 JIT-ROP攻击 | 第25-26页 |
2.3.2 JIT-ROP防御 | 第26-28页 |
2.4 本章小结 | 第28-29页 |
第3章 绕过实际CFI保护的代码重用攻击方法 | 第29-46页 |
3.1 构建动机 | 第29-36页 |
3.1.1 代码重用攻击的基本模块 | 第29-30页 |
3.1.2 CFI保护的防御策略 | 第30-34页 |
3.1.3 现有攻击能力分析 | 第34-35页 |
3.1.4 基本思路 | 第35-36页 |
3.2 攻击模型和假设 | 第36-37页 |
3.3 系统架构 | 第37-38页 |
3.4 LOOP GADGET | 第38-42页 |
3.4.1 关键要素 | 第38-39页 |
3.4.2 Call-ret-pairing | 第39-41页 |
3.4.3 查找规则 | 第41-42页 |
3.4.4 LOP vs JOP | 第42页 |
3.5 FUNCTIONAL GADGET | 第42-45页 |
3.5.1 图灵完备性 | 第42-43页 |
3.5.2 挑战与应对 | 第43-45页 |
3.6 本章小结 | 第45-46页 |
第4章 LOP的实验与评估 | 第46-51页 |
4.1 自证明攻击 | 第46-48页 |
4.2 LOOP GADGET统计 | 第48-49页 |
4.3 安全性分析 | 第49-50页 |
4.4 本章小结 | 第50-51页 |
第5章 抵御JIT-ROP的分支指令隐藏技术 | 第51-64页 |
5.1 设计动机 | 第51-56页 |
5.1.1 JIT-ROP攻击的威胁 | 第51-52页 |
5.1.2 现有防御方法及缺陷 | 第52-53页 |
5.1.3 二进制改写 | 第53-54页 |
5.1.4 基本思路 | 第54-56页 |
5.2 攻击模型和假设 | 第56-57页 |
5.3 BIHIDE设计 | 第57-63页 |
5.3.1 系统架构 | 第57-58页 |
5.3.2 分支指令收集 | 第58-59页 |
5.3.3 细粒度随机化 | 第59-60页 |
5.3.4 分支指令隐藏 | 第60-61页 |
5.3.5 重定位 | 第61-63页 |
5.4 本章小结 | 第63-64页 |
第6章 BIHIDE的实现与评估 | 第64-73页 |
6.1 实现细节 | 第64-69页 |
6.1.1 IDA反汇编 | 第64-66页 |
6.1.2 二进制文件格式 | 第66-67页 |
6.1.3 分支指令改写 | 第67-69页 |
6.2 实验统计 | 第69-71页 |
6.3 安全性分析 | 第71-72页 |
6.4 本章小结 | 第72-73页 |
第7章 总结展望 | 第73-75页 |
7.1 论文总结 | 第73-74页 |
7.2 未来工作 | 第74-75页 |
参考文献 | 第75-79页 |
攻读硕士学位期间的研究成果 | 第79页 |
攻读硕士学位期间参加的项目 | 第79-80页 |
致谢 | 第80-81页 |