白盒、黑盒、SAST、DAST 傻傻分不清?
HDC 期间可参与华为开发者大会 Check 新人抽奖活动,活动链接在文末。无线鼠标等快来参与!
白盒测试、黑盒测试、静态应用程序安全测试(SAST) 和 动态应用程序安全测试(DAST)是软件测试和安全领域中常见的术语。很多小伙伴分不清这四者到底有啥区别和关联,本文将做个简单的解释与区分。
白盒测试
白盒测试也称为结构测试,目的是检查代码的内部结构,包括控制流程、算法和数据处理。白盒测试对开发人员和 QA 测试人员来说是一种重要的测试方法,因为它可以发现源码中的漏洞和缺陷。白盒测试的优势在于可以全面而深入地检查代码的内部结构,包括有意或无意的缺陷。
黑盒测试
黑盒测试也称为功能测试,是一种基于需求规范的测试方法,和白盒测试不同的是,它不需要知道软件系统内部的工作原理或代码逻辑。黑盒测试重点关注系统的输入和输出,以验证系统是否符合需求规范。黑盒测试的优势在于可以覆盖系统的各个方面,并且可以在不了解系统内部的情况下对其进行测试。
静态应用程序安全测试(SAST)
静态应用程序安全测试(SAST)在软件开发生命周期的早期进行,使用一组自动化工具来检查源代码并查找软件中的潜在安全漏洞和许多类型的安全问题。SAST 的优势在于可以帮助发现并解决软件安全问题,缩短开发的时间周期。
和白盒测试的关系
SAST 通常会被认为是一种白盒测试,它们都可以在代码级别上分析和检测应用程序的安全性。
动态应用程序安全测试(DAST)
是一种在应用程序运行时进行测试的方法,它可以模拟攻击者的攻击行为,以确定应用程序中的潜在安全漏洞。它可以模拟一系列攻击行为,如 SQL 注入、跨站点脚本攻击和 DOS 攻击等,以检测应用程序中的漏洞。
和黑盒测试的关系
DAST 通常会被认为是一种黑盒测试方法,它们都模拟了攻击者的行为来测试应用程序的安全性。
SAST 和 DAST 的区别
两者有以下不同点:
1、SAST 评估应用程序的源代码、字节码或二进制文件以查找安全漏洞;DAST 评估运行时应用程序的交互式行为,对应用程序进行模拟攻击来找到弱点。
2、SAST 依赖于代码或字节码而不是产品运行实例,通常可以更快地检测到所有缺陷类型;DAST 则测试起来更真实,因为它评估应用程序的运行实例。
3、SAST 一般在前期开发阶段被提供;DAST 更注重模拟客户和攻击者的视角,一般在在应用程序部署后进行。
参考链接
1、 https://www.synopsys.com/blogs/software-security/sast-vs-dast-difference/
————————————————
评论