序
软件的不安全问题也许是我们这个时代最为重要的技术挑战。安全问题是目前制约信息技术发展的关键。
在OWASP团队,我们努力使不安全软件成为这个世界上不正常、不规范的产品,而这份OWASP测试指南正是实现这个目标的重要一步。通过科学的的理论方法来进行软件测试是非常关键的。我们需要可以重复的一致性的过程来测试web应用程序。没有标准的世界是混乱的世界。
毫无疑问的是没有进行安全测试就无法建立一个安全的应用环境。然而,许多的软件开发组织的标准软件开发流程中却并不包含安全测试这一步骤。
由于攻击者能够利用无数的方法来攻破应用程序,而安全测试不可能测试全部的攻击方法,所以安全测试其自身并非是衡量应用安全最为有效的方法。但是,安全测试具有独特的能力绝对说服反对者确实存在安全问题。
总体而言,OWASP 的各个指南是对开发及维系安全的应用程序很好的出发点。开发者指南 能指导你如何设计和开发安全的应用程序,而 代码检测指南 则会告诉你如何为代码作安全检测,而 测试指南 会指导你如何验证你的应用程序的安全性。我极力推荐你使用这些指南在你的应用程序开发。
为什么需要OWASP?
写成一本这样的指南是艰巨的工作,因为它汇集了数百位世界各地的专家的专业技能。测试安全漏洞有许多不同的方式,但是这本指南却在怎样快捷、准确、有效地测试方面获得了权威人士的一致同意。
这本指南完全免费地向公众开放十分重要。安全问题不应该是躲在暗处,以至于只有少数人能操作。许多现有的安全指南只是详细地阐述了问题的严重性,但并没有提供足够的信息来让人们找到、诊断或者解决安全问题。创建这本指南的目的是使需要它的人能掌握这些专业知识。
这本指南必须能在开发者和软件测试者中推广起来。全世界似乎没有足够的应用安全专家来对所有问题做重要批示。应用安全最开始的责任肯定是落在软件开发者的肩上。如果开发者没有测试他的软件的话,软件中没有安全代码也并不奇怪。
保证信息及时更新是这本指南至关重要的方面。通过采用 Wiki 方式,OWASP 团队能逐渐发展和扩大这本指南中的信息,这样才能跟上应用安全威胁快速发展的步伐。
这份手册是我们广大会员和项目志愿者热情和能量的结晶。它一定会使世界更加美好。
裁剪和优先级
你需要将这份指南应用于你的组织之中,你可能需要裁剪相关信息来匹配组织的技术能力、实施过程和组织结构。
通常组织中下列不同的角色可能需要这份指南:
开发者需要这份指南确保他们能够写出安全的代码。这些测试应该成为实例代码的一部分。
软件测试人员和QA人员应该使用这份指南扩充他们的测试案例,期望更早能够捕捉到漏洞,从而节约时间和精力。
安全专家需要使用这份指南与技术结合来确保没有遗漏安全漏洞。
项目经历需要思考这份指南的意义,以确保能够界定设计和编码中的BUG是安全问题。
应用安全测试最重要的方面可能就是让你时刻牢记你必须在有限的时间内尽可能多地覆盖应用程序的各个方面。郑重提醒:请不要简单的看几眼这本书就开始测试,理想的做法是:通过建立一些安全威胁模型来决定你的公司最关心的安全问题是什幺。你最终应该拥有一张包含优先次序的待测试的安全清单。
你最好将这份指南看作是一系列寻找不同类型安全漏洞的技术指引。但并不是所有的技术都是同等重要的,请不要将这本指南当成一本核对清单来使用。新漏洞的出现总是证明事无巨细,但是这份指南会是一个很好的开始。
自动化工具
有相当数量的公司在销售安全分析和测试工具。请记住这些工具的局限性以便能够更好地使用它们。 请查阅Michael Howard的文章 2006 OWASP AppSec Conference in Seattle。
工具无法使软件更加安全!他们只能缩小整个过程,并帮助加强策略!
这些工具是通用的,他们的覆盖面不完全——它们并不是专门针对您的自定义代码设计的。这意味着,即使它们可以找到部分一般性问题,但是它们对你的应用程序没有足够的了解,无法对可能存在的大多数安全漏洞进行侦测。此外,根据我们的经验,最严重的安全问题往往不具有代表性,而是深度隐藏在你的业务逻辑和定制应用设计中。
自动化工具在检测速度方面并不一定比手动检测快。实际运行的工具也许并不会花费特别多的时间,但是在工具运行前后所花费的时间很多。如果当前最主要的任务是尽可能快地发现和消除最严重的安全漏洞,那幺针对不同的安全弱点选择最具有效果的技术十分重要。在某些特定的问题上,自动化工具是十分有效的。明智地选择并使用自动化工具能够有效支持你的整个开发过程以开发出安全性更高的代码。
呼吁帮助
如果你正在从事软件开发、设计或者测试工作,我强烈建议你熟悉这份文档中的安全测试指引。这份手册是是测试当今软件问题的极好的指引,当然它还不够完善。如果您发现错误,请在讨论页中添加你的标注或自行对文档进行改动。你的意见将帮助到成千上万正在使用这份指南的人们。
欢迎任何个人或者团体加入我们,这样我们才能够继续创作出像这份测试指南以及所有 OWASP 其它著作一样的材料。
感谢所有过去以及未来为这份指南做出贡献的人们,你们的工作将有助于推进世界各地的应用程序安全。
--Eoin Keary, OWASP Board Member, April 19, 2013