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

SAST是静态应用程序安全测试,通过扫描源代码在编码阶段发现安全漏洞,而DAST是动态应用程序安全测试,在运行时检测可能的攻击点。两者分别代表白盒和黑盒测试,覆盖了SDLC的不同阶段,结合使用能提供更全面的安全保障。
摘要由CSDN通过智能技术生成

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

白盒安全测试方法,测试人员在了解设计和实现方法的情况下,由内到外进行测试。

黑盒安全测试方法,测试人员不了解应用程序的技术或框架,从外到内进行测试。

需要源代码,通过扫描源代码方式实现。

需要程序在运行中,在应用程序运行时对应用程序进行安全测试。

在软件开发生命周期(SDLC)的早期阶段发现代码漏洞。

在软件开发生命周期中后阶段发现代码漏洞。

修复漏洞成本低,由于在开发周期中较早地发现了漏洞,因此修复起来更快更容易。

修复漏洞成本较高,由于漏洞是在开发周期的末尾发现的,漏洞修复往往会被放到下一次迭代。

不能发现与运行时和环境相关的问题。

可以发现运行时和环境相关的问题。

适用于各种应用程序。

只适用web应用程序和web服务等应用程序。

小结

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路多辛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值