这个章节介绍OWASP WEB应用测试方法论,以及说明如何在WEB应用中使用合适的安全测试方法发现和证明漏洞。
安全测试是通过有条不紊检验和验证有效的应用安全控制来评估计算机系统或网络系统安全性的方法。整个流程包括积极分析应用的弱点,技术缺陷,或者漏洞。任何被发现的安全问题将被提交给这个系统的所有者,同时被提交的还有对此安全问题所产生影响的评估,以及减小或降低这个问题所产生风险的建议书或技术解决方案。。
漏洞是在系统设计,实现,或操作管理中可以利用的一个缺陷或者一个弱点,它能破坏系统安全策略。
威胁是利用漏洞产生的潜在攻击,可能危害应用资产(有价值的资源,如数据库中的数据或文件系统的数据)。
测试就是证明一个应用的安全需求与它的利益相符合的行为。
OWASP的方法是开放与协作:
这种方法创建的测试方法论有着如下特点:
被提及的问题都已经完全文档化和被测试。使用一种方法论去测试所有已知漏洞和归档所有安全测试活动是十分重要的。
安全测试从不是一门精准的能够定义所有可能需要测试的问题的科学。事实上,安全测试只是适合在一定环境下测试WEB应用安全的一种技术。这个项目的目的是收集所有可能的测试技术并进行解释然后保持更新。OWASP网页应用安全测试是基于黑盒测试方法。测试人员不知道或者仅仅知道一点关于被测试的系统。
测试的模型包括:
测试分成2个阶段:
在被动模式里面,测试人员尽力去明白应用的逻辑并使用系统。可以用工具进行信息的收集。比如http代理器观察http的请求和响应。在这个阶段的最后,测试人员应该了解这个应用所有的控制点(入口)(比如Http头,参数,cookies)。信息收集章节具体解释了如何执行被动模式的测试。
比如,测试者应该看如下的信息:
https://www.example.com/login/Authentic_Form.html
这个展示了一个认证的表单,需要一个用户名和密码。
下面的参数展现了两个测试入口点:
http://www.example.com/Appx.jsp?a=1&b=1
在这种情况下,应用表明了2个入口(参数a和b)。 所有的在这个阶段发现的入口表明了一个测试的点。一个应用的目录树形数据表以及所有的点对于第二个阶段都是很有用的。
在这个阶段,测试者开始用下面描述的方法测试。
我们将主动测试分成11个子类共91项测试: