Coldcardのソフトウェアに5年前から存在していた欠陥により、攻撃者が秘密鍵を復元し、1,100ビットコイン以上を盗み出した可能性があり、これを受けて同ウォレットの開発元は、この欠陥の発見の一因として人工知能(AI)を挙げました。
Coldcardのセキュリティ上の脆弱性を発見したのはAIだったのでしょうか?

主なポイント:
- Coldcardに紐付けられたシードにより、約7,110万ドル相当の1,128.4717 BTCが流出したとみられます。
- Coinkite社は、AIがこの5年間存在していた脆弱性を発見した可能性があると述べているが、その因果関係は依然として証明されていない。
- 影響を受けたシードを持つColdcardユーザーは、修正済みのファームウェアで新しいウォレットを作成する必要があります。
組織的な資金流出により数百のウォレットが空に
この事件は、7月30日に約500のシングルシグネチャ・ビットコインアドレスから、当時約3,800万ドル相当の約594 BTCが移動したことで発覚しました。このニュースが最初に報じられた際、Bitcoin.com Newsは、送金が約25分間で発生し、共通の技術的脆弱性を持つウォレットが標的とされたようだと指摘しました。
その後、ブロックチェーンの分析により、盗難の規模がさらに拡大した可能性が浮上しました。研究者らは、約41分間にわたり、1,082から1,196のアドレスが影響を受けた可能性があると推定しました。 その後、「Coldcard Sweep Watch」と呼ばれるカスタムダッシュボードは、被害総額を1,128.4717 BTCと算出しました。これは、ビットコインの取引価格が63,044ドル前後だった時点で、約7,110万ドルに相当します。

資金の大部分は数百BTCを保有する単一アドレスに集約され、その後ほぼ動かない状態が続いています。影響を受けたアドレスには1つの重要な共通点がありました。それは、それらのリカバリーシードがカナダの企業Coinkite社が製造したColdcardハードウェアウォレット上で作成されていたことです。
リカバリーシードとは、仮想通貨ウォレットへのアクセスを制御する単語のリストです。通常、そのシードを再構築または入手できた者は、物理的なデバイスを所有していなくても、ウォレットの資金を移動させることができます。
Coldcard、乱数生成システムの欠陥を発見
Coinkite社は、Coldcardデバイス上で生成された特定のシードに脆弱性がある可能性があると警告する緊急勧告を発表した。2021年3月頃にリリースされたファームウェアバージョン4.0.1を搭載したMk3デバイスおよびそれ以降のバージョンが、最も高いリスクにさらされていた。
さらに、Coinkiteが緊急ファームウェア修正をリリースする前に生成された一部のMk4、Mk5、Qデバイスについても懸念が広がりました。Tapsigner、Opendime、Satscardの製品は異なるソフトウェアを使用しているため、影響を受けていないと報告されています。
この欠陥は乱数生成プロセスに起因するものでした。セキュアウォレットは復元シードが推測されないよう高品質な乱数に依存しています。最も深刻な影響を受けたMk3デバイスについて、研究者らはシードに含まれる有効な乱数の量が本来の128ビットではなくわずか約40ビットしかなかった可能性があると推定しました。
この差は極めて重大です。適切に生成された128ビットのシードは、ブルートフォース攻撃によって推測されることは事実上不可能とされています。一方、40ビットのシードでは可能性の数が劇的に減少するため、十分な計算能力を持つ攻撃者は、オフラインで候補となるシードをテストし、その結果得られたアドレスをビットコインのパブリックブロックチェーンと比較することが可能になります。
ただし、一部の新しいデバイスではセキュアなハードウェアによって予測不可能なデータ層が追加されたため、約72ビットの実効ランダム性を提供していた可能性があります。これによりシードの再構築は困難になりますが、それでも意図された水準よりはるかに脆弱な状態です。
たった1つの設定ミスが5年間も放置されていた
この問題は、同様の役割を果たす2つのソフトウェア関数に関するビルド時の設定ミスに端を発していました。一方の関数はデバイスのハードウェアベースの真の乱数生成器を使用していたのに対し、もう一方の関数はMicroPythonから引き継がれた、より脆弱なソフトウェア処理に依存していました。
CoinkiteはMicroPythonのオプションを無効にする予定でした。しかし、ソフトウェア側のチェックでは設定ラベルが定義されているかのみを確認し、その値がゼロに設定されているかは確認しませんでした。その結果、完成したファームウェアは何も警告を示さずに、より脆弱な関数を自動的に選択する可能性がありました。
2つの関数の返却値の形式が一致していたため、ソフトウェアはエラーを発生させることなくコンパイルと実行を継続しました。このミスは2021年頃のソフトウェア移行の際にコードに混入し、5年以上にわたり一般公開されているファームウェアに残ったままでした。
現在、デバイスを更新しても、不具合のあるソフトウェアの下で生成されたシードの強度は向上しません。影響を受けたユーザーは、修正済みのファームウェアまたは別の安全なデバイスを使用して完全に新しいシードを作成し、その新しいシードで管理されるアドレスに資金を移動する必要があります。

