НовостиКриптовалютыВзлом Coldcard доказывает, что репутация — не модель безопасности

Взлом Coldcard доказывает, что репутация — не модель безопасности

Автор: Coindesk·

Ключевые выводы

  • Злоумышленники украли почти 114 млн долларов в биткоине более чем с 709 адресов, воспользовавшись уязвимостью прошивки Coldcard, из-за которой сид-фразы кошельков генерировались с недостаточной случайностью; первая волна атак опустошила примерно 500 кошельков за 25 минут.
  • Ошибочный код генерации сид-фраз был внесён коммитом от марта 2021 года — тем же коммитом, который удалил последний код под лицензией GPL, — и более пяти лет оставался публично видимым, никем не замеченным.
  • Coldcard перешла с лицензии GPL на лицензию с Commons Clause в конце 2020 года после того, как конкурент создал устройство на её коде, причём в собственном FAQ Commons Clause прямо говорится, что итоговое ПО больше не является открытым.
  • Исследователи из Shift Crypto, Nunchuk и проекта WalletScrutiny, ранее сообщавшие об уязвимостях Coldcard, столкнулись с публичными насмешками, сомнениями в компетентности и угрозами судебного преследования со стороны генерального директора Coinkite Родольфо Новака, что, по мнению автора, отпугнуло независимых проверяющих.
  • Автор предупреждает, что обновление прошивки не может восстановить сид-фразы, сгенерированные на уязвимых версиях, а эта атака спровоцировала более широкий кризис доверия к самостоятельному хранению биткоина.
Взлом Coldcard доказывает, что репутация — не модель безопасности

Взлом Coldcard доказывает, что репутация — не модель безопасности

Сообщество, построенное на верификации, пять лет передоверяло свои суждения одному человеку, пишет генеральный директор Foundation Зак Херберт.

Злоумышленники уже вывели почти 114 млн долларов в биткоине с более чем 709 адресов, воспользовавшись уязвимостью прошивки Coldcard, из-за которой сид-фразы кошельков генерировались лишь с малой долей обещанной случайности. Первая волна атак опустошила примерно 500 кошельков за 25 минут. Баг попал в кодовую базу в марте 2021 года и более пяти лет оставался на виду, в открытом доступе, — напоминание о том, что открытость кода не равносильна его проверке.

Многие объясняют, что произошло. Вопрос посложнее — почему этого никто не заметил, и ответ затрагивает куда больше, чем одну строку кода.

Баг пять лет оставался на виду

Исходный код Coldcard всегда был доступен для изучения. Принцип «не доверяй, а проверяй» работает, только когда квалифицированные люди действительно смотрят, — и в течение пяти лет фактически этого не делал никто.

Хронология появления бага заслуживает внимания. В 2020 году прошивка Coldcard распространялась по открытой лицензии GPL. Через два дня после того, как конкурент анонсировал устройство на основе этого GPL-кода, генеральный директор Coinkite Родольфо Новак, известный как NVK, публично заявил (в позднее удалённом твите), что сожалеет о выборе GPL. В том же ноябре Coldcard приняла новую лицензию с Commons Clause, в собственном FAQ которой прямо сказано, что итоговое программное обеспечение больше не является открытым.

За этим последовала масштабная переработка, и коммит марта 2021 года, убравший последний GPL-код, — это тот же коммит, который сломал генерацию сид-фраз. Никто не может измерить, насколько лицензионное давление повлияло на охват или скорость этой переработки; к тому же обновление преследовало и законные технические цели. Задокументированные факты уже, но от этого не менее красноречивы: за сменой лицензии, призванной ограничить конкурентов, последовала поспешная замена проверенного в боях криптографического кода, и эта замена содержала уязвимость, которая сейчас опустошает кошельки. В программном обеспечении, критичном с точки зрения безопасности, изменения, затрагивающие лицензирование, владение кодом или процесс релизов, могут значить не меньше, чем сам код, поскольку они определяют, сколько глаз в итоге останется на конечном результате.

Принципы свободного и открытого программного обеспечения существуют именно для того, чтобы безопасность не зависела от решений какой-либо одной компании. Эти принципы не могут предусматривать исключений для отдельных личностей.

