重大なビットコインウォレットの欠陥が25分の掃討で594 BTCを流出
重要ポイント
- •金曜日の協調的な25分間の掃討攻撃で、約594ビットコイン(約3,800万ドル相当)が約500のシングル署名Coldcardウォレットから盗まれました。
- •脆弱性は2021年3月にリリースされたColdcardファームウェアバージョン4.0.0に起因し、該当するMk3デバイスがハードウェアベースの乱数をスキップし、非秘密のチップデータを使用した予測可能な鍵生成にフォールバックする原因となりました。
- •Coinkiteは、ファームウェア4.0.1以降を搭載したMk3デバイスでシードを生成したユーザーに対し、直ちに影響を受けないデバイスで新しいシードを作成し、すべての資金を移すよう勧告しています。
- •影響範囲は標準のウォレットシードだけでなく、影響を受けるMk3デバイスで作成されたペーパーウォレット秘密鍵、シード分割マスク、デバイスクローニング鍵、Key Teleport転送にも及びます。
- •ビットコインの市場全体の価格は今回の盗難による影響をほとんど受けず、アジア時間の序盤に64,000ドルを超えて取引されました。

重大なビットコインウォレットの欠陥が25分の掃討で594 BTCを流出
Coldcardの乱数バグが「推測不可能」なシードを推測可能なものに変えた — 3,800万ドルがすでに失われた。
攻撃者は特定のColdcardハードウェアウォレットの暗号鍵生成方法の欠陥を悪用し、約594ビットコイン(約3,800万ドル相当)を約500のシングル署名ウォレットから30分以内に盗み出しました。乱数生成の失敗は、暗号通貨の脆弱性の中で最も悪質なクラスの一つです。ウォレットは正常に機能し続け、資金は安全に見え、目に見えるエラーもありません。しかし、欠陥を検知した者は誰でも、密かに秘密鍵を計算して資金を自由に引き出すことができ、場合によっては何年も経ってから実行されることもあります。
この脆弱性は、2021年3月にColdcardファームウェア4.0.0で導入されたもので、該当デバイスがハードウェア乱数ジェネレーターをバイパスし、非秘密のチップデータをシードとする予測可能なソフトウェアベースの鍵生成にフォールバックする原因となっていました。
ColdcardのカナダのメーカーであるCoinkiteは、ファームウェアバージョン4.0.1以降を搭載したMk3デバイスでウォレットシードを作成したユーザーに警告を発しました。同社は、Mk4、Q、およびMk5モデルについては初期分析に基づき影響がないと強調しています。今回の盗難はビットコインの市場価格にほとんど目立った影響を与えていません。
攻撃の経緯
金曜日の01:31から01:56 UTCの間に、約594ビットコイン(約3,800万ドル相当)が約500の個別ウォレットから引き出されました。この攻撃はColdcardの鍵生成の欠陥に起因するものと追跡されています。
盗難は3つのブロックの期間内に500のトランザクションで1,324のビットコインチャンクを移動させました。そのうち562 BTCは単一のアドレスに統合され、以降移動していません。統合先アドレスはmempool.spaceで確認できます。
流出したウォレットはすべてシングル署名であり、それぞれが0.15 BTC以上を保有していました。多くのウォレットは何年も休眠状態にあり、コインは2021年から2026年にかけてのもので、欠陥の導入時期とほぼ完全に一致していました。
根本原因
ColdcardはCoinkiteが製造するハードウェアウォレットであり、ビットコインの秘密鍵をインターネットに接続されたコンピューターから隔離してオフラインで保管するスタンドアロンデバイスです。Mk2、Mk3、Mk4、Q、およびMk5は、数年にわたってリリースされた製品の世代です。
影響の有無は、ハードウェアを購入した時期ではなく、ウォレットのシードが最初に作成された時点でデバイスに搭載されていたファームウェアのバージョンに依存します。
ウォレットのシード(資金を管理する秘密のリカバリーフレーズ)は、天文学的に大きな候補プールからランダムに抽出されるよう設計されており、ブルートフォース攻撃による推測を計算量的に不可能にしています。しかし、Coldcardのファームウェアはこの基準を満たしていませんでした。
Blockのビットコインエンジニアリングおよびセキュリティチームが発表したレポートによると、ビルド時の設定がデバイスに対し、専用のハードウェア乱数ジェネレーターをスキップするよう指示していました。サポートライブラリのチェックは、その設定が実際に有効になっているかどうかではなく、その設定が存在するかどうかのみをテストしていました。
その結果、鍵生成はサイレントに、チップのシリアル番号とクロックレジスターをシードとする基本的なソフトウェア代替手段にフォールバックしていました。これらの値はどちらも秘密ではありません。シリアル番号は固定の工場メタデータであり、クロック値は攻撃者が自身のデバイスで絞り込みや測定が可能なタイミング状態です。
Blockはこの変更を2021年3月1日付のコミットに追跡し、これは同月中にファームウェア4.0.0としてリリースされました。この障害モードは、2013年に起きたよく知られたインシデントを彷彿とさせます。当時、AndroidのSecureRandom実装の欠陥により、攻撃者は影響を受けるAndroidデバイスで生成されたビットコインウォレットの秘密鍵を予測でき、ウォレット開発者から緊急警告が発せられました。
情報開示と対応
Coinkiteは公式ブログで警告を発し、バージョン4.0.1以降を搭載したMk3でシードを生成したユーザーに対処を求めました。同社は次のように述べています。「初期分析に基づき、Mk4、Q、Mk5は影響を受けていません。」影響を受けるユーザーに対する標準的な対応は、影響を受けないファームウェアを搭載したデバイスで直ちに新しいシードを生成し、すべての資金を新しいウォレットに移すことです。
Blockは、調査結果を直接Coinkiteに開示し、Coinkiteのチームは脆弱性を認識しました。両社は分析を予備的なものと述べています。Blockは、活発な攻撃がすでに進行中であったため、悪用可能性の完全なテストを完了する前にレポートを公開したと述べています。
ウォレットシード以外の影響範囲
影響範囲は標準的なウォレットシードにとどまりません。同じ欠陥のある乱数ジェネレーターは、Coldcardのペーパーウォレット秘密鍵(出力がさらなる導出なしに直接鍵となる)、シード分割マスク、デバイスクローニング鍵、およびKey Teleport転送の生成にも使用されていました。影響を受ける機能の広さは、標準のウォレットシードを使用したことがない場合でも、影響を受けるMk3デバイスでこれらの機能のいずれかに依存していたユーザーが影響を受ける可能性があることを意味します。
ビットコインはアジア時間の序盤に64,000ドルを超えて取引され、広範なウォレット流出は市場全体にほとんど影響を与えていないようでした。
出典:CoinDesk