注目

脅威動向 / THREATS / DEFENSIVE BYPASS / KERNEL

Defenderの正規ドライバ「BTR.sys」がカーネル操作の道具に — Check Pointが全バージョンで再現、EDR無力化の手口を実証

Windows Defenderに同梱される再起動時修復ドライバ BTR.sys を、Check Point Researchがリバースエンジニアリングしてカーネル権限のファイル・レジストリ操作エンジンに転用できることを実証した。署名済みドライバをADS経由の暗号化トランザクションで操り、起動直後の保護未発動の隙にセキュリティ製品を無力化する。実被害は未確認だが、管理者権限が前提のLiving-off-the-Land手法として検知・権限管理の見直しが求められる。

攻撃手法
ソフトウェア

Windows Defenderに同梱される再起動時の修復用ドライバ「BTR.sys(Boot-Time Removal driver)」を、攻撃者がカーネル権限で任意のファイル・レジストリ操作を実行する道具に転用できることを、Check Point Researchが2026年8月20日に公開した研究「BTR Reforged」で実証した。脆弱性やメモリ破壊は不要で、正規のMicrosoft署名が付いたドライバをそのまま悪用するLiving-off-the-Land手法だ。現時点で実世界での悪用は確認されていないが、署名ブロックリストでは防げない点で防御側の検知設計の見直しが求められる。

何が分かったのか

Check Pointによると、BTR.sysは**MpEngine.dllにPEリソース「BOOTTIMETOOL」として埋め込まれ**、ロックされたファイルの削除など再起動が必要な修復時のみ、ランダムな8文字名(例: mzqnjtaq.sys)でSystem32\driversにドロップされる。サービス名もランダムで、起動後はトランザクションを実行して直ちに自己アンロードする「ワンショット」ドライバだ。

通常のIOCTL(入出力制御インターフェース)は持たず、サービスレジストリのArgs値が指すAlternate Data Stream(ADS: 1つのファイルに複数のデータ領域を持たせるNTFSの機能)C:\Windows\drivers\<random>.sys:changelistに格納された暗号化バイナリを読み取って動作する。この構成が**「カスタムプロトコルと予想外に強力なカーネル実行モデル」**だと研究は指摘する。

Check Pointは暗号化と整合性検証を完全に解析し、暗号化済みトランザクションを正しく生成する研究用ツール「BTR_CLI」を開発。これによりドライバの機能を安全に再現した。

暗号化とトランザクション構造

Check Pointの解析によると、構成ブロブの保護は以下の通りだ。

  • 暗号化: RC4ストリーム暗号。鍵はドライバの.rdataセクションにハードコードされた256バイト。Winbindexで確認した12の64ビットMpEngine.dll(Windows 10/11の全リリース)にわたり18の署名済みBTR.sysビルドで同一だった
  • 整合性: 標準のCRC-32(多項式0xEDB88320、初期値0xFFFFFFFF)から最終XORを省略した~CRC32。Global Header/Payload/Item Header/Item Dataごとに独立して検証され、連鎖的な改ざんを防ぐ設計だが、鍵が固定のため正当なトランザクションの偽造は可能だった
  • **構造: 先頭24バイトのGlobal Header(Magic 0xFEE1DEAD、Version 2、PayloadOffset、~CRC32、TransID)、可変長のGlobal Payload(フィードバックファイルパス)、続いて複数のOperation Item(Header 16バイト+Data)**が連なる
  • フィードバック: ドライバは各Itemの先頭4バイト(Flags領域)をNTSTATUSコードで上書きした実行レポートを生成し、BootClean.logという一時ログも作成する。BTR_CLIは先頭にBootClean.logの削除Itemを自動挿入し、実行直後に自身の痕跡を消すアンチフォレンジクスも実装した

成功時の戻り値はSTATUS_SUCCESSではなく**0xC0000056(STATUS_DELETE_PENDING)**で、カーネルに即時アンロードを指示する挙動も確認された。

