今年 Azure DevOps 新增了安全掃描工具 - GitHub Advanced Security for Azure DevOps,將強大的 GitHub 安全掃描工具整合進入的 Azure DevOps。前一篇文章我們曾經提到微軟淘汰了Microsoft 安全性程式碼分析 (MSCA) 擴充功能,由Microsoft Security DevOps Azure DevOps 擴充功能取代,眼尖的讀者應該會發現少了一些功能,像是實用的 Cred Scan。不可否認的,GitHub 長期發展並建立聯盟的 GitHub Advanced Security 遠比微軟所提供的 Cred Scan 來的強大,所以大概猜得到為何會淘汰 MSCA 工具,也將 Azure DevOps 稍微弱勢的安全掃瞄功能補齊了。
GitHub Advanced Security for Azure DevOps 所提供的功能如下:
不可否認的,其功能相當強大,但費用也不便宜:每一個提交至儲存庫不重複使用者,在90天內皆會計算為一個授權。每一個授權每個月須要 49 元美金,帳單會直接連接到 Azure 帳單。你可以在 Azure DevOps Portal > 組織設定 > Bill 確認授權與費用
你可以點選 Project Setting > Repositories > All Repositories 中點用啟用開關,但此時尚未對於任何儲存庫啟用 (除非你點選上方 Enable All 按鈕,則對所有儲存庫啟用)
接下來,你可以隨意點入其中一個儲存庫,在 Setting 內啟用 Advanced Security,啟用同時會幫你計算會有多少授權,確認後才正式開始計費。
啟用後,你可以在設定下方看見自動啟用了 Block secrets on push 功能,這即為秘密推送保護 - 阻止開發人員不小心推送秘密至儲存庫的功能。
若要進行相依性掃描,開發人員只需要在 Pipeline YAML 內加入 AdvancedSecurity-Dependency-Scanning@1 Task 即可,執行 Pipeline 時會進行相依性檢查。或者如下圖所示,透過 Task 搜尋助理,輸入 Advanced 關鍵字即可找到相關 Task,自動產生 YAML 語法。
眼尖的讀者應該已經發現上圖中有程式碼掃描 Task。你只要依序加入 AdvancedSecurity-Codeql-Init@1、AdvancedSecurity-Codeql-Autobuild@1 與 AdvancedSecurity-Codeql-Analyze@1,即可進行程式碼掃描。
執行 Pipeline 後,可以在 Azure DevOps Portal 左邊選單點選 Repos > Advanced Security 檢式詳細的掃描報告