基于漏洞模式的软件漏洞挖掘技术研究
摘要 | 第4-5页 |
ABSTRACT | 第5-6页 |
第一章 绪论 | 第10-15页 |
1.1 研究背景及意义 | 第10-11页 |
1.2 研究现状 | 第11-13页 |
1.3 本文工作及论文结构 | 第13-15页 |
第二章 二进制软件静态分析技术 | 第15-23页 |
2.1 PE文件结构 | 第15-16页 |
2.2 反汇编代码分析 | 第16-19页 |
2.2.1 反汇编 | 第16页 |
2.2.2 基本代码块 | 第16-17页 |
2.2.3 控制流图 | 第17页 |
2.2.4 函数 | 第17-18页 |
2.2.5 函数参数 | 第18-19页 |
2.2.6 函数局部变量 | 第19页 |
2.3 静态分析算法简述 | 第19-22页 |
2.3.1 单元内分析 | 第20-22页 |
2.3.2 单元间分析 | 第22页 |
2.4 本章小节 | 第22-23页 |
第三章 常见漏洞类型及漏洞模式描述 | 第23-32页 |
3.1 常见漏洞类型及利用方法研究 | 第23-27页 |
3.1.1 栈缓冲区溢出漏洞 | 第23-24页 |
3.1.2 堆缓冲区溢出漏洞 | 第24页 |
3.1.3 整数溢出漏洞 | 第24-25页 |
3.1.4 格式化字符串漏洞 | 第25页 |
3.1.5 释放后重用漏洞 | 第25-26页 |
3.1.6 双重释放漏洞 | 第26页 |
3.1.7 逻辑设计类漏洞 | 第26页 |
3.1.8 类型混淆漏洞 | 第26-27页 |
3.2 基于YAML的漏洞模式描述 | 第27-31页 |
3.2.1 YAML语言简介 | 第27-28页 |
3.2.2 基于YAML的形式化描述 | 第28-31页 |
3.3 本章小节 | 第31-32页 |
第四章 面向模式检测的二进制程序漏洞模式建模 | 第32-41页 |
4.1 漏洞建模指导原则 | 第32-33页 |
4.2 通用漏洞模型定义 | 第33页 |
4.3 缺陷函数调用类漏洞 | 第33-34页 |
4.3.1 不安全函数调用模型 | 第33-34页 |
4.3.2 危险函数调用模型 | 第34页 |
4.4 缓冲区溢出类漏洞 | 第34-38页 |
4.4.1 缓冲区溢出漏洞概念及分类 | 第35页 |
4.4.2 基于函数调用的缓冲区溢出模型 | 第35-37页 |
4.4.3 基于循环写内存的缓冲区溢出模型 | 第37-38页 |
4.5 整数溢出类漏洞模式 | 第38-40页 |
4.5.1 整数溢出漏洞概念及特点 | 第38-39页 |
4.5.2 整数溢出漏洞模式 | 第39页 |
4.5.3 整数溢出漏洞检测方法及模型 | 第39-40页 |
4.6 本章小结 | 第40-41页 |
第五章 基于缺陷函数的漏洞检测框架研究 | 第41-47页 |
5.1 检测框架设计 | 第41-42页 |
5.2 部分核心模块、算法设计 | 第42-45页 |
5.2.1 函数调用模式匹配过滤器 | 第42-43页 |
5.2.2 函数参数追踪过滤器 | 第43-45页 |
5.2.3 控制流和数据流传播路径遍历算法 | 第45页 |
5.3 检测框架运行实例 | 第45-46页 |
5.4 本章小结 | 第46-47页 |
第六章 Android内核驱动漏洞挖掘研究 | 第47-56页 |
6.1 Android内核漏洞挖掘研究现状 | 第47-48页 |
6.2 Android内核漏洞攻击界面 | 第48-51页 |
6.2.1 Linux设备驱动 | 第48-49页 |
6.2.2 Android设备驱动 | 第49-50页 |
6.2.3 设备驱动接口 | 第50-51页 |
6.3 Android内核漏洞挖掘核心模块及算法 | 第51-53页 |
6.3.1 Fuzzing框架简介 | 第51-52页 |
6.3.2 Fuzzing程序核心模块介绍 | 第52-53页 |
6.4 实验及测试结果 | 第53-54页 |
6.5 本章小结 | 第54-56页 |
第七章 浏览器漏洞挖掘研究 | 第56-61页 |
7.1 浏览器漏洞模式 | 第56-57页 |
7.2 浏览器漏洞挖掘方法 | 第57-58页 |
7.3 实验及测试结果 | 第58-60页 |
7.4 本章小节 | 第60-61页 |
参考文献 | 第61-63页 |
致谢 | 第63-64页 |
攻读学位期间发表的学术论文 | 第64页 |