第1章 绪论 1
1.1 引言 1
1.2 虚拟化技术背景 2
1.2.1 硬件层虚拟机技术 3
1.2.2 虚拟化技术的安全特性 6
1.3 软件安全的重要性 6
1.3.1 应用程序安全的重要性 6
1.3.2 操作系统内核安全的重要性 7
1.4 相关研究 8
1.4.1 应用软件安全研究 8
1.4.2 操作系统内核模块安全研究 10
1.4.3 操作系统内核安全加固研究 12
1.5 现有研究工作的不足 13
1.6 本书的主要内容 15
第2章 缓冲区溢出在线防护技术 18
2.1 引言 18
2.2 方法的概述 20
2.3 系统的设计与实现 22
2.3.1 离线分析机制 24
2.3.2 在线保护机制 26
2.4 系统评测 31
2.4.1 有效性评测 31
2.4.2 性能评测 32
2.5 讨论 35
2.6 小结 36
第3章 基于虚拟化技术的内核数据保护技术 37
3.1 引言 37
3.2 方法的概述 38
3.3 针对内核数据的访问控制模型 39
3.4 系统的设计 40
3.4.1 实施器 40
3.4.2 内存监控器 41
3.4.3 安全策略 42
3.4.4 控制器 42
3.5 系统的实现 43
3.5.1 内存监控的实现 43
3.5.2 指令模拟的实现 46
3.5.3 安全策略的实现 47
3.5.4 控制器的实现 48
3.6 系统的评测 48
3.6.1 有效性评测 48
3.6.2 性能评测 50
3.7 讨论 52
3.8 小结 52
第4章 以策略为中心的内核模块加固技术 54
4.1 引言 54
4.2 安全假设和威胁模型 57
4.3 方法的概述 57
4.4 系统的设计与实现 60
4.4.1 策略产生机制 62
4.4.2 策略实施机制 64
4.5 系统的评测 72
4.5.1 有效性评测 72
4.5.2 性能评测 74
4.6 讨论 76
4.7 小结 77
第5章 基于半同步非阻塞的内核堆区并行监控技术 78
5.1 引言 78
5.2 技术挑战 81
5.2.1 同步机制的挑战 81
5.2.2 自我保护机制的挑战 82
5.2.3 兼容性的挑战 82
5.3 方法的概述 83
5.3.1 同步的方法 83
5.3.2 自我保护的方法 84
5.3.3 兼容性的方法 85
5.4 内核巡航 85
5.4.1 页身份数组 85
5.4.2 竞争条件 86
5.4.3 半同步非阻塞算法 88
5.5 系统的设计与实现 92
5.5.1 背景介绍 92
5.5.2 系统架构 92
5.5.3 直接内存映射机制 93
5.5.4 虚拟机内部保护机制 96
5.5.5 守卫值的设置 99
5.5.6 守卫值的定位 101
5.6 系统的评测 103
5.6.1 有效性评测 103
5.6.2 性能评测 104
5.6.3 延时性评测 105
5.7 讨论 107
5.7.1 系统的部署 107
5.7.2 64位操作系统的监控 107
5.8 小结 108
第6章 基于虚拟化技术的内核模块安全测试 110
6.1 引言 110
6.2 技术挑战和解决方案 111
6.2.1 测试二进制程序的挑战 111
6.2.2 测试内核模块漏洞的挑战 112
6.2.3 解决方案 112
6.3 系统概述 112
6.4 系统的设计与实现 113
6.4.1 技术背景介绍 113
6.4.2 系统架构 114
6.4.3 系统流程设计 116
6.4.4 系统实现 118
6.5 系统的评测 124
6.5.1 性能评测 124
6.5.2 有效性评测 127
6.6 讨论 129
6.7 小结 129
参考文献 131