Владельцы аппаратных криптокошельков Coldcard столкнулись с массовой кражей средств. По данным Galaxy Research, за четыре волны атаки злоумышленники вывели 1815 BTC из 5294 кошельков — примерно $118 млн.
Первая волна прошла 30 июля: за 41 минуту из 1196 кошельков было похищено 1082,65 биткоина. Информацию пока не подтвердили ни производитель — канадская Coinkite, ни полиция.
Причину нашла компания Block и в тот же день, 30 июля, передала выводы Coinkite. Проблема оказалась в коде генерации случайных чисел.
«Прошивка Coldcard содержит ошибку интеграции ГСЧ, из-за которой
ngu.randomиспользует детерминированный резервный генератор Yasmarang от MicroPython вместо аппаратного ГСЧ STM32»
По словам Coinkite, сбой возник при обновлении прошивки в марте 2021 года: во время смены криптографической библиотеки генерация начального значения была случайно перенаправлена на слабый программный ГСЧ вместо аппаратного STM32.
Это позволило атакующим офлайн перебирать вероятные сид-фразы, вычислять соответствующие биткоин-адреса и сверять их с блокчейном. Совпадение подтверждало верную фразу и давало доступ к закрытым ключам.
Уязвимые устройства:
Mk2 и Mk3 с прошивкой 4.0.1–4.1.9
Mk4 и Mk5 до версии 5.6.0 (Edge 6.6.0X)
Q до версии 1.5.0Q (Edge 6.6.0QX)
TAPSIGNER, OPENDIME и SATSCARD проблема не затронула — у них другие кодовые базы. Все устройства Coldcard с уязвимой прошивкой, ожидавшие отгрузки, компания уничтожила.
