自动化工具与手动审查
信息安全
渗透测试
应用安全
自动化测试
代码审查
人工审核
2021-08-31 20:31:41
4个回答
这里有一些很好的答案,但我认为缺少一些要点:
- 自动工具完成的速度比手动测试要快几个数量级。
- 自动工具涵盖了广度,但您需要手动测试深度。(攻击/测试范围以及探测所有接口/代码行的广度)。
- Autotools 非常适合常见的低挂水果,但如果您需要提高安全级别,则需要手动进行更深入的操作。
- 手动测试不可能覆盖系统的每一部分(无论是代码行、反编译的程序集、网页和参数、Web 服务等),而自动工具非常适合。
- 正如@Andreas 所说,有时会有一个复杂的向量,这是自动工具无法想象的,但对专家来说是显而易见的。
- Autotools 无法测试业务逻辑缺陷,它们只寻找技术缺陷——以及更常见的缺陷。
- 手动测试不一致。
- 手动测试取决于单个测试人员的技能(哦,太可怕了!!),但您确实需要知道您在寻找什么。
- 同样,通过手动测试,您无法进行回归测试。
- Autotools 会自动更新最新的漏洞利用,但人类通常不会记得他大约两年前读过的所有向量......
- 另一方面,自动工具每隔一段时间只会更新一次,但人类可以了解一项新技术并在第二天实施。
- Autotools 通常包含非常高百分比的误报(从 30% 到超过 90%,具体取决于方法和产品选择)。
- Autotools 通常带有一个不错的报告套件。
底线?它们都有一席之地,都应该在正确的上下文中使用。对于低质量的应用程序,首先要修复自动工具可以找到的所有内容,并且不要费心投资进行适当的手动审查。当您提高安全级别并摆脱低悬的果实时,请远离并执行深入的手动审查。而且,当您进行手动测试时 - 第一步是运行自动工具,过滤结果,然后开始真正的测试。
自动化优点:
- 快速 - 每次检查;
- 不需要注意(大部分);
- 可调度和报告;
自动化的缺点:
- 不包括智能攻击向量;
- 并不总是确保完整的过程控制;
手动方法基本上将自动化的优点/缺点转换为它们的缺点/优点。但是手动方法需要对主题有更深入的了解。
半自动化就是答案。人类智能驾驶自动化工具是最大化测试覆盖率和深度的最佳选择,不是非此即彼。
有效的方法: 驱动工具的聪明人。
失败的地方: 其他一切。
自动化工具会遗漏一些事情并错误地报告事情,因此需要手动工作。
因此,所有自动化工作都会产生更多的手动工作。
您可能还想在White-box vs. Black-box上查看我对这个问题的回答,我在其中解释了文献中规定的最佳实践。
其它你可能感兴趣的问题