第一个书签之前
摘要
ABSTRACT
插图索引
表格索引
缩略语对照表
第一章 绪论
1.1 研究背景
1.2 研究现状
1.2.1 用户级控制流完整性
1.2.2 内核级控制流完整性
1.2.3 数据流完整性
1.3 论文主要工作
1.4 论文组织结构
第二章 内核保护的相关技术
2.1 相关研究工作
2.1.1 内核完整性
2.1.2 控制流完整性
2.1.3 数据流完整性
2.1.5 内存安全
2.2 相关背景知识
2.2.1 Linux
2.2.2 编译器
2.2.3 虚拟机
2.2.4 中断
2.2.5 索引钩子
2.3 本章小结
第三章 内核保护的方案设计
3.1 概述
3.1.1 威胁模型及假设
3.1.2 实现目标
3.1.3 系统架构
3.2 针对一般控制数据的保护设计
3.2.1 构建细粒度CFG
3.2.2 函数指针保存子过程
3.2.3 函数指针消费子过程
3.2.4 标记函数中的间接call指令
3.2.5 细粒度CFI的保护方案
3.3 针对中断控制数据的保护设计
3.3.1 中断的虚拟化
3.3.2 中断的保护方案
3.4 针对非控制数据的保护设计
3.4.1 整体思路
3.4.2 静态分析
3.4.3 颜色表
3.5 本章小结
第四章 内核保护的方案实现
4.1 针对一般控制数据的保护实现
4.1.1 构造细粒度的控制流图
4.1.2 细粒度的CFI实现
4.2 针对中断控制数据的保护实现
4.2.1 针对hypervisor的修改
4.2.2 针对虚拟机内核的修改
4.3 针对非控制数据的保护实现
4.3.1 维护颜色表
4.3.2 插桩写指令
4.4 其它的原型注意事项
4.4.1 对可加载内核模块的支持
4.4.2 对汇编代码的指向分析和插桩
4.4.3 上下文切换
4.4.4 对信号处理的分发
4.4.5 被打破的函数调用规约
4.5 本章小结
第五章 内核保护的系统测试
5.1 安全评估
5.1.1 AIR
5.1.2 ROP Gadgets
5.1.3 针对一般控制数据的攻击
5.1.4 针对中断控制数据的攻击
5.1.5 针对非控制数据的攻击
5.2 性能测试
5.2.1 Phoronix
5.2.2 UnixBench
5.2.3 LMbench
5.2.4 SPEC CPU2006
5.2.5 针对SPEC的插桩
5.2.6 针对SPEC的插桩分解
5.2.7 针对非控制数据的插桩
5.3 本章小结
第六章 总结与展望
6.1 工作总结
6.2 工作展望
参考文献
致谢
作者简介
1. 基本情况
2. 教育背景
3. 攻读硕士学位期间的研究成果
3.1 发表学术论文