第一部分 恶意软件 5
第1章 恶意软件传播 5
1.1 恶意软件仍是王者 5
1.2 恶意软件的传播现状 5
1.3 为什么他们想要你的工作站 6
1.4 难以发现的意图 6
1.5 这是桩生意 7
1.6 恶意软件传播的主要技术 7
1.6.1 社会工程 8
1.6.2 文件执行 9
1.7 现代恶意软件的传播技术 12
1.7.1 StormWorm 13
1.7.2 变形 14
1.7.3 混淆 16
1.7.4 动态域名服务 18
1.7.5 Fast Flux 19
1.8 恶意软件传播注入方向 20
1.8.1 电子邮件 20
1.8.2 恶意网站 23
1.8.3 网络仿冒 25
1.8.4 对等网络(P2P) 28
1.8.5 蠕虫 31
1.9 小结 32
第2章 恶意软件功能 33
2.1 恶意软件安装后会做什么 33
2.1.1 弹出窗口 33
2.1.2 搜索引擎重定向 36
2.1.3 数据盗窃 43
2.1.4 点击欺诈 45
2.1.5 身份盗窃 46
2.1.6 击键记录 49
2.1.7 恶意软件的表现 53
2.2 识别安装的恶意软件 55
2.2.1 典型安装位置 55
2.2.2 在本地磁盘上安装 56
2.2.3 修改时间戳 56
2.2.4 感染进程 57
2.2.5 禁用服务 57
2.2.6 修改Windows注册表 58
2.3 小结 58
第二部分 Rootkit 62
第3章 用户模式Rootkit 62
3.1 Rootkit 63
3.1.1 时间轴 64
3.1.2 Rootkit的主要特征 64
3.1.3 Rootkit的类型 66
3.2 用户模式Rootkit 67
3.2.1 什么是用户模式Rootkit 67
3.2.2 后台技术 68
3.2.3 注入技术 71
3.2.4 钩子技术 79
3.3 用户模式Rootkit实例 81
3.4 小结 87
第4章 内核模式Rootkit 88
4.1 底层:x86体系结构基础 89
4.1.1 指令集体系结构和操作系统 89
4.1.2 保护层次 89
4.1.3 跨越层次 90
4.1.4 内核模式:数字化的西部蛮荒 91
4.2 目标:Windows内核组件 92
4.2.1 Win32子系统 92
4.2.2 这些API究竟是什么 93
4.2.3 守门人:NTDLL.DLL 93
4.2.4 委员会功能:Windows Executive(NTOSKRNL.EXE) 94
4.2.5 Windows内核(NTOSKRNL.EXE) 94
4.2.6 设备驱动程序 94
4.2.7 Windows硬件抽象层(HAL) 95
4.3 内核驱动程序概念 95
4.3.1 内核模式驱动程序体系结构 96
4.3.2 整体解剖:框架驱动程序 97
4.3.3 WDF、KMDF和UMDF 98
4.4 内核模式Rootkit 99
4.4.1 内核模式Rootkit简介 99
4.4.2 内核模式Rootkit所面对的挑战 99
4.4.3 方法和技术 101
4.5 内核模式Rootkit实例 119
4.5.1 Clandestiny创建的Klog 119
4.5.2 Aphex创建的AFX 122
4.5.3 Jamie Butler、Peter Silberman和C.H.A.O.S创建的FU和FUTo 124
4.5.4 Sherri Sparks和Jamie Butler创建的Shadow Walker 125
4.5.5 He4 Team创建的He4Hook 127
4.5.6 Honeynet项目创建的Sebek 130
4.6 小结 131
第5章 虚拟Rootkit 133
5.1 虚拟机技术概述 133
5.1.1 虚拟机类型 134
5.1.2 系统管理程序 135
5.1.3 虚拟化策略 136
5.1.4 虚拟内存管理 137
5.1.5 虚拟机隔离 137
5.2 虚拟机Rootkit技术 137
5.2.1 矩阵里的Rootkit:我们是怎么到这里的 138
5.2.2 什么是虚拟Rootkit 138
5.2.3 虚拟Rootkit的类型 139
5.2.4 检测虚拟环境 140
5.2.5 脱离虚拟环境 146
5.2.6 劫持系统管理程序 147
5.3 虚拟Rootkit实例 148
5.4 小结 153
第6章 Rootkit的未来 155
6.1 复杂性和隐蔽性的改进 156
6.2 定制的Rootkit 161
6.3 数字签名的Rootkit 162
6.4 小结 162
第三部分 预防技术 167
第7章 防病毒 167
7.1 现在和以后:防病毒技术的革新 167
7.2 病毒全景 168
7.2.1 病毒的定义 168
7.2.2 分类 169
7.2.3 简单病毒 170
7.2.4 复杂病毒 172
7.3 防病毒——核心特性和技术 173
7.3.1 手工或者“按需”扫描 174
7.3.2 实时或者“访问时”扫描 174
7.3.3 基于特征码的检测 175
7.3.4 基于异常/启发式检测 176
7.4 对防病毒技术的作用的评论 177
7.4.1 防病毒技术擅长的方面 177
7.4.2 防病毒业界的领先者 177
7.4.3 防病毒的难题 177
7.5 防病毒业界的未来 179
7.6 小结和对策 180
第8章 主机保护系统 182
8.1 个人防火墙功能 182
8.2 弹出窗口拦截程序 184
8.2.1 Chrome 185
8.2.2 Firefox 186
8.2.3 Microsoft Edge 187
8.2.4 Safari 187
8.2.5 一般的弹出式窗口拦截程序代码实例 187
8.3 小结 190
第9章 基于主机的入侵预防 191
9.1 HIPS体系结构 191
9.2 超过入侵检测的增长 193
9.3 行为与特征码 194
9.3.1 基于行为的系统 195
9.3.2 基于特征码的系统 196
9.4 反检测躲避技术 196
9.5 如何检测意图 200
9.6 HIPS和安全的未来 201
9.7 小结 202
第10章 Rootkit检测 203
10.1 Rootkit作者的悖论 203
10.2 Rootkit检测简史 204
10.3 检测方法详解 207
10.3.1 系统服务描述符表钩子 207
10.3.2 IRP钩子 208
10.3.3 嵌入钩子 208
10.3.4 中断描述符表钩子 208
10.3.5 直接内核对象操纵 208
10.3.6 IAT钩子 209
10.3.7 传统DOS或者直接磁盘访问钩子 209
10.4 Windows防Rootkit特性 209
10.5 基于软件的Rootkit检测 210
10.5.1 实时检测与脱机检测 211
10.5.2 System Virginity Verifier 212
10.5.3 IceSword和DarkSpy 213
10.5.4 RootkitRevealer 215
10.5.5 F-Secure的Blacklight 215
10.5.6 Rootkit Unhooker 216
10.5.7 GMER 218
10.5.8 Helios和Helios Lite 219
10.5.9 McAfee Rootkit Detective 221
10.5.10 TDSSKiller 223
10.5.11 Bitdefender Rootkit Remover 224
10.5.12 Trend Micro Rootkit Buster 225
10.5.13 Malwarebytes Anti-Rootkit 225
10.5.14 Avast aswMBR 225
10.5.15 商业Rootkit检测工具 225
10.5.16 使用内存分析的脱机检测:内存取证的革新 226
10.6 虚拟Rootkit检测 233
10.7 基于硬件的Rootkit检测 234
10.8 小结 235
第11章 常规安全实践 236
11.1 最终用户教育 236
11.2 了解恶意软件 237
11.3 纵深防御 239
11.4 系统加固 240
11.5 自动更新 240
11.6 虚拟化 241
11.7 固有的安全(从一开始) 242
11.8 小结 242
附录A 系统安全分析:建立你自己的Rootkit检测程序 243