SAST vs DAST:如何选择

中科天齐软件源代码安全检测中心

共 1274字,需浏览 3分钟

 ·

2023-05-15 11:14

在自动化安全测试中最常见的是静态应用程序安全测试(SAST)和动态应用程序安全测试(DAST)。这两种工具每个都解决不同的问题,并有自己的一套优缺点,但两者都旨在软件开发生命周期 (SDLC)中提高测试应用程序的速度、效率和覆盖路径。

什么是 SAST?

静态应用程序安全测试 (SAST) 是一种用于软件开发早期阶段的白盒测试,用于确保编码安全并帮助开发人员在代码投入生产之前检测漏洞。SAST直接面向源代码,从内到外分析应用程序,在编译代码之前检查软件中的缺陷。防止黑客利用易受攻击的代码,并使 DevOps 团队不必在部署应用程序后修复缺陷。

SAST具有许多明显的优势,包括能够精确定位问题代码并在开发早期发现缺陷。此外,SAST 可以自动化并轻松集成到持续集成和持续交付(CI/CD)管道中,以便更频繁地交付可靠的代码。

什么是DAST ?

动态应用程序安全测试(DAST)与 SAST 相反。DAST在流程的后期使用,DAST工具无法访问源代码,并且从外部测试应用程序,就像黑客试图入侵。因此,DAST通常被称为黑盒测试。

SAST 优缺点

使用 SAST 进行检测时,开发人员在代码库中生成逻辑和功能时会收到即时通知。SAST 扫描可识别可被利用的逻辑缺陷。例如,SQL 注入或跨站点脚本 (XSS) 攻击。SAST 的缺点会存在一定的漏报,并且对于配置错误无法查找。

DAST 优缺点

DAST 主要优势是能够跨多个服务器、环境(例如云和本地)、API 端点和其他基础架构扫描整个攻击面。但也有一些缺点,如DAST无法直接定位缺陷所在,开发人员很难确定导致出现问题的位置。而且由于它发生在SDLC的后期,所以会导致修复问题的时间成本增加。

SAST vs DAST:如何选择

测试软件更全面的方法是同时使用 SAST 和 DAST,在开发人员编码时运行SAST ,同时将DAST运用在部署到测试环境后扫描软件。

SAST 和 DAST 工具可帮助操作人员和开发人员了解软件中的关键安全问题。例如,SAST可以自动化并用于创建报告,开发人员可以依靠这些报告来快速定位源代码中的缺陷,然后可以对其进行修复。SAST工具可以生成实时报告,以便在编码过程中提供即时反馈。可以防止在软件开发生命周期 (SDLC) 期间出现一连串缺陷。SAST 可用于将 DevOps 和 DevSecOps 结合起来,提供应用程序漏洞的全面视图,并为开发人员提供修复建议。通过DAST工具查找SAST无法发现的安全漏洞,查找软件运行中可被利用的漏洞。

现代软件开发和 DevOps 流程对于快速开发代码和部署补丁至关重要。但这种快速的过程也意味着忽略一些软件漏洞。结合使用自动化 SAST 和 DAST 工具,有助于形成更安全的 SDLC,降低应用程序包含可致命漏洞的可能性。


来源:

https://www.beyondsecurity.com/blog/sast-vs-dast-partners-or-enemies/

浏览 60
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报