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