為什麼靜態程式碼安全檢測工具會有誤報、漏報的情況出現?

zktq2021發表於2022-02-11

軟體安全問題帶來的影響日益突出,“安全左移”已經成廣泛認知。在軟體開發週期中進行安全漏洞檢測不但能及時發現問題降低修復難度,而且節省經濟花費。

靜態程式碼安全檢測與動態應用測試不同之處在於,靜態程式碼分析直接面向原始碼,能夠檢測所有的程式碼級別可執行路徑組合,快速準確分析語義缺陷及安全漏洞。

在大眾印象中,靜態程式碼檢測工具存在誤報、漏報的“特點”。這些噪聲不但降低了檢測的準確度,而且降低了開發人員的工作效率。但靜態程式碼檢測工具在開發期間發現安全漏洞的能力在安全建設方面起到的作用不容置疑。

不同安全檢測工具各具特點,根據一項報告,靜態程式碼分析發現的最常見的缺陷是CRLF注入、資訊洩漏和密碼問題,而動態分析發現的最常見的缺陷是伺服器配置、不安全的依賴關係和資訊洩漏問題。軟體組合分析(SCA)發現最常見的是輸入驗證不足、資訊洩漏和封裝問題。

為什麼會產生誤報、漏報?

靜態應用程式測試工具本身基於一些演算法,對程式資料、控制流分析,預判程式中存在的潛在問題。而演算法耗時與準確度成正比。作為工具產品,高執行、高準確度的檢測並不容易實現。因此在設計中存在簡化、取捨,導致精度流失,執行時間和演算法精度之間要達到平衡,因此產生誤報。

Wukong工具在取捨、演算法優化和刪減過程中做過很多研究工作,確保在同樣執行時間下,Wukong工具的演算法設計、邏輯設計引入的誤報更低。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2855284/,如需轉載,請註明出處,否則將追究法律責任。

相關文章