З апаратних гаманців Coldcard вивели 1367 BTC (близько $88.6 млн на момент атаки) з понад 4585 адрес. Причина — критичний баг у прошивці, який висів там з березня 2021 року і робив згенеровані seed-фрази передбачуваними. Аналітики Galaxy Research розібрали злам на ланцюжку: хакери працювали хвилями.
Як розгорталася атака
Злам йшов у кілька етапів.
- Перша хвиля (30 липня): За 41 хвилину хакери вивели 1082.65 BTC (приблизно $70.2 млн) з 1196 адрес.
- Друга та третя хвилі: У наступні дні під удар потрапили дрібніші гаманці. Загальний збиток добили до 1367 BTC.
У Galaxy Research кажуть, що перші дві хвилі мали однаковий почерк: ідентичні комісії та патерни транзакцій. Це робота одного оператора. Третя хвиля відрізнялася за тактикою — або підключився інший хакер, або перший змінив скрипт. Більшість вкраденої крипти досі лежить без руху на адресах зловмисників.
У чому полягала вразливість
Баг занесли в код ще у березні 2021 року з релізом версії 4.0.1. Коли розробники інтегрували нову бібліотеку libNgU, генератор випадкових чисел (RNG) пристрою переключився з апаратного алгоритму на програмний псевдовипадковий.
Seed-фрази генерувалися не рандомно, а на базі передбачуваних метрик: унікального ID мікросхеми та показників таймера. Хакерам вистачило обчислювальних потужностей, щоб сбрутити приватні ключі в офлайні. Фізичний доступ до самих Coldcard їм був не потрібен.
Виробник гаманців Coinkite підозрює, що дірку в безпеці знайшли за допомогою ШІ, згодувавши йому відкритий вихідний код прошивки.
Що робити власникам Coldcard
Накотити апдейт на вже створений гаманець — не вихід. Coinkite випустила екстрене попередження з мануалом для юзерів.
- Оновіть прошивку. Ставте патчену версію (4.2.0 для Mk2/Mk3 та новіші для інших моделей).
- Створіть нову seed-фразу. Стара сідка з вразливої прошивки скомпрометована назавжди.
- Переведіть усі кошти. Активи треба одразу перекинути на новий гаманець, згенерований вже на безпечному пристрої.
У Coinkite кажуть, що пронесло лише тих, хто при генерації seed-фрази робив мінімум 50 кидків гральних кісток або закрив гаманець унікальною BIP-39 парольною фразою. Інші девайси вендора (TAPSIGNER та SATSCARD) не постраждали, бо там інша кодова база.
Висновки
Це один із найбільших зламів апаратних гаманців в історії. Холодне зберігання більше не є синонімом абсолютної безпеки, якщо софт під капотом генерує ключі за передбачуваним алгоритмом. Self-custody не скасовує ризики, а просто перекладає їх на плечі юзера, якому тепер треба розбиратися в ентропії, мультипідписах і кидати кубики для надійної генерації сідки 😬