Пустая подпись, которая сломала Bonzo Lend: постмортем эксплуатации на Hedera на $9 млн
2026/07/15 11:18:00

В математике и информатике ноль обозначает пустоту — абсолютное отсутствие значения. Но в хрупкой и сверхсвязанной экосистеме децентрализованных финансов (DeFi) неконтролируемый параметр «ноль» недавно стал цифровым ключом от всего. За несколько минут эта единственная неконтролируемая пустая величина открыла и изъяла более 9 миллионов долларов из известной платформы кредитования.
Жертвой этого разрушительного взлома стала Bonzo Lend — крупнейший протокол кредитования, работающий на сети Hedera. В июле 2026 года протокол увидел, как его общая заблокированная стоимость (TVL) мгновенно упала на потрясающие 77%. По мере того как паника распространилась по сообществу Hedera, наблюдатели спешно искали источник утечки.
Важно, что эта катастрофа не произошла из-за сбоя консенсуса базовой сети Hedera, ни из-за ошибок в основных расчетах займа Bonzo Lend. Вместо этого бедствие возникло из-за смертельной уязвимости интеграции: критического дефекта проверки подписи в их стороннем поставщике ценовых данных — Supra Oracles. Это постмортем того, как незначительная логическая ошибка, связанная с «ничего», привела к падению гиганта DeFi.
Хронология атаки: от 5 до 9 000 000 долларов за секунды
Реализация эксплуатации Bonzo Lend была блестящей по своей простоте, требуя минимального начального капитала и происходя всего за несколько транзакционных шагов.
Для начала ограбления злоумышленник внес небольшую, ничтожную сумму залога в Bonzo Lend — именно 250 токенов SAUCE. На момент депозита эта сумма залога стоила всего несколько долларов, едва хватало на чашку кофе. В соответствии с обычными правилами протокола, эта мелочь позволяла пользователю взять в долг лишь долю её стоимости в других цифровых активах.
Затем злоумышленник начал эксплуатацию, обойдя проверки верификации оракула цен. Они создали и отправили поддельную транзакцию обновления цены в контракт валидации оракула. Эта транзакция содержала крайне вредоносные данные: она искусственно завысила цену токена SAUCE на астрономические 12 порядков величины — фактически сообщив протоколу, что один токен SAUCE внезапно стал стоить миллиарды долларов.
Чтобы внедрить эту поддельную цену, система требовала криптографическую подпись от авторизованной ноды-оракула. Вместо попыток взломать сложную криптографию или украсть закрытый ключ, атакующий просто оставил поле подписи полностью пустым, отправив строку нулей вместо криптографической подписи.
Из-за критического недостатка в логике проверки контракт принял пустую подпись как действительную. Мгновенно система оценки Bonzo зарегистрировала 250 SAUCE в качестве залога как актив огромной стоимости. Используя эту внезапную, искусственную богатство, хакер быстро вывел 6,63 миллиона USDC и 34,50 миллиона обернутых HBAR (wHBAR) из ликвидных пулов Bonzo, успешно опустошив протокол до того, как мог быть поднят сигнал тревоги.
Разоблачение уязвимости «нулевой подписи»: как сбой произошел в коде
Чтобы понять, как возможна эта атака, нам нужно разобраться в математике цифровых подписей. В децентрализованных сетях криптографические подписи действуют как цифровые восковые печати. Когда нода оракула публикует обновление цены, она подписывает данные с помощью закрытого ключа. Смарт-контракт на стороне получателя использует алгоритм проверки, чтобы убедиться, что подпись соответствует авторизованному открытому ключу ноды оракула.
Обычно, если пользователь отправляет недопустимую подпись, библиотека проверки пытается обработать входные данные и завершается ошибкой. Когда криптографические библиотеки проверки сталкиваются с поврежденными, пустыми или полностью нулевыми входными данными, они не всегда генерируют активную ошибку. Вместо этого многие стандартные библиотеки спроектированы так, чтобы возвращать значение по умолчанию, если подпись не может быть распарсена. В смарт-контрактах это значение по умолчанию почти всегда представляет собой нулевой адрес, отображаемый длинной строкой нулей.
Фатальная уязвимость в контракте проверки оракула заключалась в том, как он обрабатывал этот адрес по умолчанию, равный null. Контракт был запрограммирован так, чтобы проверять, совпадает ли восстановленный подписант с авторизованным адресом ноды оракула. Однако разработчики забыли включить базовое правило: отклонять любой ввод, где длина подписи равна нулю или восстановленный адрес возвращает значение null.
Кроме того, если состояние авторизованного подписывающего лица в контракте было неинициализировано или настроено таким образом, что допускало проверку на null, контракт сравнивал нулевой адрес, возвращенный при неудачной проверке подписи, со своими внутренними параметрами и объявлял совпадение. Поскольку логика проверки не могла различить «неудачное восстановление подписи» и «валидный авторизованный подписывающий», контракт рассматривал пустую подпись как абсолютный зеленый свет, одобряя поддельный ценовой фид.
Дилемма оракула: почему DeFi-конструкторы прочны только настолько, насколько прочна их слабейшая связь
DeFi часто прославляют за его «композируемость» — способность различных протоколов, токенов и инструментов соединяться, как «финансовые конструкторы», для создания сложных финансовых приложений. Хотя композируемость способствует быстрому инновационному развитию, она также создает системную уязвимость. Один единственный дефект в фундаментальном компоненте может привести к краху всей структуры.
Эксплуатация Bonzo Lend идеально иллюстрирует эту уязвимость. Сам Bonzo Lend был хорошо структурированным протоколом кредитования, прошедшим аудит безопасности. Однако протокол должен был доверять своему внешнему зависимому оракулу для предоставления точных цен. Момент, когда система проверки оракула приняла ложную цену, привела к тому, что кредитные контракты Bonzo выполнились точно так, как были написаны, позволив пользователю с крупными вложениями взять в долг активы.
Ниже приведена таблица, раскрывающая распределение структурных обязанностей во время атаки, иллюстрирующая, где оборонительная линия была прорвана:
| Компонент | Предназначенная системная роль | Производительность во время эксплуатации | Структурный урок |
| Hedera Consensus Layer | Обеспечьте безопасность состояния реестра, упорядочьте транзакции и поддерживайте работоспособность сети. | Идеально выполнилось без простоев или эксплуатаций на уровне сети. | Слой консенсуса безопасной сети не гарантирует безопасность на уровне приложений. |
| Supra Oracle | Предоставляйте подписанную, криптографически проверенную и точную информацию о ценах активов. | Не удалось отклонить нулевую подпись, опубликована искажённая цена. | Зависимости должны обрабатываться с использованием парадигм проверки с нулевым доверием. |
| Bonzo дать в долг | Управляйте активами депозита, отслеживайте коэффициенты здоровья займов и обрабатывайте заимствования. | Слепо доверял входящим данным о цене, не ограничивая резкие скачки цен. | Смарт-контракты должны реализовывать защитную логику, чтобы выжить при сбоях зависимостей. |
Белая шляпа: гонка на $1 миллион против хакера
По мере того как эксплуатация разворачивалась в публичном реестре, произошло драматическое вторичное событие. В публичных блокчейнах транзакции видны в «mempool» до их окончательной фиксации. Эта прозрачность позволяет другим участникам — как вредоносным, так и этичным — анализировать текущие атаки в реальном времени.
Сразу после того, как основной злоумышленник начал выкачивать средства из протокола, независимый исследователь безопасности — обычно известный как «белый шляпник» — обнаружил активную уязвимость. Осознав, что весь протокол вот-вот будет опустошен, белый шляпник быстро воспользовался той же самой уязвимостью без подписи, чтобы вывести примерно 1 миллион долларов США в виде активов.
Эта тактика, известная как «фронт-раннинг», является распространённой защитной мерой в области безопасности Web3. Забрав средства первым, белый хат предотвратил кражу этой части пула ликвидности злонамеренным участником.
После успешного вывода средств белый хат немедленно связался с командой Bonzo Lend. После подтверждения их личности и намерений этичный хакер безопасно вернул всю сумму в размере 1 миллиона долларов США на адреса восстановления протокола. Хотя основной злоумышленник всё ещё ушёл с большей частью средств, это быстрое вмешательство сохранило важную часть активов сообщества и продемонстрировало уникальный, совместный характер безопасности Web3.
Преследование миллионов: как похищенные средства покинули экосистему Hedera
После того как хакер успешно занял миллионы долларов США в виде USDC и wHBAR под фальшивое обеспечение, его основная цель сместилась на то, чтобы покинуть экосистему Hedera до того, как протокол сможет приостановить свои контракты.
Злоумышленник не сохранил похищенные активы в их первоначальном виде. Используя SaucerSwap — популярную децентрализованную биржу на Hedera, — хакер быстро обменял заимствованные токены на высоколиквидные стейблкоины и нативные активы, чтобы избежать централизованных механизмов заморозки.
Непосредственно после обмена токенов злоумышленник воспользовался мостами между цепочками, специально направив средства через LayerZero. Переведя активы, хакер переместил более 5 миллионов долларов США похищенных средств непосредственно на мейннет Ethereum.
Как только активы переходят на высоколиквидную и масштабную сеть, такую как ethereum, отслеживание и восстановление их становится в разы сложнее. Средства могут быть распределены по сотням новых адресов, депонированы в децентрализованные приватные миксеры или обменяны на приватные монеты без хранения у посредника. Эта быстрая, автоматизированная схема побега подчеркивает, почему мониторинг в реальном времени и немедленная аварийная пауза — единственные жизнеспособные меры защиты от современных межцепочечных атак.
Жесткие уроки: как децентрализованные финансовые протоколы могут защитить себя от катастроф оракулов
Потеря в 9 миллионов долларов — чрезвычайно дорогой урок, но он предоставляет бесценные сведения для разработчиков смарт-контрактов, стремящихся защитить свои приложения от будущих ошибок интеграции.
Чтобы предотвратить уязвимости, связанные с отсутствием подписи, разработчики должны применять строгие и защищенные методы программирования. Основные структурные улучшения включают:
-
Явная проверка нулевого адреса: никогда не предполагайте, что функция проверки подписи завершилась успешно. Каждая криптографическая процедура проверки должна явно проверять, что длина подписи больше нуля, и убеждаться, что выходной адрес не разрешается в нулевое значение (
0x00...00). Если возвращается нулевое значение, транзакция должна немедленно отмениться. -
Избыточные архитектуры оракулов: Зависимость от одного провайдера оракула создает единую точку отказа. Надежные DeFi-протоколы должны получать цены активов из нескольких независимых сетей оракулов (таких как Chainlink, Pyth и Supra одновременно). Если один источник данных значительно отклоняется от медианы остальных, протокол должен отметить расхождение и автоматически приостановить работу.
-
Цепные ограничители цен: протоколы кредитования должны внедрять ограничение скорости и границы отклонения цен. Даже если оракул утверждает, что стоимость токена увеличилась в триллион раз за один блок, внутренний ограничитель смарт-контракта должен отклонить обновление как аномалию и приостановить любые действия по заимствованию или ликвидации до ручной администраторской проверки.
Будущее аудита смарт-контрактов: почему мы должны проверять границы
Эксплуатация Bonzo Lend выявляет критическое ограничение в текущих практиках аудита Web3. Многие безопасностные аудиты сосредоточены на проверке того, что бизнес-логика контракта работает при ожидаемых условиях — часто называемой тестированием «happy-path».
Однако реальные злоумышленники не следуют идеальному сценарию. Они специально ищут граничные условия, неинициализированные состояния и неожиданные входные данные. Индустрия безопасности должна перейти к агрессивному тестированию крайних случаев, чтобы выявить скрытые недостатки до вывода кода на мейннет.
Для этого протоколы должны сделать передовые методы тестирования, такие как фаззинг и формальная верификация, обязательным стандартом. Фаззинг предполагает использование автоматизированных инструментов для заполнения смарт-контрактов миллионами случайных, некорректных и пустых входных данных — включая пустые байтовые строки и нулевые подписи. Если бы контракт верификации подвергся тщательному фаззингу, обход с нулевой подписью был бы мгновенно выявлен.
В конечном итоге, сторонние провайдеры оракулов также должны принять более высокие стандарты безопасности. Поскольку эти источники данных служат основой для сотен миллионов долларов экономической активности, их код проверки должен рассматриваться с тем же уровнем внимательности, что и сети первого уровня, которые они поддерживают.
Заключение: Восстановление доверия в доверенной экосистеме
Эксплуатация Bonzo Lend — яркое напоминание о беспощадной природе смарт-контрактов. В Web3 код — это закон, и EVM не интересуется вашими намерениями. Небольшой логический пробел, связанный с «ничего», может мгновенно стереть годы разработки и миллионы долларов пользовательского доверия.
После атаки Bonzo Lend и Supra Oracles быстро устранили уязвимость и обеспечили безопасность оставшейся инфраструктуры. Хотя инцидент был болезненным, извлеченные уроки неизбежно приведут к созданию более безопасных стандартов интеграции во всей экосистеме DeFi. Для разработчиков и инвесторов alike окончательный вывод прост: никогда не принимайте безопасность интеграции как должное, проверяйте границы вашего кода и всегда проверяйте, что происходит, когда вы подаете пустые данные в свои системы.
Часто задаваемые вопросы:
В1: Означает ли уязвимость «Zero-Signature», что криптография блокчейна сломана?
Нет. Математические принципы, лежащие в основе цифровых подписей и криптографии с открытым ключом, остаются полностью безопасными. Уязвимость возникла из-за логической ошибки в программировании смарт-контракта, который обрабатывал результаты криптографической библиотеки. Библиотека корректно возвращала нулевое значение при получении пустой подписи, но смарт-контракт неверно интерпретировал это нулевое значение как успешную проверку.
Q2: Почему Bonzo Lend автоматически доверил такой абсурдно завышенной цене для SAUCE?
Протоколы кредитования разработаны как модульные, что означает, что они передают сложную задачу определения цен на активы специализированным сетям оракулов. Поскольку Bonzo Lend был создан для принятия потока цен от оракула как абсолютной истины без каких-либо независимых локальных проверок на разумность или ограничений на отклонение цен, он принял искусственное увеличение цены в триллион раз и разрешил операцию взятия в долг.
Q3: Что могут сделать обычные пользователи DeFi для защиты от хаков, связанных с оракулами?
Хотя пользователи не могут контролировать код протокола, они могут управлять собственным риском. Чтобы защитить свой капитал, диверсифицируйте свои активы на нескольких независимых платформах, избегайте протоколов, зависящих от одного источника оракула для нишевых активов, и выбирайте платформы, которые публично интегрировали системы оракулов с несколькими источниками и надежные, встроенные в цепочку аварийные выключатели.
Отказ от ответственности: Этот материал предназначен исключительно для информационных целей и не является инвестиционной рекомендацией. Инвестиции в криптовалюты сопряжены с рисками. Проведите собственное исследование (DYOR).
Отказ от ответственности: Эта страница была переведена для вашего удобства с использованием технологии искусственного интеллекта. Для получения наиболее точной информации обратитесь к оригинальной английской версии.
