每周一书-《模糊测试-强制发掘安全漏洞的利器》

 

 

首先说明,本周活动有效时间为2016926日到2016109日。本周为大家送出的书是由电子工业出版社出版,段念,赵勇翻译的《模糊测试-强制发掘安全漏洞的利器》。

 

在介绍这本书之前,首先要感谢微信号为:631682315FEIYU)同学赠送给玄魂工作室的内容读者的。

前言/序言

在图上可以看到,FEIYU同学正在招聘代码审计,感兴趣的读者可以直接加他的微信号,了解招聘需求。

下面我们来看看,这本书的简介。

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

作者简介

Micheal SuttonSPI Dynamics的安全性专业顾问(Security Evangelist)。作为安全性专业顾问,Michael负责识别、研究及提出Web应用安全性历史上出现的问题。他经常在主要的信息安全会议上演讲,写作了大量文章,并在多种信息安全主题中被引用。Michael同时也是Web 应用安全性协会(Web Application Security ConsortiumWASC)的会员,领导着Web应用安全性统计项目。
  在加入SPI Dynamics之前,MichaeliDefense/VeriSign的总监,领导iDefense Labs这个世界级的研究团队,该团队的目标是发现和研究安全性漏洞。Michael还在百慕大建立了为安永服务的信息系统保证和咨询服务(Information System Assurance and Advisory ServicesISAAS)。Michael拥有阿尔伯塔大学和乔治华盛顿大学的学位。
  Michael是一个骄傲的加拿大人,在他看来,曲棍球是一种信仰而不只是一种运动。在工作之外,Micheal还是Fairfax志愿救火部门的一名士官。
  Adam Greene是某大金融新闻公司的工程师,公司位于纽约。在加入这家公司之前,AdamiDefense的工程师,iDefense是位于弗吉尼亚州雷斯顿城的一家智能公司。Adam在计算机安全性方面的兴趣主要在于可信利用(reliable exploitation)方法、模糊测试,以及开发基于UNIX系统的利用漏洞的工具。
  Pedram Amini目前领导着TippingPoint的安全研究和产品安全评估团队,在此之前,他是iDefense Labes的助理总监和创始人之一。顶着助理总监这个奇怪的头衔,Pedram在逆向工程的基础方面投入了相当多的时间——开发自动化工具、插件及脚本。他最近的项目(也叫“Babies”)包括PaiMei逆向工程框架和Sulley模糊测试框架。
  出于热情,Pedram创建了OpenRCE.org,一个专注于逆向工程的艺术和科学的社区网站。他在REConBlackHatDefConShmooConToorCon上都进行过演讲,并教授了多次逆向工程课程。Pedram拥有杜兰大学的计算机科学学位。

 

目录

译者序
前言
原书序
致谢
关于作者
第一部分基础知识
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 DebugGDB)法
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
特性
10.2.1
请求
10.2.2
模糊变量
10.2.3
响应
10.3
必需的背景信息
10.3.1
识别请求
10.3.2
检测
10.4
开发
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 ServiceDoS
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平台上

 

模糊测试是发现未知漏洞的艺术,是安全测试的进阶技术,是必知必会的知识。

下面关键来了,如果你心动了,如何得到本书呢?

1.在本篇文章下面留言,谈谈你对模糊测试的认识,理解,感悟或者有趣的故事和想法

2.让你的朋友帮助给你的留言点赞

3.如果你的感悟或者故事很精彩,可以投稿给我们。

评选标准:

1.点赞数最高的留言者,会获得本书

2.如果你有和本书内容相关的投稿,如果被采纳,在订阅号发布,本书优先奖励给你。

3.同时有多人投稿的话,回到第1条。

微信扫描下发二维码,关注订阅号,回复“每周一书”,了解最新的运行情况,最近的送书小活动,获取书籍的方法都在文章里面。

  每周一书,总有一本是你喜欢的。

玄魂工作室-只关注程序员

 

 

posted @ 2016-09-26 12:12  玄魂  阅读(874)  评论(0编辑  收藏  举报