在安全測試中都會遇到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了,因此,即使沒有什麼誤報,目前應用的還不是很廣泛。