次の方法で共有


GitHub および Azure DevOps で pull request 注釈を有効にする

DevOps セキュリティは、Pull Requests (PR) でセキュリティの調査結果を注釈として公開します。 セキュリティ オペレーターは、Microsoft Defender for Cloud で PR 注釈を有効にすることができます。 公開された問題は、開発者が解決できます。 このプロセスにより、潜在的なセキュリティの脆弱性や構成の誤りを防ぎ、運用段階に入る前に修正できます。 DevOps セキュリティは、ファイル全体で検出されたすべての脆弱性ではなく、pull request 時に発生した相違点内の脆弱性に注釈を付けます。 開発者はソース コード管理システムで注釈を確認でき、セキュリティ オペレーターは Microsoft Defender for Cloud で未解決の調査結果を確認できます。

Microsoft Defender for Cloud を使用すると、Azure DevOps で PR 注釈を構成できます。 GitHub Advanced Security のユーザーである場合は、GitHub で PR 注釈を取得できます。

Note

マージ要求注釈 (GitLab) とも呼ばれるプル要求注釈は、Defender for Cloud DevOps に接続されている GitLab プロジェクトではサポートされていません。

Defender for Cloud では、接続されているすべての GitLab リポジトリのセキュリティ結果が表示されます。 ただし、GitLab マージ要求では、これらの結果はインライン注釈として表示されません。

GitHub Advanced Security を有効にすると、GitHub では pull request 注釈がサポートされます。

pull request 注釈とは

pull request 注釈は、GitHub または Azure DevOps の pull request に追加されるコメントです。 これらの注釈は、pull request で行われたコードの変更と特定されたセキュリティの問題に関するフィードバックを提供し、レビュー担当者が加えられた変更を把握するのに役立ちます。

リポジトリにアクセスできるユーザーは、注釈を追加したり、変更を提案したり、質問したり、コードに関するフィードバックを提供したりできます。 注釈を使用して、コードがメイン ブランチにマージされる前に修正する必要がある問題やバグを追跡することもできます。 Defender for Cloud の DevOps セキュリティでは、注釈を使用してセキュリティの結果を表示します。

前提条件

GitHub の場合:

Azure DevOps の場合:

GitHub で pull request 注釈を有効にする

GitHub で pull request 注釈を有効にすると、開発者は PR をメイン ブランチに直接作成する際に、セキュリティに関する問題を確認できるようになります。

GitHub で pull request 注釈を有効にするには:

  1. GitHub に移動し、サインインします。

  2. Defender for Cloud にオンボードしたリポジトリを選択します。

  3. Your repository's home page > .github/workflows に移動します。

    移動先の GitHub ワークフロー フォルダーを選択する場所を示すスクリーンショット。

  4. msdevopssec.yml を選択します。これは、prerequisites で作成されたものです。

    msdevopssec.yml ファイルを選択する画面の場所を示すスクリーンショット。

  5. [編集] を選択します。

    編集ボタンの外観を示すスクリーンショット。

  6. トリガー セクションを見つけて、次の内容に更新します。

    # Triggers the workflow on push or pull request events but only for the main branch
    pull_request:
      branches: ["main"]
    

    サンプル リポジトリを表示することもできます。

    (省略可能) トリガー セクションの下にブランチを入力することで、実行するブランチを選択できます。 すべてのブランチを含める場合は、ブランチ リストを含む行を削除します。 

  7. [Start commit]\(コミットの開始\) を選択します。

  8. [Commit changes] (変更をコミットする) を選びます。

    スキャナーによって検出された問題は、pull request の [ファイルの変更] セクションに表示されます。

    • テストで使用 - アラートが運用コードにありません。

Azure DevOps で pull request 注釈を有効にする

Azure DevOps で pull request 注釈を有効にすると、開発者は PR をメイン ブランチに直接作成する際に、セキュリティに関する問題を確認できるようになります。

CI ビルドのビルド検証ポリシーを有効にする

pull request 注釈を有効にする前に、メイン ブランチで CI ビルドのビルド検証ポリシーが有効になっている必要があります。

