Ledger販売端末に不正部品、リカバリーフレーズ窃取で9300万ドル流出
出典: developers.ledger.com

販売店経由のLedger端末で改造を確認

東南アジアと欧州の販売店を通じて流通したLedgerのハードウェアウォレットから、リカバリーフレーズを外部へ送る不正部品が見つかりました。報告された暗号資産の流出額は少なくとも9300万ドルに達しています。

最初に確認された改造端末は、マレーシアの販売店から購入されたものでした。販売元のCryptobilisはインドネシアやフィリピンでも販売しており、現在は全ブランドのハードウェアウォレットの販売を停止しています。

欧州では、ドイツのMediaMarktで購入された端末2台にも同じ改造が見つかりました。少なくとも1台は欧州各地に供給する販売会社Aqipa GmbHから出荷された端末とされています。

初回設定中の表示を読み取る仕組み

改造端末では、ディスプレイの下に薄いフレキシブル基板が取り付けられ、初回設定で入力するリカバリーフレーズを画面の画素情報から読み取ります。取得した情報は、端末内に追加されたeSIMとLTEモジュールを使って外部へ送られる仕組みです。

リカバリーフレーズは、端末を紛失・破損・リセットした際に暗号資産の秘密鍵などを復元するための情報です。端末は初回設定時にマスターシードを生成し、利用者が書き留めて保管します。

Ledger端末の標準的な設定では、マスターシードはBIP 39という規格に沿った24語のフレーズです。端末内の乱数生成器が256ビットを作り、SHA-256のチェック用ビットを加えて24語に変換します。このフレーズから512ビットのシードが導かれ、暗号資産の秘密鍵やアドレスなどを生成します。

端末内の秘密情報と真正性確認

Ledger OSは、端末固有の鍵と、利用者のフレーズから導かれるBIP 32のマスターノードを管理します。アプリケーションはこれらの秘密情報に直接アクセスできず、必要な権限を得た場合に限り、OSの機能を通じて秘密情報を導出できます。

端末の真正性確認にはアテステーションという仕組みが使われます。製造時に端末ごとの鍵ペアが作られ、Ledgerの署名付き証明書とともに保存されます。Ledger Walletアプリに接続すると、この証明書を使って端末が正規品かどうかを検証します。

端末とホストの間には、認証と暗号化通信を行うセキュアチャネルも確立されます。セキュアチャネルを作れるのはDashboardアプリで、端末とホストが一時的な鍵ペアを用いて共有秘密を計算します。これらは端末内の秘密情報や接続先を保護する仕組みですが、今回の改造では画面に表示されるフレーズが読み取られました。

対象端末への案内と流通経路

Ledgerは、過去90日以内にCryptobilisから購入した利用者に対し、初回設定を行わないよう案内しています。すでに設定した場合は、新しいフレーズを持つ別のウォレットへ資産を移すよう勧めています。

見つかった端末の多くは返品品ではなく新品でした。改造端末を新品として流通させる手口が取られた可能性があり、販売店の店頭在庫に加え、複数の供給経路が関係しています。

研究者のマーク・カルプレス氏は、以前の改造では手作業で部品が取り付けられていた一方、最近見つかった部品は受注製造されたように見えると指摘しています。製造ラインで改造端末がまとめて作られている可能性にも言及しましたが、これは同氏による見立てです。