基于GCC编译器插件的内核安全加固方法研究
致谢 | 第5-6页 |
摘要 | 第6-7页 |
ABSTRACT | 第7-8页 |
1 绪论 | 第12-18页 |
1.1 研究背景 | 第12-13页 |
1.2 国内外研究现状 | 第13-15页 |
1.3 研究内容与技术路线 | 第15-16页 |
1.4 论文组织结构 | 第16-18页 |
2 研究基础 | 第18-32页 |
2.1 内核安全加固 | 第18-19页 |
2.2 GCC编译器结构分析及优化 | 第19-24页 |
2.2.1 GCC编译器概述 | 第19-20页 |
2.2.2 整体结构分析 | 第20-23页 |
2.2.3 整体优化框架及策略 | 第23-24页 |
2.3 GCC寄存器转移语言 | 第24-30页 |
2.3.1 标准语句 | 第24-25页 |
2.3.2 基本元素 | 第25-27页 |
2.3.3 操作码 | 第27-29页 |
2.3.4 机器模式 | 第29-30页 |
2.3.5 操作数分析方法 | 第30页 |
2.4 本章小结 | 第30-32页 |
3 内核安全威胁分析及防护方法 | 第32-44页 |
3.1 缓冲区溢出漏洞 | 第32-35页 |
3.1.1 漏洞原理分析 | 第32-33页 |
3.1.2 攻击方法分析 | 第33-34页 |
3.1.3 防护方法设计 | 第34-35页 |
3.2 本地权限提升漏洞 | 第35-40页 |
3.2.1 漏洞原理分析 | 第36页 |
3.2.2 攻击方法分析 | 第36-39页 |
3.2.3 防护方法设计 | 第39-40页 |
3.3 空指针引用漏洞 | 第40-42页 |
3.3.1 漏洞原理分析 | 第40-41页 |
3.3.2 攻击方法分析 | 第41页 |
3.3.3 防护方法分析 | 第41-42页 |
3.4 本章小结 | 第42-44页 |
4 基于编译器插件的内核安全加固方法的设计与实现 | 第44-72页 |
4.1 总体设计 | 第44-47页 |
4.1.1 设计原理及要点 | 第45-46页 |
4.1.2 总体流程设计 | 第46-47页 |
4.2 控制流边界检查详细设计 | 第47-51页 |
4.2.1 控制流边界检查设计方法 | 第47-50页 |
4.2.2 控制流边界检查流程 | 第50-51页 |
4.3 栈完整性检查详细设计 | 第51-56页 |
4.3.1 栈完整性检查设计方法 | 第51-55页 |
4.3.2 完整性检查流程 | 第55-56页 |
4.4 其他关键模块详细分析 | 第56-66页 |
4.4.1 插件初始化模块 | 第56-60页 |
4.4.2 转移指令处理模块 | 第60-65页 |
4.4.3 指令生成模块 | 第65-66页 |
4.5 编译器插件实现及内核安全重构 | 第66-71页 |
4.5.1 开发及运行平台 | 第66-67页 |
4.5.2 内核安全重构基本流程 | 第67-68页 |
4.5.3 实验结果 | 第68-71页 |
4.6 本章小结 | 第71-72页 |
5 原型测试及结果分析 | 第72-84页 |
5.1 功能测试 | 第72-76页 |
5.2 性能测试 | 第76-82页 |
5.2.1 宏观性能测试 | 第76-78页 |
5.2.2 微观性能测试 | 第78-82页 |
5.3 本章小结 | 第82-84页 |
6 总结与展望 | 第84-86页 |
6.1 工作总结 | 第84-85页 |
6.2 研究展望 | 第85-86页 |
参考文献 | 第86-90页 |
作者简历及攻读硕士学位期间取得的研究成果 | 第90-94页 |
学位论文数据集 | 第94页 |