Skip to main content
QUICK REVIEW

[論文レビュー] Injecting Software Vulnerabilities with Voltage Glitching

Yifan Lu|arXiv (Cornell University)|Feb 14, 2019
Physical Unclonable Functions (PUFs) and Hardware Security参考文献 7被引用数 6
ひとこと要約

本論文は、クロバーサーキットを用いてCMOS論理回路にタイミング違反を引き起こす低コストな電圧グリッチ攻撃を実証し、PlayStation VitaのARMベースSoCにおけるセキュアブート保護を回避するフォールトインジェクションを可能にした。著者らはグリッチパラメータを体系的にスキャンすることで、信頼性の高いコード実行を達成し、マップされていないブートROMのダンプに成功した。これは、電圧グリッチが硬化された消費者向けデバイスにおけるデータ依存性のあるタイミング脆弱性を悪用できることを示している。

ABSTRACT

We show how voltage glitching can cause timing violations in CMOS behavior. Then we attack a real, security hardened, consumer device to gain code execution and dump the secure boot ROM.

研究の動機と目的

  • トランジスタの供給電圧が一時的に低下する状態(V_DD' ≈ 0V)における、CMOSインバータの伝播遅延(t_pHLおよびt_pLH)の分析を通じて、電圧グリッチがCMOS論理回路に与える影響を理論的モデル化すること。特に、セットアップ/ホールド時間違反に注目する。
  • このモデルを、実世界のセキュリティハードened消費者機器(PlayStation Vita)に適用し、初期ブート段階でのコード実行を達成すること。
  • 実行中の重要な整合性チェックを破壊することで、電圧グリッチがセキュアブートメカニズムを回避可能であることを実証すること。
  • オープンソースハードウェア(ChipWhisperer)を用いて、現代のハードened SoCにおいてもフォールトインジェクションが実現可能で再現可能であることを示すこと。

提案手法

  • 一時的な供給電圧状態(V_DD' ≈ 0V)下でのCMOSインバータの挙動をモデル化し、伝播遅延(t_pHLおよびt_pLH)を分析する。
  • グリッチパラメータとして、N(グリッチ発生サイクル)とM(グリッチ継続時間、サイクル単位)を定義し、フォールト誘発タイミング窓を体系的にスキャンする。
  • Rigol DS1054Zオシロスコープを用いてeMMC通信をモニタリングし、不正なコマンドシーケンス(例:予期しないREAD_SINGLE_BLOCKリクエスト)を検出することで、成功したフォールトを特定する。
  • ChipWhisperer APIを用いた自動ブートフォーススキャンを実装し、定義された範囲内のすべてのNおよびMの組み合わせをテストし、各試行後のデバイス挙動を観察する。
  • 成功したフォールトは、デバイスが最初のブートローダーブロックを要求することに起因することを観察し、これによりグリッチの成功を検出可能であることを活用する。
  • グリッチパラメータを段階的に最適化し、フォールトを悪用することで、より早いコード実行を達成し、SRAM上のブートROMを段階的にダンプする。

実験結果

リサーチクエスチョン

  • RQ1電圧グリッチは、特にセットアップ/ホールド時間違反を通じて、CMOS論理回路にどのようにタイミング違反を引き起こすか?
  • RQ2実際のSoCにおける組み合わせ論理およびフリップフロップの挙動に、電圧グリッチが与えるデータ依存性の影響は何か?
  • RQ3現代の硬化された消費者デバイスにおいて、電圧グリッチを信頼性を持ってセキュアブートメカニズムを回避するのにも使用可能か?
  • RQ4フォールトインジェクションパラメータ(NおよびM)は、一貫した悪用が可能となるように、どのように体系的に発見・調整可能か?
  • RQ5フォールト誘発のソフトウェア脆弱性は、どの程度コード実行およびデータ漏洩の達成に利用可能か?

主な発見

  • PlayStation VitaのF00Dプロセッサに対して、実際に動作する電圧グリッチ攻撃が成功裏に実行され、初期ブート段階で信頼性の高いコード実行が達成された。
  • 最適なグリッチパラメータは、N = 40800–40820サイクル、M = 45–55サイクルであり、安定した条件下で80%を超える成功率を示した。
  • 成功したフォールトは、予期しないeMMCコマンドシーケンスの観察(特に、グリッチ後にデバイスが最初のブートローダーブロックを要求すること)によって検出された。
  • 攻撃は、ブローバー・サイズの整合性チェックにおけるデータ依存性の脆弱性を悪用し、フォールトにより誤ったブロック数(0xE2)が読み込まれた。
  • ブートROMは直接読み取り可能ではなかったが、SRAM上で実行を獲得し、より前のコードセクションを繰り返しグリッチすることで、より多くのデータを抽出する形で間接的にダンプされた。
  • この手法は頑健で再現可能であり、環境変動があっても初期の有効な設定の周辺で新たな有効なパラメータペアを容易に発見できた。

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

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

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

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