COLDCARDウォレットのRNG欠陥、880万ドル相当のビットコイン窃取に関連か

研究者らは、COLDCARDハードウェアウォレットのファームウェアに存在する脆弱性が悪用され、欠陥のある乱数生成器でシードが生成された数千のウォレットから推定8,860万ドル相当のビットコインが盗まれたとみています。

デジタル資産の調査会社であるGalaxy Researchの発表によると、同社はこの脆弱性に関連するとみられる最初の一連の取引を特定しました。これは7月30日に1,196のアドレスから約1,083BTC(7,020万ドル相当)を流出させたものです。

この41分間に及ぶ攻撃は、Coinkiteが脆弱性を公表するおよそ30時間前に発生していました。

すべての取引で1仮想バイトあたり30サトシという同一のハードコードされた手数料率が使われ、おつり用の出力もなかったことから、Galaxyは攻撃者が自動化ツールを使用したとみています。

Galaxyは「特徴的なのは、すべての一掃取引で同一のハードコードされた30.0 sat/vBという手数料が支払われていた点だ。これはその週の中央値である0.4~1.0 sat/vBの30~75倍にあたる過払いで、おつり用の出力も存在しなかった」と説明しています。

「これは、所有者が資金を移動させたのではなく、自動化ツードがすでに保持している鍵を使って送金したように見える」としています。

8月1日、Galaxy Researchは2回目および3回目の攻撃波を確認し、推定被害総額は4,585のアドレスから盗まれた1,367ビットコイン、約8,860万ドル相当にまで膨らみました。同社の報告時点で、盗まれたビットコインは攻撃者が管理するアドレスにとどまっていました。

Chainalysisの調査によると、攻撃者は価値の高いウォレットを優先的に狙っており、最初の10分間で約3,000万ドルを盗み、1人の被害者から180万ドルを奪っていました。

同社は、これは攻撃者が窃盗を始める前に被害対象となるウォレットを特定し、事前に調査していたことを示唆していると述べています。

Image

COLDCARDのRNGにおける欠陥

Block社のBitcoin Engineering and Securityチームは、COLDCARDウォレットからビットコインが盗まれたとの報告を受け、他の研究者と協力してデバイスのファームウェアを解析し、根本的な脆弱性を特定したと述べています。

Blockによると、研究者らはこの問題をCOLDCARDの乱数生成(RNG)コードにおける統合エラーに突き止め、7月30日にCoinkiteへ調査結果を開示しました。

「COLDCARDのファームウェアにはRNG統合エラーがあり、これによりngu.randomがSTM32のハードウェアRNGではなく、MicroPythonの決定論的なYasmarangフォールバック機構を使用してしまう」とBlockのレポートは説明しています。

COLDCARDには本来、独立したハードウェア乱数生成器が搭載されていますが、ファームウェア内のチェック処理に誤りがあったため、代わりに決定論的なソフトウェア生成器が使用される結果となっていました。

このフォールバック用の生成器は、デバイスのマイクロコントローラー識別子とシステムのタイミング値に依存していましたが、Blockによればこれらは暗号学的に安全な乱数源とはいえず、観測や再構築が可能な場合があるとのことです。

これにより攻撃者は、オフラインで考えられるウォレットのシードを生成し、対応するビットコインアドレスを割り出したうえで、ブロックチェーン上に存在するアドレスと照合することが可能になっていました。一致が確認されれば正しいシードだと分かるため、攻撃者は資金窃取に必要な秘密鍵を生成できてしまいます。

Coinkiteのアドバイザリによると、影響を受けるシードには、ファームウェアバージョン4.0.1から4.1.9までのMk2およびMk3、標準版5.6.0またはEdge版6.6.0Xより前のMk4およびMk5デバイス、標準版1.5.0QまたはEdge版6.6.0QXより前のQデバイスで生成されたものが含まれます。

この欠陥を修正した新しいファームウェアは、Mk2およびMk3向けにはバージョン4.2.0以降、標準版のMk4およびMk5デバイス向けには5.6.0以降、標準版のQデバイス向けには1.5.0Q以降、それぞれに対応するEdge版にはバージョン6.6.0Xまたは6.6.0QXとして提供されています。

ただし、ファームウェアを更新しても、以前に生成されたシード自体が修復されるわけではない点に注意が必要です。

影響を受けるユーザーは、既存のバックアップを確認したうえで修正済みファームウェアをインストールし、新しいシードを生成して安全に記録し、デバイス上で新しいウォレットアドレスを確認したのち、少額のテスト送金を行ってから残りの資金を移動する必要があります。

移行が完了し確認が取れるまでは、古いバックアップを保持しておくべきです。

Coinkiteによれば、公正かつ独立した非公開のサイコロを最低50回振って補強したシードは、今回の欠陥単体によるリスクは低いとみなされるとのことです。

強力で一意なBIP-39パスフレーズを設定していれば悪用の難度は上がりますが、根本的なシード自体は修復されないため、ユーザーは移行を行うべきです。

Coinkiteは、TAPSIGNER、OPENDIME、SATSCARDの各製品は異なるコードベースを使用しているため、今回の影響を受けないとしています。

Coinkiteは、影響を受けるファームウェアを搭載したまま出荷待ちとなっていたすべてのCOLDCARDデバイスも廃棄したと述べています

すでにデバイスが出荷済みの顧客に対しては、セキュリティアドバイザリと資金移行の手順をメールで通知したとしています。

攻撃者に狙われる前に、すべての層をテストする

セキュリティチームが記録できている攻撃成功例は54%にとどまり、アラートが上がるのはわずか14%です。残りは検知されないまま環境内を移動しています。

Picusのホワイトペーパーでは、侵害・攻撃シミュレーションによってSIEMとEDRのルールをテストし、脅威が検知をすり抜けないようにする方法を紹介しています。

ホワイトペーパーを入手する

翻訳元: https://www.bleepingcomputer.com/news/security/coldcard-wallet-rng-flaw-likely-linked-to-88-million-bitcoin-theft/

ソース: bleepingcomputer.com