Уязвимость seed-фраз в Coldcard: с сотен адресов похищены биткоины на десятки миллионов долларов

Сводка рынка от ИИ
Galaxy Research связывает скоординированную кражу 30 июля со слабой энтропией seed-фразы в некоторых версиях прошивки Coldcard, что потенциально затрагивает ~1"196 адресов и до ~1"083 BTC. Инцидент не основан на фишинге, а представляет собой системный дефект генерации seed-фразы, повышающий воспринимаемый риск хранения и операционный риск для пользователей самохранения и цепочек поставок аппаратных кошельков. В ближайшей перспективе это может спровоцировать превентивные миграции средств, более высокую ончейн-активность и усиление настроений risk-off вокруг инфраструктуры хранения BTC.
Степень влияния
● Средний
Затронутые активы
BTC/USDT-2.08%
Инсайт ИИ · BTC/USDTИнсайт ИИ
▼ Медвежий
Торговать
⚠️ Инсайты, сгенерированные ИИ, основаны на новостном контенте и предоставляются исключительно в информационных целях. Они не являются инвестиционной рекомендацией и не отражают позицию BingX. Торговля сопряжена с риском. Пожалуйста, торгуйте ответственно.
30 июля злоумышленник воспользовался слабостью в генерации seed-фраз на части аппаратных кошельков Coldcard и вывел биткоины с сотен адресов. По оценке Galaxy Research, основная фаза кражи прошла в скоординированном "рывке" примерно за 25 минут; расширенный анализ связывает активность примерно с 1"196 адресами и до 1"083 BTC — почти на $70 млн — в окне около 41 минуты. Окончательные цифры могут измениться по мере того, как исследователи продолжают отслеживать транзакции в публичном блокчейне Bitcoin. Речь идет не о фишинге, вредоносном ПО, краже устройства или классическом удаленном взломе. Проблема возникла на уровне прошивки: ошибка ослабила случайность при создании seed-фразы. Внешне seed выглядел корректно, но фактически выбирался из значительно меньшего числа комбинаций, чем предполагалось. Пострадавшие адреса в основном принадлежали долгосрочным держателям, которые генерировали фразы восстановления на устройствах Coldcard с уязвимой прошивкой, выпускавшейся начиная с марта 2021 года. Coldcard — "air-gapped" аппаратный кошелек канадского производителя Coinkite, предназначенный для хранения ключей BTC в изоляции от интернет-устройств. Многие из опустошенных адресов не проявляли активности годами. Нападавший действовал быстро: выставлял повышенные фиксированные комиссии и не оставлял "сдачи" (без change outputs), полностью вычищая каждый адрес. Такая схема указывает на автоматизированную операцию с заранее подготовленным набором приватных ключей, а не на самостоятельные действия пользователей. Суть уязвимости — незаметный сбой в генераторе случайных чисел. Seed-фраза (обычно 12 или 24 слова) служит основой для создания адресов и приватных ключей. Корректно сгенерированная 12-словная фраза должна содержать 128 бит энтропии — это делает перебор практически невозможным. В Coldcard предполагалось использовать аппаратный генератор случайных чисел в микроконтроллере, основанный на физическом электрическом шуме. Как пояснила Coinkite, при миграции программной библиотеки в 2021 году возникла путаница между двумя функциями генерации случайных чисел с одинаковым интерфейсом. Одна обращалась к правильному аппаратному источнику. Другая была слабым программным резервным вариантом для плат без подходящего "железа". Настройка отключала стандартный аппаратный путь MicroPython, поскольку Coinkite использовала собственную обертку. При этом код проверял лишь наличие настройки, а не то, включена ли она. В результате настройка присутствовала, но имела значение ноль: сборка проходила, а генерация seed незаметно переключалась на слабый программный генератор. Этот резервный механизм сильно опирался на предсказуемые данные устройства — включая идентификатор чипа (похожий на серийный номер) и значения внутреннего таймера, связанные со временем запуска. Если атакующему удается сузить диапазон этих входных данных, пространство поиска становится несопоставимо меньше ожидаемых 128 бит. Coinkite оценила эффективную сложность перебора уязвимых seed для Mk3 примерно в 40 бит при текущих допущениях. Это все еще большое число вариантов, но его можно перебрать специализированными вычислительными средствами — особенно когда кандидатные seed можно проверять по адресам, видимым в блокчейне. Более поздние модели Coldcard — Mk4, Q и Mk5 — добавляли часть случайности из secure element. Но, как отмечается, лишь ограниченная доля доходила до затронутого генератора, поэтому для seed, созданных до установки исправленной прошивки, оценка эффективной энтропии составляет около 72 бит. Это лучше, чем у Mk3, но все равно ниже целевого стандарта в 128 бит. По сути, это похоже на замену действительно случайной комбинации замка на комбинацию, вычисляемую из серийного номера замка и времени первого включения: выглядит случайно, но при знании формулы и исходных параметров воспроизводится. Coinkite выпустила предупреждения по безопасности и исправленные прошивки после того, как стало известно об активной эксплуатации. Компания настаивает: пользователям, которые создавали seed на затронутых версиях, нужно сгенерировать полностью новую seed-фразу на исправленной версии и перевести биткоины на адреса, контролируемые новым seed. Одного обновления прошивки недостаточно — уже созданная слабая seed-фраза останется слабой навсегда, так как обновление не может "добавить энтропию" к уже существующим словам. Рекомендованный порядок действий включает: обновить устройство, создать новый seed, проверить бэкап и отпечаток кошелька (wallet fingerprint), подтвердить адрес для приема, отправить небольшой тестовый перевод и только затем переместить остаток. Старый бэкап следует сохранить до подтверждения перевода, но старый seed больше нельзя считать безопасным. Coinkite указала исправленные релизы: для Mk3 — версия 4.2.0 или новее; для Mk4 и Mk5 — 5.6.0 или новее; для Q — 1.5.0Q или новее, а также соответствующие версии Edge. Продукты Tapsigner, Opendime и Satscard используют другой код и, по сообщениям, не пострадали. Часть владельцев Coldcard оказалась защищена за счет дополнительных мер. Те, кто при генерации seed добавлял достаточно независимых бросков игрального кубика, существенно снизили риск: собственная случайность "перекрывала" дефектный ввод софта. Coinkite заявила, что как минимум 50 приватных бросков честного кубика обеспечивают адекватную защиту в рамках этой проблемы (дополнительные броски дают больший запас). Сильная BIP39 passphrase формирует отдельный кошелек, который невозможно восстановить только по словам seed. Мультиподпись (multisig), требующая ключи с нескольких устройств или локаций, в целом защищала средства, если уязвимый seed Coldcard был лишь одним элементом схемы подписи. Эти меры были опциональными, и многие пострадавшие, судя по всему, следовали стандартным рекомендациям своего времени: купить известный аппаратный кошелек, создать seed офлайн, надежно хранить бэкап и никогда не вводить seed на интернет-устройстве. Гендиректор Coinkite Родольфо Новак (известен как NVK) 31 июля публично извинился и заявил, что компания берет на себя полную ответственность за сбой прошивки: "Мне очень жаль, я подавлен. Наша команда убита вчерашними новостями", — написал он. Новак подчеркнул, что исправление делает безопасными новые seed, но не способно "починить" seed, созданные на уязвимом ПО. По его словам, Coinkite опубликует полный технический разбор после проверки деталей и поможет пострадавшим, которым нужны полицейские заявления, страховые претензии или независимое расследование. Отдельно Новак предупредил разработчиков, что инструменты искусственного интеллекта (AI) способны анализировать старый публичный код и находить скрытые слабости быстрее, чем традиционные процессы ревью. Coinkite заявила, что исходит из версии об использовании атакующим AI для изучения opensource-прошивки, хотя доказательств того, как именно был найден дефект, нет. Компания также признала, что недавняя проверка с применением ведущей AI-модели проблему не выявила. На фоне инцидента конкуренты поспешили подчеркнуть, что их устройства не затронуты. Ledger сообщил пользователям в X: "Ledger не затронут недавно опубликованным предупреждением по Coldcard Mk3", добавив, что устройства Ledger используют сертифицированный True Random Number Generator (TRNG) в Secure Element и генерируют полные 256 бит энтропии для каждой 24-словной Secret Recovery Phrase. Trezor также заявил: "Пользователи Trezor: ваши средства в безопасности", отметив, что проблема ограничена собственной прошивкой Coldcard и способом генерации случайности на части их устройств. Аккаунт Trezor в X добавил, что компания всегда смешивала несколько независимых источников случайности (железо устройства + хост + secure elements на новых моделях) и выразил сожаление всем, кто потерял биткоины. Личность атакующего неизвестна, а похищенные биткоины могут быть перемещены с адресов консолидации в любой момент. Следователи выясняют, сколько уязвимых seed было сгенерировано, какой объем BTC еще остается под риском и не выявил ли злоумышленник дополнительные кошельки с крупными остатками. При этом у Coinkite может быть мало данных о давних покупателях. Сооснователь Casa Джеймсон Лопп сообщил в X: "Забавный палка о двух концах: Coinkite удаляет все данные клиентов через 120 дней для защиты от утечек", из-за чего компания не может предупредить покупателей, приобретавших уязвимые устройства за последние 5 лет. Псевдонимный opensource-разработчик Bitcoin calle также прокомментировал в X: "Мне искренне жаль всех пострадавших, особенно тех, кто мог потерять сбережения всей жизни. Хуже всего то, что они все делали правильно". История станет проверкой того, сможет ли Coinkite вернуть доверие к Coldcard и усилят ли производители аппаратных кошельков независимый аудит генерации seed. Для пользователей приоритет практический: любой, кто создавал seed на затронутой прошивке без сильной независимой энтропии от кубика, без passphrase или без защиты multisig, должен считать такой seed скомпрометированным и аккуратно перевести средства в новый кошелек с заново сгенерированной seed-фразой. Сообщество призывает распространить информацию как можно шире, чтобы предотвратить новые опустошения уязвимых кошельков.