描述
开 本: 16开纸 张: 胶版纸包 装: 平装是否套装: 否国际标准书号ISBN: 9787121292088
第1章 OWASP测试项目 2
1.1 OWASP测试项目概述 2
1.2 测试原则 5
1.3 测试技术说明 9
1.3.1 测试技术说明概述 9
1.3.2 人工检查及复查 9
1.3.3 软件威胁建模 10
1.3.4 代码审查 11
1.3.5 渗透测试 12
1.3.6 需要平衡的测试方法 13
1.3.7 关于Web应用扫描工具的注意事项 14
1.3.8 关于静态源代码复查工具的注意事项 15
1.3.9 安全测试需求推导 15
1.3.10 功能和非功能测试需求 18
1.3.11 安全测试集成于开发与测试工作流程 21
1.3.12 开发人员的安全测试 22
1.3.13 集成系统测试和操作测试 24
1.3.14 安全测试数据分析和报告 25
1.4 OWASP测试项目参考文献 28
第2章 OWASP测试架构 30
2.1 OWASP测试架构概述 30
2.1.1 阶段1:开发前 31
2.1.2 阶段2:设计和定义阶段 31
2.1.3 阶段3:开发阶段 33
2.1.4 阶段4:部署中 33
2.1.5 阶段5:维护和运行 34
2.2 典型SDLC测试流程 34
第二部分 测试方法
第3章 Web应用安全测试 36
3.1 Web应用安全测试概述 36
3.2 什么是OWASP测试方法? 37
第4章 信息收集测试 39
4.1 搜索引擎信息搜集(OTG-INFO-001) 39
4.1.1 信息搜集概述 39
4.1.2 信息搜集测试目标 40
4.1.3 信息搜集测试方法 40
4.2 Web服务器指纹识别(OTG-INFO-002) 42
4.2.1 Web服务器指纹识别概述 42
4.2.2 Web服务器指纹识别测试目标 42
4.2.3 Web服务器指纹识别测试方法 43
4.3 审查Web服务器元文件信息泄露(OTG-INFO-003) 48
4.3.1 审查Web服务器元文件信息泄露概述 48
4.3.2 审查Web服务器元文件信息泄露测试目标 48
4.3.3 审查Web服务器元文件信息泄露测试方法 49
4.4 枚举Web服务器的应用(OTG-INFO-004) 52
4.4.1 枚举Web服务器的应用概述 52
4.4.2 枚举Web服务器的应用测试目标 53
4.4.3 枚举Web服务器的应用测试方法 53
4.5 注释和元数据信息泄露(OTG-INFO-005) 58
4.5.1 注释和元数据信息泄露概述 58
4.5.2 注释和元数据信息泄露测试目标 58
4.5.3 注释和元数据信息泄露测试方法 58
4.6 识别应用的入口(OTG-INFO-006) 60
4.6.1 识别应用的入口概述 60
4.6.2 识别应用的入口测试目标 60
4.6.3 识别应用的入口测试方法 60
4.7 映射应用程序的执行路径(OTG-INFO-007) 62
4.7.1 映射应用程序的执行路径概述 62
4.7.2 映射应用程序的执行路径测试目标 63
4.7.3 映射应用程序的执行路径测试方法 63
4.8 识别Web应用框架(OTG-INFO-008) 64
4.8.1 识别Web应用框架概述 64
4.8.2 识别Web应用框架测试目标 65
4.8.3 识别Web应用框架测试方法 65
4.9 识别Web应用程序(OTG-INFO-009) 69
4.9.1 识别Web应用程序概述 69
4.9.2 识别Web应用程序测试目标 69
4.9.3 识别Web应用程序测试方法 69
4.10 映射应用架构(OTG-INFO-010) 73
4.10.1 映射应用架构概述 73
4.10.2 映射应用架构测试方法 73
4.10.3 防护Web服务器示例 74
4.11 信息收集测试工具 75
4.12 信息收集测试参考文献 81
4.13 信息收集测试加固措施 83
第5章 配置管理测试 87
5.1 网络和基础设施配置测试(OTG-CONFIG-001) 87
5.1.1 网络和基础设施配置测试概述 87
5.1.2 网络和基础设施配置测试方法 88
5.2 应用平台配置测试(OTG-CONFIG-002) 89
5.2.1 应用平台配置测试概述 89
5.2.2 应用平台配置测试方法 89
5.3 敏感信息文件扩展处理测试(OTG-CONFIG-003) 94
5.3.1 敏感信息文件扩展处理测试概述 94
5.3.2 敏感信息文件扩展处理测试方法 95
5.4 对旧文件、备份和未被引用文件的敏感信息的审查(OTG-CONFIG-004) 96
5.4.1 对旧文件、备份和未被引用文件的敏感信息的审查概述 96
5.4.2 对旧文件、备份和未被引用文件的敏感信息产生的威胁 97
5.4.3 对旧文件、备份和未被引用文件的敏感信息的测试方法 98
5.5 枚举基础设施和应用程序管理界面(OTG-CONFIG-005) 101
5.5.1 枚举基础设施和应用程序管理界面概述 101
5.5.2 枚举基础设施和应用程序管理界面测试方法 102
5.6 HTTP方法测试(OTG-CONFIG-006) 103
5.6.1 HTTP方法测试概述 103
5.6.2 任意的HTTP方法 104
5.6.3 HTTP方法测试方法 104
5.7 HTTP强制安全传输测试(OTG-CONFIG-007) 108
5.7.1 HTTP强制安全传输测试概述 108
5.7.2 HTTP强制安全传输测试方法 108
5.8 RIA跨域策略测试(OTG-CONFIG-008) 109
5.8.1 RIA跨域策略测试概述 109
5.8.2 跨域策略测试方法 110
5.9 配置部署管理测试工具 111
5.10 配置部署管理测试参考文献 113
5.11 配置部署管理测试加固措施 116
第6章 身份管理测试 117
6.1 角色定义测试(OTG-IDENT-001) 117
6.1.1 角色定义测试概述 117
6.1.2 角色定义测试目标 117
6.1.3 角色定义测试方法 118
6.2 用户注册流程测试(OTG-IDENT-002) 118
6.2.1 用户注册流程测试概述 118
6.2.2 用户注册流程测试目标 118
6.2.3 用户注册流程测试方法 119
6.3 账户配置过程测试(OTG-IDENT-003) 120
6.3.1 账户配置过程测试概述 120
6.3.2 账户配置过程测试测试目标 120
6.3.3 账户配置过程测试测试方法 120
6.4 账户枚举和可猜测的用户账户测试(OTG-IDENT-004) 121
6.4.1 账户枚举和可猜测的用户账户测试概述 121
6.4.2 账户枚举和可猜测的用户账户测试方法 122
6.5 弱的或未实施的用户策略测试(OTG-IDENT-005) 126
6.5.1 弱的或未实施的用户策略测试概述 126
6.5.2 弱的或未实施的用户策略测试目标 126
6.5.3 弱的或未实施的用户策略测试方法 126
6.6 身份管理测试工具 126
6.7 身份管理测试参考文献 127
6.8 身份管理测试加固措施 128
第7章 认证测试 129
7.1 凭证在加密通道中的传输测试(OTG-AUTHN-001) 129
7.1.1 凭证在加密通道中的传输测试概述 129
7.1.2 凭证在加密通道中的传输测试方法 130
7.2 默认用户凭证测试(OTG-AUTHN-002) 133
7.2.1 默认用户凭证测试概述 133
7.2.2 默认用户凭证测试方法 133
7.3 弱锁定机制测试(OTG-AUTHN-003) 136
7.3.1 弱锁定机制测试概述 136
7.3.2 弱锁定机制测试目标 136
7.3.3 弱锁定机制测试方法 136
7.4 认证模式绕过测试(OTG-AUTHN-004) 138
7.4.1 认证模式绕过测试概述 138
7.4.2 认证模式绕过测试方法 138
7.5 记忆密码功能存在威胁测试(OTG-AUTHN-005) 142
7.5.1 记忆密码功能存在威胁测试概述 142
7.5.2 记忆密码功能存在威胁测试方法 143
7.6 浏览器缓存威胁测试(OTG-AUTHN-006) 143
7.6.1 浏览器缓存威胁测试概述 143
7.6.2 浏览器缓存威胁测试方法 144
7.7 弱密码策略测试(OTG-AUTHN-007) 145
7.7.1 弱密码策略测试概述 145
7.7.2 弱密码策略测试目标 145
7.7.3 弱密码策略测试方法 146
7.8 弱安全问答测试(OTG-AUTHN-008) 146
7.8.1 弱安全问答测试概述 146
7.8.2 弱安全问答测试方法 147
7.9 弱密码的更改或重设功能测试(OTG-AUTHN-009) 148
7.9.1 弱密码的更改或重设功能测试概述 148
7.9.2 弱密码的更改或重设功能测试目标 148
7.9.3 弱密码的更改或重设功能测试方法 148
7.10 在辅助信道中较弱认证测试(OTG-AUTHN-010) 150
7.10.1 在辅助信道中较弱认证测试概述 150
7.10.2 在辅助信道中较弱认证测试示例 151
7.10.3 在辅助信道中较弱认证测试方法 151
7.10.4
序1
软件安全问题也许是我们这个时代为重要的技术挑战。Web应用程序实现了业务、社交网络等网络活动的飞速发展,同时也加剧了对软件安全的要求。我们急需建立一个强大的方案来编写和保护我们的互联网、Web应用程序和数据。
OWASP团队努力使安全的软件成为这个世界上正常、规范的产品,而这份OWASP测试指南正是实现这个目标的重要一步。重要的是,我们用来测试软件安全问题的方法是基于工程和科学的原则。我们需要一个一致的、可重复的和定义的方法来测试Web应用程序。而一个没有工程和技术的标准的世界将是一个混乱的世界。
毫无疑问,没有进行安全测试就无法建立一个安全的应用程序。测试是建立一个安全的系统使用的广泛措施的一部分。然而,许多软件开发组织的标准软件开发流程中却并不包含安全测试这一步骤。更糟的是,许多安全厂商提供了不同程度的质量和要求的测试。
由于攻击者能够利用无数种方法来攻破应用程序,而安全测试不可能测试全部的攻击方法,所以安全测试其自身并非是衡量应用安全有效的方法。我们只有有限的时间来测试和捍卫软件安全,而攻击者却没有这样的限制,所以我们不能自己降低对安全的要求。
结合使用其他OWASP项目文档,如《代码审查指南》《开发指南》和类似OWASP ZAP的工具,是建立和维护安全的应用程序的一个好的开始。《开发指南》将告诉你如何设计和构建安全的应用程序,《代码审查指南》将告诉你如何验证应用程序源代码的安全性,而《安全测试指南》将告诉你如何验证正在运行的应用程序的安全性。我强烈推荐使用这些指南作为应用程序安全性验证的一部分。
为什么选择OWASP
创建一本这样的指南是一份艰巨的工作,因为它汇集了数百位世界各地的专家的专业技能才得以完成。测试安全漏洞有许多不同的方式,但是这本指南却在怎样快捷、准确、有效地测试方面获得了权威人士的一致认可。志同道合的安全专家们在OWASP团队中一起工作,构建了安全问题的领先实践方法。
安全不应该躲在暗处,只有少数人可以操作。它应该是向所有人开放,例如QA人员、开发人员和技术管理人员,而不只是专用于安全从业人员。建立这个指南的目的是让需要它的人——你、我和参与构建软件的任何人能掌握这些专业知识。
这本指南必须要在开发者和软件测试者中推广。因为世界上没有足够的应用安全专家来对所有问题做出重要建议。而应用安全开始的责任肯定是落在软件开发者的肩上,因为他们负责代码的编写。如果开发者没有对软件进行测试,或者在编写时没有考虑可能导致漏洞的Bug,那么他是不能编写出安全的代码的。
保证信息及时更新对这本指南至关重要。通过采用Wiki 方式,OWASP团队能逐渐发展和扩大这本指南中的信息,以跟上快速发展的应用安全威胁的步伐。
本指南很好地证明了OWASP成员和项目志愿者的激情和能量,而这也必将小小地改变世界。
裁剪和优先级
这本指南可以通过裁剪来适用于组织的技术、流程及组织架构。一般在组织中有几个不同的角色会使用到本指南。
● 开发人员:使用本指南以确保编写出安全的代码。这些测试应该是正常的编码和单元测试计划的一部分。
● 软件测试和QA人员:使用本指南以扩充应用程序的测试组,尽早发现这些漏洞,将为以后节省大量的时间和精力。
● 安全专家:结合使用本指南与其他技术指南,作为一种确认方式,以确保应用程序中没有被忽略的安全漏洞。
● 项目经理:思考本指南存在的原因,以及发现在代码和设计缺陷中显现的安全问题。
切记执行安全测试时,要不断调整优先级。因为有无数种可能都会导致应用程序失败,而组织的测试时间和资源是有限的。所以用有限的时间和资源来关注真正的安全漏洞风险业务,以及研究应用风险和其产生的条件是非常明智的做法。
本指南可以看作一组技术,我们可以用它们来寻找不同类型的安全漏洞。但并不是所有的技术同样重要。请尽量避免将本指南作为核对清单来使用,因为新的漏洞总会出现,没有任何指南可以穷尽测试的方法。但是,使用这本指南将是一个好的开始。
自动化工具的作用
有许多公司销售自动化安全分析工具和测试工具,但是这些工具是有局限性的,需要将它们用在恰当的地方。正如迈克尔?霍华德在2006年OWASP西雅图AppSec峰会上所说:“工具不会让软件安全!它们只是去规范过程和加强政策。”
重点是这些工具是通用的。也就是说,它们不是专门为自定义代码,而是为了一般的应用程序而开发设计的。这意味着它们可以找到一些通用的问题,但是它们没有足够的应用程序知识来检测大多数缺陷。根据经验,严重的安全问题是那些非通用的、深深交织在一起的业务逻辑和定制应用程序设计。
但是这些工具也是有用处的,它们确实发现了很多潜在的问题。运行这些工具并不需要太多时间,但是每一个潜在的问题都需要时间调查和验证。如果我们的目标是尽快找到并消除严重的缺陷,就好考虑是否使用自动化工具或采用本指南中所述的技术来检测。另外,这些工具也是一个平衡的应用程序安全计划的一部分,如果使用得当,它们可以支持整个流程,以产生更安全的代码。
行动呼吁
如果你正在构建、设计或测试软件,我强烈建议你熟悉本书中的安全性测试指导。这是一个很好的关于今天面临的常见应用程序问题的测试汇总,但它并不详尽。如果发现错误,请联系我们修改。这将帮助成千上万使用本指南的人。
欢迎任何一个个人或公司加入我们,这样我们才能继续创建像《安全测试指南》和其他OWASP项目的一样的成果。
感谢所有的在过去和未来为这份指南做出贡献的人们。你们的努力将推进并加强全球应用程序的安全性的发展。
Eoin Keary
OWASP董事会成员
2013年4月19日
序2
1)OWASP的宗旨:开放、协同的知识管理
在第4版OWASPS测试指南中,我们创建了一个新的测试指南,它将成为指导大家执行Web应用渗透测试的事实标准。
——Matteo Meucci
OWASP感谢每一位作者、审稿者和编辑的努力,正是他们的辛勤工作才让测试指南成为今天这个样子。如果你有任何关于本测试指南的意见或建议,请发电子邮件到以下邮箱:
或者直接发邮件给本指南的负责人Andrew Muller 和Matteo Meucci。
2)第4版OWASP测试指南
相比第3版,第4版OWASP测试指南在以下3个方面进行了改进:
①本版测试指南集成了OWASP的其他两个重要文档交付件《开发者指南》和《代码审查指南》。为了做到这一点,我们重新编排了测试类别和测试编号,以便与其他OWASP文档交付件保持一致。《测试指南》和《代码审查指南》的目的是评估《开发者指南》中所描述的安全控件是否达到了要求。
②对所有章节都进行了改进,并将测试用例数量扩展到87个(第3版只有64个),新增以下4个章节的介绍:
? 身份管理测试
? 错误处理
? 密码
? 客户端测试
③在这个版本的测试指南中,我们不仅鼓励有关机构和团体简单地接受本指南所列的测试用例,还鼓励安全测试人员与其他软件测试人员一起设计用于具体测试目标的有针对性的测试用例。如果发现了具有更广泛适用性的测试用例,我们鼓励安全机构和团体将它们分享出来,以完善本测试指南。这将有助于持续构建应用安全知识体系,使本测试指南的开发成为不断迭代的而不是单向的过程。
3)历史修订
第4 版《测试指南》发布于2014 年。OWASP的测试指南于2003年首次发布,Dan Cuthbert 作为初的编辑之一参与其中。于2005年移交给Eoin Keary 并转变成Wiki 超文本系统。之后,Matteo Meucci 接管了本测试指南,现在是OWASP 测试指南项目负责人。从2012年起Andrew Muller协助Matteo Meucci领导这个项目。
? 2014年OWASP测试指南第4版
? 2008年9月15日OWASP测试指南第3版
? 2006年12月25日OWASP测试指南第2版
? 2004 年12 月OWASP测试指南第1版
? 2004 年7月14日 OWASP WEB应用安全渗透检查表第1.1版
项目领导
? Andrew Muller:从2013年开始领导OWASP测试指南项目
? Matteo Meucci:从2007年开始领导OWASP测试指南项目
? Eoin Keary:2005—2007年领导OWASP测试指南项目
? Daniel Cuthbert:2003—2005年领导OWASP测试指南项目
中文版说明
本书为“OWASP Testing Guide V4.0”的中文版。该版本尽量提供原英文版本中的图片,并与原版本保持相同的风格。存在的差异,敬请谅解。
感谢OWASP中国及SecZone自2008年OWASP Testing Guide V3.0发布以来 ,对该项目持续的跟进、翻译研究分享。同时 ,也对该项目的参与人员表示感谢 。
如果您有关于本书的任何意见或建议,可以通过以下方式联系我们:
电话:4000-983-183
邮箱:
评论
还没有评论。