Image

EDR-Freezeと呼ばれる新しい手法および概念実証ツールは、MicrosoftのWindowsエラー報告(WER)システムを利用して、ユーザーモードからセキュリティソリューションの回避が可能であることを示しています。

この手法は脆弱なドライバーを必要とせず、エンドポイント検出および応答(EDR)ツールなどのセキュリティエージェントを休止状態にします。

WERフレームワークとMiniDumpWriteDump APIを組み合わせて使用することで、セキュリティ研究者TwoSevenOneThree(Zero Salarium)は、EDRやアンチウイルスプロセスの活動を無期限に一時停止させる方法を発見しました。



既存のEDR無効化手法は、「Bring Your Own Vulnerable Driver(BYOVD)」技術に基づいており、攻撃者は正規だが脆弱なカーネルドライバーを利用して権限昇格を行います。

BYOVD攻撃の主な欠点は、ドライバーをターゲットシステムに持ち込む必要があること、実行保護を回避すること、そして作戦を露呈する可能性のあるカーネルレベルの痕跡を消去する必要があることです。

EDR-Freezeは、カーネルドライバーを全く必要とせず、完全にユーザーモードで動作し、OSに標準で存在する正規のWindowsコンポーネントを活用する、はるかにステルス性の高い手法と説明されています。

EDR-Freezeの仕組み

WerFaultSecureは、Protected Process Light(PPL)権限で実行されるWindowsエラー報告コンポーネントであり、デバッグや診断のために機密性の高いシステムプロセスのクラッシュダンプを収集するために設計されています。

MiniDumpWriteDumpは、DbgHelpライブラリ内のAPIで、プロセスのメモリや状態のスナップショット(「ミニダンプ」)を生成します。この際、対象プロセスの全スレッドを一時停止し、処理完了後に再開します。

EDR-FreezeはWerFaultSecureを利用してMiniDumpWriteDumpをトリガーし、ダンプの書き込み中に対象プロセスの全スレッドを一時的に停止させます。

このプロセス中、攻撃者はWerFaultSecureプロセス自体を一時停止させることで、ダンプ処理が完了しても対象プロセスが再開されず、AVプロセスが「昏睡」状態のままになります。

研究者は、これを4つのステップで再現可能な競合状態攻撃(レースコンディション攻撃)と説明しています:

  1. WerFaultSecureをPPLとして起動する。
  2. WerFaultSecureに引数を渡し、ターゲットPIDに対してMiniDumpWriteDumpを呼び出させる。
  3. ダンプ操作によってターゲットが一時停止するまで監視する。
  4. 直ちにWerFaultSecure(PROCESS_SUSPEND_RESUME)を開き、NtSuspendProcessを呼び出してダンパーを凍結する。

研究者は、これらの操作を実行するツールも公開しており、Windows 11 24H2上でWindows Defenderプロセスの凍結に成功しています。

Image
パラメータの設定(左)とWindows Defenderの一時停止(右)
出典:Zero Salarium

この新しい攻撃は、MiniDumpWriteDumpとWerFaultSecure両方の本来の動作を連鎖させているため、Windowsの脆弱性というより設計上の弱点といえます。

EDR-Freezeへの防御策としては、WERがLSASSやセキュリティツールなどの機密プロセスの識別子を指していないか監視することが挙げられます。この目的のため、セキュリティ研究者Steven Limが、WerFaultSecureをMicrosoft Defender Endpointプロセスにマッピングするツールを開発しています。

それでも、Microsoftは不正な呼び出しのブロック、特定のPIDのみに許可、パラメータの制限など、これらのWindowsコンポーネントの悪用に対する強化策を講じることができます。

BleepingComputerは、このような手法への防御方法についてMicrosoftにコメントを求めており、回答があり次第本記事を更新します。

翻訳元: https://www.bleepingcomputer.com/news/security/new-edr-freeze-tool-uses-windows-wer-to-suspend-security-software/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です