ハードウェアウォレットメーカーのCoinkiteが、Coldcardデバイス向けの緊急ファームウェアを公開した。研究者たちが暗号資産史上最大級のハードウェアウォレット侵害と呼ぶ事件を受けた対応だ。攻撃者は5,200以上のアドレスから約1,816BTC、日本円にして1.16億ドル超を抜き取った。原因となったファームウェアの欠陥は、5年前の2021年3月リリースにまで遡る。
問題の正体はビルド設定のミスだった。これにより影響を受けたデバイスは、本来搭載しているハードウェアのエントロピー源を使わず、脆弱なソフトウェア乱数生成器でウォレットのシードを生成してしまっていた。TRM Labsが公表した調査によれば、この欠陥により鍵の実効的な強度は設計上の128ビットから、最も古い世代のデバイスではわずか40ビットにまで低下していたという。現代の計算能力があれば総当たりで破ることも可能なレベルで、しかもウォレット本体への物理的なアクセスすら不要だった。脆弱性が判明すると攻撃者の動きは早く、最初の一波だけで1,196アドレスから1,082BTCが、わずか41分ほどで引き出されている。
新規シード生成には手動エントロピーが必須に
7月31日に公開されたCoinkiteの修正パッチは、シードの乱数生成をソフトウェア任せにする仕組みそのものを廃止することでこの抜け穴を塞いだ。以後、Coldcardで新しいシードを生成する際には、所有者自身が物理的にエントロピーを供給しなければならない。不規則な間隔でのキー押下65回、6面サイコロを50回振る、あるいはコインを128回投げる、というのがその方法だ。2021年3月からパッチが当たった7月31日までの間にColdcard上でシードを生成したユーザーは、そのシードが漏洩している可能性を前提に、新しく生成し直したものへ資金を移すべきだという。5年間という欠陥の存在期間を考えれば、実際に被害を受けた約5,200アドレスよりもはるかに多くのユーザーが影響を受けている可能性が高い。
関連記事: 1.3億ドル流出を受け、有志の「レッドチーム」がAI対策でビットコインソフトを点検
AI支援監査をめぐる、より大きな見直しの一環
今回のColdcardの一件は、AI支援によるコードレビューでビットコインのソフトウェアスタックを強化しようという、業界を挙げた取り組みの参照点にもなっている。「レッドチーム」と呼ばれる約25人の開発者からなるボランティア集団は、Coldcardの教訓を踏まえ、これまでにエコシステム全体で501件のプロジェクトを対象に、同種のバグがないかスキャンを進めてきた。この活動は、Coldcardの欠陥の全容が明らかになる前からすでに始まっていた、ビットコインソフトウェアをAI耐性のあるものにしようとするより広範な取り組みの延長線上にある。このスキャン活動から得られた注目すべき発見の一つは、中国製のAIツールが検出したバグの中に、一部の欧米製AIツールでは検出対象として設定されていなかった種類の脆弱性が含まれていたという点だ。研究者たちは、これが業界のハードウェア・ソフトウェアのサプライチェーン全体の検証のあり方に、実際的な意味を持つ格差だと指摘している。
Coldcardユーザーに向けたメッセージは、Coinkiteと外部の研究者双方から明確に示されている——自分のシードがいつ生成されたものかを確認し、対象期間に該当するのであれば、資金の移動を先延ばしにしないことだ。