freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

用于安全测试的SAST与DAST有何不同?
2022-11-23 11:31:16
所属地 北京

应用程序安全测试(AST)通过各种工具、流程扫描应用程序以发现潜在安全问题。静态应用程序安全测试(SAST)和动态应用程序安全测试(DAST)是常用的安全测试方法,它们遵循不同的方法,在软件开发生命周期的不同阶段扫描应用程序代码及软件。

SAST遵循白盒测试方法来分析源代码、字节码和二进制文件,以识别可利用的漏洞和编码问题。

DAST是一种黑盒测试方法,通过在应用程序前端解析模拟的攻击有效负载,发现可利用潜在漏洞,不会暴露有关应用程序内部结构的信息。

DAST 和 SAST用于识别应用程序漏洞的测试机制

静态应用程序安全测试(SAST)工具对代码开发过程中引入的软件缺陷提供即时反馈。测试是在软件模型上使用预定义的规则执行,分析程序是如何在这些状态之间转换的,通过字符串匹配、数据流分析、控制流分析、抽象语法树的语义分析等手段进行路径遍历,完成对状态空间所有路径的近似分析,以发现代码中存在的潜在缺陷以及安全漏洞,并提供修复建议。

由于测试方法从软件开发生命周期的早期阶段开始实施,因此SAST有助于在编译软件之前识别编码缺陷。SAST 是一种首选的测试方法,并支持基于 DevSecOps 的左移方法来管理安全性。除了安全性,SAST还有助于确定代码质量、可重用性和可维护性。

静态应用程序安全测试发现的常见安全漏洞包括:

缓冲区溢出

跨站点脚本

SQL注入等

SAST 测试的优势包括:

早期漏洞检测:静态代码分析在开发过程开始时执行,测试有助于在编译应用程序代码之前检测应用程序代码中的错误。通过确保安全缺陷不会出现在生产环境中,SAST工具有助于实施主动保护和减少安全缺陷。

实时反馈:SAST扫描器执行快速扫描,可以在较短的时间内分析应用程序的整个代码库。除了对未发现的缺陷提供即时反馈之外,SAST工具还与各种开发管道工具无缝集成,而不影响核心功能。

准确性:SAST工具根据预定义的安全规则自动执行安全测试。这些工具比手动测试方法更快、更准确地识别出关键漏洞。

虽然 SAST 有助于安全编码实践,但分析静态代码的好处范围有限,因为它无法识别更多的运行时漏洞,并且报告存在一定的误报。

动态应用程序安全测试通过模拟恶意用户的操作来协调攻击,使用由外而内的方法评估应用程序。DAST 扫描通过输入可疑的用户输入并观察应用程序的响应来评估运行时漏洞。测试机制持续扫描部署在生产环境中的 Web 应用程序,帮助模拟应用程序的实际行为并识别影响典型用户体验的问题。由于DAST测试是在运行时环境中执行的,因此可以在新漏洞出现和发展时检测和识别它们。

动态分析应用程序代码发现的应用程序漏洞包括:

跨站点请求伪造

文件包含漏洞

Cookie操作

路径泄露漏洞等

DAST 测试的优势包括:

不受语言要求限制:DAST 测试不需要用于开发应用程序的编程语言知识。无论使用何种框架,DAST 工具都会根据输入和输出评估应用程序的行为,使其成为一种更强大的测试方法。

低误报率:DAST工具对应用程序环境执行端到端扫描,使安全研究人员能够检测和识别威胁应用程序安全和功能的安全漏洞。

不需要访问源代码:由于DAST扫描是通过应用程序前端发送恶意有效负载来执行的,企业可以利用第三方安全服务来执行测试,而不暴露应用程序代码。

虽然DAST工具评估应用程序代码中的各种漏洞,但它们无法定位代码库中安全问题的确切位置。DAST 扫描也无法嗅探应用程序堆栈中未执行的部分中的漏洞。

何时使用 SAST?

SAST有助于在关键漏洞进入生产环境之前检测和解决它们,建议开发人员使用 SAST 工具来帮助他们在编写软件时识别和检测编码错误。SAST 也适用于根本原因分析,这有助于在其他漏洞扫描检测到缺陷后确定代码行中问题的确切位置。

如何结合使用SAST和DAST?

由于DAST和SAST优势各不相同,DAST和SAST相互补充,可以一起使用来实现更健壮的测试方法。在代码开发阶段早期采用SAST工具,支持对应用程序使用的所有功能和包进行全面的安全分析。后续执行DAST测试,以评估攻击者如何利用生产中的漏洞。

SAST分析有哪些类型?

根据要测试的内容,SAST测试分析可分为:

源代码分析

字节码分析

原始二进制代码分析

参考来源:

https://crashtest-security.com/sast-dast/

# 安全测试 # SAST # 动态应用安全测试 # 静态应用安全测试
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录