バイナリ ドリフト検出 (プレビュー)
バイナリ ドリフトは、元のイメージから取得されていない実行可能ファイルをコンテナーが実行しているときに発生します。 これは意図的で正当なものである場合と、攻撃を示している場合があります。 コンテナー イメージは不変である必要があるため、元のイメージに含まれていないバイナリから起動されたプロセスは、疑わしいアクティビティとして評価する必要があります。
バイナリ ドリフト検出機能では、イメージから取得されたワークロードと、コンテナーで実行されているワークロードの間に違いがある場合にアラートが生成されます。 コンテナー内の承認されていない外部プロセスを検出することで、潜在的なセキュリティ上の脅威について警告します。 ドリフト ポリシーを定義して、アラートを生成する条件を指定することで、正当なアクティビティと潜在的な脅威を区別するのに役立ちます。
バイナリ ドリフト検出は Defender for Containers プランに統合されており、パブリック プレビューで利用できます。 Azure (AKS)、Amazon (EKS)、Google (GKE) クラウドで使用できます。
前提条件
- バイナリ ドリフト検出を使用するには、AWS、GCP、AKS で使用可能な Defender for Container センサーを、バージョン 1.29 以降で実行する必要があります。
- Defender for Container センサーは、サブスクリプションとコネクタで有効にする必要があります。
- ドリフト ポリシーを作成して変更するには、テナント上のセキュリティ管理者以上のアクセス許可が必要です。 ドリフト ポリシーを閲覧するには、テナント上のセキュリティ閲覧者以上のアクセス許可が必要です。
コンポーネント
次のコンポーネントは、バイナリ ドリフト検出の一部です。
- バイナリ ドリフトを検出できる強化されたセンサー
- ポリシー構成オプション
- 新しいバイナリ ドリフト アラート
ドリフト ポリシーを構成する
ドリフト ポリシーを作成して、アラートを生成するタイミングを定義します。 各ポリシーは、アラートを生成する条件を定義するルールで構成されます。 これにより、特定のニーズに合わせて機能を調整し、誤検知を減らすことができます。 除外を作成する場合は、特定のスコープまたはクラスター、イメージ、ポッド、Kubernetes ラベル、または名前空間に優先順位の高いルールを設定します。
ポリシーを作成して構成するには、次の手順に従います。
Microsoft Defender for Cloud で、[環境設定] に移動します。 [コンテナーのドリフト ポリシー] を選択します。
[Kube-System 名前空間のアラート] ルールと [既定のバイナリ ドリフト] ルールという 2 つのルールがすぐに表示されます。 既定のルールは、その前に一致するルールが他にない場合、すべてに対して適用される特別なルールです。 そのアクションを変更できるのは、[ドリフト検出アラート] を選択するか、既定の [ドリフト検出を無視] に戻します。 [Kube-System 名前空間のアラート] ルールは、すぐに使用できる提案であり、他のルールと同様に変更できます。
新しいルールを追加するには、[ルールの追加] を選択します。 ルールを構成できるサイド パネルが表示されます。
ルールを構成するには、次のフィールドを定義します。
- ルール名: ルールのわかりやすい名前。
- アクション: ルールでアラートを生成する必要がある場合は [ドリフト検出アラート]、アラート生成から除外する場合は [ドリフト検出を無視する] を選択します。
- スコープの説明: ルールが適用されるスコープの説明。
- クラウド スコープ: ルールが適用されるクラウド プロバイダー。 Azure、AWS、または GCP の任意の組み合わせを選択できます。 クラウド プロバイダーを展開する場合は、特定のサブスクリプションを選択できます。 クラウド プロバイダー全体を選択しない場合、クラウド プロバイダーに追加された新しいサブスクリプションはルールに含まれません。
- リソース スコープ:ここでは、コンテナー名、イメージ名、名前空間、ポッドのラベル、ポッド名またはクラスター名のカテゴリに基づいて条件を追加できます。 次に、演算子 [次で開始]、[次で終わる]、[次の値に等しい]、または [値を含む] を選択します。 最後に、合致させる値を入力します。 [+条件の追加] を選択して、必要な数の条件を追加できます。
- プロセスの許可リスト: コンテナーで実行できるプロセスの一覧。 この一覧にないプロセスが検出されると、アラートが生成されます。
dev1.exe
プロセスを Azure クラウド スコープ内のコンテナーで実行できるようにするルールの例を次に示します。そのイメージ名は、Test123 または env123 で始まります。[適用] を選択してルールを保存します。
ルールを構成したら、一覧でルールを選択して上下にドラッグし、優先度を変更します。 優先度が最も高いルールが最初に評価されます。 一致する場合は、アラートが生成されるか、(そのルールに対して選択された内容に基づいて) 無視され、評価が停止します。 一致するものが見つからない場合は、次のルールが評価されます。 ルールに一致するものがない場合は、既定のルールが適用されます。
既存のルールを編集するには、ルールを選択し、[編集] を選択します。 これにより、ルールを変更できるサイド パネルが開きます。
[ルールの複製] を選択して、ルールのコピーを作成できます。 これは、簡単な変更のみで類似するルールを作成する場合に便利です。
ルールを削除するには、[ルールの削除] を選択します。
ルールを構成したら、[保存] を選択して変更を適用し、ポリシーを作成します。
30 分以内に、保護されたクラスター上のセンサーが新しいポリシーで更新されます。
アラートの監視と管理
アラート システムは、バイナリ ドリフトを通知するように設計されており、コンテナー イメージの整合性を維持するのに役立ちます。 定義されたポリシー条件に一致する承認されていない外部プロセスが検出されると、重大度が高いアラートが生成され、確認できます。
必要に応じてポリシーを調整する
受信したアラートとそのレビューに基づいて、バイナリ ドリフト ポリシーでルールを調整する必要がある場合があります。 これには、条件の絞り込み、新しいルールの追加、誤検知が多すぎるルールの削除が含まれる場合があります。 目標は、定義されたバイナリ ドリフト ポリシーとそのルールで、セキュリティ ニーズと運用効率のバランスが効果的に保たれるようすることです。
バイナリ ドリフト検出の有効性は、環境固有の要件に合わせてポリシーを構成、監視、調整する際のアクティブな関与に依存します。