26 февраля 2025 года в 13:30 UTC Bybit начал перемещать средства с Ethereum-холодного кошелька на тёплый — рутинный перевод, призванный сделать хранение скучным. Уполномоченные подписанты проверили адрес назначения на экранах и подтвердили операцию, не подозревая, что экраны на самом деле лгали.
Позже Bybit сообщил, что интерфейс подписания был скомпрометирован: подписанты видели ожидаемый адрес, а лежащая под ним транзакция передавала контроль над кошельком злоумышленнику. По отчёту биржи, убыток составил $1,46 млрд, а ФБР связало кражу с Северной Кореей.
CryptoSlate сообщал, что атакующие вывели примерно 401 347 ETH вместе с несколькими поставленными активами Ethereum.
Safe заявила, что скомпрометированная машина разработчика позволила замаскировать вредоносную транзакцию, а внешние исследователи не нашли уязвимостей ни в смарт-контрактах Safe, ни в исходном коде фронтенда и сервисов. Закрытые ключи не покидали устройств, поскольку действительных подписей было достаточно — люди, создавшие их, видели ложное описание того, что они авторизуют. Это тот же разрыв между безопасностью ключей и намерением транзакции, который CryptoSlate анализировал ранее в этом году.
Каждую строку соответствующих контрактов можно было проверить, но человек всё равно должен был решить, что означает экран. И именно это расстояние между кодом и намерением разрушает самое успокаивающее слово безопасности в криптовалюте.
Значок превратился в гарантию
Термин «Audited» появляется на сайтах протоколов как значок, обычно рядом с логотипом фирмы-аудитора и ссылкой на PDF. Пользователи вполне могут воспринимать этот значок как сокращение для «безопасные средства, компетентные операторы, программное обеспечение, проверенное от начала до конца». На самом деле работа могла охватывать лишь несколько файлов из одного репозитория в течение одной недели.
Представьте владельца здания, который нанимает электрика проверить распределительный щит, а затем рекламирует сертификат как доказательство того, что вся недвижимость защищена от взлома. Электрик мог выполнить отличную работу, но сертификат превратили в обещание относительно дверей, сигнализации и охраны, которые электрик не был нанят проверять.
Аудиторы смарт-контрактов обычно описывают свои задания гораздо точнее, чем проекты, которые их маркетируют. Например, отчёт OpenZeppelin идентифицирует четыре пул-реквеста по хешам коммитов, называет включённые контракты и указывает трёхдневный период проверки. Хеш коммита — это по сути отпечаток одного снимка кода; как только код меняется, отчёт автоматически не применяется к новому состоянию.
Последующие правки и конфигурация, используемая в продакшене, могут проходить отдельное тестирование. Ноутбук сотрудника или облачный аккаунт относятся к другому слою; устройства для подписания и интерфейс, поясняющий транзакцию, требуют собственной проверки. Такая организация — нормальная профессиональная практика, поскольку конечное задание требует конечного периметра.
Искажение начинается, когда тщательно ограниченный отчёт попадает на сайт проекта и превращается в общее утверждение об организации, управляющей кодом.
В препринте от июня Стефана Бейера из Oak Security этот разрыв получает очень крупные цифры. Бейер изучил 23 818 публичных результатов от 22 фирм-аудиторов, а затем сравнил их с 218 инцидентами, зафиксированными rekt.news с 1 января 2022 года по 27 марта 2026 года. Эти инциденты привели к потерям, оцениваемым в $7,764 млрд.
Результаты аудитов выглядят именно так, как и ожидалось от людей, нанятых проверять код. Логические и бизнес-логические дефекты составили 14,6% от общего числа, проблемы с качеством кода — 13%. Ошибки валидации ввода — 10%, проблемы контроля доступа — 9,8%. Примерно каждый шестой результат был оценён как критический или высокий, что даёт набору 1 439 критических проблем и 2 659 проблем высокой степени серьёзности.
Результат аудита описывает дефект, найденный в ходе проверки; убытки от эксплойта — успешную кражу из работающей системы. Многие найденные дефекты были исправлены до развёртывания, а часть уязвимого кода так и не попала в продакшен. Два набора данных описывают разные популяции, поэтому их проценты не являются коэффициентами конверсии.
Что находят аудиты и куда уходят деньги
| Ранг | Наиболее частые результаты аудита | Крупнейшие источники убытков от эксплойтов |
|---|---|---|
| 1 | Логика и бизнес-логика: 14,6% | Компрометация закрытых ключей: $1,894 млрд / 24,4% |
| 2 | Качество кода: 13,0% | Фишинг и социальная инженерия: $1,511 млрд / 19,5% |
| 3 | Валидация ввода: 10,0% | Сбои контроля доступа: $994 млн / 12,8% |
| 4 | Контроль доступа и авторизация: 9,8% | Манипуляции оракулами и ценами: $666 млн / 8,6% |
Ранги описывают разные популяции и не являются построчными эквивалентами. Сторона аудита насчитывает 23 818 результатов; сторона убытков охватывает $7,764 млрд, украденных в ходе 218 инцидентов с января 2022 по март 2026 года. Источник: The Audit Gap in Blockchain Security.
Рядом друг с другом ранги показывают разрыв. Три ведущие категории аудита составляют 37,6% опубликованных результатов, в то время как кража закрытых ключей и фишинг — оба в значительной степени за пределами обычного аудита контрактов — составляют 43,9% украденной стоимости.
Добавление атак на зависимости и управление (governance) доводит категорию «человеческий вектор» в статье до 49,6% потерь. Эти сбои начинаются с людей, операций и сторонних систем, которые стандартная проверка кода не была нанята проверять.
Это число 49,6% требует собственного предупреждения. Bybit обеспечила $1,43 млрд из $1,51 млрд общего фишинга и 18,4% каждого доллара в наборе данных инцидентов. Восемь инцидентов дали половину всех потерь, оставив остальные 210 делить оставшуюся часть.
Кражи криптовалют — это рынок катастрофических выбросов, что означает: одно огромное событие может перестроить целую категорию.
Тем не менее, более широкая закономерность выходит за рамки Bybit. Компрометация закрытых ключей произошла в 45 инцидентах, что делает её самой дорогой первопричиной ещё до учёта фишинга.
С 2023 по 2025 год атаки, связанные с ключами, людьми, зависимостями или управлением, поглощали от примерно двух третей до трёх четвертей стоимости, потерянной каждый год. Атакующие научились обходить код, в то время как индустрия сосредоточила свои профессиональные усилия на его проверке.
Атакующие аудируют организацию
Смарт-контракт — это одна комната в огромном доме. Пользователи попадают в неё через веб-сайт и кошелёк, а контракт может зависеть от внешних ценовых данных, прежде чем сможет действовать. Мультиподпись управляет чувствительными переводами; права администратора решают, кто может изменять программное обеспечение.
Пользователи воспринимают всю эту структуру как один продукт. Атакующие же видят набор дверей, каждая из которых охраняется разными людьми и разным программным обеспечением.
Цепочные компоненты Bybit выполнили правильно подписанную транзакцию. Сбой начался на машине разработчика, которая сформировала предложение, затем прошёл через интерфейс, сообщивший подписантам, что они одобряют что-то рутинное. Safe перестроила свою инфраструктуру, сменила учётные данные и обязалась сделать транзакции более простыми для проверки. Это были операционные и интерфейсные исправления для события, которое валидный цепочный код послушно выполнил.
Препринт показал, что 105 из 218 инцидентов касались протоколов, имевших хотя бы один публичный аудит до события. Они составили около $4,3 млрд, или 55% наблюдаемых потерь — статистика, практически созданная для неправильного использования.
Это не доказывает, что аудиторы пропустили $4,3 млрд эксплуатируемого кода. «Ранее проверенный» может относиться к другой версии, другому набору контрактов или проверке, не связанной с конечным путём проникновения в систему.
Девять из 12 крупнейших случаев в этой группе произошли через фишинг, украденные ключи, зависимости, инфраструктуру или управление. Случаи, связанные с кодом, также не поддаются простому вердикту. Для Nomad, Euler и других авторы обнаружили более поздний код, исключённые пути или другие различия между проверенным материалом и программным обеспечением, которое в конечном итоге держало средства. Называть всё это ошибкой аудита означало бы совершить ту же ошибку, которую статья пытается вскрыть.
Исследование также нуждается в скептической интерпретации, поскольку это препринт, написанный представителем индустрии аудита. 22 фирмы не названы, что блокирует проверки на уровне фирм, а набор инцидентов взят из архива одного издателя. Извлечение из PDF делает всё ещё более неясным, а часть классификации была выполнена LLM под контролем человека.
В статье также отсутствует сопоставимая популяция неаудированных протоколов, что делает невозможным подсчёт степени защиты, которую обеспечил аудит. Ценные проекты, как правило, покупают больше аудитов и привлекают более способных атакующих, поэтому их присутствие в обеих сторонах набора данных ровным счётом ничего не говорит о причинно-следственных связях.
Самое сильное утверждение статьи касается языка. Криптовалюта стала хороша в заказе одного типа проверки и плоха в информировании пользователей о том, где эта проверка заканчивается. Фирма-аудитор может компетентно проверить контракты, а вендор по хранению может обеспечить безопасность ключей в точности, как обещано. Облачные провайдеры, компании по мониторингу и платформы bug bounty могут выполнять свои назначенные части, в то время как полный путь от ноутбука разработчика до экрана подписанта и, наконец, до развёрнутого кода остаётся непроверенным.
Некоторая техническая документация уже возлагает эту ответственность на проект. Модель разделённой ответственности Chainlink возлагает код и импортированные пакеты на разработчиков, а затем передаёт им ответственность за конфигурацию, мониторинг и связь с пользователями.
Мелкий шрифт понимает, что приложение владеет всей системой, даже когда публичный язык аудита всё ещё рассматривает безопасность как сертификат, прикреплённый к репозиторию.
Замените значок «audited» на этикетку с составом
Значок аудита должен стать менее красноречивым и более фактологическим. Стандартизированная этикетка безопасности сделает видимой невыполненную работу, особенно когда проект заплатил за аудит контрактов, но пропустил всё остальное.
Верхняя секция должна идентифицировать проверенный коммит и даты проверки, затем назвать включённые контракты и любые неисправленные критические или высокие результаты. Другая секция должна указывать, совпадает ли развёрнутый байт-код с проверенной версией. Конфигурация продакшена нуждается в собственной дате проверки, чтобы пользователь мог понять, применим ли отчёт к программному обеспечению, которое сегодня держит средства.
Управление ключами и процедуры подписантов заслуживают отдельной оценки, а фронтенд-инфраструктура и облачный доступ — ещё одной. Системы сборки должны показывать, могут ли релизы быть изменены одной скомпрометированной машиной. Мониторинг и учения по реагированию на инциденты должны иметь даты, поскольку они устаревают по мере изменения персонала, вендоров и программного обеспечения. Существенный релиз должен аннулировать соответствующие записи до тех пор, пока они не будут проверены снова.
Такой формат помог бы аудиторам так же, как и пользователям. Проект мог бы заявить, что его смарт-контракты проверены, но при этом раскрыть, что развёртывание в продакшене не верифицировано, а безопасность подписантов не проверялась. Аудитор больше не наследовал бы обещание, которое его контракт отвергал, а проект получил бы публичный стимул заказать недостающую работу.
У Bybit было достаточно денег, чтобы усвоить урок, не сильно навредив своим пользователям. CryptoSlate сообщал, что биржа восстановила своё обеспечение ETH в течение нескольких дней. Но большинство протоколов не могут найти $1,46 млрд, когда экран и транзакция расходятся, а восполнение резервов исправляет балансовый отчёт, а не процесс одобрения, который его опустошил.
Следующий значок «audited» под токен-сейлом или рядом с кнопкой депозита должен сопровождаться точным описанием того, что было проверено, что исключено и как долго работа ещё актуальна. Слово должно описывать проверку, которая действительно состоялась, и называть каждую крупную систему, оставшуюся за её пределами, вместо того чтобы служить обещанием, которое ни один профессионал не был нанят давать.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Andjela Radmilac




