从哪里开始安全测试?

信息安全 应用安全 Web应用程序
2021-09-06 01:02:25

从一个主要处理功能需求测试,并没有什么真正的安全测试经验的QA团队开始,QA团队应该开始做哪些简单实用的事情来开始像攻击者一样思考?

我可以立即想到的几个例子是:

  1. 在文本输入字段中使用特殊字符,例如'%$<>|"等。
  2. 试图溢出文本字段,例如 aaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaa
  3. 边缘情况,边界条件
4个回答

我建议雇用某人(或某些开发人员可以这样做)来使用OWASP Top 10WASC TC来教育QA 团队如果你想要一步一步地指导安全测试应该是什么样子,你可以使用OWASP 测试指南,它会给你一个很好的画面。

为了增加 ewanm89 的答案,渗透测试的一般方法是通过将测试分为不同阶段来完成:

  • 规划
  • 发现/信息收集
  • 攻击
  • 报告

规划

在规划阶段,您通常会设置攻击范围(要测试哪些系统和哪些部分)

发现/信息收集

主机发现、服务发现、网络拓扑映射、查找可以进一步测试的 http/html 表单字段。您需要收集哪些信息取决于您要执行的安全测试类型。

攻击

探测您在上一阶段发现的服务的漏洞。由于您很可能会在攻击阶段找到新的和更相关的信息,因此您将在发现和攻击阶段之间移动。即Web服务器后面的后端sql服务器。

报告

在本节中,您将报告您的发现。最终报告通常包含以下部分:

  • 执行摘要
  • 详细调查结果
  • 发现的漏洞风险等级
  • 商业冲击
  • 建议
  • 结论

以下链接详细描述了这种方法: Pentest 阶段

你可以做的比从开源安全测试手册开始更糟糕(它是开源的手册,而不是目标)。

查看您当前的列表,代码(尤其是但不限于 SQL)注入应该在您的列表中。

如果它是基于 Web 的应用程序,那么您应该查看会话固定/劫持,XSS。一定要检查arachni

如果您要解决 DDOS,请查看 sloloris 和节流响应扼杀。

让人们像攻击者一样思考是很棘手的(而且它的好处值得怀疑——攻击者只需要一个弱点,防御者必须涵盖所有弱点)。也许给他们一些蜜罐来磨练他们的技能?

最终,这取决于正在测试的内容。专业攻击者做的第一件事是研究正在运行的内容,可能已经知道哪些弱点可能已经添加了哪些类型的弱点。

如果它与数据库后端有关,我将尝试 SQL 注入测试。对于 Web 服务,我将寻找 XSS 和 CSRF 攻击。缓冲区溢出可能只针对底层 Web 服务器/虚拟机,除非我们在这里讨论的是本机代码(一些家庭滚动客户端)。

没有一个答案,这取决于一个人在看什么。