什么是动态应用程序安全测试? 和静态应用程序安全测试有什么区别?

动态应用程序安全测试 (DAST) 是在运行时分析 Web 应用程序以识别安全漏洞或缺陷的过程。在 DAST 中,测试人员在应用程序运行时检查应用程序,并试图像黑客一样攻击它。DAST 工具提供有关应用响应的信息,帮助开发人员识别和消除威胁。

DAST是如何工作的?

DAST 是一种黑盒测试,是从应用程序外部执行的,而不查看内部源代码或应用程序架构。因此,该测试使用与黑客相同的技术来识别漏洞。DAST 可能会采用错误注入技术来发现威胁,例如跨站点脚本或结构化查询语言注入。大多数 DAST 工具仅测试支持 Web 的应用程序的公开的 HTTP 和超文本标记语言接口。但有些是专门为非 Web 协议设计的,例如远程过程调用和会话启动协议以及数据格式错误。

DAST 工具在开发期间和开发后持续扫描应用程序。DAST 在扫描 Web 应用程序之前对其进行爬行,使其能够找到应用程序内页面上的每个公开输入,然后对每个输入进行测试。

在应用程序执行后执行的测试是完全自动化的,企业能够在风险成为严重攻击之前及时识别和解决风险。DAST工具会在发现漏洞时自动向开发或测试团队发送警报。

虽然DAST可以让安全团队及时了解web应用程序在生产中的行为方式,但公司通常会部署其他形式的安全测试,例如静态应用程序安全测试(SAST)和应用程序渗透测试。应用程序渗透测试为攻击者如何侵入特定的web应用程序提供了一个真实的演示,而SAST让开发人员在软件开发生命周期(SDLC)的早期发现应用程序源代码中的漏洞。

DAST有什么好处?

DAST 工具的主要好处是企业能够从黑客的角度更好地了解其 Web 应用程序的行为方式。这使企业能够通过消除弱点并在恶意攻击发生之前阻止它们来节省修复时间和金钱。还使企业能更准确地模拟黑客行为。

DAST 可以分析运行时无法通过静态分析识别的问题,例如身份验证、服务器配置问题和仅在已知用户登录时可见的缺陷。

此外,许多 DAST 工具与编码语言无关,并且从外部与应用程序交互。这使得 DAST 工具能够与任何编程语言和框架一起使用。

DAST的局限性是什么?

DAST 工具可能会产生误报。漏洞检测结果可能并非是真实的。另外,所报告的漏洞在某些场景中可能是一个真正的威胁,但可以让经验丰富的代码分析人员识别风险是否适用于企业具体情况。

DAST 工具不能检测源代码,没有完整的代码覆盖率,这样无法在源代码中找到问题的确切位置。DAST通常在SDLC的后期使用,因此开发前期的安全漏洞问题需要通过SAST来进行查找。

DAST 与 SAST

DAST经常与SAST一起使用,这两个测试工具在软件开发安全流程中的不同领域,同时使用两种工具能进行更全面的安全评估。DAST的黑盒安全测试方法从外部进行分析,而SAST的白盒测试方法,从内部检查应用程序。

SAST不像DAST那样查找运行时错误,而DAST不像SAST那样标记特定的编码错误,并且能精确到代码行。DAST涉及操作测试,而SAST查看源代码并推测安全风险的位置,或者发现可能存在潜在漏洞的设计和构造缺陷。

DAST和SAST的重要性

随着 Web 应用程序使用量的增加和应用程序变得越来越复杂,网络犯罪的风险也在增加。Web应用程序安全性应该是SDLC所有阶段的优先事项。通过SAST和DAST工具的检测,能够在应用程序开发早期发现缺陷或安全漏洞并及时修复,从而保护应用程序的良好运行,避免受到外部攻击。

posted @ 2024-08-08 14:31  中科天齐软件原生安全  阅读(53)  评论(0编辑  收藏  举报