-
紹介
- この記事では、Windows 11(バージョン24H2)でBitLocker暗号化を回避する方法を説明する。これは、メモリから完全ボリューム暗号化キー(FVEK)を抽出することで実現される。
-
背景
- 攻撃者が物理的にデバイスへアクセスできる場合、コンピュータを突然再起動し、直前に実行されていたWindowsインスタンスのRAMをダンプして機密情報を得られる可能性がある。
- RAMの内容は電源が遮断されると急速に失われるため、これを防ぐためにRAMを物理的に冷却したり、外部電源を用いたりする方法がある。
- セキュアブートは、デバイス起動時に実行可能なものを制限するセキュリティ標準だが、回避できる方法が存在する。
-
ステップ1: ブート可能なUSBデバイスの作成
- 対象システムのRAM容量より大きいUSBストレージデバイスを用意する必要がある。
flashimage.sh スクリプトを使ってブート可能なアプリケーションを作成し、利用する。
-
ステップ2: 対象システムの突然の再起動
- コンピュータの電源が完全に落ちている時間を最小限にすることが目的である。
- Windowsの読み込み中、ログイン画面が表示される前にシステムを再起動するのが効果的である。
-
ステップ3: USBデバイスからの起動
- USBデバイスからMemory-Dump-UEFIを直ちに起動し、UEFIシェルに到達する。
app.efi を実行してメモリダンプを生成する。
-
ステップ4: ダンプの分析
- FAT32ファイルシステムの4GBというファイルサイズ制限により、複数のダンプが生成される場合がある。
concatDumps プログラムを使用すると、複数のダンプを1つに結合できる。
searchMem プログラムを使用すると、ダンプ内で特定のパターンを検索できる。
-
プールタグ
- プールタグは、Windowsカーネルメモリプールの位置を示す4文字の識別子である。
pooltag.txt ファイルには、さまざまなプールタグとその用途が含まれている。
-
FVEKキーの復元
dFVE プールタグの下でFVEKキーを見つけることができ、これはBitLockerドライブ暗号化の完全ボリューム暗号化クラッシュダンプフィルタに関連している。
None タグの下でもキーを見つけられる。
-
次のステップ
- 取得したキーに使用されたアルゴリズムを追加する必要がある。
dislocker ツールを使用してドライブのロックを解除できる。
-
最終ノート
- BitLockerの実装を理解するには、カーネルレベルのデバッグを行うのが最善である。
- Microsoftはキーを破棄しようと努めているが、すべてのキーを破棄できているわけではない。
1件のコメント
Hacker Newsのコメント
BitLockerは、TPM(PCR 7+11)とPINを併用する場合に最大の利点を発揮する。PINなしではFVEKを読み出せず、PINの誤入力が多いとTPMは辞書攻撃ロックアウトモードに移行する
BitLockerのセキュリティモデルが理解できない。ほとんどのインストールでは、電源ボタンを押すとWindowsが起動する
特定の攻撃は、PC Client Work Group Platform Reset Attack Mitigation仕様によって完全に防御される
記事の著者です。質問があればメッセージを送ってほしいとのこと。作業は楽しく、参加に感謝している
Windows 11 BitLockerバイパスに関する38C3のトークがある
物理アクセス可能な任意の攻撃者が外部から「突然の再起動」を実行できない「エンタープライズ」マシンがある
BitLockerはコンピュータの電源が切れているときにだけ保護し、起動時パスワードを要求するよう設定すべき
Windowsはメモリ暗号化オプションとメモリ圧縮を提案している
対象マシンのメモリダンプを読むエクスプロイトについて、物理アクセスが可能な場合に「インターポーザ」デバイスがデータをコピーまたは改変できるのか気になる
BitLockerで暗号化されたディスクを搭載したSurface 5 Proが、起動中に素早くBSODへ移行する