Web安全之SAST和DAST(静态和动态应用程序安全测试)详解

SAST和DAST都是应用程序安全测试方法,用于发现应用程序的潜在安全问题。

什么是SAST?

SAST(static application security testing),静态应用程序安全测试,是一种白盒测试方法。通过检查代码以发现软件缺陷和安全漏洞,SAST是在软件开发生命周期(SDLC)的早期阶段(可以理解为编码阶段)发现代码漏洞,由于SAST是通过扫描源代码发现漏洞,所以能够精确给出存在漏洞的代码行。

什么是DAST?

DAST(dynamic application security testing),动态应用程序安全测试,是一种黑盒测试方法。在应用程序运行时对应用程序进行安全检查,以发现可能被攻击者利用的漏洞。DAST是在软件开发生命周期(SDLC)的中后阶段(可以理解为运行阶段)发现代码漏洞,由于DAST不扫描源代码,所以通常不能给出存在漏洞的具体代码位置。

SAST和DAST有什么区别?

通过上面的定义可以看出SAST和DAST是不同的测试方法,用于发现不同类型的漏洞,并且是在软件开发生命周期的不同阶段做的。SAST应该尽早执行,并且要针对全量源代码文件执行。DAST应该在类似于生产环境(预发布环境或者验收环境)中运行中的应用程序上执行。可以看出,SAST和DAST都做才能达到较好的安全效果。

如下列表是SAST和DAST一些具体的不同点:

小结

SAST主要用于发现编码阶段的安全问题,DAST主要用于发现运行阶段的安全问题。在实际应用中,最好把SAST和DAST都做掉以提高应用程序的安全性。

原文地址:https://baijiahao.baidu.com/s?id=1763527724626621722