共用方式為


整合第三方掃描工具

適用於 Azure DevOps 的 GitHub 進階安全性會使用靜態分析結果交換格式 (SARIF) 檔案中的資訊,在存放庫中建立程式代碼掃描警示。 SARIF 檔案屬性可用來填入警示資訊,例如警示標題、位置和描述文字。

您可以使用許多靜態分析安全性測試工具 (包括 CodeQL) 來產生 SARIF 檔案。 結果必須使用 SARIF 2.1.0 版。 如需 SARIF 的詳細資訊,請參閱 SASRIF 教學課程

使用 Azure Pipelines 上傳程式代碼掃描分析

若要使用 Azure Pipelines 將第三方 SARIF 檔案上傳至存放庫,您的管線必須使用工作 AdvancedSecurity-Publish ,這是與 GitHub Advanced Security for Azure DevOps 搭配的工作一部分。 要使用的主要輸入參數如下:

  • SarifsInputDirectory:設定要上傳的 SARIF 檔案目錄。 預期的目錄路徑是絕對路徑。
  • Category:選擇性地為 SARIF 檔案中的結果指派類別。 這可讓您以多種方式分析相同的認可,並使用 GitHub 中的程式代碼掃描檢視來檢視結果。 例如,您可以使用多個工具進行分析,並在單一存放庫中,根據已變更檔案的子集來分析存放庫的不同配量。

以下是與 適用於雲端的 Microsoft Defender 小組所擁有Microsoft Security DevOps 工作的整合範例:

trigger:
- main

pool:
  vmImage: ubuntu-latest

steps:
- task: MicrosoftSecurityDevOps@1
  inputs:
    command: 'run'
    categories: 'IaC'
- task: AdvancedSecurity-Publish@1
  inputs:
    SarifsInputDirectory: '$(Build.ArtifactStagingDirectory)/.gdn/'

結果指紋產生

如果您的 SARIF 檔案不包含 partialFingerprints,工作 AdvancedSecurity-Publish 會為您計算 partialFingerprints 字段,並嘗試防止重複的警示。 只有在存放庫同時包含 SARIF 檔案和靜態分析中使用的原始程式碼時,才能建立 partialFingerprints 進階安全性。 如需防止重複警示的詳細資訊,請參閱 提供數據來追蹤跨執行的程式代碼掃描警示。

驗證工具結果

您可以檢查 SARIF 屬性是否有支援上傳的大小,且檔案與程式代碼掃描相容。 如需詳細資訊,請參閱 驗證您的 SARIF 檔案。 若要驗證 SARIF 檔案是否符合進階安全性的需求,請參閱 SARIF 驗證程式 並選取 Azure DevOps ingestion rules