摘要 | 第5-6页 |
Abstract | 第6页 |
第1章 绪论 | 第12-18页 |
1.1 研究背景和意义 | 第12-13页 |
1.2 国内外研究现状 | 第13-15页 |
1.2.1 静态防御技术 | 第13-14页 |
1.2.2 动态防御技术 | 第14-15页 |
1.3 目前问题 | 第15页 |
1.4 本文贡献 | 第15页 |
1.5 本文结构 | 第15-18页 |
第2章 软件漏洞利用相关技术 | 第18-30页 |
2.1 缓冲区溢出原理简介 | 第18-19页 |
2.2 溢出漏洞分类 | 第19-28页 |
2.2.1 栈溢出原理 | 第19-20页 |
2.2.2 堆溢出 | 第20-23页 |
2.2.3 格式化字符串漏洞 | 第23-25页 |
2.2.4 利用GOT表攻击 | 第25页 |
2.2.5 使用ROP进行攻击 | 第25页 |
2.2.6 整数溢出 | 第25-27页 |
2.2.7 Use-after-free攻击 | 第27页 |
2.2.8 利用atexit攻击 | 第27-28页 |
2.3 本章小结 | 第28-30页 |
第3章 恶意代码防御技术研究 | 第30-38页 |
3.1 Pin动态插桩平台介绍 | 第30-31页 |
3.2 研究动机 | 第31页 |
3.3 基于指令白名单的检测方法 | 第31-32页 |
3.4 指令白名单的确定 | 第32-34页 |
3.5 流程监控方法 | 第34页 |
3.6 插桩功能实现 | 第34-35页 |
3.7 其他可信代码段 | 第35-37页 |
3.8 本章小结 | 第37-38页 |
第4章 ROP攻击防御技术研究 | 第38-46页 |
4.1 ROP攻击原理 | 第38-39页 |
4.2 基于返回地址特征的ROP攻击检测方法ROPDetector | 第39-40页 |
4.3 CALL指令匹配方法 | 第40-41页 |
4.4 ROP攻击检测流程 | 第41-42页 |
4.5 其他ROP攻击动态检测方法 | 第42-43页 |
4.5.1 利用影子栈进行检测 | 第42-43页 |
4.5.2 通过检测连续ret数目 | 第43页 |
4.6 与其他ROP检测方法比较 | 第43-45页 |
4.6.1 与影子栈方法的比较 | 第43-44页 |
4.6.2 与检测连续ret数目方法的比较 | 第44-45页 |
4.7 本章小结 | 第45-46页 |
第5章 全局偏移表监控方法研究 | 第46-58页 |
5.1 全局偏移表概述 | 第46-47页 |
5.2 全局偏移表防御方法 | 第47页 |
5.3 全局偏移表的更新 | 第47页 |
5.4 全局偏移表的工作原理 | 第47-50页 |
5.4.1 外部函数首次调用 | 第48-50页 |
5.4.2 外部函数再次调用 | 第50页 |
5.5 全局偏移表监控的思路 | 第50-52页 |
5.5.1. got.plt表的初始化 | 第51页 |
5.5.2. got.plt表的更新 | 第51-52页 |
5.5.3. got.plt表的比较 | 第52页 |
5.6 全局偏移表监控的实现 | 第52-56页 |
5.6.1. got.plt表的初始化 | 第52-53页 |
5.6.2. got.plt表的更新 | 第53-56页 |
5.7 全局偏移表的检测 | 第56-57页 |
5.8 本章小结 | 第57-58页 |
第6章 基于动态插桩技术的攻击阻断工具设计 | 第58-64页 |
6.1 设计目的 | 第58页 |
6.2 总体结构 | 第58-59页 |
6.3 运行前分析阶段 | 第59-60页 |
6.3.1 对关键指令及过程进行插桩 | 第59-60页 |
6.3.2 收集模块工作必需的信息 | 第60页 |
6.4 运行检测阶段 | 第60-61页 |
6.4.1 白名单检测流程 | 第60页 |
6.4.2 ROP攻击检测流程 | 第60-61页 |
6.4.3 GOT表检测流程 | 第61页 |
6.4.4 子程序检测流程 | 第61页 |
6.5 子程序监控模块 | 第61-63页 |
6.5.1 子程序监控原理 | 第61-62页 |
6.5.2 子程序监控的实现 | 第62-63页 |
6.6 本章小结 | 第63-64页 |
第7章 系统测试与评估 | 第64-72页 |
7.1 测试环境 | 第64页 |
7.2 功能测试用例 | 第64-68页 |
7.2.1 改写函数指针测试程序 | 第64-66页 |
7.2.2 利用GOT表攻击的测试程序 | 第66-67页 |
7.2.3 ROP攻击的测试程序 | 第67-68页 |
7.2.4 子程序运行监控测试 | 第68页 |
7.3 ROP攻击代码测试 | 第68-69页 |
7.4 ExploitDefender性能评估 | 第69-70页 |
7.5 测试结论 | 第70页 |
7.6 本章小结 | 第70-72页 |
第8章 总结与展望 | 第72-74页 |
8.1 本文工作总结 | 第72页 |
8.2 技术存在的局限性 | 第72-73页 |
8.3 后续展望 | 第73-74页 |
参考文献 | 第74-78页 |
致谢 | 第78-80页 |
攻读硕士学位期间参加的项目及获得的奖励 | 第80页 |