如何规划 Web 应用程序的安全测试?

软件测试 手动测试 Web应用程序 安全测试 测试计划
2022-01-08 13:58:29

安全测试需要开箱即用,它没有明确的测试用例,而且不可重复,这意味着一遍又一遍地运行相同的操作集永远无法保证安全性。

所以我想知道,如何计划呢?让测试人员有时间入侵网站,然后记录漏洞不是更好吗?

要求制定详细的安全测试计划以及其中包含哪些内容是否合理?

4个回答

首先,您的产品可能具有某种与安全相关的规定:例如身份验证、授权、密码恢复、防止一个用户看到另一个用户的数据等等。对于那些将有正面和负面的测试用例。

除此之外,还有更复杂的东西。有一些工具可用于扫描网站是否存在安全问题(例如Nessus),您应该计划使用它们。有些公司会为您进行安全测试。他们可能会使用专门从事此类事情的相同工具和/或员工黑客。这是一门非常专业的学科,大多数 QA 人员没有技能或最新知识来完成这项工作。

答案还取决于有人闯入您的网站的风险。

上述答案是正确的,根据安全性的重要性,您可能最好让一些安全专家参与进来。

除此之外,为了让您自己动手,我用来涉足安全测试/道德黑客的一些有用资源是:

https://www.owasp.org/index.php/Main_Page
http://google-gruyere.appspot.com/
http://www.hackthissite.org/pages/index/index.php
"如何破解网络软件”詹姆斯·惠特克

我在 googles gruyere 和朋友网站上练习,为他们提供有关其安全性的反馈 - 你会发现一些有趣的漏洞,这些漏洞实际上并没有那么好隐藏。

我不是安全测试人员,但是,您的测试计划会有所不同,具体取决于您是否需要维护 Web 应用程序的安全状态,或者您是否正在进行一次性的“此应用程序是安全的”测试集。

在这两种情况下,我确实认为您需要计划 - 但对于一次性测试集,您不需要计划可重复性。

我会查看常见漏洞和潜在危害的类别,并使用这些矩阵来确定测试的优先级:从常见的、高破坏性的潜在场景开始,一直到破坏性较小的场景,然后是不太常见的场景。

你的计划应该是一个活的文档——一个用来尝试破坏应用程序安全性的技术模板。这样,您就不会意外忽略测试中的某些内容,并且您的测试用例会记录您使用的方法和收到的结果。

我可能会查看STRIDE并为每个威胁区域分配给定的时间,但是分配的持续时间将取决于测试人员的技能和经验。

如果团队中没有任何经验丰富的安全测试人员,那么您可能不会从内部执行此操作中获得任何真正的价值,这确实是一个专业领域。您可以对每个威胁区域进行风险评估,并根据结果接受风险。