图书介绍
模糊测试—强制性安全漏洞发掘pdf电子书版本下载
- (美)斯顿(Sutton 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111257554
- 出版时间:2009
- 标注页数:363页
- 文件大小:51MB
- 文件页数:384页
- 主题词:软件-测试
PDF下载
下载说明
模糊测试—强制性安全漏洞发掘PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如 BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 背景 1
第1章 安全漏洞发掘方法学 1
1.1 白盒测试 1
1.1.1 源代码评审 1
1.1.2 工具和自动化 3
1.1.3 优点和缺点 5
1.2 黑盒测试 5
1.2.1 人工测试 6
1.2.2 自动测试或模糊测试 7
1.2.3 优点和缺点 8
1.3 灰盒测试 9
1.3.1 进制审核 9
1.3.2 自动化的二进制审核 11
1.3.3 优点和缺点 12
1.4 小结 12
第2章 什么是模糊测试 13
2.1 模糊测试的定义 13
2.2 模糊测试的历史 14
2.3 模糊测试阶段 17
2.4 模糊测试的局限性和期望 18
2.4.1 访问控制缺陷 18
2.4.2 设计逻辑不良 19
2.4.3 后门 19
2.4.4 内存破坏 19
2.4.5 多阶段安全漏洞 20
2.5 小结 20
第3章 模糊测试方法和模糊器类型 21
3.1 模糊测试方法 21
3.1.1 预先生成测试用例 21
3.1.2 随机方法 21
3.1.3 协议变异人工测试 22
3.1.4 变异或强制性测试 23
3.1.5 自动协议生成测试 23
3.2 模糊器类型 23
3.2.1 本地模糊器 24
3.2.2 远程模糊器 25
3.2.3 内存模糊器 27
3.2.4 模糊器框架 28
3.3 小结 29
第4章 数据表示和分析 30
4.1 什么是协议 30
4.2 协议域 31
4.3 简单文本协议 32
4.4 二进制协议 32
4.5 网络协议 35
4.6 文件格式 36
4.7 常见的协议元素 38
4.7.1 名字-值对 39
4.7.2 块标识符 39
4.7.3 块长度 39
4.7.4 校验和 39
4.8 小结 39
第5章 有效模糊测试的需求 40
5.1 可重现性和文档记录 40
5.2 可重用性 41
5.3 过程状态和过程深度 42
5.4 跟踪、代码覆盖和度量 44
5.5 错误检测 44
5.6 资源约束 45
5.7 小结 46
第二部分 目标和自动化第6章 自动化测试和测试数据生成 47
6.1 自动化测试的价值 47
6.2 有用的工具和库 48
6.2.1 ETHEREAL/WIRESHARK 48
6.2.2 LIBDASM和LIBDISASM 48
6.2.3 LIBNET/LIBNETNT 49
6.2.4 LIBPCAP 49
6.2.5 METRO PACKET LIBRARY 49
6.2.6 PTRACE 49
6.2.7 PYTHON EXTENSIONS 49
6.3 编程语言的选择 50
6.4 测试数据生成和模糊启发式 50
6.4.1 整型值 51
6.4.2 字符串重复 53
6.4.3 字段分隔符 53
6.4.4 格式化字符串 55
6.4.5 字符翻译 55
6.4.6 目录遍历 56
6.4.7 命令注入 56
6.5 小结 57
第7章 环境变量和参数的模糊测试 58
7.1 本地化模糊测试介绍 58
7.1.1 命令行参数 58
7.1.2 环境变量 58
7.2 本地化模糊测试准则 60
7.3 寻找目标程序 60
7.4 本地化模糊测试方法 63
7.5 枚举环境变量 63
7.6 自动化的环境变量测试 64
7.7 检测问题 65
7.8 小结 67
第8章 环境变量和参数的模糊测试:自动化 68
8.1 iFUZZ本地化模糊器的特性 68
8.2 iFUZZ的开发 69
8.3 iFUZZ的开发语言 73
8.4 实例研究 73
8.5 益处和改进的余地 74
8.6 小结 74
第9章 Web应用程序和服务器模糊测试 75
9.1 什么是Web应用程序模糊测试 75
9.2 目标应用 77
9.3 测试方法 78
9.3.1 建立目标环境 78
9.3.2 输入 79
9.4 漏洞 88
9.5 异常检测 90
9.6 小结 91
第10章 Web应用程序和服务器的模糊测试:自动化 92
10.1 Web应用模糊器 92
10.2 WebFuzz的特性 94
10.2.1 请求 94
10.2.2 模糊变量 95
10.2.3 向应 96
10.3 必要的背景知识 97
10.3.1 识别请求 97
10.3.2 漏洞检测 98
10.4 WebFuzz的开发 100
10.4.1 开发方法 100
10.4.2 开发语言的选择 100
10.4.3 设计 100
10.5 实例研究 106
10.5.1 目录遍历 106
10.5.2 溢出 107
10.5.3 SQL注入 109
10.5.4 XSS脚本 111
10.6 益处和改进的余地 114
10.7 小结 114
第11章 文件格式模糊测试 115
11.1 目标应用 115
11.2 方法 116
11.2.1 强制性或基于变异的模糊测试 117
11.2.2 智能强制性或基于生成的模糊测试 118
11.3 输入 118
11.4 漏洞 119
11.4.1 拒绝服务 119
11.4.2 整数处理问题 119
11.4.3 简单的栈和堆溢出 120
11.4.4 逻辑错误 121
11.4.5 格式化字符串 121
11.4.6 竞争条件 121
11.5 漏洞检测 121
11.6 小结 122
第12章 文件格式模糊测试:UNIX平台上的自动化测试 123
12.1 NOTSPIKEFILE和SPIKEFILE 123
12.2 开发方法 124
12.2.1 异常检测引擎 124
12.2.2 异常报告(异常检测) 124
12.2.3 核心模糊测试引擎 125
12.3 有意义的代码片段 126
12.3.1 通常感兴趣的UNIX信号 127
12.3.2 不太感兴趣的UNIX信号 128
12.4 僵死进程 128
12.5 使用的注意事项 130
12.5.1 ADOBE ACROBAT 131
12.5.2 REALNETWORKS REALPLAYRE 131
12.6 实例研究:REALPLAYER REALPIX格式化字符串漏洞 131
12.7 语言 133
12.8 小结 133
第13章 文件格式模糊测试:Windows平台上的自动化测试 134
13.1 Windows文件格式漏洞 134
13.2 FileFuzz的特性 136
13.2.1 创建文件 136
13.2.2 应用程序执行 138
13.2.3 异常检测 138
13.2.4 保存的审核 139
13.3 必要的背景知识 140
13.4 FileFuzz的开发 142
13.4.1 开发方法 143
13.4.2 开发语言的选择 143
13.4.3 设计 143
13.5 实例研究 149
13.6 益处和改进的余地 152
13.7 小结 152
第14章 网络协议模糊测试 153
14.1 什么是网络协议模糊测试 153
14.2 目标应用 155
14.2.1 数据链路层 156
14.2.2 网络层 156
14.2.3 传输层 157
14.2.4 会话层 157
14.2.5 表示层 157
14.2.6 应用层 157
14.3 测试方法 158
14.3.1 强制性或基于变异的模糊测试 158
14.3.2 智能强制性模糊测试和基于生成的模糊测试 158
14.3.3 修改的客户端变异模糊测试 159
14.4 错误检测 159
14.4.1 人工方法(基于调试器) 160
14.4.2 自动化方法(基于代理) 160
14.4.3 其他方法 160
14.5 小结 160
第15章 网络协议模糊测试:UNIX平台上的自动化测试 161
15.1 使用SPIKE进行模糊测试 161
15.1.1 选择测试目标 161
15.1.2 协议逆向工程 162
15.2 SPIKE 101 164
15.2.1 模糊测试引擎 164
15.2.2 通用的基于行的TCP模糊器 165
15.3 基于块的协议建模 166
15.4 SPIKE的额外特性 167
15.4.1 特定于协议的模糊器 167
15.4.2 特定于协议的模糊测试脚本 167
15.4.3 通用的基于脚本的模糊器 168
15.5 编写SPIKE NMAP模糊器脚本 168
15.6 小结 171
第16章 网络协议模糊测试:Windows平台上的自动化测试 172
16.1 ProtoFuzz的特性 172
16.1.1 包结构 172
16.1.2 捕获数据 173
16.1.3 解析数据 173
16.1.4 模糊变量 174
16.1.5 发送数据 175
16.2 必要的背景知识 175
16.2.1 错误检测 175
16.2.2 协议驱动程序 175
16.3 ProtoFuzz的开发 176
16.3.1 开发语言的选择 176
16.3.2 包捕获库 176
16.3.3 设计 177
16.4 实例研究 181
16.5 益处和改进的余地 182
16.6 小结 183
第17章 Web浏览器模糊测试 184
17.1 什么是Web浏览器模糊测试 184
17.2 目标 185
17.3 方法 185
17.3.1 测试方法 185
17.3.2 输入 186
17.4 漏洞 193
17.5 错误检测 194
17.6 小结 195
第18章 Web浏览器的模糊测试:自动化 196
18.1 组件对象模型的背景知识 196
18.1.1 在Nutshell中的发展历史 196
18.1.2 对象和接口 197
18.1.3 ActiveX 197
18.2 模糊器的开发 199
18.2.1 枚举可加载的ActiveX控件 200
18.2.2 属性、方法、参数和类型 203
18.2.3 模糊测试和监视 207
18.3 小结 208
第19章 内存数据的模糊测试 209
19.1 内存数据模糊测试的概念及实施该测试的原因 209
19.2 必需的背景知识 210
19.3 究竟什么是内存数据模糊测试 213
19.4 目标 214
19.5 方法:变异循环插入 214
19.6 方法:快照恢复变异 215
19.7 测试速度和处理深度 216
19.8 错误检测 217
19.9 小结 217
第20章 内存数据的模糊测试:自动化 219
20.1 所需要的特性集 219
20.2 开发语言的选择 220
20.3 Windows调试API 222
20.4 将其整合在一起 225
20.4.1 如何在特定点将“钩子”植入目标进程 226
20.4.2 如何处理进程快照和恢复 228
20.4.3 如何选择植入钩子的点 231
20.4.4 如何对目标内存空间进行定位和变异 231
20.5 一个最好的新工具PyDbg 231
20.6 一个构想的示例 233
20.7 小结 244
第三部分 高级模糊测试技术第21章 模糊测试框架 245
21.1 模糊测试框架的概念 245
21.2 现有框架 247
21.2.1 antiparser 247
21.2.2 Dfuz 249
21.2.3 SPIKE 252
21.2.4 Peach 255
21.2.5 通用模糊器 257
21.2.6 Autodafé 259
21.3 定制模糊器的实例研究:Shockwave-Flash 260
21.3.1 SWF文件的建模 261
21.3.2 生成有效的数据 270
21.3.3 对环境进行模糊测试 271
21.3.4 测试方法 272
21.4 模糊测试框架Sulley 272
21.4.1 Sulley目录结构 272
21.4.2 数据表示 274
21.4.3 会话 282
21.4.4 事后验证阶段 286
21.4.5 一个完整的实例分析 290
21.5 小结 295
第22章 自动化协议解析 297
22.1 模糊测试存在的问题是什么 297
22.2 启发式技术 299
22.2.1 代理模糊测试 299
22.2.2 改进的代理模糊测试 300
22.2.3 反汇编启发式规则 302
22.3 生物信息学 303
22.4 遗传算法 305
22.5 小结 309
第23章 模糊器跟踪 310
23.1 我们究竟想要跟踪什么 310
23.2 二进制代码可视化和基本块 311
23.2.1 CFG 312
23.2.2 CFG示例 312
23.3 构造一个模糊器跟踪器 313
23.3.1 刻画目标特征 314
23.3.2 跟踪 314
23.3.3 交叉引用 316
23.4 对一个代码覆盖工具的分析 318
23.4.1 PStalker设计概览 319
23.4.2 数据源 320
23.4.3 数据探查 321
23.4.4 数据捕获 321
23.4.5 局限性 321
23.4.6 数据存储 322
23.5 实例研究 324
23.5.1 测试策略 325
23.5.2 测试方法 327
23.6 益处和改进的余地 330
23.7 小结 333
第24章 智能故障检测 334
24.1 基本的错误检测方法 334
24.2 我们所要搜索的内容 336
24.3 选择模糊值时的注意事项 340
24.4 自动化的调试器监视 341
24.4.1 一个基本的调试器监视器 341
24.4.2 一个更加高级的调试器监视器 344
24.5 调试器在应用程序前先看到的异常和调试器再次看到程序未捕获的异常的比较 347
24.6 动态二进制插装 348
24.7 小结 350
第四部分 展望 351
第25章 汲取的教训 351
25.1 软件开发生命周期 351
25.1.1 分析 353
25.1.2 设计 353
25.1.3 编码 354
25.1.4 测试 354
25.1.5 维护 354
25.1.6 在SDLC中实现模糊测试 355
25.2 开发者 355
25.3 QA研究者 355
25.4 安全问题研究者 356
25.5 小结 356
第26章 展望 357
26.1 商业工具 357
26.1.1 安全性测试工具beSTORM 357
26.1.2 BreakingPoint系统BPS-1000 358
26.1.3 Codenomicon 358
26.1.4 GLEG ProtoVer Professional 360
26.1.5 安全性测试工具Mu-4000 361
26.1.6 Security Innovation Holodeck 361
26.2 发现漏洞的混合方法 362
26.3 集成的测试平台 362
26.4 小结 363