动态应用程序安全测试 (DAST) 是一种黑盒安全测试方法,从外部对应用程序进行测试。使用 DAST 的测试人员会在应用程序运行时检查应用程序,并尝试像攻击者一样破解它。另一方面是静态应用程序安全测试(SAST),它是一种白盒测试方法。使用 SAST 的测试人员从内部检查应用程序,搜索其源代码以查找可能存在安全漏洞的情况。
Acunetix 是一款动态扫描仪,我们坚信 DAST 和黑盒方法。这并不意味着白盒方法可以被忽视。这两种方法都有其优点和缺点,并且都应该成为每个有效的安全计划的一部分。本文旨在强调 DAST 的优势以及 Acunetix 如何解决其弱点。有关 SAST 的更多信息,您可以查阅OWASP wiki。
安全测试最重要的属性之一是覆盖率。为了评估应用程序的安全性,自动扫描仪必须能够准确地解释该应用程序。
SAST 扫描仪不仅需要支持语言(PHP、C#/ASP.NET、Java、Python 等),还需要支持所使用的 Web 应用程序框架。如果您的 SAST 扫描仪不支持您选择的语言或框架,您在测试应用程序时可能会遇到困难。
另一方面,DAST 扫描仪在很大程度上与技术无关。这是因为 DAST 扫描器与外部应用程序交互并依赖于 HTTP。它使它们可以与任何编程语言和框架一起使用,包括现成的和定制的。
应用程序代码只是一系列复杂的互连 Web 服务器、代理、数据库、缓存等的构建块之一。假设 Web 安全测试应该只关注代码是一种幼稚的 Web 安全方法。错误配置会暴露很大的攻击面。
DAST 方法在这里也获胜。由于 DAST 测试是从外部完成的,因此扫描仪非常适合测试 Web 应用程序的数百个潜在配置问题。
DAST 扫描仪首先抓取 Web 应用程序,然后再进行扫描。这使得扫描器可以找到 Web 应用程序中页面上所有暴露的输入,然后对这些输入进行一系列漏洞测试。SAST 扫描器在代码覆盖率方面具有优势,因为扫描器可以访问应用程序代码。这意味着它知道所有应用程序输入,包括未公开的隐藏输入。
为了解决这个问题,开发了灰盒方法。交互式应用程序安全测试 (IAST)结合了黑盒和白盒方法的优点。Acunetix 是首批使用此方法的 DAST 解决方案之一。
。
Acunetix AcuSensor(作为所有 Acunetix 产品的标准配置)的工作原理是在应用程序后端安装一个传感器,该传感器在 DAST 扫描期间激活。然后,传感器将有关执行代码的实时信息转发回扫描仪。这还包括扫描仪无法使用纯黑盒方法获取的隐藏输入、隐藏文件和配置信息。
人们通常认为 DAST 扫描器只能测试带内漏洞(执行将立即响应返回到扫描器的测试)。大多数 DAST 扫描器可能都是这种情况,但 Acunetix 多年来一直能够测试带外漏洞。
2013 年,Acunetix 推出了AcuMonitor,这是第一个支持带外漏洞测试的商业产品。此类漏洞测试现在称为带外应用程序安全测试 (OAST)。OAST技术可用于检测多种带外漏洞,例如盲跨站脚本(BXSS)、带外SQL注入(OOB-SQLi)、带外远程代码执行等此类别中最有趣的是:服务器端请求伪造 (SSRF),其中包括XML 外部实体 (XXE)漏洞。
误报是指测试结果错误地表明存在漏洞,而实际上并不存在的情况。误报是每个首席信息安全官的噩梦,也是自动化安全测试的常见问题,尤其是在 SAST 工具的情况下。它们不仅令人讨厌,而且还大大降低了工具的实用性。您最终可能会花费更多的时间来清除误报而不是修复漏洞。它通常会导致禁用多个安全测试,只是为了避免误报并造成错误的安全感。
与 SAST 相比,DAST 解决方案报告误报的可能性较小。如果应用程序可以根据扫描器的意愿执行任意 SQL 查询,那么毫无疑问 – 我们知道该应用程序容易受到 SQLi 的攻击。IAST 的引入将误报率降低到接近于零。
SAST 工具还使得重现和演示某些安全问题变得更加困难。DAST 工具可以为您提供 HTTP 请求,该请求可以在您选择的手动工具中重播。这使您可以演示和评估漏洞对业务的影响。
许多开发人员认为 DAST 工具不能与问题跟踪器和持续集成管道等系统开发生命周期 (SDLC) 工具很好地配合使用。这不是真的; DAST 工具可以轻松、优雅地与流行的问题跟踪器(例如 Atlassian JIRA、GitHub 和 Microsoft TFS)集成。
此外,与任何其他类型的自动化测试工具一样,DAST 解决方案可以与 Jenkins 等 CI 平台集成。使用 Acunetix,您甚至可以安装Jenkins 插件:构建可以根据您设置的参数通过或失败。您还可以直接从 Jenkins 本身生成报告。当然,如果您不使用 Jenkins,您始终可以使用 Acunetix API 创建自己的集成。
进行演示以动态了解您的应用程序安全性。
高效的 DevSecOps/SecDevOps SDLC 环境必须包括应用程序安全测试。SAST 和 DAST 工具在开发过程中都有特定的位置。以下是我们构建安全 Web 应用程序 SDLC 的最佳实践建议。
第 1 步:从计划扫描开始在 SDLC 中包含安全测试之前,您应该使用计划扫描来保护您的临时环境。您只能使用 DAST 工具来执行此操作 - SAST 不适合此目的。我们建议每周进行一次完整扫描,每天进行连续/增量扫描。 | |
步骤 2:将 DAST 包含在 SDLC 中如果您开发 Web 应用程序并且希望降低消除漏洞的成本,请将 DAST 集成到您的 CI/CD 管道中。例如,您可以安装 Acunetix 插件来自动扫描每个 Jenkins 构建。这对于所有管道和所有开发语言都是可能的。 | |
步骤 3:在 SDLC 中包含 IAST 或 SAST如果您希望开发人员了解有关该漏洞的更多信息,您可以使用基于 DAST 的 IAST(例如,Acunetix AcuSensor,可用于 PHP、Java 和 .NET)。您还可以为所有开发语言购买单独的 SAST/IAST 产品。请注意,SAST 将为开发人员提供更多信息,但也会导致更多误报。最终,由于在检查误报上浪费了过多的时间,可能会导致成本增加而不是减少。 |
上一篇:没有了!
下一篇:没有了!