73
Raspberry Pi RP2350ハッキングチャレンジは破られたようだ — ハッカーはRISC-Vコアにグリッチを仕掛けてデバッグを可能にし、OTPの秘密にアクセスした
RP2350ハッキングチャレンジ
(画像提供:エイダン・カレン)

賞金2万ドルのRaspberry PiとHextree RP2350ハッキングチャレンジの優勝者が決定したようですが、正式な発表は1月14日となります。エンジニアのAedan Cullen氏は、先日開催された第38回Chaos Communication Congress (38C3)で「RP2350のハッキング」に関するプレゼンテーションを公開しました。このプレゼンテーションのビデオを収めたGitHubリポジトリが公開されています。Cullen氏はRP2350を詳細に調査した後、RP2350チップの53ピンに電圧注入グリッチ攻撃を仕掛けました。この攻撃により、「永久に無効化」されたRISC-Vコアとそのデバッグアクセスポートがオンになり、秘密情報を読み出すことに成功しました。

Raspberry Piは、RP2040の後継機として、Raspberry Pi Pico 2を通じてRP2350を発表しました。商用および産業用途の顧客向けにセキュリティ機能が追加されています。この新しいマイクロコントローラーを宣伝するため、Raspberry PiはHextreeと提携し、8月のDEF CONでRP2350ハッキングチャレンジを発表しました。このチャレンジは2024年12月31日に終了しましたが、正式な優勝者の発表は1月14日まで待たなければなりません。Cullen氏は12月27日の38C3でプレゼンテーションを行い、ハッキングプロセスの概要とPythonコードをGitHubリポジトリで公開しました。しかし、Cullen氏が優勝者かどうかは不明であるため、賞金2万ドルのハッキング手法はCullen氏ではない可能性があります。

RP2350ハッキングチャレンジ

(画像提供:エイダン・カレン)

具体的には、RP2350には、Raspberry Piが特に強調していた4つの新しいセキュリティ機能が搭載されています。セキュアブート、TrustZone、冗長コプロセッサ(RCP)、そしてグリッチ検出器です。チャレンジの主催者は、これらの「完全にセキュアな」チップの1つに秘密を隠し、応募したハッカーに提供しました。そして、最初に実証可能な成功事例を作ったハッカーには、賞金2万ドルと優勝者の名誉が与えられました。コンテストのルールでは、ハードウェアおよび/またはソフトウェアによる攻撃が許可されていたため、ほぼ何でもありの状況でした。

RP2350ハッキングチャレンジ

(画像提供:エイダン・カレン)

Raspberry PiとHextreeは、RP2350のチップ上のOTP(One Time Programmable)メモリに秘密を隠します。これは一度設定すれば決して忘れないバイナリコードと言われています。Picotoolを使用して、この秘密コードをOTPに書き込みました。その後、RP2350のOTPメモリは、ページロックハードウェア保護機能によってロックされ、上記の表に示すように「アクセス不可」状態「13:12」に設定されました。ファームウェアも署名され、セキュアブートが有効になっており、チップデバッグ機能は無効化されているため、シリアルワイヤデバッグ(SWD)インターフェース経由で秘密情報にアクセスすることはできません。さらに、他のすべてのブートキーは無効化され、RP2350グリッチ検出器がオンになって最高感度に設定されました。確かにロックダウンされたようです。

カレン氏によると、ハッキングのプロセスはRP2350のデータシートと、そのドキュメントに記載されている依存関係を調べることから始まったという。その後、カレン氏はRP2350の起動方法とセキュリティ設定の仕組み、特にOTPに注目して詳細に調査した。

カレン氏の最初のアイデアは、OTPに重要なビット設定を誤読させ、チップ​​を安全でない方法で動作させることでした。カレン氏は調査の一環としてRP2350をX線検査し、チップブロックに注釈を付けました。しかし、これは単なる興味の追求であり、チャレンジの突破に実際に役立つものではなかったと強調しています。

調査の結果、カレン氏はOTP(およびUSB)機能に接続されている53番ピン(USB-OTP_VDD)に注目せざるを得ませんでした。ハッカーは「この電源を外部から操作」することでこれらの機能に影響を与える可能性があると考えたのです。そこで彼はチップを取り外し、53番ピンを分離(PCBの配線を物理的に切断)しました。こうして、再組み立てされた基板上で個別に電気的に改ざんできる状態になりました。

Tom's Hardware の最高のニュースと詳細なレビューをあなたの受信箱に直接お届けします。

画像

1

3

RP2350ハッキングチャレンジ
(画像提供:エイダン・カレン)

このハードウェアを改造したセットアップで、カレン氏はピン53をプローブし、「必要な電圧を注入」して何が起こるかを確認しました。保護されていないRP2350ボードも用意しておき、並べて比較しました。ハードウェアのセットアップが完了すると、カレン氏はオシロスコープのプローブ表示に基づき、保護されたRP2350と保護されていないRP2350の起動時に通常何が起こるかを観察しました。

16個のスパイク群が観測され、これは起動時の最初のOTP読み取り16回に対応していました。Cullen氏は次に、起動プロセスの特定の時点でピン53に電源グリッチを注入するテストを行いました。しかし残念ながら、デバッグ機能はロックされたままでした。次に、Pythonスクリプトを使用して、起動時のOTP読み取りの600マイクロ秒範囲全体にわたって、グリッチ電源入力の位置をスキャンしました。デバッグ機能を確認しましたが、結局利用できませんでした。そこでCullen氏は、手がかりを探すため、デバッグを有効にしたロック解除済みのRP2350ボードを再度確認しました。

その後、興味深い現象が観察されました。セキュリティ保護されていないRP2350のグリッチによってRISC-Vコアが検出されたのです。Cullen氏は別のスクリプトを用いて、RISC-Vデバッグアクセスポートがどこに表示されるかを確認しました。この手法はセキュリティ保護されたRP2350でも実行可能で、デバッガーをセキュリティ保護されたRP2350に接続することで、OTPから秘密情報を読み取ることができました。

秘密が暴露される

「恒久的に無効化」されていたRISC-Vコアは、このアクセスを可能にするために、このグリッチによってウェイクアップされていました。Cullen氏は、グリッチ0x00030033が機能する奇妙な根本的な理由として、ArmコアとRISC-Vコアの両方を無効化するにもかかわらず、Armの無効化命令の方が優先度が高く、RISC-Vコアはオンのままであるという点を挙げています。重要なのは、このグリッチによってDebug_Disableがクリアされることです。

画像

1

2

RP2350ハッキングチャレンジ
(画像提供:エイダン・カレン)

このハックの背景、特にガードリードメカニズムのバイパスについて詳しく知りたい方は、38c3 中に録画されたビデオ(上部リンク)をご覧ください。セッションの最後には興味深い質疑応答の時間もあります。参加者から、あなたと同様の質問が寄せられるかもしれません。

カレン氏は、3つの簡潔なポイントでプレゼンテーションを締めくくりました。

  • 人間同士のコミュニケーションは非常に重要です。Sidense(OTP NVメモリ技術の開発元)はガードを適切に行う方法を熟知しており、RPiはそれを見逃していました。
  • 「永久」というのは、チップの破壊を伴わない限り、あり得ません。それぞれの信号にはどこかに銅線が入っていますから…。
  • 指示されていない場所でグリッチが発生することを覚えておいてください。

マーク・タイソンはトムズ・ハードウェアのニュース編集者です。ビジネスや半導体設計から、理性の限界に迫る製品まで、PCテクノロジーのあらゆる分野を網羅的にカバーすることに情熱を注いでいます。