從2012年Gartner的研究報告“DevOpsSec: Creating the Agile Triangle”提出了DevSecOps的概念, 到目前DevSecOps已經成為構建企業級研發安全的重要模式。 DevSecOps模式中有些重要的原則:安全左移、預設安全、執行時安全、安全服務自動化/自助化、基礎設施即程式碼(IaC)、持續整合和交付,以及需要組織和文化建設。
在DevSecOps的過程中,最重要的一環就是安全工具能夠快速整合到自動化平臺,保證平臺的持續整合和交付,從而提高產品的整體的安全水平。 在整個研發過程中靜態安全檢查工具是保證程式碼安全的重要手段,每個安全檢查工具因為技術實現上的差異,對不同的安全缺陷有著不同的檢查能力,所以稍微大型一些的開發團隊, 在開發的時候會引入多個安全掃描工具,以獲取安全檢查能力覆蓋的最大化。 但多工具的整合, 就會對程式設計師或平臺的整合會帶來以下問題:
- 對於開發人員
- 在使用IDE的時候, 缺少一個通用的檢查工具結果介面和互動介面;
- 需要檢視多個檢查工具的結果;
- 對於整合平臺
- 需要學習每個工具的輸出掃描格式;
- 在掃描報告轉入到缺陷跟蹤系統的時候, 缺少一個通用的缺陷轉換程式;
- 缺少一個通用掃描結果度量方式。
為了解決這些的問題,由微軟、Micro focus等幾家靜態分析軟體公司提出了:靜態分析結果交換格式(Static Analysis Results Interchange Format (SARIF))。
微軟 為SARIF 建立了一個網站 https://sarifweb.azurewebsites.net/,包含規範、工具和庫、 檢視器。