从一个主要处理功能需求测试,并没有什么真正的安全测试经验的QA团队开始,QA团队应该开始做哪些简单实用的事情来开始像攻击者一样思考?
我可以立即想到的几个例子是:
- 在文本输入字段中使用特殊字符,例如
'%$<>|"
等。 - 试图溢出文本字段,例如
aaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaa
- 边缘情况,边界条件
从一个主要处理功能需求测试,并没有什么真正的安全测试经验的QA团队开始,QA团队应该开始做哪些简单实用的事情来开始像攻击者一样思考?
我可以立即想到的几个例子是:
'%$<>|"
等。aaaaaaaaaaaaaaaaaaaaaaaaaaaa...aaa
我建议雇用某人(或某些开发人员可以这样做)来使用OWASP Top 10或WASC TC来教育QA 团队。如果你想要一步一步地指导安全测试应该是什么样子,你可以使用OWASP 测试指南,它会给你一个很好的画面。
为了增加 ewanm89 的答案,渗透测试的一般方法是通过将测试分为不同阶段来完成:
在规划阶段,您通常会设置攻击范围(要测试哪些系统和哪些部分)
主机发现、服务发现、网络拓扑映射、查找可以进一步测试的 http/html 表单字段。您需要收集哪些信息取决于您要执行的安全测试类型。
探测您在上一阶段发现的服务的漏洞。由于您很可能会在攻击阶段找到新的和更相关的信息,因此您将在发现和攻击阶段之间移动。即Web服务器后面的后端sql服务器。
在本节中,您将报告您的发现。最终报告通常包含以下部分:
以下链接详细描述了这种方法: Pentest 阶段
最终,这取决于正在测试的内容。专业攻击者做的第一件事是研究正在运行的内容,可能已经知道哪些弱点可能已经添加了哪些类型的弱点。
如果它与数据库后端有关,我将尝试 SQL 注入测试。对于 Web 服务,我将寻找 XSS 和 CSRF 攻击。缓冲区溢出可能只针对底层 Web 服务器/虚拟机,除非我们在这里讨论的是本机代码(一些家庭滚动客户端)。
没有一个答案,这取决于一个人在看什么。