Перейти к основному контенту

Взлом Resolv: как один ключ AWS выпустил $25 млн и снова обрушил DeFi

· 10 мин чтения
Dora Noda
Software Engineer

22 марта 2026 года злоумышленник зашел в Resolv Labs со 100 000 вUSDCивышелс25миллионамив USDC и вышел с 25 миллионами в ETH. Смарт-контракты не давали сбоев. Оракул не лгал. Дельта-нейтральная стратегия хеджирования работала в точности так, как было задумано. Вместо этого одни-единственные учетные данные AWS Key Management Service — ключ подписи, находившийся вне блокчейна, — дали взломщику разрешение на минт 80 миллионов необеспеченных токенов USR под залог депозита в 100 000 .СемнадцатьминутспустяUSRупалс1,00. Семнадцать минут спустя USR упал с 1,00 до 0,025 $, что означает обвал на 97,5 %, и протоколы кредитования по всему Ethereum приняли на себя удар.

Инцидент с Resolv примечателен не тем, что он был хитроумным. Он примечателен тем, что он таковым не был. Отсутствие проверки максимального объема минта, единая точка отказа в облачном управлении ключами и оракулы, оценивавшие потерявший привязку стейблкоин в 1 $ — DeFi уже сталкивался с каждым из этих сбоев раньше. То, что раскрывает этот взлом, вызывает дискомфорт: поверхность атаки на современные стейблкоины незаметно переместилась из Solidity в консоли AWS, а модели безопасности отрасли еще не адаптировались.

Анатомия 17-минутного ограбления

Процесс минта в Resolv представлял собой двухэтапный оффчейн-процесс. Пользователь вызывал requestSwap(), чтобы внести USDC. Привилегированный оффчейн-подписант — SERVICE_ROLE — проверял запрос, решал, сколько USR выпустить, и вызывал completeSwap(), чтобы завершить минт. Контракт устанавливал минимальный объем выпуска, но не максимальный. Контракт исполнял всё, что подписывал владелец ключа.

Такая архитектура поставила всю целостность протокола с TVL более 500 млн $ в зависимость от одного закрытого ключа, хранящегося в AWS KMS. Когда злоумышленник скомпрометировал облачную среду Resolv и получил доступ к учетным данным для подписи в KMS, остальная часть эксплойта стала почти механической:

  1. Внести примерно 100–200 тыс. $ в USDC через requestSwap().
  2. Использовать украденный ключ SERVICE_ROLE, чтобы подписать авторизацию completeSwap() на 80 миллионов USR.
  3. Конвертировать выпущенные USR в wstUSR (стейкинговый обернутый вариант), чтобы смягчить первоначальное влияние на рынок.
  4. Вывести ликвидность через Curve, Uniswap и KyberSwap, переводя средства в ETH.

К 02:38 UTC токен USR торговался по 0,025 наCurve—отклонениеотпривязки(depeg)составило97,5на Curve — отклонение от привязки (depeg) составило 97,5 %. В итоге на кошельке злоумышленника оказалось примерно 11 400 ETH, стоивших на тот момент около 24 миллионов. Вся операция заняла 17 минут от начала до конца.

Оффчейн-поверхность атаки, которую никто не аудирует

Вот что поражает: Resolv проходил аудит. Проблема была не в коде Solidity. Защита от повторного входа (reentrancy), проверки на переполнение целых чисел, логические проверки — всё было в порядке. Эксплойт прошел ровно по тому пути кода, который спроектировали инженеры.

Уязвимость находилась уровнем выше — в облачной инфраструктуре, которая контролировала полномочия на выпуск токенов. Современные протоколы DeFi не являются чисто ончейн-системами. Они полагаются на оффчейн-ценовые потоки, оффчейн-киперов, оффчейн-мультисиги управления и, как показывает пример Resolv, на облачные сервисы подписи. Стандартные аудиты смарт-контрактов проверяют ончейн-код. Они не аудируют политики AWS IAM, графики ротации ключей KMS, гигиену переменных окружения или радиус поражения скомпрометированного CI / CD-конвейера.

