Атака прошла как минимум в три этапа и затронула 4585 биткоин-адресов. В первой волне, начавшейся 30 июля и продолжавшейся 41 минуту, злоумышленники вывели 1082,65 BTC с 1195 адресов. Во второй волне были похищены еще 71,16 BTC с 1478 адресов.
Третий этап оказался менее заметным. С 31 июля по 1 августа с 1912 адресов перевели 207,73 BTC, причем средства распределили между 293 адресами P2WSH. Их сценарии расходования раскрываются только при первой исходящей транзакции, поэтому анализ движения денег усложняется.
Причиной стала ошибка в генерации секретных фраз. После изменений, внесенных в прошивку в марте 2021 года, система могла использовать программный генератор случайных чисел MicroPython вместо аппаратного. Для Coldcard Mk2 и Mk3 эффективное пространство перебора оценивается примерно в 40 бит. Это намного меньше ожидаемых 128 бит и позволяет искать подходящие ключи без физического доступа к устройству.

У моделей Mk4, Mk5 и Q ситуация несколько лучше благодаря дополнительным источникам случайных данных из защищенных элементов. Однако производитель оценивает фактическую энтропию примерно в 72 бита, поэтому эти модели также включены в предупреждение. Утверждение о полностью защищенном офлайн-кошельке здесь оказалось слишком смелым.
Coinkite выпустила исправленные прошивки для всех затронутых моделей. В официальном предупреждении компании прямо указано, что обновление исправляет создание новых фраз, но не восстанавливает безопасность уже существующих. Владельцам необходимо установить новую версию, создать новую секретную фразу и перенести средства на новый кошелек.
Риск ниже у кошельков, при создании которых использовались не менее 50 независимых бросков игральной кости, либо была задана надежная уникальная BIP-39-фраза. PIN-код устройства такой защитой не считается. Отдельных данных о пострадавших в России пока нет.
Стали бы вы после такого случая доверять аппаратному кошельку без дополнительного источника случайных данных?
