在安全测试中都会遇到SAST(Static Application Security Testing )、DAST(Dynamic Application Security Testing )、IAST(Interactive Application Security Testing )的概念, 这三种工具各有优劣势,根据自己的经验对三种工具的比较如下:
比较项 |
SAST |
DAST |
IAST |
扫描对象 |
源代码 |
运行时的应用程序 |
运行时的应用程序 |
扫描准备 |
简单 |
复杂 |
复杂 |
扫描速度 |
快 |
很慢 |
慢 |
误报率 |
高 |
低 |
低 |
覆盖率 |
高 |
低 |
中 |
对环境的影响 |
无 |
有 |
有 |
测试方法 |
白盒 |
黑盒 |
黑盒 |
与开发语言关系 |
有关 |
无关 |
有关 |
CI/CD集成 |
支持 |
不支持 |
不支持 |
支持测试阶段 |
研发、测试、上线 |
测试、上线 |
测试、上线 |
部署 |
简单 |
简单 |
复杂 |
由于每种工具都有自己的特点,可以根据企业的内部需求,选择合适的工具组合。 总体来说,SAST工具效率比较高,但是,有误报的问题,需要人工筛选。 DAST基本上没有误报,而且攻击的向量和环境都结合的很好,不需要人工确认,也没有误报,但是,执行速度太慢,在使用敏捷开发的团队,可能很难有效地利用。 IAST由于部署比较麻烦,而且和语言的关联性比较大,有的语言不支持IAST的插桩技术,例如:C和C++等语言,就不能使用IAST了,因此,即使没有什么误报,目前应用的还不是很广泛。