mcpField
D
defender-for-containers

defender-for-containers

github.com/vinayaklattheセキュリティ17842 回インストール19 週間前に更新
リポジトリ

defender-for-containers について

Microsoft Defender for Cloud を使い、Kubernetes クラスターとイメージレジストリの保護を計画・強化するスキルです。クラスターの態勢、イメージの脆弱性、ランタイム脅威、アドミッション制御を扱います。

主な機能

  1. 01クラスター接続とセンサー導入の計画
  2. 02イメージの継続的な脆弱性スキャン
  3. 03ランタイム脅威検出の計画
  4. 04Kubernetes アドミッションポリシーの設計
  5. 05攻撃経路の確認

活用シーン

  1. 01Arc 経由で EKS または GKE クラスターを接続
  2. 02既存イメージの新たな脆弱性を検出
  3. 03アドミッションポリシーを監査モードで試行
  4. 04コンテナのランタイム脅威アラートを調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/vinayaklatthe/microsoft-security-skills --skill defender-for-containers

インストール後、Claude Code で/defender-for-containersを入力して読み込まれたか確認します。

詳細

Microsoft Defender for Containers

Defender for Containers は、Microsoft Defender for Cloud の Kubernetes 対応プランです。 AKS、Azure Arc 対応 Kubernetes(オンプレミス、EKS、GKE、OpenShift)、およびそれらにイメージを供給するコンテナーレジストリを対象とし、セキュリティ態勢、イメージの脆弱性評価、ランタイムの脅威検出、アドミッション制御を提供します。

使用する場面

Kubernetes クラスターと、それらにイメージを供給するレジストリを保護する場合に使用します。プランの展開、センサーとエージェントレスの比較検討、レジストリスキャン、アドミッションポリシーの設計、ランタイムアラートへの対応にこのスキルを使用してください。

次の用途にはこのスキルを使用しないでください。 VM/ホストの強化(defender-for-servers)、クラスターのネットワーク設計(azure-network-security-design)、または一般的な AKS 運用(azure-kubernetes)。

機能マップ

機能仕組み対象
エージェントレス検出API ベースのクラスターインベントリ、コントロールプレーンの設定ミス、K8s API 監査ログの分析AKS、EKS、GKE、Arc
エージェントレス脆弱性評価ノードディスクのスナップショットを取得し、レジストリ内のイメージと実行中のコンテナーをスキャンAKS、EKS、GKE
レジストリスキャンイメージをプル時、プッシュ時、継続的にスキャンACR、ECR、GAR
ランタイムの脅威検出Defender センサー(DaemonSet、Linux では eBPF)— ファイルレス攻撃、ラテラルムーブメント、暗号通貨マイナーを検出AKS、Arc、EKS、GKE
Kubernetes データプレーンの強化Azure Policy アドオン(OPA/Gatekeeper)AKS、Arc 対応 K8s
攻撃経路分析セキュリティ態勢、脆弱性、ランタイムを組み合わせ、インターネット → ポッド → クラウド IAM の経路を明らかにするすべて

アプローチ

  1. サブスクリプションスコープで Defender for Containers を有効にします。 自動プロビジョニングにより、次がインストールされます。

    • Linux ノードでのランタイム検出用 Defender センサー(DaemonSet)。
    • アドミッション制御用 Azure Policy for Kubernetes アドオン。
    • ACR スキャンへの自動接続。 確認方法:kubectl get ds -n kube-system の結果に microsoft-defender-collector-ds が表示され、AKS の Defender プロファイルが有効になっていることを確認します。
  2. Azure 以外のクラスターを Arc 経由で接続します。 EKS/GKE では、AWS/GCP のクラウドアカウントレベルでコネクタを設定し、ランタイムセンサーを使用するために Arc にオンボードする必要があります(センサーなしでもエージェントレス機能は動作します)。

  3. レジストリスキャンのセキュリティ態勢を整えます。 継続的スキャンを有効にし、公開済みの新しい CVE が、プッシュ時だけでなく、すでにプッシュ済みのイメージでも検出されるようにします。90 日後に「イメージ X は CVE-Y に対して脆弱か」と確認できるよう、保持期間を設定します。

  4. パイプラインでイメージの脆弱性を管理します。 ランタイムまで待たずに、同じ MDVM API を CI に統合し、悪用可能な重大度の CVE がある場合はビルドを失敗させます。イメージの署名(Notation/cosign)と組み合わせ、署名済みイメージを必須にするアドミッション制御を設定します。

  5. ランタイムの脅威検出 — センサーとエージェントレスのどちらを使うか?

    • センサーが必要な対象:ファイルレス攻撃、プロセスツリー、メモリ内での悪用、ラテラルムーブメント、リバースシェル。
    • エージェントレスで対応できる対象:イメージの脆弱性、セキュリティ態勢、K8s API 監査に基づく検出。
    • 本番環境では両方を使用します。センサーは Linux ノードプールのみに導入してください(Windows のランタイムセンサーによるカバレッジは限定的です)。
  6. Azure Policy/Gatekeeper でアドミッション制御を行います。 14 日間は監査モードで展開し、その後に拒否モードに切り替えます。ベースラインポリシー:

    • 特権コンテナーを禁止する。
    • 機密性の高いパスへの hostPath マウントを禁止する。
    • アプリケーションのワークロードに readOnlyRootFilesystem を必須とする。
    • リソース制限を必須とする。
    • 署名済みイメージを必須とする(許可リストに登録したレジストリを使用)。
  7. 攻撃経路分析 — 毎週確認します。最初に修正すべき重要度の高い経路は、インターネットに公開されたポッドの重大な CVE → ワークロード ID → クラウド IAM です。検出件数ではなく、影響範囲の広さに基づいて優先順位を付けます。

  8. Defender for Cloud コネクタを介して Sentinel にアラートをストリーミングします。ProductName = "Microsoft Defender for Containers" でフィルターした SecurityAlert に対するハンティングクエリを作成します。

