AST(Application Security Test,应用安全测试)工具是应用程序软件安全实践的支柱之一。随着近年来安全越来越得到重视,AST们也发生着快速的迭代和变化,成为信息安全领域的当红炸子鸡。我们认为所有的软件技术和项目管理相关人员都应该对AST工具有基本的认知,并在一定程度上应用它们。但实际上,我们经常发现SAST,DAST,IAST等十分近似的名词让许多企业的安全负责人都缺乏清晰的理解。
那么SAST,DAST和IAST到底是什么?他们之间的优劣势如何?这篇小文就简而述之。
一SAST
SAST(Static Application Security Testing,静态应用程序安全测试)对应用程序源代码执行直接的白盒分析。分析是在代码的静态视图上运行的,这意味着代码在审查时没有运行。如今,SAST已经完全成为主流,并且在整个软件行业中被广泛采用。
SAST的优点:
广泛的编程语言支持;
检出率较高;
可以定位到代码行。
SAST的缺点:
准确性差:优秀SAST产品的误报率也在53%以上*;
无法看到执行流;
通常需要一些定制或调参;
不适用于生产阶段的系统;
通常运行很慢。
二DAST
与SAST相反,DAST(Dynamic Application Security Testing,动态应用程序安全测试)对应用程序进行黑盒分析,这意味着它们不能访问代码或实现细节。DAST只检查系统对潜在漏洞测试的请求和响应。换言之,DAST是外部的漏洞扫描程序。</