Mastodon Mastodon Mastodon Mastodon

Уязвимость в прошивке Coldcard позволяла предсказать сид-фразы — связь с кражей $70 млн под вопросом

Фото автора

CyberSecureFox Editorial Team

Опубликовано:

Исследователи Block раскрыли критическую ошибку в прошивке аппаратных кошельков Coldcard производства канадской компании Coinkite: начиная с марта 2021 года генерация сид-фраз на затронутых устройствах использовала предсказуемый программный генератор псевдослучайных чисел (PRNG) вместо аппаратного. Эффективная энтропия сидов составляла от 40 до 72 бит вместо ожидаемых 128 бит для 12-словной BIP-39 фразы. Coinkite выпустила экстренное обновление прошивки 31 июля, но оно не исправляет уже сгенерированные слабые сиды — владельцам необходимо создать новый сид на обновлённой прошивке и перевести средства. Параллельно Galaxy Research зафиксировала подозрительную операцию 30 июля: 1 196 биткоин-адресов были опустошены за 41 минуту на сумму 1 082,65 BTC (~$70,2 млн), однако причинно-следственная связь с данной уязвимостью не подтверждена.

Техническая суть уязвимости

Корень проблемы — в конфигурации сборки прошивки Coldcard. Макрос MICROPY_HW_ENABLE_RNG был установлен в ноль, поскольку Coinkite использует собственную обёртку для аппаратного генератора случайных чисел STM32. Однако библиотека libngu проверяла лишь наличие макроса, а не его значение. В результате сборка привязывалась к программному фолбэку MicroPython — алгоритму Yasmarang.

Этот программный PRNG инициализировался из уникального идентификатора чипа (UID) и значений таймерных регистров, после чего не получал свежей энтропии. По данным исследователей Block, атакующий, способный определить или существенно ограничить пространство UID устройства, состояние таймера и историю предшествующих вызовов генератора, может воспроизвести поток выходных значений офлайн — без доступа к устройству. Полученные кандидаты на сид-фразы проверяются путём вычисления адресов и сопоставления с публичными данными блокчейна.

Оценки эффективной энтропии расходятся между вендором и исследователями:

  • Mk3: Coinkite оценивает энтропию примерно в 40 бит
  • Mk4, Mk5 и Q: около 72 бит по оценке Coinkite
  • Block устанавливает условные верхние границы ниже 240,7 и 273,3 соответственно, предупреждая, что последнее значение не эквивалентно 73-битной криптографической стойкости

Для сравнения: стандартный 12-словный BIP-39 сид обеспечивает 128 бит энтропии. Block не опубликовал результатов бенчмарка перебора, а практическая стоимость атаки зависит от доступной информации об UID, времени загрузки, предшествующих вызовах генератора и стоимости деривации ключей.

Затронутые версии

Уязвимость определяется прошивкой, на которой был создан сид, а не текущей установленной версией:

  • Mk3: версии 4.0.1–4.1.9 (исправлено в 4.2.0) по данным Coinkite; Block дополнительно включает Mk2 и версию 4.0.0
  • Mk4 и Mk5: все версии до 5.6.0
  • Q: все версии до 1.5.0Q
  • Edge-сборки: до 6.6.0X для Mk4/Mk5, до 6.6.0QX для Q

Продукты TAPSIGNER, OPENDIME и SATSCARD используют другую кодовую базу и не затронуты.

Важное расхождение: Coinkite в своём предупреждении не упоминает модель Mk2, тогда как исследование Block включает её в список уязвимых устройств. Владельцам Mk2 следует считать свои сиды потенциально скомпрометированными.

Подозрительная операция 30 июля

По данным Galaxy Research, 30 июля неизвестный оператор за 41 минуту опустошил 1 196 биткоин-адресов, переместив 1 082,65 BTC. Galaxy отметила, что за предшествующие 30 дней не обнаружено других транзакций с аналогичной комбинацией признаков: комиссия 30 sat/vB и отсутствие сдачи.

Однако Galaxy предупредила, что этот паттерн идентифицирует оператора, а не факт кражи: массовый перевод средств выглядит одинаково вне зависимости от того, совершён он владельцем или злоумышленником. Ни один публичный отчёт не воспроизвёл сид жертвы и не сопоставил его с опустошённым адресом. Связь между этой операцией и уязвимостью Coldcard остаётся предположением, основанным на анализе паттернов блокчейна.

Оценка воздействия

Под угрозой находятся все пользователи Coldcard, сгенерировавшие сид на уязвимых версиях прошивки без использования достаточного количества бросков игральных костей. Учитывая, что Coldcard позиционируется как кошелёк для долгосрочного хранения крупных сумм в биткоине, потенциальный ущерб значителен. Модели Mk3 с энтропией около 40 бит находятся в зоне наибольшего риска — такое пространство ключей может быть перебрано с использованием современных вычислительных ресурсов.

Мультиподпись (multisig) снижает риск только в том случае, если кворум не состоит целиком из затронутых устройств Coldcard.

Практические рекомендации

  1. Определите версию прошивки, на которой был создан сид. Если она попадает в список уязвимых — считайте сид скомпрометированным.
  2. Обновите прошивку до исправленной версии (4.2.0 для Mk3, 5.6.0 для Mk4/Mk5, 1.5.0Q для Q).
  3. Сгенерируйте новый сид на обновлённой прошивке. Перенос старого сида на обновлённую прошивку или другой кошелёк не устраняет слабость — уязвимость заложена в самом сиде.
  4. Переведите все средства со старых адресов на адреса, полученные из нового сида.
  5. Используйте броски костей: Coinkite утверждает, что сид, созданный с использованием не менее 50 честных, независимых и приватных бросков игральных костей, не подвержен данной уязвимости. Если количество или приватность бросков под сомнением — мигрируйте.
  6. BIP-39 парольная фраза: сильная уникальная парольная фраза создаёт отдельный кошелёк, недоступный по одним только словам сида, но Coinkite всё равно рекомендует замену сида.

Владельцам затронутых устройств Coldcard необходимо действовать немедленно: обновить прошивку, создать новый сид и перевести средства на новые адреса. Промедление оставляет биткоины под защитой энтропии в 40–72 бита — на порядки ниже стандарта BIP-39. Ожидание подтверждения связи уязвимости с конкретными кражами не является разумной стратегией: сама по себе предсказуемость генератора делает сиды уязвимыми вне зависимости от того, эксплуатировал ли их кто-то на практике.


CyberSecureFox Editorial Team

Редакция CyberSecureFox освещает новости кибербезопасности, уязвимости, malware-кампании, ransomware-активность, AI security, cloud security и security advisories вендоров. Материалы готовятся на основе official advisories, данных CVE/NVD, уведомлений CISA, публикаций вендоров и открытых отчётов исследователей. Статьи проверяются перед публикацией и обновляются при появлении новых данных.

Оставьте комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.