Windows Defenderのドライバー悪用によりカーネルレベルでのEDR・アンチウイルス回避が可能に

セキュリティ研究者のJiří Vinopal氏は、Microsoft DefenderのBoot-Time Removalドライバー「BTR.sys」に関する詳細な分析結果を公開しました。

同氏の研究により、この正規のMicrosoft署名済みコンポーネントが、攻撃者の制御下でカーネルモードからファイルおよびレジストリ操作を実行するために悪用され得ることが明らかになりました。

「BTR Reforged」と題されたこの研究では、従来型のメモリ破損の脆弱性やBring Your Own Vulnerable Driver(BYOVD)手法には依存していません。その代わりに、信頼されたWindowsの修復コンポーネントに存在する、文書化されていないものの意図的に実装された機能を悪用します。

Windows Defenderドライバーによるアンチウイルス回避

BTR.sysは通常MpEngine.dllに組み込まれており、ロックされた、あるいはアクティブなファイルの削除など、再起動後に修復アクションが必要となった場合にのみMicrosoft Defenderによって展開されます。

このドライバーはランダム化されたドライバー名でインストールされ、一時的なブートスタートサービスとして登録され、割り当てられたタスクを実行した後、その活動の痕跡を消去します。

Image

ランダム化されたファイル名、代替データストリーム(ADS)に保存された設定情報、RC4暗号化、そして自己削除といったこれらの挙動は、インシデント対応時に悪意あるカーネルローダーの活動と酷似する可能性があります。

Vinopal氏はリバースエンジニアリング分析の中で、BTR.sysが従来型のIOCTLインターフェースを使用していないことを突き止めました。その代わり、サービスレジストリのArgs値で指定されたADSパスから、暗号化されたトランザクション設定を読み込みます。

この設定情報は、256バイトのハードコードされた鍵を用いたRC4暗号化で保護されており、改変されたCRC-32チェックサムによって整合性が検証されています。

復号されたペイロードには、さまざまな修復アクションをドライバーに実行させるための、構造化された一連のトランザクションが含まれています。

確認された操作には、ファイルやディレクトリの削除、ファイルの移動、レジストリキーや値の削除、レジストリ値の作成・変更などが含まれます。

正規のDefenderのワークフローにおいて、これらの機能はマルウェアや永続化アーティファクトのクリーンアップに役立っています。

しかし、研究者らが実証したところによると、ドライバーをロードできる管理者権限を持つ攻撃者であれば、これらの機能を悪用して保護対象ファイル、セキュリティサービスの設定、あるいは永続化用の場所を標的にできる可能性があります。この問題は、従来型の脆弱性というよりも、より広範なアーキテクチャ上の信頼境界に関わる問題だといえます。

概念実証ツール「BTR_CLI」は、ローカルのBTR.sysインスタンスの抽出、暗号化されたトランザクション構造の構築、サービスのステージング、操作の実行、そしてクリーンアップまでを自動化します。

Image

開発者らによると、このツールは複数のWindowsリリースから抽出したBTRビルドに対してテストされており、分析対象となったすべてのバージョンで同一のRC4鍵とトランザクション形式が確認されたとのことです。この報告書は、こうした一貫性が確認されたことにより、BTR.sysが信頼性の高い「環境寄生型(living-off-the-land)」のカーネル操作プリミティブとなり得ることを示唆しています。

主な懸念点は、BTR.sysがブート時に配置されるタイミングです。このドライバーはファイルシステムやオブジェクトマネージャーの機能に依存しているため、最も早い段階のブートドライバーとしては動作できませんが、Boot Bus Extenderグループ内のシステムスタートドライバーとしては動作可能です。これにより、研究者らが「ゴールデンウィンドウ」と呼ぶ状態が生まれます。

この期間中、ファイルシステムにはアクセス可能である一方、一部の上位のセキュリティコンポーネントやユーザーモードの保護サービスはまだ初期化されていません。そのため、このタイミングを突くことで、一部のエンドポイント保護機能が完全に有効化される前にカーネル発の操作を実行できる可能性があります。

防御側は、ドライバーの署名のみに依存するのではなく、振る舞いベースの検知を優先すべきです。

推奨されるテレメトリとしては、.sys:changelistに関わるADS作成を検知するSysmonイベントID 15、不審なBTR.sysドライバーのロードを検知するイベントID 6、changelistストリームを指すArgs値を伴うランダム化されたドライバーサービスキーを作成するレジストリイベント、そしてセキュリティバイナリに影響を及ぼすSystemプロセスの活動監視が挙げられます。また、BootClean.logの急速な作成・削除も有用な手がかりとなり得ます。

報道によれば、Microsoft社のMSRCは、この問題を悪用するには既存の管理者権限とSeLoadDriverPrivilegeが必要であることから、この発見は緊急の修正を要するものではないと結論付けています。

いずれにせよ、BTR Reforgedは重要な教訓を浮き彫りにしています。有効な署名はコードの出所を示すものであっても、必ずしも無害な意図を保証するものではないということです。組織は、実行系統、ブート時のドライバー登録、ADSの使用、そしてセキュリティ制御に対する異常なカーネル介在の改変を監視すべきです。

調査の遅れによるインシデントを防止しましょう。15,000のSOCから得た脅威インテリジェンスでTier 1を強化: TI Lookupを貴社のSOCに統合する

翻訳元: https://gbhackers.com/windows-defender-driver/

本記事は gbhackers.com の記事を翻訳・要約したものです。