Ledger Nano Sにおける脆弱性の報告と対策
執筆 AndGoインターン 内藤貴生 naito.icon
下記記事をもとにLedger Nano Sにおける脆弱性の報告と対策を報告します。
Breaking the Ledger Security Model
https://gyazo.com/bca1410ba46ca943f90292b8562a51f3
ハードウェアウォレットから秘密鍵が盗まれる?
記事では悪意のある攻撃者がハードウェアウォレットの脆弱性を利用し、デバイスの秘密鍵を盗むことができる脆弱性が報告されています。秘密鍵が盗まれると自由に資産をやり取りできるようになってしまいます。秘密鍵が盗まれるシチュエーションには以下の3つが挙げられます。
シードセットアップ前の物理アクセス(supply chain attack)
セットアップ前にハードが物理的にアクセスされ細工される場合
セットアップ後の物理アクセス(Evil Maid attack)
攻撃者が秘密鍵を流出させるカスタムMCUファームウェアをなんとかしてインストールする場合
マルウェア
マルウェアに感染したコンピュータ上でユーザーがMCUファームウェアを更新する場合
今回の記事では主にシードセットアップ前の物理アクセスによる侵害が説明されています。
実装
この侵害は攻撃者によるカスタムファームウェアの書き込みにより実現されます。
(下記で示すようにLedger社は対策しています)
Ledgerはファームウェアをインストールする方法が二つあります。
組み込みファームウェア開発者が使用するデバッグインターフェイスJTAGを使用し、新しいファームウェアをアップロードすることができます。
攻撃はLedgerユーザーがファームウェアを更新するために使用するブートローダーへの細工を起点とします。
記事によると、ブートローダーとファームウェア内に__udivsi3という同様の組み込み関数を用いていることがわかりました。ファームウェア内__udivsi3を除去しブートローダから参照する様にします。そうすることで、payloadを得ることに成功しました。このpayloadを利用して画面に描画する関数をフックすることに成功したと述べています。
https://gyazo.com/ba06555c6d8c3b0a4822f0242d35f54d
この侵害により、回復シードを自由に変更することができます。記事内の動画ではabandonを23語連続にできてしまう例が紹介されています。秘密鍵は回復シードから導出されるため、回復シードを制御すると、デバイスによって生成されたすべてのBitcoinアドレスが制御されてしまいます。
Ledgerの修正
Ledgerは、複数の緩和策を使用して、攻撃者がこの脆弱性を悪用するのを防ぎました。
まず、MCUのファームウェアが最適化され、再配置されました。特に、ファームウェアは、機能を複製するのではなく、ブートローダ内の機能を呼び出すよう変更されました。
第2に、Ledger内のSEはフラッシュコンテンツを送信を要求した際にMCUの時間を計測します。これは、圧縮アルゴリズムを使用しないように設計されています。また、USB経由でコンピュータからコードが供給されるのを防ぐことも想定されています。コードをRAMに保存することができるため、後者を実行するのがどれくらいうまくいくかわかりません。
ただし、SEは最大28 MHzで動作しますが、MCUは最大80 MHzで動作します。より遅いチップが、より遅いUART通信を除いて、特に余分なことをするのを防ぐために、より速いチップに正確に時間を合わせることができるかどうかという疑問を投げかけます。
開示タイムライン
2017年11月11日:Ledger CTO、Nicolas Baccaに脆弱性を正式に報告。脆弱性はもっともらしくないと判断されています。
2017年11月14日:悪用したMCUファームウェアとユーザーインターフェイスを使用した実用的なサプライチェーン攻撃のデモのソースコードをBaccaに送りました。
2017年12月30日:ファームウェアをサポートされていないバージョンにダウングレードすることでLedger Nano Sを保護しました。
2018年3月6日:LedgerがLedger Nano Sのファームウェアアップデートをリリースしました。
2018年3月20日:書き込みおよび概念実証のコードがリリースされました。
まとめ
Ledger Nano Sにおける脆弱性とそれに対するLedgerの対応案をまとめた。
サプライチェーンアタックに対するユーザー側ができる対策は信頼のできる販売元からウォレットを購入することが挙げられます。またLedger側としては脆弱性にいち早く対応するような体制が必要となります。ユーザーとしてもハードウェアウォレットの選択する要因として注目していきたいです。