Microsoft Defender XDRの死角、パブリックC2通信が検知クエリをすり抜ける

Microsoft Defender XDRのユーザーは、インターネット向け接続を調査する際、IPアドレスの分類方法に潜む特定の挙動が原因で、C2(command-and-control)通信を見逃してしまう可能性があります。

この問題は、DeviceNetworkEventsテーブルにおいてRemoteIPType == “Public”によるフィルタリングのみに依存するKusto Query Language(KQL)検知ロジックに起因します。その結果、パブリックIPアドレス宛の通信が調査やアラートロジックから除外されてしまうことがあります。

Microsoft Defender XDRの死角

DeviceNetworkEventsテーブルは、Microsoft Defender XDRにおける重要なテレメトリソースです。ネットワーク上の活動を、プロセスやコマンドライン、ユーザーアカウント、ポート、URL、プロトコル情報といったエンドポイントのコンテキストと紐付けられるためです。Detect FYIの報告によります。

セキュリティチームはこのテーブルを頻繁に利用し、不審なHTTPS通信やDNS、リモート管理、その他のアウトバウンド通信を特定しています。しかし、過度に制限的なフィルタを使用すると、偽陰性(検知漏れ)を招くおそれがあります。特に攻撃者が通常のネットワーク活動に紛れ込むような、隠密性の高いC2チャネルを構築している場合は顕著です。

この問題は、RemoteIPTypeフィールドに含まれるFourToSixMapping値に起因します。最新のWindowsアプリケーションは、IPv4とIPv6の両方の通信をサポートするデュアルスタックソケットを作成できます。

IPv4アドレスがIPv4射影IPv6表記で表現される場合、Defenderはこれを::ffff:x.x.x.xとして記録し、種別をPublicではなくFourToSixMappingとして分類することがあります。例えば、IPアドレス8.8.8.8への接続は::ffff:8.8.8.8として表示される場合があります。その結果、RemoteIPType == “Public”に限定した検索では、このイベントが返されません。

この挙動は、パープルチーム演習の際に発見されました。隠密な外部C2チャネルが想定されていたアラートを発生させなかったことがきっかけです。使用されていたクエリはPublicのRemoteIPTypeのみをフィルタしており、結果としてIPv4射影IPv6として表現された通信が意図せず除外されていました。

この見落としは、アウトバウンド通信を監視する検知ロジックに大きなカバレッジの穴を生み出します。特にデュアルスタックネットワークが広く使われている環境では深刻です。

防御側は、この問題の解決をipv4_is_private()関数のみに頼ることについても注意が必要です。::ffff:8.8.8.8のようなIPv4射影IPv6の値が渡された場合、このKQL関数はブール値ではなくnullを返すことがあります。

KQLのフィルタリングロジックにおいてnullはtrueでもfalseでもないため、IPアドレスを正規化せずにプライベートアドレス判定を行うクエリは、射影アドレスを気づかないうちに除外してしまう可能性があります。

セキュリティチームは、PublicとFourToSixMappingの両方の値を含めるようにし、後者についてはIPv4アドレスとしてのチェックを適用する前に正規化する必要があります。適切なクエリは以下の通りです。

| where RemoteIPType in ("Public", "FourToSixMapping")
| extend RemoteIP = iff(RemoteIPType == "FourToSixMapping", replace_string(RemoteIP, "::ffff:", ""), RemoteIP)

正規化を行った後であれば、アナリストはRFC 1918のプライベートアドレス範囲やループバックアドレス、その他インターネット宛ではない通信先を一貫して除外できるようになります。

検知エンジニアは、既存のMicrosoft Defender XDRおよびMicrosoft Sentinelのクエリのうち、RemoteIPType == “Public”でフィルタしているものを見直すべきです。特にC2、不審なアウトバウンドHTTPS通信、異常なDNS活動、リモートアクセスツール、プロキシ回避手法に関するルールは要注意です。

 脅威検知と迅速な調査を加速し、SOCを強化しましょう。 -> ANY.RUNをSOCに統合する今すぐ

ネットワークセキュリティ

翻訳元: https://gbhackers.com/microsoft-defender-xdr-blind-spot/

ソース: gbhackers.com