ColdcardのRNGバグ:1,432 BTCが流出、レビューゼロ、5年間の沈黙
ColdcardウォレットのハードウェアRNGの障害により、攻撃者が1,432 BTCを流出させた。このバグはコードレビューゼロで出荷され、表面化するまでに5年を要した。

Coldcardは、セキュリティ第一の理念で知られるBitcoinハードウェアウォレットだが、その実態が露呈した。乱数生成器(RNG)のバグにより、攻撃者は秘密鍵を導出し、ウォレットから資金を流出させることができた。数字は衝撃的だ:7,346 UTXO、2,896回のスイープ、1,432.48 BTC——現在の価格で1億ドル以上——が攻撃者管理のアドレスに移動した。
根本原因は古典的なものだ:ハードウェアRNGの存在を強制すべき#ifndef HAS_RNGガードが、#define HAS_RNG 0によってチェックを満たしてしまい、デバイスがRNGなしで動作できてしまった。意図されたセキュリティは128ビットのエントロピーだったが、実装は最良でも73.3ビット、最悪で0ビットしか提供しなかった。これは丸め誤差ではない——壊滅的な失敗だ。
どうやって出荷されたのか?4つのコミット、2回の直接プッシュ、そしてコードレビューはゼロ。誰もコードを確認せずに世に出た。タイムラインを見ると、最初のコミットは2018年5月、損失報告は2021年5月から始まり、公開投稿は2021年7月。しかし、最初のオンチェーンスイープが現れたのは2026年7月——最初の損失報告から5年後だ。何かがおかしいと知りながら、それに対処するまでに5年のギャップがあった。
サイトcoldcard.ripは、明らかに調査を徹底した人物によるフォレンジック分析だ。5,477のスイープされたアドレスと613の宛先を追跡し、1,432.46 BTCが依然として追跡された宛先に残っている。証拠セクションには10の波にわたる25の公開ソースがリストされ、タイムラインは不作為の記録として痛烈だ。
エンジニアにとって、これはコードレビューがなぜ重要なのか、エントロピーがチェックボックスではないのか、そしてハードウェアRNGを持たないハードウェアウォレットを決して信頼すべきではないのか——たとえ持っていても、実際に使用されていることを検証すべきなのか——を示す教科書的な事例だ。
意図は128ビット・最良で73.3・最悪で0——これは丸め誤差ではない、壊滅的な失敗だ。
| 指標 | 意図 | 実際 |
|---|---|---|
| エントロピー(ビット) | 128 | 最良で73.3、最悪で0 |
| コードレビュー | 1+ | 0 |
| コミット | — | 4 |
| 直接プッシュ | — | 2 |
| 最初のコミットから最初のスイープまでの期間 | — | 5年 |
ディスカッション
0 件のコメント
最初のコメントを投稿しましょう。