バイナリ ドリフト検出 (プレビュー)

バイナリ ドリフトは、元のイメージから取得されていない実行可能ファイルをコンテナーが実行しているときに発生します。 これは意図的で正当なものである場合と、攻撃を示している場合があります。 コンテナー イメージは不変である必要があるため、元のイメージに含まれていないバイナリから起動されたプロセスは、疑わしいアクティビティとして評価する必要があります。

バイナリ ドリフト検出機能では、イメージから取得されたワークロードと、コンテナーで実行されているワークロードの間に違いがある場合にアラートが生成されます。 コンテナー内の承認されていない外部プロセスを検出することで、潜在的なセキュリティ上の脅威について警告します。 ドリフト ポリシーを定義して、アラートを生成する条件を指定することで、正当なアクティビティと潜在的な脅威を区別するのに役立ちます。

バイナリ ドリフト検出は Defender for Containers プランに統合されており、パブリック プレビューで利用できます。 Azure (AKS)、Amazon (EKS)、Google (GKE) クラウドで使用できます。

前提条件

  • バイナリ ドリフト検出を使用するには、AWS、GCP、AKS で使用可能な Defender for Container センサーを、バージョン 1.29 以降で実行する必要があります。
  • Defender for Container センサーは、サブスクリプションとコネクタで有効にする必要があります。
  • ドリフト ポリシーを作成して変更するには、テナント上のセキュリティ管理者以上のアクセス許可が必要です。 ドリフト ポリシーを閲覧するには、テナント上のセキュリティ閲覧者以上のアクセス許可が必要です。

コンポーネント

次のコンポーネントは、バイナリ ドリフト検出の一部です。

  • バイナリ ドリフトを検出できる強化されたセンサー
  • ポリシー構成オプション
  • 新しいバイナリ ドリフト アラート

ドリフト ポリシーを構成する

ドリフト ポリシーを作成して、アラートを生成するタイミングを定義します。 各ポリシーは、アラートを生成する条件を定義するルールで構成されます。 これにより、特定のニーズに合わせて機能を調整し、誤検知を減らすことができます。 除外を作成する場合は、特定のスコープまたはクラスター、イメージ、ポッド、Kubernetes ラベル、または名前空間に優先順位の高いルールを設定します。

ポリシーを作成して構成するには、次の手順に従います。

  1. Microsoft Defender for Cloud で、[環境設定] に移動します。 [コンテナーのドリフト ポリシー] を選択します。

    [環境設定] の [コンテナーのドリフト ポリシー] の選択のスクリーンショット。

  2. [Kube-System 名前空間のアラート] ルールと [既定のバイナリ ドリフト] ルールという 2 つのルールがすぐに表示されます。 既定のルールは、その前に一致するルールが他にない場合、すべてに対して適用される特別なルールです。 そのアクションを変更できるのは、[ドリフト検出アラート] を選択するか、既定の [ドリフト検出を無視] に戻します。 [Kube-System 名前空間のアラート] ルールは、すぐに使用できる提案であり、他のルールと同様に変更できます。

    ルールの一覧の下部に表示される [既定のルール] のスクリーンショット。

  3. 新しいルールを追加するには、[ルールの追加] を選択します。 ルールを構成できるサイド パネルが表示されます。

    [ルールの追加] を選択して新しいルールを作成および構成するスクリーンショット。

  4. ルールを構成するには、次のフィールドを定義します。

    • ルール名: ルールのわかりやすい名前。
    • アクション: ルールでアラートを生成する必要がある場合は [ドリフト検出アラート]、アラート生成から除外する場合は [ドリフト検出を無視する] を選択します。
    • スコープの説明: ルールが適用されるスコープの説明。
    • クラウド スコープ: ルールが適用されるクラウド プロバイダー。 Azure、AWS、または GCP の任意の組み合わせを選択できます。 クラウド プロバイダーを展開する場合は、特定のサブスクリプションを選択できます。 クラウド プロバイダー全体を選択しない場合、クラウド プロバイダーに追加された新しいサブスクリプションはルールに含まれません。
    • リソース スコープ:ここでは、コンテナー名イメージ名名前空間ポッドのラベルポッド名またはクラスター名のカテゴリに基づいて条件を追加できます。 次に、演算子 [次で開始][次で終わる][次の値に等しい]、または [値を含む] を選択します。 最後に、合致させる値を入力します。 [+条件の追加] を選択して、必要な数の条件を追加できます。
    • プロセスの許可リスト: コンテナーで実行できるプロセスの一覧。 この一覧にないプロセスが検出されると、アラートが生成されます。

    dev1.exe プロセスを Azure クラウド スコープ内のコンテナーで実行できるようにするルールの例を次に示します。そのイメージ名は、Test123 または env123 で始まります。

    すべてのフィールドが定義されているルール構成の例。

  5. [適用] を選択してルールを保存します。

  6. ルールを構成したら、一覧でルールを選択して上下にドラッグし、優先度を変更します。 優先度が最も高いルールが最初に評価されます。 一致する場合は、アラートが生成されるか、(そのルールに対して選択された内容に基づいて) 無視され、評価が停止します。 一致するものが見つからない場合は、次のルールが評価されます。 ルールに一致するものがない場合は、既定のルールが適用されます。

  7. 既存のルールを編集するには、ルールを選択し、[編集] を選択します。 これにより、ルールを変更できるサイド パネルが開きます。

  8. [ルールの複製] を選択して、ルールのコピーを作成できます。 これは、簡単な変更のみで類似するルールを作成する場合に便利です。

  9. ルールを削除するには、[ルールの削除] を選択します。

  10. ルールを構成したら、[保存] を選択して変更を適用し、ポリシーを作成します。

  11. 30 分以内に、保護されたクラスター上のセンサーが新しいポリシーで更新されます。

アラートの監視と管理

アラート システムは、バイナリ ドリフトを通知するように設計されており、コンテナー イメージの整合性を維持するのに役立ちます。 定義されたポリシー条件に一致する承認されていない外部プロセスが検出されると、重大度が高いアラートが生成され、確認できます。

必要に応じてポリシーを調整する

受信したアラートとそのレビューに基づいて、バイナリ ドリフト ポリシーでルールを調整する必要がある場合があります。 これには、条件の絞り込み、新しいルールの追加、誤検知が多すぎるルールの削除が含まれる場合があります。 目標は、定義されたバイナリ ドリフト ポリシーとそのルールで、セキュリティ ニーズと運用効率のバランスが効果的に保たれるようすることです。

バイナリ ドリフト検出の有効性は、環境固有の要件に合わせてポリシーを構成、監視、調整する際のアクティブな関与に依存します。