ガードレール

  • 実行時検出には Defender センサーが必要です。 エージェントレスだけでは、ポッド内で実行されるリバースシェルや暗号通貨マイナーを検出できません。
  • アドミッションポリシーは、まず監査モードで展開してください。 初日から拒否モードで requiredLabels ポリシーを適用すると、デプロイが停止します。
  • カーネルにフックする特権 DaemonSet を、テストせずに 2 つ実行しないでください(例:Defender センサー、Falco、サードパーティ製 EDR)。eBPF プログラムの競合やノードの不安定化が発生する可能性があります。
  • ACR とプライベート エンドポイント、および Defender のスキャンには、慎重なネットワーク設計が必要です。 スキャナーがレジストリにアクセスできる必要があります。プライベート DNS の名前解決と、信頼されたサービスのバイパスを確認してください。
  • プランのスコープを単一クラスターの RG に限定しないでください。 別の RG に新しいクラスターを作成すると、保護されません。サブスクリプションのスコープとポリシーの適用を使用してください。
  • Windows コンテナーでは、センサーのカバー範囲が限られています。 Windows ワークロードでは、より厳格なアドミッション制御とイメージスキャンで補ってください。
  • 悪用可能性のコンテキストがないイメージの脆弱性検出結果はノイズになります。 トリアージの前に、必ず悪用可能なもの/KEV でフィルターしてください。

よくあるアンチパターン

  • 「センサーはノードあたり 80 MB の RAM を追加で使うので、エージェントレスだけにする」 — 実行時検出ができません。RAM を確保してください。
  • 「初日からアドミッションポリシーを拒否モードにする」 — 障害が発生します。14 日間監査し、違反を修正してから拒否してください。
  • 「プッシュ時だけイメージをスキャンする」 — 昨日のイメージに含まれる今日の CVE が検出されません。継続的なスキャンを有効にしてください。
  • 「CI では MDVM の検出結果を無視し、実行時に対処する」 — 脆弱性が本番環境に到達し、ロールバックにコストがかかります。重大かつ悪用可能な脆弱性があれば、ビルドを失敗させてください。
  • 「すべてのクラスターを対象にし、サンドボックスの例外は設けない」 — アラートが大量に発生し、実際のインシデントが埋もれます。アドミッション拒否とアラートのルーティングから、サンドボックスをタグ付けして除外してください。
  • 「Docker を直接実行している VM ホストに Defender for Containers を使用した」 — ツールが違います。その場合は defender-for-servers を使用します。
  • 「コネクターで十分だと考え、EKS/GKE で Arc を省略した」 — 実行時センサーがなく、eBPF 検出もできません。

プロンプトの例

  • 5 つのサブスクリプションにある AKS クラスター全体で Defender for Containers を有効にし、dev 環境で 7 日間パイロット運用する。
  • Kubernetes アドミッション制御に Azure Policy を展開する — ベースラインポリシーセットは監査モードにする。
  • Arc 経由で 3 つの EKS クラスターを接続し、実行時センサーを有効にする。
  • MDVM の重大かつ悪用可能な CVE を検出した場合に失敗する CI ゲートを構築する。
  • 「コンテナー内の暗号通貨マイニング活動」アラートを調査する — ランブックと KQL。
  • 攻撃経路分析を調整し、インターネットからクラウド IAM への経路のみを表示する。
  • 承認済み ACR の署名済みイメージのみを必須にするアドミッション制御を設計する。

Microsoft Learn

コメント