Зак Херберт — сооснователь и генеральный директор Foundation.

Исследователи научились не смотреть

Более глубокий провал касается того, что произошло с теми, кто всё же смотрел. В августе 2020 года исследователи из Shift Crypto и Nunchuk раскрыли уязвимость проверки мультиподписи в Coldcard. Coinkite признала баг и выпустила исправление — а NVK в подкасте Citadel Dispatch одновременно назвал это раскрытие «PR-терроризмом» и усомнился в том, что исследователя без CVE можно считать профессионалом. В 2023 году, когда проект WalletScrutiny сообщил о проблемах с воспроизведением старых сборок Coldcard, в ответ проект объявили некомпетентным или злонамеренным и пригрозили судебным преследованием (последующий пост). Независимая проверка позже выявила реальные проблемы воспроизведения в старых релизах и заключила, что никто не действовал недобросовестно.

Каждая публичная атака на исследователя меняет расклад для следующего. Независимый анализ — дело медленное, трудное и, как правило, неоплачиваемое. Исследователь, взвешивающий месяцы такой работы против перспективы насмешек, блок-листов и юридических угроз, зачастую потратит своё время на что-то другое. Никто не может доказать, что именно эта культура привела к тому, что баг энтропии остался незамеченным. Но со всей определённостью можно сказать: безопасность зависит от готовности людей смотреть — а среда вокруг Coldcard наказывала за саму попытку посмотреть.

Репутация стала доказательством

Как сообщество, чей основополагающий лозунг — «не доверяй, а проверяй», оказалось в такой ситуации? У психологии есть названия для подобных явлений. Эффект иллюзорной правды заставляет повторяющиеся утверждения казаться независимо подтверждёнными, даже когда все они восходят к одному источнику. Эффект ореола превращает статус, уверенность и популярные продукты в презюмируемый технический авторитет. Год за годом одни и те же утверждения кочевали по одним и тем же подкастам и лентам: критики — проплаченные агенты, исследователи — террористы, конкуренты — клоны. Повторение выполняло работу, которую должны были делать доказательства, а уверенность стала заменой доказательств.

Результат точнее всего описать как эпистемический захват: сообщество постепенно передаёт собственные суждения доверенному авторитету, пока сам авторитет не превращается в доказательство. Ведущий BTC Sessions Бен Перрин с необычной откровенностью описал этот механизм в недавней прямой трансляции, признав, что закрывал глаза на такое поведение, поскольку считал, что высокомерие идёт в комплекте с превосходной способностью создавать и обеспечивать безопасность. Значительная часть индустрии делала такой же расчёт. Кризис доверия, который сейчас прокатывается по сфере самостоятельного хранения криптовалют, — это выставленный к оплате счёт: и пользователям, и разработчикам теперь предстоит отличать многолетнюю лояльность бренду от реальной проверки.

Проверяйте всех

Первый приоритет всей индустрии после этой атаки — пользователи: распространять руководство по миграции и ясно давать понять, что обновление прошивки не способно восстановить сид-фразу, сгенерированную на уязвимых версиях. Затем предстоит закулисная работа. Старые страницы рекомендаций, заметки к выпускам и продуктовые руководства несут на себе годы утверждений, которые повторялись, а не проверялись, — они заслуживают исправлений со ссылками на первоисточники. Разработчики и исследователи, подвергшиеся атакам, заслуживают эфира, чтобы рассказать о своей работе. Биткоин-медиа должны вновь стать жёсткими и критичными, применяя к друзьям, спонсорам и рекламодателям ту же пристальную проверку, что и к посторонним.

Биткоин был спроектирован исходя из предположения, что эксперты и институты рано или поздно подведут, и его ответом стало избавление от необходимости доверять благодаря верификации. Сообщество, создавшее инструменты, воплощающие этот принцип, вывело из-под него собственные самые громкие голоса. Лекарство — основополагающая инструкция, применённая на этот раз без фаворитов. Не доверяй вендору. Не доверяй критикам вендора. Проверяй.

Примечание: мнения, выраженные в этой колонке, принадлежат автору и не обязательно отражают позицию CoinDesk, Inc., её владельцев и аффилированных лиц.