Euler Finance столкнулся с флеш-атакой займа, убытки составили почти 200 миллионов долларов
13 марта 2023 года проект Euler Finance подвергся значительной флеш-атаке займа, что привело к потерям примерно в 197 миллионов долларов. Эта атака затронула 6 различных токенов и является одним из крупнейших событий безопасности в сфере DeFi в последнее время.
Анализ процесса атаки
Злоумышленник сначала получил срочные займы на сумму 30 миллионов DAI с одной из платформ кредитования, а затем развернул два ключевых контракта: один для операций с займами, другой для ликвидации.
Основные шаги атаки следующие:
Залог 20 миллионов DAI в протоколе Euler, получение 19,5 миллионов eDAI.
Используя функцию кредитного плеча 10x протокола Euler, занять 195.6 миллионов eDAI и 200 миллионов dDAI.
Используйте оставшиеся 10 миллионов DAI для частичного погашения долга и уничтожьте соответствующее количество dDAI.
Снова займите такое же количество eDAI и dDAI.
Пожертвуйте 100 миллионов eDAI через функцию donateToReserves, затем инициируйте ликвидацию, чтобы получить 310 миллионов dDAI и 250 миллионов eDAI.
В конечном итоге выведено 38,9 миллиона DAI, возвращено 30 миллионов DAI основного долга по Срочным займам, чистая прибыль составила около 8,87 миллиона DAI.
Причина уязвимости
Основная проблема этой атаки заключается в том, что функция donateToReserves в Euler Finance не содержит необходимых проверок ликвидности. В отличие от других ключевых функций (таких как mint), donateToReserves не вызывает функцию checkLiquidity для проверки состояния активов пользователя.
В нормальных условиях checkLiquidity вызывает модуль RiskManager, чтобы убедиться, что количество eToken у пользователя всегда больше количества dToken. Однако, поскольку функция donateToReserves пропускает этот шаг, злоумышленник может манипулировать своим счетом, чтобы войти в состояние, подлежащее ликвидации, и тем самым осуществить атаку.
Рекомендации по безопасности
Для проектов DeFi, особенно для платформ, связанных с функцией заимствования, необходимо обратить особое внимание на следующие моменты:
Убедитесь, что все ключевые функции содержат необходимые проверки безопасности, особенно валидацию ликвидности.
Провести полную безопасность аудита перед запуском контракта, с акцентом на основные этапы, такие как возврат средств, проверка ликвидности и ликвидация долгов.
Регулярно проводить ревью кода и сканирование уязвимостей, чтобы своевременно выявлять и устранять потенциальные риски.
Создание эффективной системы управления рисками, установление разумных лимитов заимствования и порогов ликвидации.
Рассмотрите возможность внедрения дополнительных мер безопасности, таких как многоподписка или временные замки, чтобы предотвратить быстрое массовое выведение средств.
Данный инцидент еще раз подчеркивает важность безопасности DeFi. Команды проектов должны постоянно повышать свою осведомленность в области безопасности и принимать многоуровневые меры защиты для обеспечения безопасности активов пользователей. В то же время пользователи, участвуя в DeFi проектах, также должны быть внимательны и осознавать потенциальные риски.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
9 Лайков
Награда
9
6
Репост
Поделиться
комментарий
0/400
DAOdreamer
· 07-26 01:35
Безопасность прежде всего, аудит действительно важен.
Посмотреть ОригиналОтветить0
StakeHouseDirector
· 07-25 22:05
Еще один проект был утащен, ускользнул.
Посмотреть ОригиналОтветить0
GasWaster
· 07-23 02:23
Злобный Хакер снова появился
Посмотреть ОригиналОтветить0
MemecoinResearcher
· 07-23 02:19
анализ настроений в процессе... и все пропало
Посмотреть ОригиналОтветить0
ForkThisDAO
· 07-23 02:14
Еще один, который запустился без проверки безопасности
Euler Finance подвергся флеш-атаке займа на сумму 1,97 миллиарда долларов. Децентрализованные финансы снова сигнализируют о проблемах безопасности.
Euler Finance столкнулся с флеш-атакой займа, убытки составили почти 200 миллионов долларов
13 марта 2023 года проект Euler Finance подвергся значительной флеш-атаке займа, что привело к потерям примерно в 197 миллионов долларов. Эта атака затронула 6 различных токенов и является одним из крупнейших событий безопасности в сфере DeFi в последнее время.
Анализ процесса атаки
Злоумышленник сначала получил срочные займы на сумму 30 миллионов DAI с одной из платформ кредитования, а затем развернул два ключевых контракта: один для операций с займами, другой для ликвидации.
Основные шаги атаки следующие:
Залог 20 миллионов DAI в протоколе Euler, получение 19,5 миллионов eDAI.
Используя функцию кредитного плеча 10x протокола Euler, занять 195.6 миллионов eDAI и 200 миллионов dDAI.
Используйте оставшиеся 10 миллионов DAI для частичного погашения долга и уничтожьте соответствующее количество dDAI.
Снова займите такое же количество eDAI и dDAI.
Пожертвуйте 100 миллионов eDAI через функцию donateToReserves, затем инициируйте ликвидацию, чтобы получить 310 миллионов dDAI и 250 миллионов eDAI.
В конечном итоге выведено 38,9 миллиона DAI, возвращено 30 миллионов DAI основного долга по Срочным займам, чистая прибыль составила около 8,87 миллиона DAI.
Причина уязвимости
Основная проблема этой атаки заключается в том, что функция donateToReserves в Euler Finance не содержит необходимых проверок ликвидности. В отличие от других ключевых функций (таких как mint), donateToReserves не вызывает функцию checkLiquidity для проверки состояния активов пользователя.
В нормальных условиях checkLiquidity вызывает модуль RiskManager, чтобы убедиться, что количество eToken у пользователя всегда больше количества dToken. Однако, поскольку функция donateToReserves пропускает этот шаг, злоумышленник может манипулировать своим счетом, чтобы войти в состояние, подлежащее ликвидации, и тем самым осуществить атаку.
Рекомендации по безопасности
Для проектов DeFi, особенно для платформ, связанных с функцией заимствования, необходимо обратить особое внимание на следующие моменты:
Убедитесь, что все ключевые функции содержат необходимые проверки безопасности, особенно валидацию ликвидности.
Провести полную безопасность аудита перед запуском контракта, с акцентом на основные этапы, такие как возврат средств, проверка ликвидности и ликвидация долгов.
Регулярно проводить ревью кода и сканирование уязвимостей, чтобы своевременно выявлять и устранять потенциальные риски.
Создание эффективной системы управления рисками, установление разумных лимитов заимствования и порогов ликвидации.
Рассмотрите возможность внедрения дополнительных мер безопасности, таких как многоподписка или временные замки, чтобы предотвратить быстрое массовое выведение средств.
Данный инцидент еще раз подчеркивает важность безопасности DeFi. Команды проектов должны постоянно повышать свою осведомленность в области безопасности и принимать многоуровневые меры защиты для обеспечения безопасности активов пользователей. В то же время пользователи, участвуя в DeFi проектах, также должны быть внимательны и осознавать потенциальные риски.