シード生成と同時に盗まれる|ハードウォレット流通改ざんの仕組み
あなたが今使っているハードウォレット、どこで購入されましたか?
ハードウォレットを開封し、シードフレーズを書き取り、アドレスを生成する。その一連の手順をすべて正しく踏んだにもかかわらず、ビットコインを受け取り続けて残高が一定額を超えた瞬間、全額が消えていたとしたら。
流通段階で仕込まれるカスタムファームウェア
これは仮定の話ではありません。非正規販売店を経由したハードウォレットに、カスタムファームウェアが書き込まれていた事例が複数報告されています。
見た目は正規品と完全に同一です。パッケージのシールも、デバイスのロゴも、画面表示も、何一つ異なるところはありません。しかし内部には、セットアップ時にシードフレーズを生成すると同時に、その値を攻撃者のサーバーへ自動送信するコードが仕込まれています。
ユーザー側にできることは何もありません。シードフレーズを紙に書き取った瞬間、すでに攻撃者は同じ情報を持っているのです。
攻撃者が「待つ」理由
この攻撃の特徴は、即座に動かない点にあります。
シードフレーズを入手した攻撃者は、すぐにBTCを奪おうとはしません。残高が少ない段階で動けば、被害者がすぐに気づく可能性があります。何より、その時点では被害額が小さい。
攻撃者は待ちます。ユーザーがBTCを積み上げ、残高が攻撃コストに見合う水準に達するのを静かに観察します。その間、ユーザーはデバイスを信頼し続け、積立を継続し、「このハードウォレットは正常に機能している」と確信を深めていきます。
そして、ある日。自分は何一つ操作していないのに、残高がゼロになっています。これが待伏せ型サプライチェーン攻撃の構造です。
正規品と区別できない、という本質的な問題
この攻撃が厄介なのは、購入時に正規品と区別する手段がほぼ存在しない点にあります。
「開封済みシールを確認せよ」と言っても、高度な攻撃者はシールを再現します。「外箱を確認せよ」と言っても、外箱ごと再現することは難しくありません。ファームウェアのバージョン表示も書き換えられています。
唯一の防衛線は、購入ルートと購入後の確認手順にあります。この2点だけが、流通段階での攻撃を無効化できます。
残高を守る3つの手順
① 購入先を正規ルートに限定する
Ledger、Trezorなど、ハードウォレットはどのメーカーであれ、公式サイトか公式認定販売店のみで購入します。Amazonのマーケットプレイス、フリマアプリ、中古品には手を出さないことです。価格が安い理由が、そこにある可能性があります。
② Ledgerなら「Genuine Check」を実行する
Ledger社のデバイスは、Ledger Liveアプリと通信してデバイスの正真性を暗号学的に検証する機能(Genuine Check)を提供しています。このステップを省略しないでください。なお、Genuine Checkはセキュアチップの存在を確認するものであり、ファームウェアの全領域を保証するわけではない点も理解しておく必要があります。
③ 初期化し、公式ファームウェアを自分で再インストールする
デバイスを受け取ったら、そのままセットアップを始めるのではなく、まずデバイスを初期化し、公式サイトの手順に従って最新のファームウェアを自分でインストールします。これは、攻撃者があらかじめ仕込んだコードを上書きする最後の機会です。
ハードウォレットの安全性は「購入時点」で決まる
ビットコインのセルフカストディにおいて、ハードウォレットは最後の砦として機能します。しかし、その砦自体が流通段階で攻略済みであれば、鍵をかけても意味はありません。
ソフトウェアはアップデートできます。取引所はセキュリティ対策を強化できます。しかしデバイスに最初から仕込まれたカスタムファームウェアは、使用者が疑わない限り永久に動き続けます。
「正規品に見えるから大丈夫」という認識は、すでに攻撃者の設計した罠の中にいる可能性を意味します。購入場所の確認と、届いたデバイスの検証。この2点を今すぐ確認してください。
※本記事は一般的な情報提供を目的としており、投資助言ではありません。
この記事が参考になったら、セルフカストディの具体的な始め方もチェックしてみてください。
LINE登録でセルフカストディの始め方を学ぶ 正しい手順を無料でお届けします