Back to Blog

Анализ DeFi-эксплойта: первопричина потери $200 млн в Euler

Code Auditing
March 13, 2023
4 min read
Key Insights

13 марта 2023 года Euler Finance, протокол децентрализованных финансов (DeFi) для кредитования в сети Ethereum, подвергся атаке с использованием мгновенных займов (flash loan), что привело к убыткам в размере около 200 миллионов долларов. Первопричиной было определено отсутствие проверки ликвидности в функции donateToReserves(). Как компания, занимающаяся безопасностью блокчейнов, BlockSec постоянно отслеживает подобные эксплойты для повышения безопасности DeFi и защиты цифровых активов.

Дата Тип атаки Сеть Потеряно Возвращено
2023-03-13 Уязвимость бизнес-логики ETH ~$200M Да

До атаки Euler Finance входил в топ-30 DeFi-протоколов на DefiLlama. Его общая заблокированная стоимость (TVL) резко упала с 264 миллионов долларов до 10 миллионов долларов, сократившись на 96%.

Основные концепции

Для понимания эксплойта необходимо знать механизмы самозайма (self-borrow) и мягкой ликвидации (soft liquidation) в Euler Finance:

  • Самозайм: позволяет пользователям выпускать новые активы и увеличивать задолженность, используя только что выпущенный EToken в качестве залога, что фактически обеспечивает кредитное плечо.
  • Мягкая ликвидация: позволяет ликвидаторам гибко погашать долг за ликвидируемую сторону, вместо использования фиксированного коэффициента ликвидации.

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

Анализ атаки

Злоумышленник осуществил эксплойт с помощью следующей последовательности действий:

  1. Взял мгновенный заем в размере 30 млн DAI на платформе AAVE.
  2. Внес 20 млн DAI в Euler Finance и получил 20 млн eDAI.
  3. Использовал возможности кредитования Euler для выпуска 195 млн eDAI и 200 млн dDAI.
  4. Погасил 10 млн долга, чтобы выпустить больше eDAI, владея 215 млн eDAI и 190 млн dDAI.
  5. Повторил шаг 4, увеличив объемы до 410 млн eDAI и 390 млн dDAI.
  6. Вызвал функцию donateToReserves(), чтобы пожертвовать 100 млн eDAI.
function donateToReserves(uint256 amount) external {
    // Отсутствие проверки ликвидности позволяет провести эксплойт
    // Логика функции здесь
}

В ходе этого процесса коэффициент здоровья (health factor) злоумышленника не проверялся, что позволило ликвидировать собственную позицию для получения прибыли. Злоумышленник ликвидировал сам себя, выведя 38 млн eDAI, и погасил мгновенный заем.

Данный эксплойт представлял собой атаку с использованием мгновенного займа, эксплуатирующую уязвимость бизнес-логики в смарт-контракте.

Начните работу с Phalcon Security

Обнаруживайте любую угрозу, получайте важные оповещения и блокируйте атаки.

Попробовать сейчас бесплатно

Резюме

Основной проблемой стало отсутствие проверки ликвидности в функции donateToReserves() в сочетании с механизмом динамической скидки при ликвидации. Это создало арбитражную возможность, позволив злоумышленнику эксплуатировать большое количество криптоактивов без надлежащего обеспечения или погашения долга.

Последующие шаги

Примечательно, что около 135 миллионов долларов от украденных средств — в основном стейкнутый эфир (stETH), биткоин и стейблкоины, такие как DAI и USDC — были полностью возвращены. Злоумышленником оказался 19-летний аргентинец по имени Федерико Хайме, который вернул все украденные активы три недели спустя по моральным соображениям.[1]

BlockSec активно следил за инцидентом. Наши официальные аккаунты в Twitter @BlockSecTeam и @MetaSleuth предоставляли постоянные обновления. 18 марта 2023 года злоумышленник вернул 3 000 эфиров, неделей позже — еще 51 000 эфиров, а оставшиеся средства были возвращены в последующие дни.

Во время процесса возврата средств появились фишинговые схемы, эксплуатирующие этот инцидент. Мошенники создали фишинговый сайт eulerrefunds.cxx, обманув некоторых пользователей.

MetaSleuth, высокопроизводительный аналитический инструмент BlockSec для отслеживания потоков средств между блокчейнами, позволил осуществлять мониторинг затронутых цифровых активов в режиме, близком к реальному времени, во время фаз атаки и возврата средств.

Изучите возможности расследования MetaSleuth

Отслеживайте потоки и собирайте доказательства для расследований

Попробовать сейчас бесплатно

Подробнее о безопасности блокчейна

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

  • Аудит смарт-контрактов во время разработки для выявления уязвимостей.
  • Phalcon Security, SaaS-платформу, предоставляющую оповещения об инцидентах и автоматическую блокировку для предотвращения крипто-взломов.
  • MetaSleuth для повышения прослеживаемости и прозрачности цифровых активов.
  • Аудит инфраструктуры для обеспечения безопасности базовой блокчейн-среды.

Лучший аудитор безопасности для Web3

Проверяйте дизайн, код и бизнес-логику до запуска


Ссылка

[1] ОН УКРАЛ 200 МИЛЛИОНОВ ДОЛЛАРОВ. ОН ВЕРНУЛ ИХ. ТЕПЕРЬ ОН ГОТОВ ОБЪЯСНИТЬ ПОЧЕМУ

Best Security Auditor for Web3

Validate design, code, and business logic before launch. Aligned with the highest industry security standards.

BlockSec Audit