什么是SAST,什么是 DAST?
SAST(静态应用程序安全测试)是一种白盒测试方法,它直接检查应用程序源代码,可以在编码阶段查找已知/未知的安全漏洞。DAST(动态应用程序安全测试)是一种黑盒测试方法,从外部对正在运行的应用程序进行测试,模拟黑客攻击探测运行时漏洞。
简而言之,DAST检查运行中的web应用程序,而SAST检查其静态代码。
什么是 IAST?
交互式应用程序安全测试 ( IAST),有时称为灰盒测试,介于动态分析(白盒测试)和静态分析(黑盒测试)之间。IAST作为一个安全测试工具,它向SAST添加了一些动态测试能力,或者是一种向动态测试添加源代码洞察的方法。
SAST与DAST覆盖
覆盖率是安全测试的一个基本属性,无论是在一个特定的应用程序中还是在整个Web应用程序环境中。
SAST面向应用程序的源代码,可以覆盖所有可执行路径,分析更稳妥而全面。对于DAST,因为它们从外部测试应用程序并检查它们的行为,可以检测复杂的内存处理错误,例如超出数组范围的索引编制和内存泄漏。但不能保证完整的代码覆盖率。
SAST 与 DAST 的安全测试准确性和效率
误报始终是应用程序安全测试中的热门话题,既可以理解为错误结果,也可以理解为有效但不可操作的发现。对于SAST工具来说,除了工具本身特性导致的误报,一些时候,存在的缺陷可能导致漏洞利用链,这种缺陷也经常被认为是无关紧要的问题而被识别为误报。DAST所识别出的漏洞误报相对较低,因为发现的问题通常为实际被利用的漏洞或缺陷。
使用 DAST 和 SAST 查找漏洞
举一个具体的例子,假设应用程序根据来自 Web 表单的用户输入从 SQL 数据库中获取数据。SAST工具可能会识别执行此操作的源代码片段,并警告开发人员特定代码行中的 SQL 查询以不安全的方式组装,并可能导致SQL 注入。DAST 工具将在页面上找到 Web表单并运行安全检查以模拟实际的 SQL 注入攻击。如果测试攻击成功,扫描程序将报告应用程序在该特定页面上存在 SQL 注入漏洞。
将 SAST 和 DAST 构建到 SDLC 中
在软件开发生命周期 (SDLC)的早期阶段进行安全测试对于在漏洞进入后期阶段甚至生产之前发现和修复漏洞至关重要。源代码分析是在早期开发过程中发现和消除安全缺陷的有效方式。SAST通常很容易与开发环境和工作流集成,无论是作为 IDE 检查器还是独立的分析过程。结合DAST,IAST等安全测试,有助于大大提高应用程序的安全性。
本文作者:中科天齐软件安全
本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/184763.html