简介和目标
本节描述了 OWASP Web
应用程序安全测试方法,并解释了如何测试应用程序中由于已识别的安全控制缺陷而存在漏洞的证据。
什么是 WEB 应用程序安全测试?
安全测试是一种通过系统地验证和验证应用程序安全控制的有效性来评估计算机系统或网络安全性的方法。Web 应用程序安全测试仅侧重于评估 Web 应用程序的安全性。该过程涉及对应用程序的任何弱点、技术缺陷或漏洞进行主动分析。发现的任何安全问题将连同影响评估、缓解建议或技术解决方案一起提交给系统所有者。
什么是漏洞?
漏洞
是系统设计、实施、操作或管理中的缺陷或弱点,可被用来破坏系统的安全目标。
什么是威胁?
威胁
是任何可能损害应用程序拥有的资产(有价值的资源,例如数据库或文件系统中的数据)的任何事物(恶意的外部攻击者、内部用户、系统不稳定等)漏洞。
什么是测试?
测试
是证明应用程序满足其利益相关者的安全要求的操作。
编写本指南的方法
OWASP 方法是开放和协作的:
- 开放:每一位安全专家都可以带着他们在项目中的经验参与。一切都是免费的。
- 协作:在撰写文章之前进行头脑风暴,以便团队可以分享想法并制定项目的集体愿景。这意味着粗略的共识、更广泛的受众和更多的参与。
这种方法倾向于创建一个定义好的测试方法论,它将是:
- 持续的
- 可重现
- 严格的
- 在质量控制下
要解决的问题已完整记录和测试。使用一种方法来测试所有已知漏洞并记录所有安全测试活动非常重要。
什么是 OWASP 测试方法?
安全测试永远不会是一门精确的科学,可以定义应测试的所有可能问题的完整列表。事实上,安全测试只是在特定情况下测试 Web 应用程序安全性的一种适当技术。这个项目的目标
是收集所有可能的测试技术,解释这些技术,并保持指南更新。OWASP Web 应用程序安全测试方法基于黑盒
方法。测试人员对要测试的应用程序一无所知或知之甚少。
测试模型包括:
- 测试人员:谁执行测试活动
- 工具和方法:本测试指南项目的核心
- 应用:要测试的黑盒
测试可分为被动或主动:
被动测试
在被动测试
期间,测试人员试图理解应用程序的逻辑并以用户的身份探索应用程序。工具可用于信息收集。例如,HTTP
代理可用于观察所有 HTTP 请求和响应。在此阶段结束时,测试人员应该大致了解系统的所有访问点和功能(例如,HTTP 标头、参数、cookie、API、技术使用/模式等)。信息收集部分解释了如何执行被动测试。
例如,测试人员可能会在以下 URL 找到一个页面:https://www.example.com/login/auth_form
这可能表示应用程序请求用户名和密码的身份验证表单。
以下参数表示应用程序的两个访问点:https://www.example.com/appx?a=1&b=1
在这种情况下,应用程序显示两个访问点(参数a
和b
)。在这个阶段找到的所有输入点代表一个测试目标。跟踪应用程序的目录或调用树以及所有访问点在主动测试期间可能很有用。
主动测试
在主动测试期间,测试人员开始使用以下部分中描述的方法。
主动测试集已分为 12 类:
- 信息收集
- 配置部署管理测试
- 身份管理测试
- 认证测试
- 授权测试
- 会话管理测试
- 输入验证测试
- 错误处理
- 密码学
- 业务逻辑测试
- 客户端测试
- API测试