模糊测试:强制发掘安全漏洞的利器:brute force vulnerability discovery

副标题:无

作   者:(美)Michael Sutton,(美)Adam Greene,(美)Pedram Amini著

分类号:

ISBN:9787121210839

微信扫一扫,移动浏览光盘

简介

《模糊测试:强制发掘安全漏洞的利器》内容简介:随着软件安全性问题变得越来越关键,传统的仅由组织内的少数安全专家负责安全的模式正受到越来越多的挑战。模糊测试是一种能够降低安全性测试门槛的方法,它通过高度自动化的手段让组织的开发和测试团队都能参与到安全性测试中,并能够通过启发式等方法不断积累安全测试的经验,帮助组织建立更有效的面向安全性的开发流程。《模糊测试:强制发掘安全漏洞的利器》是一本系统性描述模糊测试的专著,介绍了主要操作系统和主流应用类型的模糊测试方法,系统地描述了方法和工具,并使用实际案例帮助读者建立直观的认识。 海报:

目录

译者序
前言
原书序
致谢
关于作者
第一部分基础知识
第1章 安全漏洞发现方法学
1.1 白盒测试
1.1.1代码评审(Source Code Review)
1.1.2工具与自动化
1.1.3优点和缺点
1.2黑盒测试
1.2.1手工测试
1.2.2自动化测试或模糊测试
1.2.3优点和缺点
1.3灰盒测试
1.3.1二进制审计
1.3.2自动化的二进制审计
1.3.3优点和缺点
1.4小结
第2章什么是模糊测试
2.1模糊测试的定义
2.2模糊测试的历史
2.3模糊测试各阶段
2.4模糊测试的局限性和期望
2.4.1访问控制漏洞
2.4.2糟糕的设计逻辑
2.4.3后门
2.4.4破坏
2.4.5多阶段安全漏洞(MuliStage Vulnerability)
2.5小结
第3章模糊测试方法与模糊测试器类型
3.1模糊测试方法
3.1.1预生成测试用例
3.1.2随机生成输入
3.1.3手工协议变异测试
3.1.4变异或强制性测试
3.1.5自动协议生成测试
3.2模糊测试器类型
3.2.1本地模糊器
3.2.2远程模糊测试器
3.2.3存模糊测试器
3.2.4模糊测试框架
3.3小结
第4章数据表示和分析
4.1什么是协议
4.2协议中的字段
4.3简单文本协议(Plain Text Protocols)
4.4二进制协议
4.5网络协议
4.6文件格式
4.7常用协议元素
4.7.1名字一值对
4.7.2块识别符
4.7.3块大小
4.7.4校验和
4.8小结
第5章有效模糊测试的需求
5.1可重现性与文档
5.2可重用性
5.3过程状态和过程深度
5.4跟踪、代码覆盖和度量
5.5错误检测
5.6资源约束
5.7小结
第二部分目标与自动化
第6章 自动化与数据生成
6.1 自动化的价值
6.2有用的工具和库
6.2.1 ETHEREAL/WIRESHARK
6.2.2 LIBDASM和LIBDISASM
6.2.3 LIBNET/LIBNETNT
6.2.4 LIBPCAP
6.2.5 METRO PACKET LIBRARY
6.2.6 PTRACE
6.2.7 PYTHON扩展
6.3编程语言的选择
6.4数据生成与模糊试探值(Fuzz Heuristics)
6.4.1 整数值
6.4.2字符串重复(String Repetitions)
6.4.3字段分隔符
6.4.4格式字符串
6.4.5字符翻译
6.4.6 目录遍历
6.4.7命令注入
6.5 小结
第7章环境变量与参数模糊测试
7.1本地模糊测试介绍
7.1.1命令行参数
7.1.2环境变量
7.2本地模糊测试原则
7.3寻找测试目标
7.3.1 UNIX文件权限释义
7.4本地模糊测试方法
7.5枚举环境变量
7.5.1 GNU调试器(GNU Debug,GDB)法
7.6 自动化的环境变量模糊测试
7.6.1库预加载(Library Preloading)
7.7检测问题
7.8小结
第8章 自动化的环境变量与参数模糊测试
8.1 iFUZZ本地模糊测试器的功能
8.2开发iFUZZ工具
8.2.1 开发方法
8.3 iFUZZ使用的编程语言
8.4案例研究
8.5优点与改进
8.6 小结
第9章Web应用与服务器模糊测试
9.1什么是Web应用模糊测试
9.2测试目标
9.3测试方法
9.3.1设置目标环境
9.3.2输入
9.4漏洞
9.5异常检测
9.6小结
第10章Web应用和服务器的自动化模糊测试
10.1 Web应用模糊测试器
10.2 WebFuzz的特性
10.2.1请求
10.2.2模糊变量
10.2.3 响应
10.3必备的背景信息
10.3.1识别请求
10.3.2检测响应
10.4开发WelbFUZZ
10.4.1思路
10.4.2选择编程语言
10.4.3设计
10.5案例研究
10.5.1目录遍历(Directory Traversal)
10.5.2溢出
10.5.3 SQL注入
10.5.4 XSS脚本
10.6优点与可能的改进
10.7小结
第11章文件格式模糊测试
11.1测试目标
11.2测试方法
11.2.1 强制或基于变异的模糊测试
11.2.2智能强制或基于生成的模糊测试
11.3测试输入
11.4安全漏洞
11.4.1拒绝服务(Daniel of Service,DoS)
11.4.2整数处理问题
11.4.3简单的栈和堆溢出
11.4.4逻辑错误
11.4.5格式字符串
11.4.6竞争条件(Race Condition)
11.5检测错误
11.6小结
第12章UNIX平台上的文件格式自动化模糊测试
12.1 notSPIKEfile和SPIKEfile
12.1.1不具有的特性
12.2开发过程
12.2.1异常监测引擎
12.2.2异常报告(异常监测)
12.2.3模糊测试核心引擎
12.3有意义的代码片段
12.3.1 UNIX 中常见的我们可能感兴趣的信号
12.3.2我们不感兴趣的信号
12.4 僵尸进程(Zombie Process)
12.5 使用注意事项
12.5.1 Adobe Acrobat
12.5.2 RealNetworks RealPlayer
12.6 案例研究:RealPlayer RealPix格式字符串漏洞
12.7 开发语言
12.8 小结
第13章 Windows平台上的文件格式自动化模糊测试
13.1 Windows文件格式漏洞
13.2 FileFuzz工具的功能
13.2.1 创建文件
13.2.2 执行应用
13.2.3 异常检测
13.2.4 保存好的审计(audit)
13.3 必需的背景信息
13.3.1 识别目标应用
13.4 FileFuzz工具的开发
13.4.1 开发方法
13.4.2 开发语言选择
13.4.3 设计
13.5 案例研究
13.6 收益和改进空间
13.7 小结
第14章 网络协议的模糊测试
14.1 什么是网络协议的模糊测试
14.2 测试目标应用
14.2.1 第二层:数据链接层
14.2.2 第三层:网络层
14.2.3 第四层:传输层
14.2.4 第五层:会话层
14.2.5 第六层:表示层
14.2.6 第七层:应用层
14.3 测试方法
14.3.1 强制(基于变异的)模糊测试
14.3.2 智能强制(基于生成的)模糊测试
14.3.3 通过修改客户端进行变异模糊测试
14.4 错误检测
14.4.1 手工方式(基于调试器)
14.4.2 自动化方式(基于代理)
14.4.3 其他来源
14.5 小结
第15章 UNIX平台上的自动化网络协议模糊测试
15.1 使用SPIKE进行模糊测试
15.1.1 选择目标
15.1.2 协议分析
15.2 SPIKE必要知识
15.2.1 模糊引擎
15.2.2 基于行的通用TCP模糊测试器
15.3 基于块的协议模型
15.4 其他的SPIKE特性
15.4.1 针对协议的模糊测试器
15.4.2 针对协议的模糊测试脚本
15.4.3 基于脚本的通用模糊测试器
15.5 编写SPIKE NMAP模糊测试器脚本
15.6 小结
第16章 Windows平台上网络协议的模糊测试
16.1 功能
16.1.1 数据包结构
16.1.2 抓取数据
16.1.3 解析数据
16.1.4 模糊测试变量
16.1.5 发送数据
16.2 必备的背景知识
16.2.1 检测故障
16.2.2 协议驱动程序
16.3 开发
16.3.1 选择编程语言
16.3.2 数据包抓取库
16.3.3 设计
16.4 案例研究
16.5 好处与可改进之处
16.6 小结
第17章 Web浏览器的模糊测试
17.1 什么是Web浏览器的模糊测试
17.2 目标
17.3 方法
17.3.1 测试方法
17.3.2 测试输入
17.4 漏洞
17.5 检测
17.6 小结
第18章 Web浏览器的自动化模糊测试
18.1 组件对象模型背景
18.1.1 COM简史
18.1.2 对象与接口
18.1.3 ActiveX
18.2 开发模糊测试器
18.2.1 枚举可被加载的AcriveX控件
18.2.2 属性、方法、参数与类型
18.2.3 模糊测试与监视
18.3 小结
第19章 内存的模糊测试
19.1 为什么需要内存模糊测试?怎么进行
19.2 必要的背景信息
19.3 究竟什么是内存模糊测试的简要解释
19.4 目标
19.5 内存模糊测试方法之变异循环插入(Mutation Loop Insertion)
19.6 内存模糊测试方法之快照恢复变异(Snapshot restoration mutation)
19.7 测试速度与处理深度
19.8 错误检测
19.9 小结
第20章 内存的自动化模糊测试
20.1 内存模糊测试工具特性集
20.2 选择开发语言
20.3 Windows调试API
20.4 整合上面的内容
20.4.1 如何在目标应用中特定的点放置“钩子”
20.4.2 如何生成与恢复进程快照
20.4.3 选择在何处放置钩子
20.4.4 如何定位和变异目标内存空间
20.5 PyDbg,新的好朋友
20.6 一个人造的示例
20.7 小结
第三部分 高级模糊测试技术
第21章 模糊测试框架
21.1 什么是模糊测试框架
21.2 现有的模糊测试框架
21.2.1 antiparser
21.2.2 Dfuz
21.2.3 SPIKE
21.2.4 Peach
21.2.5 通用目的模糊测试器
21.2.6 Autodafé
21.3 定制模糊测试器案例研究:Shockwave Flash
21.3.1 为SWF文件建模
21.3.2 生成有效的数据
21.3.3 模糊测试环境
21.3.4 测试方法
21.4 模糊测试框架Sulley
21.4.1 Sulley的目录结构
21.4.2 数据表示
21.4.3 会话
21.4.4 事后分析
21.4.5 一个完整的实例
21.5 小结
第22章 自动化协议分析
22.1 模糊测试的痛处在哪里
22.2 启发式技术
22.2.1 代理模糊测试
22.2.2 改进的代理模糊测试
22.2.3 反汇编启发式
22.3 生物信息学
22.4 遗传算法
22.5 小结
第23章 模糊测试器跟踪
23.1 我们跟踪的究竟是什么
23.2 二进制可视化和基础块
23.2.1 控制流图
23.2.2 控制流图示例
23.3 构建一个模糊测试器跟踪器
23.3.1 分析目标
23.3.2 跟踪
23.3.3 交叉引用
23.4 分析一个代码覆盖工具
23.4.1 PStalker布局预览
23.4.2 数据源
23.4.3 数据浏览
23.4.4 数据抓取
23.4.5 局限性
23.4.6 数据存储
23.5 案例研究
23.5.1 测试策略
23.5.2 实际操作
23.6 好处与将来的改进
23.6.1 将来的改进
23.7 小结
第24章 智能错误检测
24.1 原始的错误检测技术
24.2 我们查找的是什么
24.3 选择模糊测试值的注意事项
24.4 自动化的调试器监视
24.4.1 一个基础的调试器监视器
24.4.2 更高级的调试器监视器
24.5 首轮异常与末轮异常
24.6 动态二进制插装
24.7 小结
第四部分 展望
第25章 我们学到了什么
25.1 软件开发生命周期
25.1.1 分析阶段
25.1.2 设计阶段
25.1.3 编码阶段
25.1.4 测试阶段
25.1.5 维护阶段
25.1.6 在软件开发生命周期中实现模糊测试
25.2 开发者
25.3 QA研究者
25.4 安全研究者
25.5 小结
第26章 展望
26.1 商业工具
26.1.1 Beyond Security公司的beSTORM
26.1.2 BreakingPoint Systems的BPS—1000
26.1.3 Codenomicon
26.1.4 GLEG ProtoVer专业版
26.1.5 MU Security公司的MU—4000
26.1.6 Security Innovation公司的Holodeck
26.2 漏洞发现的混合方法
26.3 集成的测试平台
26.4 小结
附录A 本书引用的小布什语录之详细解读
索引

已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

模糊测试:强制发掘安全漏洞的利器:brute force vulnerability discovery
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    loading icon