НовостиКриптовалютыАтака с флеш-кредитом захватила управление X100 и вывела 4,85 млн долларов

Атака с флеш-кредитом захватила управление X100 и вывела 4,85 млн долларов

Автор: Crypto Adventure·

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

  • •Злоумышленники заняли около 1,94 млн USDT через флеш-кредит Aave, купили 38 200 токенов X и застейкали их через два недавно развёрнутых контракта, захватив два из трёх мест в Senate X100 в рамках одной транзакции.
  • •Поскольку контракты управления X100 позволяли новым сенаторам голосовать и исполнять предложения в той же транзакции, злоумышленник вывел активы казначейства и ликвидности без таймлока или периода ожидания.
  • •Первоначальная прибыль около 4,75 млн долларов была конвертирована примерно в 2 022 ETH через UniswapX, после чего 1 600 ETH были распределены по четырём новым кошелькам по 400 ETH в каждом.
  • •По данным CoinGecko, токен X упал более чем на 96%, однако крайне тонкая оставшаяся ликвидность делает отображаемую цену ненадёжным показателем реализуемой рыночной стоимости.
  • •По оценке Blockaid на 24 октября, в контракте Freezer оставалось около 12,2 млн X, при этом о возврате, исправлении контрактов или компенсациях не сообщалось.
Атака с флеш-кредитом захватила управление X100 и вывела 4,85 млн долларов

X100 — DeFi-проект на базе Ethereum — 24 октября потерял около 4,85 млн долларов в USDT после того, как злоумышленники с помощью флеш-кредитов захватили контроль над системой управления проекта и выполнили вредоносные предложения, направленные против казначейства и резервов ликвидности.

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

Компания Blockaid, специализирующаяся на безопасности блокчейна, сообщила о продолжающемся эксплойте в 14:49 UTC в посте в X, выявив несколько вредоносных транзакций, нацеленных на контракт Freezer протокола. Последующее обновление компании зафиксировало вывод ещё примерно 550 000 токенов X из позиции ликвидности Uniswap, тогда как около 12,2 млн X остались в Freezer.

Флеш-кредит обеспечил злоумышленникам большинство в Senate

Первая атака началась в 14:11 UTC, когда кошелёк занял около 1,94 млн USDT через флеш-кредит Aave и использовал эти средства для покупки 38 200 токенов X. Злоумышленник разделил токены между двумя недавно развёрнутыми контрактами, каждый из которых застейкал чуть более 19 000 X в системе Freezer X100. Эти депозиты вытеснили действующих членов Senate и передали злоумышленнику контроль над двумя из трёх мест в органе управления.

Обеспечив необходимое большинство, злоумышленник подал и немедленно исполнил предложение, предписывающее казначейству продать 400 000 X в новый пул ликвидности PancakeSwap V3. Поскольку manipulated-пул содержал лишь небольшое количество USDT, злоумышленник приобрёл токены казначейства примерно за 35,68 USDT, после чего изъял ликвидность.

Затем злоумышленник продал около 131 703 X через существующий пул Uniswap V3, получив примерно 6,69 млн USDT. После возврата флеш-кредита транзакция принесла около 4,75 млн долларов чистой прибыли.

Эксплойт стал возможен потому, что контракты управления X100 позволяли недавно зарегистрированным сенаторам голосовать и исполнять предложения в рамках одной блокчейн-транзакции. Флеш-кредиты, предоставляющие незалоговое заимствование, которое должно быть возвращено в рамках одной транзакции, дали злоумышленнику временный капитал, необходимый для получения права голоса. В протоколе отсутствовал эффективный период ожидания между получением полномочий управления и их использованием для распоряжения активами казначейства. Таймлоки, откладывающие исполнение предложения до последующих блоков, широко применяются в управлении DeFi именно потому, что дают держателям токенов время отреагировать — и выйти — до того, как транзакции с казначейскими активами вступят в силу. Инцидент с X100 показывает, как в системах управления с весами по токам сам механизм голосования может стать поверхностью атаки, даже если токен и контракты казначейства протокола напрямую не скомпрометированы.

Похищенные средства конвертированы в эфир

Первоначальная прибыль была быстро обменена примерно на 2 022 ETH через UniswapX, после чего криптовалюта была переведена на другой кошелёк Ethereum. Впоследствии этот адрес распределил 1 600 ETH между четырьмя недавно созданными кошельками, по 400 ETH в каждом, при этом около 423 ETH остались на консолидирующем адресе на момент первоначального анализа транзакций.

За первым выводом последовали дополнительные атаки на систему управления. В 14:35 UTC вторая транзакция с использованием аналогичной стратегии флеш-кредита захватила места в Senate и изъяла позиции ликвидности Uniswap V3, контролируемые контрактом Freezer, принеся дополнительно около 96 382 USDT. Третья транзакция в 14:40 UTC через скомпрометированный канал управления вывела ещё одну позицию ликвидности, содержавшую примерно 550 000 токенов X. Эти токены были изъяты отдельно от общей суммы в 4,85 млн долларов USDT.

Транзакции исходили с разных адресатов-отправителей, и следователям не удалось установить, контролировались ли они разными злоумышленниками или координировались одной стороной.

Токен обвалился, а уязвимость остаётся незакрытой

Токен X100 резко подешевел после атаки: по данным CoinGecko, падение превысило 96% после исчезновения ликвидности из основного торгового пула. К указанному проценту следует относиться осторожно: оставшаяся ликвидность была крайне тонкой, из-за чего отображаемая цена токена не является надёжным показателем реализуемой рыночной стоимости.

Эта атака — последняя в серии недавних эксплойтов управления с использованием флеш-кредитов. В августе злоумышленник получил достаточно полномочий над Term Finance, чтобы исполнить вредоносные предложения и вывести около 8,5 млн долларов из кредитных хранилищ на Ethereum. Отдельная атака с флеш-кредитом на Shibarium 5 сентября также включала временное приобретение токенов, связанных с управлением, хотя тот инцидент был нацелен на полномочия валидаторов и активы моста, а не на немедленное исполнение предложений по казначейству. Во всех этих случаях полномочия над активами протокола были привязаны к токенам, которые можно приобрести в рамках одной транзакции, и квоты и пороги одобрения оставались последней линией обороны.

В случае X100 требование двух третей голосов в Senate практически не давало защиты, поскольку право голоса можно было получить и использовать немедленно с помощью заёмных средств.

В первые часы после эксплойта проект не опубликовал публичного отчёта об инциденте и не подтвердил план восстановления, а Blockaid продолжал предупреждать об активной подверженности риску после обнаружения третьей транзакции. По оценке компании на 24 октября, в контракте Freezer оставалось около 12,2 млн X. О возврате выведенных средств, исправлении контрактов или компенсациях не сообщалось. Будут ли перемещены токены, всё ещё хранящиеся в контракте Freezer, и опубликует ли проект разбор инцидента или изменения в управлении — оставались главными открытыми вопросами после оценки Blockaid 24 октября.