サード パーティ製のスキャン ツールを統合する
GitHub Advanced Security for Azure DevOps は、Static Analysis Results Interchange Format (SARIF) ファイルの情報を使用して、リポジトリにコード スキャン アラートを作成します。 SARIF ファイルのプロパティは、アラートのタイトル、場所、説明テキストなどのアラート情報を設定するために使用されます。
SARIF ファイルは、CodeQL などの多くのスタティック分析セキュリティ テスト ツールを使用して生成できます。 結果は SARIF バージョン 2.1.0 を使用する必要があります。 SARIF の詳細については、 SASRIF チュートリアルを参照してください。
Azure Pipelines を使用してコード スキャン分析をアップロードする
Azure Pipelines を使用してサードパーティの SARIF ファイルをリポジトリにアップロードするには、パイプラインで AdvancedSecurity-Publish
タスクを使用する必要があります。これは、GitHub Advanced Security for Azure DevOps にバンドルされているタスクの一部です。 使用する主な入力パラメーターは次のとおりです。
SarifsInputDirectory
: アップロードする SARIF ファイルのディレクトリを構成します。 予想されるディレクトリ パスは絶対パスです。Category
: 必要に応じて、SARIF ファイル内の結果のカテゴリを割り当てます。 これにより、同じコミットを複数の方法で分析し、GitHub のコード スキャン ビューを使用して結果を確認できます。 たとえば、複数のツールを使用して分析できます。mono リポジトリでは、変更されたファイルのサブセットに基づいてリポジトリのさまざまなスライスを分析できます。
Microsoft Defender for Cloud チームが所有する 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
フィールドが計算され、アラートの重複を防ぐことができます。 Advanced Security では、リポジトリに SARIF ファイルと静的分析で使用されるソース コードの両方が含まれている場合にのみ、 partialFingerprints
を作成できます。 重複するアラートの防止の詳細については、「 実行全体のコード スキャン アラートを追跡するためのデータの作成を参照してください。
ツールの結果を検証する
SARIF プロパティがアップロードでサポートされているサイズであり、ファイルがコード スキャンと互換性があることを確認できます。 詳細については、SARIF ファイルの 検証を参照してください。 SARIF ファイルが Advanced Security の要件に特に準拠しているかどうかを検証するには、Azure DevOps ingestion rules
を選択します。