Skip to main content
QUICK REVIEW

[論文レビュー] Keyshuffling Attack for Persistent Early Code Execution in the Nintendo 3DS Secure Bootchain

Matthew McClintic, Devon Maloney|arXiv (Cornell University)|Jan 31, 2018
Advanced Malware Detection Techniques被引用数 4
ひとこと要約

本論文は、任天堂3DSのセキュアブートチェーンにおけるAES-128-ECBの決定論的復号の特徴を悪用することで、デバイスのセキュアブートチェーン内で、正当なファームウェアが実行される前にも、悪意あるペイロードをメモリから読み込んで実行できる、永続的な早期コード実行を可能にするキーシャッフル攻撃を提示している。鍵セクタ内のKey #2を操作することで、ブートROMが正当なファームウェアが実行される前に、メモリ上の悪意あるペイロードを読み込み実行するよう強制し、ハードウェアの秘密情報を抽出し、長期的なシステムの乗っ取りを可能にする。

ABSTRACT

We demonstrate an attack on the secure bootchain of the Nintendo 3DS in order to gain early code execution. The attack utilizes the block shuffling vulnerability of the ECB cipher mode to rearrange keys in the Nintendo 3DS's encrypted keystore. Because the shuffled keys will deterministically decrypt the encrypted firmware binary to incorrect plaintext data and execute it, and because the device's memory contents are kept between hard reboots, it is possible to reliably reach a branching instruction to a payload in memory. This payload, due to its execution by a privileged processor and its early execution, is able to extract the hash of hardware secrets necessary to decrypt the device's encrypted keystore and set up a persistent exploit of the system.

研究の動機と目的

  • 任天堂3DSのセキュアブートチェーンを乗っ取り、早期かつ永続的なコード実行を達成する実用的な攻撃を示すこと。
  • 鍵セクタの復号プロセスにおけるAES-128-ECBモードの決定論的性質を悪用して、ファームウェア実行フローを操作すること。
  • ブートROMがFIRM0の上にFIRM1をロードする際、メモリをクリアしない挙動を活用して、悪意あるペイロードをインストールすること。
  • ARM9ファームウェアがSHA_HASHレジスタをクリアする前に対象の早期実行を活用し、ハードウェア秘密情報(例:OTPハッシュ)を抽出し、再起動後も持続的なバックドアを確立すること。
  • 適切に実装されていない場合、追加のセキュリティ層(例:ARM9Loaderの暗号化)が、既存の信頼チェーンを逆に弱体化させる可能性があることを示すこと。

提案手法

  • 暗号化されたキーストア内の鍵をシャッフルすることで、AES-128-ECBのブロックレベルにおける決定論的性質を悪用し、誤ったが実行可能なコードに復号されるファームウェアを予測可能にすること。
  • Key #2をブルートフォースで特定し、10.2.0ファームウェアバイナリを復号する際に、8.1.0ファームウェアバイナリの終端から0x190バイト先を指すジャンプ命令が得られる値を見つけること。
  • 修正済みの暗号化されたKey #2をキーストアにインストールし、10.2.0ファームウェアバイナリの計算されたオフセットにカスタムペイロードを配置すること。
  • ブートROMのフォールバック挙動を活用:FIRM0の署名検証に失敗した場合、メモリをクリアせずにFIRM1がFIRM0の上にロードされること。
  • ブートROMがFIRMパーティションの両方をキー スロット0x06で復号するため、悪意あるペイロードがARM9ファームウェアが実行される前に入力され、実行可能になるようにすること。
  • ブートプロセスの初期段階でペイロードを実行し、ARM9ファームウェアがSHA_HASHレジスタをクリアする前に対象のOTPハッシュを抽出し、永続性を確立すること。

実験結果

リサーチクエスチョン

  • RQ1任天堂3DSのキーストアにおけるAES-128-ECBの決定論的性質が、悪意あるペイロードへのコード実行のリダイレクトに悪用可能か?
  • RQ2ブートROMがFIRM0の上にFIRM1をロードする際、メモリをクリアしない挙動が、永続的なコード実行ベクトルを可能にするか?
  • RQ3キーストアに仕込んだ鍵が、不正なが正しいが実行可能な状態にARM9ファームウェアバイナリを復号し、制御可能なジャンプターゲットを生成できるか?
  • RQ4ARM9ファームウェアがSHA_HASHレジスタをクリアする前に対象のハードウェア秘密情報(例:OTPハッシュ)を抽出することは可能か?
  • RQ5セキュアブートチェーンに追加の暗号化レイヤーが導入された場合、それが適切に監査されない限り、新たな攻撃ベクトルを生じる可能性はどの程度か?

主な発見

  • 本攻撃は、キーストアにおけるAES-128-ECBの決定論的ブロック復号の特徴を悪用することで、任天堂3DSで永続的な早期コード実行を成功させた。
  • 特定のKey #2がブルートフォースで特定され、10.2.0ファームウェアバイナリの復号時に、8.1.0ファームウェアバイナリの終端から0x190バイト先を指すジャンプ命令が生成された。
  • ブートROMがFIRM0の署名検証に失敗した後にFIRM1をFIRM0の上にロードするが、メモリをクリアしない挙動のおかげで、ペイロードはARM9ファームウェアが実行される前 reliably に実行された。
  • 攻撃により、ARM9ファームウェアがSHA_HASHレジスタをクリアする前に対象のOTPハッシュを抽出でき、完全な鍵回復が可能になった。
  • バージョン9.6.0におけるARM9Loaderの実装で、Key #2の検証が行われなかったという深刻な欠陥が生じ、これがキーシャッフル攻撃の実行を可能にした。
  • 本攻撃は、追加のセキュリティ措置(例:ARM9Loaderの暗号化レイヤー)が適切に検証されない場合、既存の信頼チェーンを弱体化させる可能性があることを示している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。