在安全测试中都会遇到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了,因此,即使没有什么误报,目前应用的还不是很广泛。