Coinkite предупреждает пользователей Coldcard Mk3: Block отследил до 1 083 BTC в выводах средств
Ключевые выводы
- •Устройства Coldcard Mk3 с прошивкой версий от 4.0.1 до 5.0.3 генерировали сид-фразы с критически недостаточной энтропией, что позволяло восстанавливать сиды по минимальным данным настройки, таким как количество нажатий клавиш.
- •Исследователи Block отследили две группы транзакций с идентичными отпечатками, потенциально связанные с уязвимостью, которые в совокупности переместили примерно 1 082,59 BTC стоимостью около 69,6 млн долларов на момент публикации.
- •Дефект, по всей видимости, берёт начало от переписывания прошивки в марте 2021 года, заменившего весь криптографический код и код BIP-39, тогда как устройства Mk4, Q и Mk5, согласно анализу Coinkite, остаются незатронутыми.
- •Затронутые пользователи должны сгенерировать полностью новые сиды на нескомпрометированном оборудовании, а не импортировать существующие фразы заново, поскольку исходные сиды никогда не были криптографически стойкими.
- •Пользователи, не имеющие возможности немедленно мигрировать, могут применить надёжную уникальную парольную фразу BIP-39 в качестве временной защиты или сгенерировать сид исключительно с помощью кубиков, используя не менее 99 независимых бросков на прошивке версии 4.1.9.

Coinkite выпустила рекомендацию по безопасности, призывающую всех пользователей, сгенерировавших сид-фразу на Coldcard Mk3 с прошивкой версий от 4.0.1 до 5.0.3, считать свои кошельки потенциально скомпрометированными и немедленно перевести свои биткоины. Coldcard — один из самых популярных аппаратных кошельков, работающих исключительно с Bitcoin и ориентированных на пользователей, для которых приоритетом является суверенное самостоятельное хранение средств, поэтому дефект генерации сидов на уровне прошивки имеет особое значение. Предупреждение последовало после того, как команда Bitcoin-инженеров и специалистов по безопасности Block обнаружила недостаточное качество генерации сидов при расследовании сообщений об удалённом опустошении кошельков.
Рекомендация распространяется на прошивку Mk3, выпущенную с марта 2021 года, что означает, что затронутые устройства могли находиться в эксплуатации годами до выявления уязвимости. Согласно первоначальному анализу Coinkite, устройства Mk4, Q и Mk5 не подвержены данной уязвимости. Однако исследователи Block описали две отдельные слабости, затрагивающие различные поколения Coldcard с разным уровнем серьёзности. Block подтвердила, что Bitkey и другие продукты Block не затронуты.
Разработчики воспроизвели предсказуемую генерацию сидов Mk3
Разработчик Bitcoin Core Грегори Сандерс, известный в сети под ником instagibbs, успешно воспроизвёл уязвимость Mk3 на новом инициализированном устройстве, используя только количество нажатий клавиш при настройке. Возможность восстановления сида по столь ограниченным входным данным свидетельствует о том, что источник энтропии был значительно ниже математического порога, необходимого для безопасной генерации ключей BIP-39, где случайность является единственным барьером, препятствующим атакующему получить приватные ключи пользователя. Он посоветовал пользователям Mk2 и Mk3 считать риск воздействия срочным, отметив, что статус Mk4 не был подтверждён в ходе его тестирования.
Разработчик Антуан Пуансо выявил ключевое аппаратное различие: генерация сидов Mk4 использует истинный генератор случайных чисел микроконтроллера, тогда как прошивка Mk3 не задействовала этот источник аналогичным образом. Примечания к выпуску Coinkite от марта 2021 года для версии 4.0.0 подтверждают, что весь криптографический код и код BIP-39 был заменён новыми реализациями. Генеральный директор Foundation Devices Зак Херберт проследил происхождение явного дефекта энтропии вплоть до этого переписывания 120 файлов, подчеркнув при этом, что нет никаких свидетельств связи ошибки с сопутствующим изменением лицензирования.
Block отследил потенциальный масштаб вывода средств до 1 083 BTC
Первая выявленная серия транзакций перевела 594,48 BTC с 500 адресов с одной подписью в блоках Bitcoin с 960188 по 960191. Atlas21 насчитал 1 324 потраченных UTXO и установил, что 562 BTC были консолидированы на другой адрес до завершения последовательности.
Инженер Block Клей Гарретт впоследствии обнаружил 695 более ранних транзакций с идентичным полным отпечатком, как и у известного набора. Эти переводы переместили дополнительные 488,10957948 BTC, увеличив потенциальный совокупный масштаб до 1 082,58680432 BTC, если обе группы принадлежат одной операции. На момент публикации общий объём оценивался примерно в 69,6 млн долларов при цене биткоина около 64 247 долларов.
Coinkite не подтвердила, что уязвимость прошивки является причиной каждой транзакции в обоих наборах. Команда Block заявила, что атака, вероятно, всё ещё продолжается, и более широкая группа транзакций остаётся в процессе проверки.
Затронутые сиды подлежат замене, а не повторному импорту
Перенос затронутой фразы восстановления в другой аппаратный или программный кошелёк не решает проблему, поскольку сам лежащий в основе сид остаётся предсказуемым. Это отличает данную уязвимость от угроз, использующих способы хранения или обработки сид-фраз пользователями, таких как вредоносное ПО SparkKitty, сканирующее изображения в телефоне в поисках фраз восстановления, или кампании BlueNoroff, профилирующие кошельки через поддельные звонки на собрания. В этих случаях сид был сгенерирован корректно; здесь же.seed изначально не был криптографически надёжным.
Coinkite рекомендует следующую процедуру миграции: сгенерировать новый сид на незатронутом устройстве, записать и проверить резервную копию, проверить адрес получения, отправить небольшую тестовую транзакцию и лишь затем перевести оставшийся баланс. Пользователи, не имеющие возможности немедленно мигрировать, могут создать надёжную уникальную парольную фразу BIP-39 в качестве временной меры защиты. Опытные пользователи могут альтернативно сгенерировать сид исключительно с помощью кубиков на пустом Mk3 с прошивкой версии 4.1.9, используя не менее 99 независимых бросков.