Chainalysis в своем отчете по итогам инцидента прямо сформулировал урок: «Следующий эксплойт может произойти из-за фишингового письма, неправильно настроенной политики IAM или утечки переменной окружения». Другими словами, самым сложным для защиты элементом современного стейблкоина является не его кривая связывания (bonding curve) или коэффициент обеспечения. Это облачный аккаунт, в котором хранится ключ для минта.

Три проектных решения усугубили риск в Resolv:

  • Отсутствие ончейн-проверки максимального объема минта. Контракт полностью доверял оффчейн-подписанту. Даже простое правило «ни один минт не может превышать 5 % от общего предложения» ограничило бы ущерб несколькими миллионами долларов вместо 25 миллионов $.
  • Отсутствие ограничения частоты (rate limiting). В логике минта ничто не заметило, что 80 млн токенов только что были выпущены одним вызовом под залог депозита, который на несколько порядков меньше.
  • Отсутствие многосторонней авторизации. Одной подписи SERVICE_ROLE — не пороговой подписи, не мультисига — было достаточно для завершения минта любого размера.

Любой из этих механизмов контроля превратил бы инцидент в досадную неприятность, а не в катастрофу.

Заражение: оракулы, которые и бровью не повели

Вторая часть истории Resolv — это то, где ущерб многократно увеличился. USR и его стейкинговая версия wstUSR были приняты в качестве залога на нескольких крупных рынках кредитования: Morpho, Euler и Fluid / Instadapp. Когда стейблкоин рухнул, оракулы этих рынков продолжали оценивать wstUSR около 1 $ — либо потому, что они использовали внутренние ставки погашения вместо рыночных котировок, либо потому, что крах произошел быстрее, чем ценовые потоки смогли среагировать.

Опортунистические трейдеры заметили это немедленно. Они покупали дешевый USR по 0,025 наоткрытомрынке,вносилиеговкачествезалога,которыйоракулысчитализа1на открытом рынке, вносили его в качестве залога, который оракулы считали за 1, и занимали USDC, ETH и другие реальные активы под него. Протоколы, не видя потери привязки, исполняли сделки. Результат:

  • Fluid / Instadapp поглотил более 10 миллионов безнадежногодолгаизафиксировалоттокболее300миллионовбезнадежного долга и зафиксировал отток более 300 миллионов за один день — худший день в его истории.
  • Хранилище Morpho Gauntlet USDC Core потеряло около 6 миллионов $ через свой Public Allocator, который послушно проводил ребалансировку в пользу пулов, где резко выросла загрузка (поскольку арбитражники брали кредиты под залог неверно оцененных активов).
  • Euler столкнулся с принудительными ликвидациями, которые усугубили обвал цен, толкая USR дальше в смертельную спираль потери привязки.

DeFi уже видел это кино. Крах UST в 2022 году, последствия взлома Euler с безнадежными долгами в 2023 году, эпизоды потери привязки Prisma и Curve в 2024 году — каждый из них преподал один и тот же урок: когда залоговый актив теряет привязку, рынки кредитования, которые не реагируют в течение нескольких минут, превращаются в машины для перекачки богатства от честных поставщиков к арбитражникам. Заголовок Protos четко резюмировал: «Взлом Resolv показывает, что DeFi ничему не научился на прошлых ошибках».

Resolv против Terra: разные сбои, одинаковый результат

Легко объединить Resolv с Terra / LUNA. Оба — это стейблкоины, которые катастрофически потеряли свою привязку. Но типы сбоев не могли быть более разными, и это различие имеет значение для того, как протоколы будут защищаться в будущем.

Terra была сбоем внутреннего механизма. Алгоритмическая связь между UST и LUNA разорвалась, как и было заложено в дизайне, как только доверие было подорвано — система поглотила сама себя изнутри, следуя собственным правилам. Внешнего злоумышленника не было; багом была сама структура стимулов.

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

Это различие меняет стратегию защиты. Против алгоритмического сбоя вы улучшаете механизм: более совершенные кривые связывания (bonding curves), автоматические выключатели (circuit breakers), буферы обеспечения. Против компрометации ключа улучшения механизма бесполезны. Вам нужны аппаратные модули безопасности (HSM) со строгими политиками использования, пороговые подписи, требующие участия нескольких сторон, ончейн-лимиты скорости и ограничения на чеканку (mint caps), которые ни один ключ не может обойти, а также непрерывный мониторинг облачных аккаунтов с привилегированными ролями.

