banner

ブログ

Jul 28, 2023

ロジックアナライザーを使用して Bitlocker をバイパスする

セキュリティ エンジニア [Guillaume Quéré] は、雇用主のためにシステムの侵入テストに一日を費やし、BitLocker フルボリューム暗号化システムのかなり明白な弱点を指摘し、それを悪用することに成功しました。リンク先の記事にあるように、これにより、ユーザー間のトラフィックを単純に盗聴することができます。ディスクリート TPM チップと CPU を SPI バス経由で接続します。 Bitlocker の仕組みは、TPM チップに保存されている秘密キーを使用して、ボリューム データの暗号化に使用されたフル ボリューム キーを暗号化することです。 これはすべて Windows カーネル内の低レベルのデバイス ドライバーによって行われ、ユーザーには透過的です。

BitLocker の主な目的は、物理デバイスの盗難や紛失が発生した場合に、保護されたボリューム上のデータへのアクセスを防止することでした。 ドライブを引き出して、セキュリティで保護されていないマシンまたはその他のアダプターに落としただけでは、TPM に保存されているキーがなければデータは提供されません。 ただし、そのキーはブート シーケンス中に TPM から CPU に平文として渡される必要があるため、[Guillaume] は、非常に低コストのツールとフリー ソフトウェアを使用して、この TPM を見つけて嗅ぎ分けることは非常に簡単であることを示しています。 -CPU トランザクションを実行し、データストリームをデコードしてキーを見つけます。 (SCK、MISO、および MOSI ピンが TPM と共有されているため) 近くのフラッシュ チップ上のいくつかの便利な大きなピンに接続された安価なロジック アナライザを使用するだけで、単純な TIS は TPM のバイトをロックするのに十分なほどデコードされました。フレーム。 これは、TPM2 ソフトウェア コミュニティ グループの厚意により、TPM ストリーム デコーダ Web アプリを使用してデコードできます。 探すコマンドは TPM_CC.Unseal です。これは、関心のあるキーを送信するための CPU から TPM へのリクエストです。その後、TPM 応答フレームを取得してデコードするだけで、すぐに内容が明らかになります。

次に行うことは便宜的なものですが、ほとんどのセキュリティおよびフォレンジック タイプは、ターゲット ボリュームの低レベルのディスク イメージ ファイルにすでにしっかりと存在しています。 Linux xxd コマンドを使用して 32 バイトの 16 進数ダンプ キーをバイナリ キー ファイルに変換すると、dislocker-fuse FUSE モジュールは動的に復号化された仮想ファイル システムを作成し、それをマウントするだけです。 必要に応じて、復号化されたボリューム データを新しいディスクに書き込み、それをマシンにドロップして、オペレーティング システムを起動することができます。 おそらくログインできなかったでしょうが、[Guillaume] が指摘しているように、スティッキー キー アプリ (sethc.exe) を cmd.exe で上書きすると、Shift キーを 5 回押すだけでコマンド プロンプトにアクセスできるようになります。 良い時代だ!

Windows 11 をインストールするために (どうしても必要な場合) 古いシステムの TPM サポートが実際に必要な場合は、いつでも独自に作成することができます。 また、LPC インターフェイスは多くのマザーボードに搭載されているので、これを利用して ISA バス アダプタを吊り下げて、ジャンクに耐えられなかった古いクラシックな Soundblaster カードを接続してみてはいかがでしょうか。

共有