Microsoft Defender for Cloud との GitHub 高度なセキュリティ統合 ・ サンドボックスプロジェクト

このガイドでは、シンプルなユースケースを用いて、GitHub Advanced Security (GHAS) と Microsoft Defender for Cloud のエンドツーエンド統合を評価するのに役立つサンドボックスプロジェクトのセットアップ手順について説明します。

GASとMicrosoft Defender for Cloudの統合は、実行時のリスクやコンテキストを生成コードと関連付けることで、AI駆動の迅速な修復を可能にすることで、Microsoftのクラウドネイティブアプリケーションのセキュリティを最大化します。

このガイドに従うことで、次の操作を行うことができます。

  • Defender for Cloud カバレッジ用に GitHub リポジトリを設定します。
  • ランタイム リスクファクターを作成します。
  • コードをランタイム リソースにリンクします。
  • Defender for Cloud で実際のユース ケースをテストします。

前提条件

Aspect 詳細
環境要件 - Defender for Cloud で作成されたコネクタを含む GitHub アカウント
- GHAS ライセンス
- サブスクリプションで有効になっている Defender Cloud Security Posture Management (DCSPM)
- Microsoft Security Copilot (自動修復の場合は省略可能)
役割と権限 - セキュリティ管理者のアクセス許可
- Azure サブスクリプションのセキュリティ管理者 (Defender for Cloud で結果を表示するため)
- GitHub組織の所有者
クラウド環境 商用クラウドでのみ利用できます (Azure Government、21Vianet によって運用されている Azure、またはその他のソブリンクラウドは対象外)。

環境を準備する

手順 1: GitHub リポジトリを設定し、ワークフローを実行する

統合をテストするには、サンドボックスの例GitHubリポジトリを使用します。このリポジトリには、脆弱なコンテナー イメージを構築するためのすべてのコンテンツが既に含まれています。

リポジトリを設定する前に、次の点を確認してください。

  1. GitHub組織に次のリポジトリを複製します。
  1. リポジトリで、次の手順に従います。

    1. 設定 に移動します。
    2. 左側のウィンドウで、[ シークレットと変数] > [アクション] を選択します。 次に、新しいリポジトリ シークレット を選択します。
    3. リポジトリまたは組織レベルで次のシークレットを追加します。
変数 説明
ACR_ENDPOINT コンテナー レジストリの認証サーバー。
ACR_USERNAME コンテナー レジストリのユーザー名。
ACR_PASSWORD コンテナー レジストリのパスワード。

これらの変数には任意の名前を選択できます。 特定のパターンに従う必要はありません。

以下の手順を踏めば、Azureポータルでコンテナレジストリ認証サーバー、ユーザー名、パスワードを確認できます。

  1. デプロイするコンテナー レジストリを選択します。
  2. [ 設定] で、[ アクセス キー] を選択します。
  3. [ アクセス キー ] ウィンドウには、認証サーバー、ユーザー名、およびパスワードのキーが表示されます。

リポジトリで [ アクション] を選択 し、[ビルドして ACR にプッシュ ] ワークフローを選択し、[ ワークフローの実行] を選択します。

イメージがコンテナー レジストリにデプロイされたことを確認します。 リポジトリの例では、タグがmdc-mock-0001された mdc-ghas-integration というレジストリにイメージを配置する必要があります。

mdc-mock-0001:mdc-ghas-integrationイメージをクラスタ上で実行中のコンテナとして展開します。 コンテナイメージをクラスターにデプロイする一つの方法は、クラスターに接続して「 kubectl run コマンド」を使うことです。 Azure Kubernetes Service (AKS) の例を次に示します。

クラスター サブスクリプションを設定します。

az account set --subscription $subscriptionID

クラスターの資格情報を設定します。

az aks get-credentials --resource-group $resourceGroupName --name $kubernetesClusterName --overwrite-existing

イメージをデプロイします。

kubectl run $containerName --image=$registryName.azurecr.io/mdc-mock-0001:mdc-ghas-integration

手順 2: リスク要因の例を作成する (ビジネス クリティカルなルール)

Defender for Cloud がこの統合に対して検出するリスク要因の 1 つは、ビジネスの重要度です。 組織は、リソースにビジネス クリティカルとしてラベルを付けるルールを作成できます。

  1. Defender for Cloud ポータルで、[>] に移動します。
  2. 右側のウィンドウで、リンクを選択して Microsoft Defender を開きます。
  3. [ 新しい分類の作成] を選択します
  4. 名前と説明を入力します。
  5. クエリ ビルダーで、[ クラウド リソース] を選択します。 リソース を、検証のためにクラスターにデプロイしたコンテナーの名前と同じ名前に設定するクエリを記述します。 次に、[次へ] を選択します。
  6. Preview Assets ページで、もし Microsoft Defender がリソースを既に検出している場合、コンテナーの名前は資産の種類が K8s-container または K8s-pod として表示されます。 名前がまだ表示されていない場合でも、次の手順に進みます。
  7. 重要度レベルを選択し、分類規則を確認して送信します。

Microsoft Defender は、コンテナーを検出した後、コンテナーに重要度ラベルを適用します。 このプロセスには最大で 24 時間かかります。

手順 3: 環境の準備ができていることを検証する

検証では、コードを実行時の推奨事項に表示し、実行可能な結果を生成するように環境が正しく構成されていることを確認します。

検証中、Defenderは実行時の可視性まで完全なコードを検証します。

  • Microsoft Defender for Cloudは、セキュリティの脆弱性についてソース コード リポジトリを継続的に監視します。
  • コンテナー イメージなどのビルド成果物は、デプロイ前にコンテナー レジストリでスキャンされます。
  • Kubernetes クラスターにデプロイされたランタイム ワークロードは、セキュリティ リスクを監視します。
  • Defender for Cloud、コードからビルドとデプロイ、ランタイム、および戻る各成果物を関連付け、トレースします。

次の結果を確認するには、前の手順が適用されてから最大 24 時間かかる場合があります。

GitHubのエージェントレススキャンがリポジトリを検出するかをテストします。

Cloud Security Explorerにアクセスし、以下のリストに記載されている検証クエリを実行してください。 これらの検証クエリは、Defenderがパイプラインやワークロードによって生成されるアーティファクトを特定できるかどうかをテストします。 クエリから結果が返された場合は、スキャンと相関関係が期待どおりに動作していることを示します。

結果が返されない場合は、アーティファクトがまだ生成されていない、スキャンが構成されていない、またはアクセス許可が不足していることを示している可能性があります。

  • Defender for Cloud (Azure Container Registry) がコンテナー イメージをスキャンし、それを使用してコンテナーを作成したことを確認します。
  • クエリで、特定のデプロイの条件を追加します。
  • コンテナーが実行されていること、および Defender for Cloud が AKS クラスターをスキャンしたことを確認します。
  • Defender for Cloud 側でリスク要因が正しく構成されていることを検証します。 Defender for Cloud インベントリ ページでコンテナー名を検索すると、それが重大としてマークされていることがわかります。

リスクファクターの設定の検証は、すでに環境にリスクファクターが設定されていない場合にのみ必要です。

検証が成功すると、推奨事項、キャンペーン、GitHubでの問題生成など、後続の手順で意味のある結果が得られます。

次のステップ