CI ビルドのビルド検証ポリシーを有効にするには:

  1. Azure DevOps Project にサインインします。

  2. [プロジェクト設定]>[リポジトリ] に移動します。

    Azure リポジトリを選ぶために移動する場所を示すスクリーンショット。

  3. pull request を有効にするリポジトリを選択します。

  4. [ポリシー] を選択します。

  5. [ブランチ ポリシー]>[メイン ブランチ] に移動します。

    ブランチ ポリシーの場所を示すスクリーンショット。

  6. [ビルドの検証] セクションを見つけます。

  7. リポジトリのビルド検証が [オン] に切り替っていることを確認します。

    [CI ビルド] トグルが配置されている場所を示すスクリーンショット。

  8. [保存] を選択します。

    ビルド検証を示すスクリーンショット。

これらのステップを完了したら、以前に作成したビルド パイプラインを選択し、その設定をニーズに合わせてカスタマイズできます。

pull request 注釈を有効にする

Azure DevOps で pull request 注釈を有効にするには:

  1. Azure portal にサインインします。

  2. [Defender for Cloud]>[DevOps セキュリティ] に移動します。

  3. pull request 注釈を有効にするために、関連するすべてのリポジトリを選択します。

  4. [リソースの管理] を選択します。

    リソースを管理する方法を示すスクリーンショット。

  5. pull request 注釈を [オン] に切り替えます。

    オンに切り替えられたトグルを示すスクリーンショット。

  6. (省略可能) ドロップダウン メニューからカテゴリを選択します。

    Note

    現在サポートされているのは、Infrastructure-as-Code の構成ミス (ARM、Bicep、Terraform、CloudFormation、Dockerfiles、Helm Charts など) の結果のみです。

  7. (省略可能) ドロップダウン メニューから重大度レベルを選択します。

  8. [保存] を選択します。

pull request のすべての注釈は今後、構成に基づいて表示されるようになります。

Azure DevOps でプロジェクトと組織の pull request 注釈を有効にするには:

これは Microsoft が公開した Update Azure DevOps Resource API を呼び出すことによって、プログラムで実行できます。 セキュリティ リソース プロバイダー。

API の情報:

Http メソッド: PATCH URL:

  • Azure DevOps Project の更新: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>/projects/<adoProjectName>?api-version=2023-09-01-preview
  • Azure DevOps 組織の更新]: https://management.azure.com/subscriptions/<subId>/resourcegroups/<resourceGroupName>/providers/Microsoft.Security/securityConnectors/<connectorName>/devops/default/azureDevOpsOrgs/<adoOrgName>?api-version=2023-09-01-preview

要求本文:

{
   "properties": {
"actionableRemediation": {
              "state": <ActionableRemediationState>,
              "categoryConfigurations":[
                    {"category": <Category>,"minimumSeverityLevel": <Severity>}
               ]
           }
    }
}

パラメーター / 使用可能なオプション

<ActionableRemediationState> 説明: PR 注釈構成の状態 オプション: 有効 | 無効

<Category> 説明: pull request に注釈が付けられた結果のカテゴリ。 オプション: IaC | コード | 成果物 | 依存関係 | コンテナー : 現時点では、IaC のみサポートされています

<Severity> 説明: PR 注釈の作成時に考慮される結果の最小重大度。 オプション: 高 | 中 | 低

az cli ツールを使用して、最小重要度が [中] の IaC カテゴリに対して Azure DevOps 組織の PR 注釈を有効にする例。

組織の更新:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'Medium'}]}}}

az cli ツールを使用して、最小重要度が [高] の IaC カテゴリに対して Azure DevOps Project の PR 注釈を有効にする例。

プロジェクトの更新:

az --method patch --uri https://management.azure.com/subscriptions/4383331f-878a-426f-822d-530fb00e440e/resourcegroups/myrg/providers/Microsoft.Security/securityConnectors/myconnector/devops/default/azureDevOpsOrgs/testOrg/projects/testProject?api-version=2023-09-01-preview --body "{'properties':{'actionableRemediation':{'state':'Enabled','categoryConfigurations':[{'category':'IaC','minimumSeverityLevel':'High'}]}}}"

詳細情報

次のステップ

DevOps セキュリティについてさらに学習します。