Trezorのハッキング方法
はじめに
この記事では、過去に明らかになっている Trezor のハッキング方法についてまとめています。今回は 2 つの事例を取り上げています。
故障利用攻撃を利用したPINの取得
コインテレグラフの記事によると、古いファームウェアバージョンの Trezor One はハッキングによって資産を取り出すことができたようです。
このハッキング方法は、Kingpin で知られるハッカー「Joe Grand」氏が YouTube に公開しています。
なぜハッキングしたのか?
ある起業家(Reich 氏)が、自分の持っている Trezor のセキュリティ PIN を紛失していることに気づきました。そこに入っている資産が 5 万ドルから 200 万ドルに膨れたため、なんとかして取り出そうと考えました。
Trezor はウォレットのシードフレーズや PIN がなければ資産を回収することができません。Reich 氏は Grand 氏に連絡し、紛失した PIN を見つける方法を探しました。
ハッキング方法
Trezor はファームウェアのアップデート時に、PIN と鍵を一時的に RAM に移動させ、ファームウェアのインストール後にフラッシュドライブに戻します。Grand 氏は Reich 氏の Trezor にインストールされたファームウェアのバージョンでは、この PIN と鍵情報が移動されず、RAM に「コピー」されていることを発見しました。つまり、ハッキングに失敗して RAM が消去されても、PIN と鍵に関する情報はフラッシュに保存されたままであることが分かったのです。
そこで、Grand 氏はチップにかかる電圧を変化させるフォールト・インジェクション攻撃という手法を用いた後、ハッカーによる RAM の読み取りを防ぐためにマイクロコントローラーが持つセキュリティを突破し、ウォレットと資金へのアクセスに必要な PIN を入手することに成功したのです。
まとめ
Trezor の RAM から PIN を読み取ることができるこの脆弱性は古いもので、新しいデバイスではすでに修正されているとのことです。しかし、マイクロコントローラーに変更が加えられない限り、フォールト・インジェクション攻撃は依然としてリスクをもたらす可能性があります。
電圧グリッチを利用した情報抽出
Kraken 研究チームによる調査
2020年1月31日、Kraken Security Labs はハッカーが悪用できる「修正不可能な」デバイスの脆弱性により、同社の研究チームが 15 分以内に Trezor から秘密鍵を抜き取ることができることを発表しました。
この攻撃では、Trezor のチップを取り出し、特殊なデバイスに載せるか、いくつかの重要なコネクタをハンダ付けすることで、物理的に介入する必要があります。つまり、この方法には特別なハードウェアが必要になります。
そして、Trezor のチップは、特定の瞬間に信号を送る「グリッチャーデバイス」に接続されなければなりません。この信号により、チップのメモリが外部機器に読み取られないようにする内蔵の保護機能が解除される。この仕掛けにより、攻撃者は秘密鍵の種を含む重要な財布のパラメータを読み取ることができる。シードは PIN で生成された鍵で暗号化されていますが、研究者はその組み合わせをわずか 2 分でブルートフォース(総当り)することができました。
この脆弱性は、Trezor が使用している特定のハードウェアに起因していたため、ウォレットを完全に再設計し既存の全モデルを回収する必要がありました。こちらの技術的詳細については別の記事にまとめたいと思います。