關於 Microsoft 安全性程式碼分析

注意

自 2022 年 12 月 31 日起,Microsoft 安全性程式碼分析 (MSCA) 擴充功能已淘汰。 MSCA 會由 Microsoft Security DevOps Azure DevOps 擴充功能取代。 請遵循 設定中的指示 來安裝和設定擴充功能。

透過 Microsoft 安全性程式碼分析延伸模組,小組可將安全性程式碼分析新增至 Azure DevOps 持續整合及持續傳遞 (CI/CD) 管線。 Microsoft 安全性開發週期 (SDL) 專家建議使用此分析。

一致的 UX 可降低執行工具的複雜度,進而簡化安全性流程。 當小組採用以 NuGet 為基礎的工具,便無須再管理工具的安裝或更新。 建置工作可透過命令列和基本介面進行,所有使用者皆可充分掌控所需的工具。

小組也可運用強大的後續處理功能,例如:

  • 發佈要保留的記錄。
  • 產生可採取行動的開發人員導向報告。
  • 設定迴歸測試的建置中斷。

為何應使用 Microsoft 安全性程式碼分析?

簡化安全性

將 Microsoft 安全性程式碼分析工具新增至 Azure DevOps 管線就像新增工作一樣簡單。 自訂工作或使用預設行為。 工作會在 Azure DevOps 管線中執行並產生記錄,詳列各式各樣的結果。

清除建置

解決工具所回報的初始問題後,您可設定延伸模組針對新問題中斷建置。 設定每個提取要求的持續整合建置相當簡單。

一勞永逸的設定

依預設,建置工作及工具會保持最新狀態。 工具若有更新版本,您無須下載並安裝。 延伸模組會為您進行更新。

背後原理

延伸模組的建置工作可降低下列作業的複雜度:

  • 執行安全性靜態分析工具。
  • 處理記錄檔的結果,以建立摘要報表或中斷建置。

Microsoft 安全性程式碼分析工具組

Microsoft 安全性程式碼分析延伸模組可讓您取得重要分析工具的最新可用版本。 此延伸模組同時包含 Microsoft 管理的工具及開放原始碼工具。

使用對應的建置工作來設定和執行管線後,這些工具會便自動下載至雲端裝載的代理程式。

本節列出延伸模組目前可供使用的工具集。 敬請期待更多新增的工具。 同時也請您提供建議,讓我們了解您希望新增的工具。

反惡意程式碼掃描器

現在 Microsoft 安全性程式碼分析延伸模組已包含反惡意程式碼掃描器建置工作。 這項工作必須在已安裝 Windows Defender 的組建代理程式上執行。 如需詳細資訊,請參閱 Windows Defender 網站

BinSkim

BinSkim 是可攜式執行檔 (PE) 的輕量型掃描器,可驗證二進位檔案的編譯器設定、連結器設定和其他安全性相關特性。 此建置工作提供 binskim.exe 主控台應用程式的命令列包裝函數。 BinSkim 是一種開放原始碼工具。 如需詳細資訊,請參閱 GitHub 上的 BinSkim

認證掃描器

密碼及原始程式碼所儲存的其他秘密是一項重大問題。 認證掃描器是靜態分析的專屬工具,有助於解決此問題。 此工具會偵測原始程式碼和組建輸出中的認證、秘密、憑證和其他敏感性內容。

Roslyn 分析器

Roslyn 分析器為 Microsoft 的編譯器整合工具,用於靜態分析 Managed C# 和 Visual Basic 程式碼。 如需詳細資訊,請參閱以 Roslyn 為基礎的分析器

TSLint

TSLint 為可供擴充的靜態分析工具,用於檢查 TypeScript 程式碼的可讀性、可維護性及功能錯誤。 各項新式編輯器及建置系統皆支援此工具。 您可使用自己的 lint 規則、組態和格式器進行自訂。 TSLint 是一種開放原始碼工具。 如需詳細資訊,請參閱 GitHub 上的 TSLint

結果的分析及後續處理

Microsoft 安全性程式碼分析延伸模組也有三項後續處理工作。 這些工作可協助分析安全性工具工作所找到的結果。 當這些工作新增至管線時,通常會在其他所有工具的工作後接續進行。

發佈安全性分析記錄

「發佈安全性分析記錄」建置工作會保留建置期間所執行的安全性工具記錄檔。 您可閱讀這些記錄深入了解及追蹤狀況。

您可將記錄檔以 .zip 檔案格式發佈至 Azure Artifacts。 您也可將其從私人的組建代理程式複製至可存取的檔案共用。

安全性報告

安全性報告建置工作會剖析記錄檔。 這些檔案由建置期間執行的安全性工具所建立。 建置工作便會建立一個摘要報告檔案。 此檔案會顯示分析工具找到的所有問題。

您可設定這項工作來回報特定工具或所有工具的結果。 您也可選擇要回報的問題層級,例如:只回報錯誤,或同時回報錯誤和警告。

後續分析 (建置中斷)

您可使用後續分析建置工作來插入建置中斷,刻意使建置失敗。 若有一或多個分析工具回報程式碼中的問題,則可插入建置中斷。

針對特定工具或所有工具找到的問題,您可設定這項工作來中斷建置。 您也可根據所找到問題的嚴重性 (如錯誤或警告) 來設定。

注意

依設計,若工作順利完成,則表示各項建置工作成功。 無論工具是否找到問題皆如此,以便建置允許執行所有工具而完成執行。

下一步

如需 Microsoft 安全性程式碼分析的上線及安裝指示,請參閱上線和安裝指南

如需設定建置工作的詳細資訊,請參閱組態指南YAML 組態指南

若有延伸模組及所提供工具的其他相關問題,請參閱常見問題頁面