在应用程序安全性测试领域,经常使用术语“代码覆盖率”和“漏洞覆盖率”。但他们真正的意思是什么?代码覆盖率是扫描的代码量,用于识别软件应用程序中的潜在漏洞。漏洞覆盖率是指软件代码中可能存在潜在威胁的特定缺陷或系统错误配置的数量。
您的AppSec团队应该实现100%的代码和漏洞覆盖吗?这是现实的吗?真正的答案是,“这取决于。”让我们看看各种考虑因素以及如何尽可能获得最佳覆盖率。
代码和漏洞覆盖范围:SAST,DAST等
软件开发人员和渗透测试人员使用复杂的软件保障测试工具来查找其软件中的漏洞。挑战在于没有一种工具(或工具类型)能够为整个目标应用提供足够的覆盖。当今市场上的应用程序安全测试工具在应用程序中发现了特定的弱点。尽管他们在识别特定漏洞方面可能非常出色,但没有一种解决方案可以做到这一切。
每个工具都专注于不同的语言和不同的弱点类(例如,缓冲区处理,文件处理,初始化和关闭以及数字处理)。虽然您可能对识别某些类型的弱点的测试结果感到欣喜若狂,但如果您只测试一小部分代码,则结果不能提供真实的表示。
静态应用程序安全性测试(SAST)工具(也称为白盒测试工具)在软件开发过程的早期阶段用于从内到外测试应用程序。它们逐行进行测试源代码,字节代码或二进制文件。
使用SAST工具,可以实现100%的代码覆盖率,因为它们可以访问应用程序的内部。
但是,即使可以访问所有代码的静态分析工具也无法提供完整的漏洞覆盖。事实上,专家表示,普通工具只能覆盖代码中14%的漏洞。因此,利用多种工具和相互补充的工具类型是行业最佳实践。
黑盒测试工具,也称为动态应用程序安全测试(DAST)工具,通常具有有限的代码覆盖率,基于他们能够识别的攻击面的多少以及它们在应用程序中模糊的输入以导致不同类型的漏洞。 DAST工具从外部进行测试。他们在应用程序运行时对其进行测试,尝试渗透它以发现潜在的漏洞,包括代码之外和第三方界面中的漏洞。
如果您想要实现全面的代码和漏洞覆盖,其他类型的工具(如交互式应用程序安全测试(IAST)工具,威胁建模工具,甚至手动测试)也是AppSec难题中的重要部分。即便如此,我们建议您更进一步,使用可帮助您理解这些AppSec工具的工具,并真正了解您的代码覆盖率是多么完整。
超越AppSec工具:使用代码覆盖工具提高可见性
虽然使用多个应用程序安全测试工具有许多优点,但也有一些障碍需要克服。使用每个额外的工具需要额外的成本,更多的时间来实现和运行它,以及比较不同结果集(例如,命名约定和严重性评级)的挑战。这是代码覆盖工具(如应用程序漏洞管理器和可视化工具)提供无与伦比的优势的地方。
应用程序漏洞管理工具将商业和开源工具的结果进行关联和规范化。它提供了一组统一的结果,可以更好地覆盖源代码中的潜在漏洞,并更好地评估组织的整体企业风险。
这一工具可处理重复数据删除,补救管理,报告和合规性检查。工作流集成选项允许您的开发人员在解决应用程序漏洞问题的同时保留其首选环境 - Eclipse,Jira,Jenkins和其他环境。
Code Dx应用程序漏洞管理工具还提供应用程序漏洞关联(AVC),通常称为混合分析。这是指SAST结果(识别潜在漏洞)与DAST结果(确定哪些威胁实际可利用)的组合。这使您可以确定代码中存在哪些威胁,并且可以被外部攻击者利用,因此您可以先解决这些威胁。
Code Dx团队还开发了一个免费的OWASP解决方案,称为Code Pulse。这种开源渗透测试可视化工具提供了对实时代码覆盖率分析测试的深入了解。它可以帮助您的测试团队评估用于应用程序安全性测试的每个工具的性能和覆盖范围。
它通过对应用程序攻击面的可视化说明以及渗透测试如何与之交互来实现。因为它在您的应用程序处于活动状态时实时运行,所以您可以准确地确定渗透测试涵盖了代码的哪些部分,以及哪些部分不是。
Code Pulse还会显示每个工具涵盖应用程序的哪些部分,因此您可以看到存在重叠的位置 - 更重要的是,哪里有间隙。这有助于您评估代码和漏洞覆盖率,并确定是否需要在测试过程中添加不同的工具。您可以快速比较所有工具的覆盖范围,查看尚未测试的任何代码,并立即查看扫描设置调整的结果。
总之,SAST工具可以提供100%的代码覆盖率(与DAST工具不同),但它们不能提供100%的漏洞覆盖率。为了尽可能接近100%的漏洞覆盖率,我们建议结合使用SAST,DAST和其他AppSec测试工具来获得全面的覆盖率。虽然这似乎是一项艰巨的任务,但应用程序漏洞管理器可帮助您了解这些工具的结果。像Code Pulse这样的可视化工具可以让您轻松查看覆盖的位置以及放大保护所需的位置。
原文:https://codedx.com/100-code-vulnerability-coverage-realistic/
本文:
讨论:请加入知识星球或者小红圈【首席架构师圈】
最新内容
- 20 hours ago
- 23 hours ago
- 23 hours ago
- 3 days 14 hours ago
- 3 days 21 hours ago
- 3 days 22 hours ago
- 3 days 22 hours ago
- 3 days 22 hours ago
- 1 week 1 day ago
- 1 week 1 day ago