Euler Finance подвергся флеш-атаке займа, убытки составили почти 200 миллионов долларов.

robot
Генерация тезисов в процессе

Euler Finance столкнулся с флеш-атакой займа, убытки составили почти 200 миллионов долларов

13 марта 2023 года проект Euler Finance подвергся флеш-атека займа из-за уязвимости в смарт-контракте, что привело к значительным убыткам в размере около 197 миллионов долларов. Нападающий использовал уязвимость отсутствия проверки ликвидности в функции donateToReserves контракта и завершил атаку с помощью множества операций.

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убытки составили 1.97 миллиарда долларов!

Анализ процесса атаки

Основные шаги атакующего следующие:

  1. Заимствовал 30 миллионов DAI с помощью Срочных займов на одной из платформ кредитования и развернул два контракта: кредитный и ликвидационный.

  2. Залог 20 миллионов DAI в контракте протокола Euler, получение 19.5 миллионов eDAI.

  3. Используя функцию 10-кратного кредитного плеча Euler Protocol, занять 195,6 миллиона eDAI и 200 миллионов dDAI.

  4. Используйте оставшиеся 10 миллионов DAI для частичного погашения долга, уничтожьте соответствующее количество dDAI, а затем снова займите такое же количество eDAI и dDAI.

  5. Пожертвуйте 100 миллионов eDAI через функцию donateToReserves, затем вызовите функцию liquidate для ликвидации, чтобы получить 310 миллионов dDAI и 250 миллионов eDAI.

  6. В конце извлечено 3890 миллионов DAI, возвращено 3000 миллионов Срочные займы, чистая прибыль составила около 887 миллионов DAI.

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убытки составили 1,97 миллиарда долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убыток составил 197 миллионов долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убытки составили 197 миллионов долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убыток составил 1.97 миллиарда долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убытки составили 1.97 миллиарда долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убытки составили 197 миллионов долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убытки составили 197 миллионов долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убыток составил 197 миллионов долларов!

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убытки составили 1.97 миллиарда долларов!

Причина уязвимости

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

В нормальных условиях функция checkLiquidity вызывает модуль RiskManager, чтобы убедиться, что Etoken пользователя всегда больше, чем Dtoken, для поддержания безопасности контракта. Однако функция donateToReserves пропускает этот важный шаг, что приводит к серьезной уязвимости в безопасности.

Анализ уязвимости Euler Finance: как произошла флеш-атака займа, убыток составил 197 миллионов долларов!

Уроки и рекомендации

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

  1. Целостность механизма возврата средств
  2. Полнота проверки ликвидности
  3. Безопасность процесса ликвидации долгов

Перед запуском проекта команда должна провести всесторонний аудит безопасности, чтобы убедиться, что каждая функция контракта прошла строгую проверку безопасности. Кроме того, постоянный мониторинг безопасности и программа вознаграждений за уязвимости также являются эффективными мерами для обеспечения долгосрочной безопасности проекта.

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

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

EUL7.24%
Посмотреть Оригинал
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
  • Награда
  • 7
  • Поделиться
комментарий
0/400
StableGeniusvip
· 11ч назад
ну-ну-ну... как и предсказывалось, еще один Протокол узнает о математической строгости трудным путем. эмпирически говоря, это было неизбежно.
Посмотреть ОригиналОтветить0
SelfCustodyBrovip
· 11ч назад
Лежите, наслаждайтесь попкорном~
Посмотреть ОригиналОтветить0
PoetryOnChainvip
· 11ч назад
Ещё один хрустящий контракт обречено
Посмотреть ОригиналОтветить0
MevHuntervip
· 11ч назад
Еще один продавец контрактов ушел в Мошенничество
Посмотреть ОригиналОтветить0
SorryRugPulledvip
· 11ч назад
Контракт без технического аудита не является чем-то иным, как раздачей денег.
Посмотреть ОригиналОтветить0
0xInsomniavip
· 12ч назад
Снова увидели смарт-контракты уязвимости
Посмотреть ОригиналОтветить0
GasFeeNightmarevip
· 12ч назад
Посреди ночи сидел и смотрел на Газ, чуть не потерял все... из десяти сделок семь неудачных, еще и майнерам платить налог на интеллект.
Посмотреть ОригиналОтветить0
  • Закрепить