シード作成時に少なくとも50回の独立したサイコロの振り出しを追加したユーザーは、この脆弱性を回避するのに十分な追加のランダム性を確保できた可能性があります。強力なBIP-39パスフレーズも再構築を困難にした可能性があり、また、複数の独立したデバイスからの署名を必要とするウォレットであれば、1つの侵害されたシードだけで資金を移動させることを防げたかもしれません。
CoinkiteはAIを原因として挙げているが、証拠は依然として欠如している
CoinkiteのCEO、ロドルフォ・ノヴァク氏は公に謝罪し、同社はファームウェアの不具合について全責任を負うと述べました。同氏は、チームが修正済みソフトウェア、技術レポート、および影響を受けたユーザーへのサポートに取り組んでいると語りました。
また、Coinkiteとノヴァク氏は、この欠陥がどのように発見されたかについて注目すべき仮説を提示しました。同社のファームウェアは長年にわたり公開されていたため、誰かがAIを用いて古いバージョンのコードを解析し、ランダム性の脆弱な経路を特定したのではないかと同社は考えています。「他のすべての開発者の皆様へ:これは、新しいAIパラダイムがもたらす厳しい現実だと私たちは考えています。 AIを活用したコードレビューは、業界で最も経験豊富な専門家をも凌ぐ速度で潜在的なバグを発見できるようになった」と、ノヴァク氏はXに投稿した謝罪文で記した。「もしあなたのファームウェアがオープンソースであるか、過去に公開されたことがあるなら、攻撃者も防御者も同様に、すでにそれを読み込んでいると想定すべきだ。」
今日の最新のAIコーディングシステムは、大規模なソフトウェアリポジトリを処理し、設定、関数、セキュリティ上の前提条件の間に存在する不審な関連性を特定することができます。攻撃者は、そのようなシステムに対し、脆弱な乱数生成器、フォールバック関数、あるいは暗号鍵に影響を与えるエラーを具体的に探すよう指示することが可能です。

その後、独立系研究者たちは、根本的な乱数生成の問題が明らかになった後、AIモデルを用いてこの問題を特定したり説明したりしたと報告しました。これは、AIを活用したコード解析がいかに身近なものになったかを示していますが、当初の攻撃者がAIを使用していたことを立証するものではありません。

Coinkite社は、主要なAIモデルを用いた自社検証では盗難発生前にこの欠陥を発見できなかったと認めた。この結果は、AIシステムがすべての重大な欠陥を自動的に発見できるわけではないことを示している。その性能は、与えられた指示、提供されたコードの量、そして人間のレビュー担当者が警告サインを理解しているかどうかに左右される可能性がある。
批判派は「人的ミスが先だった」と指摘
一部のセキュリティ専門家は、人工知能(AI)に過度に焦点を当てることは、根本的なエンジニアリング上の失敗から目をそらすリスクがあると主張しています。多くの専門家は、この設定ミスは既知の種類のソフトウェアエラーであり、従来のコードレビュー、テスト手順、あるいはシード生成を中心とした監査によって、数年前に検出できたはずだと考えています。

これらの対立する見解は必ずしも相容れないものではありません。人的ミスが脆弱性を生み出し、それが存続することを許した一方で、AIはその脆弱性の発見、理解、あるいは悪用にかかるコストを低減させた可能性があります。防御側はあらゆる危険な弱点を特定しなければなりませんが、攻撃者はたった一つ見つけるだけでよいのです。
この事件は、オープンソースのセキュリティに関する通念にも疑問を投げかけています。コードが公開されていれば、独立した専門家がソフトウェアを検査することは可能ですが、公開されているという事実だけでは、誰かが正しい箇所を精査し、微妙な欠陥を認識し、攻撃者が行動を起こす前に報告してくれるという保証にはなりません。
Coldcardユーザーにとって当面の最優先事項は、自身のシードがいつ、どのように生成されたかを特定することです。影響を受けたシードを持つユーザーは、Coinkiteの公式チャネルを通じて手順を確認し、修正済みのファームウェアをインストールして新しいシードを作成するとともに、フィッシング攻撃や偽のサポートメッセージに注意を払いながら、慎重に資金を移動させる必要があります。
長期的な課題としては、どれだけのビットコインが盗まれたのか、捜査当局が攻撃者を特定できるのか、そしてこの欠陥の発見にAIが決定的な役割を果たしたのかどうかが焦点となるでしょう。また、ハードウェアウォレット各社は、エントロピーテストの強化、ビルド構成の監査、そして人間の専門家と敵対的AIツールの両方を用いた旧コードの継続的な検証を行うよう、圧力にさらされることになるでしょう。
この記事はAIを使用して英語から翻訳されました。英語の原文が正式な情報源であり、自動翻訳には、特に法律および規制に関する用語において不正確な部分が含まれる場合があります。
