6つの操作プリミティブで何ができるのか

研究が実装したAction IDは以下の6種だ。

  • Action 1: ファイル削除 — カーネルレベルで排他ロックをバイパスして削除
  • Action 2: ディレクトリ削除 — 空ディレクトリを削除
  • Action 3: ファイル移動/隔離[Flags][Source][Dest]。Destが空なら削除、System32など任意の場所への移動で任意ファイル書き込み(例: 悪性DLLの配置)に転用可能
  • Action 4: レジストリキー削除 — キーと配下を削除
  • Action 5: レジストリ値削除[Key\\Value]形式だが、区切りにダブルバックスラッシュ\\が必須という独自パーサが存在
  • Action 6: レジストリ値設定[Flags][Type][Size][Key\\Value][Data]。キーの新規作成も含む任意レジストリ書き込みで、Runキーやサービス登録による永続化、Tamper Protection(改ざん防止機能)やEDR設定の無効化に悪用しうる

いずれも署名済みカーネルドライバからの操作のため、ユーザーモードの保護機能を迂回できる。

なぜEDR/AVを無力化できるのか — Golden Window

BTR_CLIはドライバのサービスグループを**Boot Bus Extenderに設定する。これはブートのフェーズ1でファイルシステムがオンラインになった直後に読み込まれるグループだ。この時点ではディスクへの書き込みは可能だが、Defenderのユーザーモードサービスはまだ起動していない**。Check Pointはこの隙間を**「Golden Window」**と呼ぶ。

検証では完全更新されたWindows 11 25H2で、起動ログによりこのタイミングでDefenderの中核バイナリを削除すると、メインのウイルス対策サービスが起動に失敗し、自己修復やクラウド報告も機能しなくなった。実行中にレジストリからDefenderのサービスキーを削除する操作も、署名済みカーネルからの要求としてTamper Protectionをバイパスできたという。

前提条件とMicrosoftの対応

Check Pointは**「実世界での悪用は確認していない」と明記している。悪用には事前の管理者権限、具体的にはSeLoadDriverPrivilege(ドライバのロード権限)**が必須だ。

開示後、Microsoft MSRCは「即時対応(servicing)の基準を満たさない」と回答した。理由は管理者権限が前提であるためだ。結果としてBTR.sysはブロックリストに載らない、正規のLiving-off-the-Landドライバとして残る。

署名の真正性に依存するVulnerable Driver Blocklist(脆弱ドライバのブロックリスト)では、BTR.sysのような正規コンポーネントは対象外で、外部ドライバを持ち込む典型的なBYOVD(Bring Your Own Vulnerable Driver)とは異なる。

Check Pointが推奨する検知・緩和策

研究はハッシュや署名ではなく行動の監視を推奨している。以下はCheck Pointが実際に公表した内容に限定した対策だ。

  • ADS :changelistの監視.sysファイルに付随する:changelistというADSの作成を監視する。SysmonのEvent ID 15で高精度に取得できる
  • Systemプロセス(PID 4)によるセキュリティ製品の削除の検知 — ドライバロード直後にSystemプロセスがセキュリティ関連バイナリを削除する挙動をフラグする
  • 権限の最小化SeLoadDriverPrivilegeを厳格に制限し、付与状況を監査する
  • 親プロセスの監視 — ドライバロードの親プロセスがDefenderの正規プロセスではなく、cmd.exePowerShellなど外部にある場合にアラートする

Check PointはBTR_CLIのコードと18ビルドの解析結果を公開し、同様のパターンが他の修復コンポーネントにも潜む可能性を指摘している。防御側は**「信頼されたセキュリティ基盤自体が強力なプリミティブを露出していないか」**という観点での棚卸しが求められると結論付けた。

出典

この記事は、公開情報と編集部の調査・知見をもとに構成しています。内容は公開時点の情報に基づく解説であり、個別の環境への診断・対応を保証するものではありません。重要な判断では、記事内の出典や各提供元の最新情報もご確認ください。