Что изменится дальше — или должно измениться

Рынок стейблкоинов объемом более $ 308 млрд сейчас достаточно велик, чтобы крах одного протокола имел системное значение. Инцидент с Resolv выявляет несколько изменений, которые серьезные эмитенты и DeFi-интеграторы, вероятно, внедрят к 2026 году:

  • Ончейн-лимиты на минтинг как стандарт. Ни одна оффчейн-подпись не должна иметь возможности начеканить более небольшого процента от общего предложения за один вызов, независимо от того, кто ее подписал. Одно это ограничило бы атаку на Resolv потерями в несколько миллионов.
  • Автоматические выключатели при потере привязки (Depeg circuit breakers) на рынках кредитования. Оракулы, которые сравнивают рыночную цену с ценой погашения и автоматически приостанавливают заимствования, когда разрыв между ними превышает пороговое значение. Morpho, Euler и Fluid уже заявили о работе в этом направлении после инцидента.
  • Аудит облачной инфраструктуры наряду с аудитом смарт-контрактов. Такие фирмы, как Halborn и Chainalysis, расширяют сферу деятельности, включая проверку конфигураций KMS, обзоры IAM и аудит ротации ключей. Ожидайте, что это станет базовым требованием для любого протокола с привилегированными оффчейн-подписантами.
  • Пороговые подписи и MPC для полномочий на минтинг. Один ключ KMS, контролирующий неограниченную чеканку, — это артефакт раннего DeFi. Схемы на базе MPC, требующие совместной подписи операций несколькими независимыми сторонами, теперь готовы к эксплуатации и значительно повышают стоимость атаки.
  • Разделение хранения залога и полномочий на минтинг. В хорошо спроектированной системе даже полностью скомпрометированный ключ подписи не может выпустить токены, объем которых превышает верифицированный ончейн-залог. Архитектура Resolv объединяла эти функции; будущие разработки должны будут их разделить.

Неудобная правда заключается в том, что взлом Resolv не является событием типа «черный лебедь». Это предсказуемое последствие построения финансовых примитивов на миллиарды долларов поверх облачных подписантов с одним ключом. Любой доходный стейблкоин с оффчейн-оракулом или подписантом имеет схожую поверхность атаки. Некоторые добавят вышеуказанные меры контроля. Другие узнают об этом на собственном горьком опыте.

Вывод для инфраструктуры

Для разработчиков взлом Resolv пересматривает подход к безопасности. Чистый аудит Solidity необходим, но далеко не достаточен. Самым слабым звеном в большинстве современных DeFi-протоколов является операционная безопасность облачных аккаунтов, CI-конвейеров и машин разработчиков, на которых хранятся привилегированные учетные данные. Именно на этот уровень злоумышленники будут продолжать нацеливаться, потому что там выигрыш максимален по сравнению со сложностью.

Это также пересматривает процесс проверки (due diligence) для инвесторов и интеграторов. Прежде чем принимать новый стейблкоин в качестве залога, актуальные вопросы должны быть не только «был ли аудит кода» и «каков коэффициент обеспечения». Они должны звучать так: Кто владеет ключами минтинга? Где хранятся эти ключи? Сколько независимых сторон должны подписать транзакцию для выпуска нового предложения? Какие ончейн-лимиты существуют, которые не может обойти ни один оффчейн-подписант? Если протокол не может четко ответить на эти вопросы, он не готов быть системным контрагентом.

Семнадцать минут, один ключ AWS, потеряны $ 25 миллионов, сотни миллионов побочного ущерба во всем DeFi. Код сработал именно так, как и было задумано. В этом и заключается проблема.


BlockEden.xyz предоставляет блокчейн-инфраструктуру корпоративного уровня для Sui, Aptos, Ethereum и более 15 других сетей, уделяя особое внимание безопасным и отказоустойчивым узлам и API-сервисам. Если вы создаете инфраструктуру для стейблкоинов или DeFi, где операционная безопасность важна так же, как и качество кода, изучите наш маркетплейс API, чтобы строить на фундаменте, рассчитанном на долголетие.

Источники