缓冲区溢出攻击代码检测与防御技术研究
表目录 | 第7-8页 |
图目录 | 第8-10页 |
摘要 | 第10-11页 |
ABSTRACT | 第11页 |
第一章 绪论 | 第12-19页 |
1.1 课题背景 | 第12-13页 |
1.2 国内外研究现状 | 第13-17页 |
1.2.1 缓冲区溢出漏洞检测 | 第13-15页 |
1.2.2 多样化防御 | 第15-17页 |
1.3 研究目的与内容 | 第17-18页 |
1.3.1 研究目的 | 第17页 |
1.3.2 研究内容 | 第17-18页 |
1.4 论文组织结构 | 第18-19页 |
第二章 缓冲区溢出漏洞攻击原理及防御系统设计 | 第19-34页 |
2.1 缓冲区溢出原理 | 第19-23页 |
2.1.1 缓冲区相关概念 | 第19页 |
2.1.2 缓冲区溢出分类 | 第19-20页 |
2.1.3 栈溢出利用原理 | 第20-22页 |
2.1.4 堆溢出利用原理 | 第22-23页 |
2.2 缓冲区溢出攻击过程分析 | 第23-27页 |
2.2.1 获取漏洞信息 | 第23-24页 |
2.2.2 定位漏洞位置 | 第24-25页 |
2.2.3 更改控制流程 | 第25-26页 |
2.2.4 运行 SHELLCODE | 第26-27页 |
2.3 缓冲区溢出攻击的关键技术 | 第27-29页 |
2.3.1 定位 SHELLCODE 位置 | 第27页 |
2.3.2 定位 API 函数地址 | 第27-28页 |
2.3.3 代码重定位 | 第28-29页 |
2.4 缓冲区溢出漏洞防御模型设计 | 第29-33页 |
2.4.1 防御时机分析 | 第29-30页 |
2.4.2 攻击代码检测分析 | 第30-31页 |
2.4.3 多样化防御分析 | 第31-32页 |
2.4.4 缓冲区溢出漏洞防御模型设计 | 第32-33页 |
2.5 本章小节 | 第33-34页 |
第三章 缓冲区溢出攻击代码检测技术研究 | 第34-45页 |
3.1 缓冲区溢出漏洞检测方法 | 第34-35页 |
3.1.1 函数返回地址检测算法 | 第34-35页 |
3.1.2 基于特征的检测方法 | 第35页 |
3.2 检测数据获取技术 | 第35-37页 |
3.2.1 截取待检测数据 | 第35-36页 |
3.2.2 典型 SHELLCODE 特征归纳 | 第36-37页 |
3.3 特征数据分片技术 | 第37-40页 |
3.3.1 特征子序列定义 | 第37页 |
3.3.2 固定长度数据分片法 | 第37-38页 |
3.3.3 不定长度分片方法 | 第38-39页 |
3.3.4 基于终止符的不定长度分片方法 | 第39-40页 |
3.4 特征提取技术 | 第40-44页 |
3.4.1 Bloom Filter 算法 | 第40-42页 |
3.4.2 BloomFilter 算法改进 | 第42-43页 |
3.4.3 BloomFilter 算法测试 | 第43-44页 |
3.5 本章小节 | 第44-45页 |
第四章 缓冲区溢出攻击多样化防御技术研究 | 第45-57页 |
4.1 多样化防御原理分析 | 第45-48页 |
4.1.1 基于指令集随机的多样性 | 第45-46页 |
4.1.2 基于代码混淆的多样化 | 第46-47页 |
4.1.3 基于地址随机的多样化 | 第47-48页 |
4.2 基于地址随机的多样化实现关键技术 | 第48-54页 |
4.2.1 调用机制分析 | 第48-49页 |
4.2.2 进程虚拟地址管理 | 第49-51页 |
4.2.3 进程创建过程逆向分析 | 第51-53页 |
4.2.4 HOOK 技术 | 第53-54页 |
4.3 地址随机化有效性分析 | 第54-56页 |
4.4 本章小节 | 第56-57页 |
第五章 缓冲区溢出漏洞防御系统研究与实现 | 第57-71页 |
5.1 HBVDS 系统概述 | 第57-59页 |
5.1.1 HBVDS 系统实现技术路线 | 第57页 |
5.1.2 HBVDS 系统组成 | 第57-58页 |
5.1.3 HBVDS 系统工作流程 | 第58-59页 |
5.2 预处理模块实现 | 第59-60页 |
5.2.1 驱动模块 | 第59-60页 |
5.2.2 HBVDS 挂钩模块 | 第60页 |
5.3 攻击代码检测模块实现 | 第60-61页 |
5.3.1 攻击代码库生成算法 | 第60-61页 |
5.3.2 攻击代码检测算法 | 第61页 |
5.4 多样化模块实现 | 第61-70页 |
5.4.1 PE 装载基地址随机化实现 | 第61-66页 |
5.4.2 堆基地址随机化 | 第66-69页 |
5.4.3 栈基地址随机化 | 第69页 |
5.4.4 PEB/TEB 基地址随机化 | 第69-70页 |
5.5 本章小结 | 第70-71页 |
第六章 系统测试与评估 | 第71-77页 |
6.1 测试环境 | 第71页 |
6.2 性能测试 | 第71-72页 |
6.3 功能测试 | 第72-74页 |
6.3.1 随机化粒度分析 | 第72-73页 |
6.3.2 测试代码 | 第73页 |
6.3.3 测试结果 | 第73页 |
6.3.4 漏洞防御验证 | 第73-74页 |
6.4 对比测试 | 第74-76页 |
6.4.1 测试用例 | 第74-75页 |
6.4.2 测试步骤 | 第75页 |
6.4.3 测试结果 | 第75-76页 |
6.4.4 结果分析 | 第76页 |
6.5 本章小结 | 第76-77页 |
结束语 | 第77-79页 |
参考文献 | 第79-83页 |
作者简历 攻读硕士学位期间完成的主要工作 | 第83-84页 |
一、个人简历 | 第83页 |
二、攻读硕士学位期间发表的学术论文 | 第83页 |
三、攻读硕士学位期间的科研情况 | 第83-84页 |
致谢 | 第84页 |