
如何在 Python 和 Flask 中使用 IP API 查找地理位置?
动态应用程序安全测试(也称为 DAST)是一种测试应用程序运行版本以识别潜在安全漏洞的方式。借助 DAST,扫描程序会向您的应用程序发送模拟恶意攻击者的请求,并评估从应用程序收到的响应以判断是否存在安全漏洞。在运行模拟攻击测试套件时,任何潜在漏洞都会被记录下来以供审查。
DAST 扫描器长期以来一直是企业安全团队、软件工程团队和渗透测试人员最喜爱的工具。这种形式的测试可以发现您的团队在软件交付周期中引入的漏洞以及应用程序中使用的开源组件中可利用的漏洞。它通常与静态应用程序安全测试 (SAST) 和软件组合分析 (SCA) 工具一起使用。DAST 以其低误报率和精确显示应用程序安全风险而闻名。
DAST 扫描器首先指向运行应用程序的主机。这可能是一个公开的网站或 Web 应用程序,但通常建议针对预生产环境运行 DAST 扫描。鉴于扫描器模拟攻击者,它可能会修改或删除生产环境中的数据,这会产生明显的负面影响(在我们的文章中详细了解为什么不应该针对生产环境运行 DAST 以及如何为 DAST 扫描植入数据库)。
一旦扫描仪指向主机,HTML 蜘蛛就会识别所有可能的路径和操作。根据工具的不同,它还可能使用 AJAX 蜘蛛来处理单页应用程序,使用 OpenAPI 规范来测试您的 REST API,甚至查看 GraphQL 自省端点来识别您的 GraphQL API 查询树。理想情况下,您的工具应尽可能多地覆盖您的应用程序和支持 API,并且应以自动化的方式进行。
然后,扫描程序开始运行一套测试,向所有已识别的路径/端点发送请求,并寻找可能表明存在安全漏洞的响应。任何发现都会显示在 DAST 扫描程序的报告或平台中,理想情况下还会显示开发人员修复漏洞所需的相关信息。
DAST 扫描器无需直接查看应用程序的源代码即可发现各种安全漏洞。这些漏洞包括 SQL 注入、跨站点脚本 (XSS)、跨站点请求伪造 (CSRF) 以及许多其他漏洞。这些扫描器可以发现大多数 OWASP Top 10 漏洞。要查看 DAST 扫描器识别的漏洞类型的示例,请查看开源 ZAP(最流行的应用程序安全测试工具)运行的测试。
DAST 扫描器未发现 OWASP Top 10 漏洞,是因为这些漏洞无法在通用自动化测试中找到。不过,一些 DAST 工具引入了自定义脚本支持,允许测试复杂的业务逻辑或识别特定于您的应用程序的漏洞。例如,身份验证或跨租户检查失败。
动态应用程序安全测试的一个好处是入门简单。借助工具内的自动化测试,您只需将扫描仪指向主机即可开始。
无论您是想扩展企业应用程序安全程序,还是刚开始进行首次应用程序安全测试,都有解决方案可以为您提供支持。以下信息提供了该领域领先的解决方案列表以及选择工具时需要考虑的标准
市场上有许多 DAST 工具,包括几个开源或免费选项。以下是可用于测试的该领域领先工具的列表。
一旦您决定开始进行动态应用程序安全测试,这个过程中最困难的部分可能是决定哪种工具适合您。以下是选择工具时需要考虑的几点。
考虑一下您希望多久启动一次扫描。以下选项是最常见的扫描方法。
应用程序安全的未来是自动化的,并与 DevOps 管道(许多人称之为 DevSecOps)集成。借助 CI/CD 管道中的自动安全扫描,可以带来许多好处,从而更快地发现和修复安全威胁,包括:
尚未准备好采用应用程序安全自动化的团队可能会选择定期对应用程序进行扫描。虽然在外部基础设施上运行扫描程序并启动扫描可能更简单,但这种动态应用程序安全测试方法存在一些问题:
手动扫描通常很容易上手,但缺乏跨团队的可扩展性。此外,对于通常部署修复程序的个人来说,这些扫描的结果不太可重现。然而,从自动测试中继承共享配置的手动扫描在验证修复程序方面非常有益。
如果您的应用程序需要用户登录,您将需要一个支持身份验证扫描的扫描仪。如果您使用的是自动或计划的扫描仪,这可能会更加困难。您需要确保供应商支持您的身份验证扫描形式,例如基于 cookie、外部令牌和持有者令牌。
如上所述,与生产应用程序相比,扫描预生产有很多好处,包括能够在漏洞生效之前捕获漏洞,不必绕过速率限制器、防火墙和 WAF,以及缩短修复时间。
虽然运行这些扫描的能力部分取决于公司的部署流程,但构建用于支持预生产扫描的扫描仪具有价值。
在选择工具时,首要考虑因素之一应该是使用该工具的人。虽然测试和修复应用程序安全漏洞和漏洞通常需要安全团队和开发团队的共同努力,但以开发人员为中心的安全工具正日益流行。
这些工具越来越多地被使用,使开发人员能够在其现有工作流程中做出分类决策并部署修复,而安全团队的责任则转向基于风险的指导监督。
过去几十年来,应用程序安全测试格局发生了变化,API 成为主要的潜在攻击媒介。如果您针对现代应用程序运行应用程序安全测试,请确保您选择的工具支持 API 测试作为该工具的一流部分。
此外,如果您使用GraphQL作为技术堆栈的一部分,则需要确保您的 DAST 工具支持 GraphQL API 测试。您还需要确保该工具支持扫描联合 GraphQL 实现。
近年来,基于React或Angular等框架构建的单页应用程序 (SPA)迅速流行起来。如果没有静态 DOM,传统的 HTML 爬虫就无法识别要针对其运行动态应用程序安全测试的各种路径。测试 SPA 需要支持 AJAX 爬虫的工具以及可以扫描底层 API 的工具。
在确定正确的应用程序安全测试工具时,您应该考虑组织的部署模型。大多数公司会选择 SaaS 解决方案,但有些公司仍然需要本地解决方案。
动态应用程序安全测试是确保您交付安全的应用程序并避免违规风险的绝佳方法。入门相对简单,并且有许多免费和开源工具可支持您的测试。DAST 通过帮助识别安全漏洞和生成高质量的漏洞评估报告,为开发人员提供了显着的安全优势。这里的要点是开始测试!
文章来源:Dynamic Application Security Testing (DAST) Tools Overview & Guide