SAST 与 DAST

DAST 和 SAST 工具采用不同的方法来测试应用程序安全性,在软件生命周期的不同阶段工作,并且具有不同的优势和局限性。

SAST 工具在源代码中查找缺陷漏洞,通常在开发早期。

DAST 工具扫描正在运行的应用程序中的漏洞,通常在开发后期和生产中使用。

应用程序安全性的全面方法包括SAST和DAST。

为了在不断变化的网络威胁环境中保护复杂的Web应用程序,开发团队通常需要多个应用程序安全工具。其中两个最重要的工具是静态应用程序安全测试(SAST)和动态应用程序安全测试(DAST)。在许多情况下,两者协同工作发挥的作用更强大。

什么是 SAST?

SAST也被称为白盒测试。SAST工具通过从内部检查web应用程序来测试安全性,并通过在开发过程中扫描应用程序源代码来查找代码缺陷和漏洞。SAST对于在软件开发生命周期(SDLC)的早期阶段查找和修复代码漏洞很有价值。由于SAST工具直接访问源代码,因此它们能够精确地找出存在漏洞的代码行。

需要注意的是,SAST工具需要支持所检测的代码语言,如果一个web应用程序是用多种语言编写的,那么需要考虑SAST工具是否支持所涉及的语言种类。

什么是DAST?

DAST 也称为黑盒测试。DAST工具通过测试已经编写的 Web 应用程序(在运行时)来查找漏洞。他们向运行中的应用程序发送数据,模仿恶意用户试图利用漏洞并破坏系统的多种方式。

DAST不需要访问源代码,并且可用于测试可通过Web访问的任何应用程序的整体。也因此DAST还可以测试应用程序组件的安全性,如插件和应用程序编程接口(API)。DAST 还可以检测运行时问题、配置错误、身份验证错误和其他不安全的 Web 应用程序行为。

由于DAST不检查源代码,因此通常不能直接在代码中定位缺陷。

DAST和SAST有什么共同点?

SAST 和 DAST 在自动化 Web 应用程序安全测试工作流程中发挥着关键作用。已实施持续集成和持续部署 (CI/CD) 和 DevSecOps 方法的组织需要适应软件的频繁更改。更重要的是,组织可能同时运行数十个(甚至数百个)Web应用程序,并且某些应用程序可能拥有数百万用户分散在世界各地。

在这种情况下,手动进行代码审查和渗透测试对于敏捷开发的规模和速度来说耗费时间和成本。开发人员花费大量时间处理安全漏洞,占用了用来改进应用程序的时间。

SAST 和 DAST 工具有助于自动执行安全测试,快速识别漏洞并确定漏洞的优先级,并推荐缓解措施。这使得Web应用程序安全测试更加高效,同时还为开发团队提供了需要优先解决的问题列表。

posted @ 2022-12-30 15:51  中科天齐软件原生安全  阅读(315)  评论(0编辑  收藏  举报