二进制代码级的漏洞攻击检测研究
摘要 | 第5-7页 |
ABSTRACT | 第7-9页 |
缩略词 | 第17-18页 |
第一章 绪论 | 第18-28页 |
1.1 研究背景 | 第18-20页 |
1.2 国内外研究现状 | 第20-24页 |
1.3 论文的研究内容 | 第24-26页 |
1.4 论文组织结构 | 第26-28页 |
第二章 漏洞攻击基础知识 | 第28-39页 |
2.1 漏洞概述 | 第28-29页 |
2.2 常见漏洞攻击原理 | 第29-33页 |
2.3 二进制代码分析 | 第33-37页 |
2.3.1 二进制代码翻译 | 第33-34页 |
2.3.2 动态代码插桩 | 第34-37页 |
2.4 分析方法比较 | 第37-38页 |
2.5 小结 | 第38-39页 |
第三章 动态污点分析研究 | 第39-75页 |
3.1 研究背景 | 第39-41页 |
3.1.1 内存溢出攻击 | 第39-40页 |
3.1.2 攻击检测方法 | 第40-41页 |
3.2 动态污点分析概述 | 第41-43页 |
3.2.1 工作原理 | 第41-42页 |
3.2.2 相关工作 | 第42-43页 |
3.3 系统设计概述 | 第43-45页 |
3.3.1 形式化描述 | 第43-44页 |
3.3.2 设计目标与挑战 | 第44-45页 |
3.3.3 系统设计 | 第45页 |
3.4 核心组件设计 | 第45-61页 |
3.4.1 Shadow memory | 第46-53页 |
3.4.2 指令级污点传播 | 第53-58页 |
3.4.3 过程级污点传播 | 第58-61页 |
3.5 系统实现 | 第61-66页 |
3.5.1 概述 | 第61页 |
3.5.2 识别污点源 | 第61-63页 |
3.5.3 指令插桩分析 | 第63-66页 |
3.5.4 过程插桩分析 | 第66页 |
3.6 实验与评估 | 第66-72页 |
3.6.1 内存溢出攻击检测 | 第66-69页 |
3.6.2 性能测试 | 第69-72页 |
3.7 深入讨论 | 第72-74页 |
3.7.1 单一路径执行 | 第72页 |
3.7.2 移植性 | 第72-73页 |
3.7.3 检测策略与整数溢出攻击 | 第73-74页 |
3.7.4 应用于真实环境检测攻击 | 第74页 |
3.8 小结 | 第74-75页 |
第四章 ROP 攻击研究 | 第75-99页 |
4.1 研究动机 | 第75-76页 |
4.2 相关工作 | 第76-78页 |
4.3 ROP 概述 | 第78-84页 |
4.3.1 ROP 原理剖析 | 第78-82页 |
4.3.2 检测现状 | 第82-83页 |
4.3.3 当前检测的不足 | 第83-84页 |
4.4 一种新的检测方法 | 第84-87页 |
4.5 结合静态分析的高效检测 | 第87-91页 |
4.5.1 黑盒模拟 gadget 检测思想 | 第87-88页 |
4.5.2 保存 gadget 信息与检测算法 | 第88-91页 |
4.6 实验与分析 | 第91-98页 |
4.6.1 寻找 gadget 信息 | 第91-93页 |
4.6.2 攻击检测结果分析 | 第93-96页 |
4.6.3 性能测试 | 第96-97页 |
4.6.4 检测方法的局限性 | 第97-98页 |
4.7 其它讨论 | 第98页 |
4.7.1 可移植性 | 第98页 |
4.7.2 检测方法应用于真实环境 | 第98页 |
4.8 小结 | 第98-99页 |
第五章 函数指针攻击检测研究 | 第99-122页 |
5.1 研究动机 | 第99-101页 |
5.2 相关工作 | 第101-102页 |
5.3 函数指针攻击检测的挑战 | 第102-106页 |
5.3.1 攻击检测要求 | 第102-104页 |
5.3.2 二进制代码分析的挑战 | 第104页 |
5.3.3 多入口点跳转与 ROP | 第104-106页 |
5.3.4 威胁模型 | 第106页 |
5.4 检测思想 | 第106-110页 |
5.4.1 概述 | 第106-107页 |
5.4.2 检测方法 | 第107-110页 |
5.4.3 区分非入口点跳转与 ROP 攻击 | 第110页 |
5.5 系统设计与实现 | 第110-114页 |
5.5.1 系统架构 | 第110-111页 |
5.5.2 函数信息提取 | 第111-112页 |
5.5.3 检测策略 | 第112页 |
5.5.4 存储函数信息 | 第112-114页 |
5.6 实验结果与分析 | 第114-121页 |
5.6.1 注入代码攻击检测 | 第114-116页 |
5.6.2 非数据段攻击检测 | 第116-117页 |
5.6.3 性能分析 | 第117-119页 |
5.6.4 与其它检测方法的比较 | 第119-121页 |
5.6.5 FPGuard 的不足 | 第121页 |
5.7 小结 | 第121-122页 |
第六章 自修改多态 SHELLCODE检测 | 第122-136页 |
6.1 背景知识 | 第122-124页 |
6.2 相关研究介绍 | 第124-125页 |
6.3 自修改代码特征分析 | 第125-128页 |
6.3.1 GetPC code | 第126-127页 |
6.3.2 自修改多态 | 第127-128页 |
6.3.3 威胁模型 | 第128页 |
6.4 SMPS 检测算法与系统实现 | 第128-132页 |
6.4.1 检测概述 | 第128-129页 |
6.4.2 检测算法 | 第129-131页 |
6.4.3 系统实现 | 第131-132页 |
6.5 实验结果与分析 | 第132-135页 |
6.5.1 检测有效性 | 第132-133页 |
6.5.2 误报分析 | 第133-134页 |
6.5.3 横向实验对比 | 第134页 |
6.5.4 可移植性 | 第134页 |
6.5.5 应用于真实环境的攻击检测 | 第134-135页 |
6.6 小结 | 第135-136页 |
第七章 结束语 | 第136-138页 |
7.1 本文总结 | 第136-137页 |
7.2 进一步工作 | 第137-138页 |
致谢 | 第138-139页 |
参考文献 | 第139-153页 |
攻博期间取得的研究成果 | 第153-154页 |