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是外部的漏洞扫描程序。
DAST的优点:
独立于应用程序的技术和平台,无需代码细节;
执行相对较快;
误报率较低。
DAST的缺点:
检出率低:优秀的DAST产品检出率也只有18%*;
无法定位到代码行;
使用门槛高,报告通常需要安全专家解读。
三、IAST
IAST(Interactive Application Security Testing,交互式应用程序安全测试)结合了SAST和DAST的优点。IAST可以像SAST一样看到源代码,也可以像DAST一样看到应用程序运行时的执行流。
IAST的优点:
检出率较高;
误报率较低;
可以在研发测试和生产环境中使用;
实时产生结果;
可以持续检测,对DevOps支持度更高;
即插即用,无需配置或调参;
可以与CI平台集成,创建相互连接的工作流。
IAST的缺点:
需要特定的语言支持;
我们可以看到,与SAST和DAST类产品相比,IAST类产品拥有明显的优势。但IAST作为近年来才诞生的热点,其发展还远没有SAST和DAST类产品成熟。因此我们认为如果预算允许,以上这三类应用安全测试产品应该在机构中同时应用。如果机构只拥有一款产品的预算,IAST是最合适的选择。因为IAST不仅拥有安全测试上的能力优势,也更容易与DevOps紧密结合,帮助机构在不降低发布效率的前提下完成安全测试。
*数据来自OWASP Benchmark 官方网站
参考链接:
https://www.synopsys.com/software-integrity/resources/knowledge-database/what-is-iast.html
https://www.contrastsecurity.com/security-influencers/question-i-understand-sast-and-dast-and-how-to-use-them-but-what-is-iast-and-why-does-it-matter
https://hdivsecurity.com/bornsecure/sast-dast-vs-iast-all-you-need-to-know-about-ast-tools/
关于我们:
悬镜安全(北京安普诺信息技术有限公司)创立于2014年9月,总部位于北京中关村软件园,由北京大学白帽黑客团队“XMIRROR”主导创立,专注于DevSecOps软件供应链生命周期的高级威胁检测防御。
核心业务主要包括”悬镜灵脉”AI渗透测试平台和”悬镜云卫士”自适应安全运营平台等自主创新产品及以实战攻防对抗为特色的政企安全服务,致力为金融、云服务商、政务、能源、教育、交通等行业用户提供创新灵活的自适应安全智能管家解决方案。