Euler Finance подвергся флеш-атаке займа, потеряв почти 200 миллионов долларов
13 марта проект Euler Finance стал жертвой флеш-атаки займа из-за уязвимости в смарт-контракте, что привело к потере около 197 миллионов долларов. Эта атака затронула 6 токенов и является одним из крупнейших инцидентов безопасности в области DeFi в последнее время.
Анализ процесса атаки
Атакующий сначала получает срочный займ в 30 миллионов DAI с одной из платформ для кредитования, затем разворачивает два контракта: на кредитование и ликвидацию. Процесс атаки выглядит примерно так:
Заставьте 20 миллионов DAI в протоколе Euler, чтобы получить 19,5 миллионов eDAI.
Используя 10-кратный кредитный рычаг протокола Euler, занять 195,6 миллиона eDAI и 200 миллионов dDAI.
Использовать оставшиеся 10 миллионов DAI для частичного погашения долга, уничтожить соответствующий dDAI.
Снова занять такое же количество eDAI и dDAI.
Пожертвовать 100 миллионов eDAI через функцию donateToReserves, затем вызвать функцию liquidate для ликвидации, получить 310 миллионов dDAI и 250 миллионов eDAI.
В конце извлекли 3890 миллионов DAI, погасили 3000 миллионов Срочные займы, чистая прибыль составила примерно 887 миллионов DAI.
Причина уязвимости
Ключевым моментом этой атаки является отсутствие необходимых проверок ликвидности в функции donateToReserves Euler Finance. В отличие от других функций, таких как mint, donateToReserves не вызывает функцию checkLiquidity для проверки состояния активов пользователя. Это позволяет злоумышленникам использовать эту функцию, чтобы привести свои счета в состояние, подлежащее ликвидации, и таким образом осуществить атаку.
В нормальных условиях функция checkLiquidity вызывает модуль RiskManager, чтобы убедиться, что eToken пользователя больше, чем dToken, для поддержания безопасности системы. Однако функция donateToReserves пропускает этот важный шаг, предоставляя злоумышленникам возможность воспользоваться ситуацией.
Рекомендации по безопасности
Это событие еще раз подчеркивает важность безопасности контрактов DeFi проектов. В отношении кредитных проектов особенно следует обратить внимание на следующие моменты:
Убедитесь, что все функции, связанные с операциями с финансами, проходят тщательную проверку ликвидности.
Строго контролировать кредитное плечо пользователей, чтобы предотвратить системные риски, вызванные чрезмерным кредитным плечом.
Реализуйте многоуровневые механизмы безопасности, такие как функция экстренной приостановки, для реагирования на неожиданные инциденты безопасности.
Проведение комплексного аудита контрактов, особенно с акцентом на ключевые этапы, такие как погашение средств, проверка ликвидности и ликвидация долгов.
Регулярно проводить оценку безопасности и стресс-тестирование, своевременно выявлять и устранять потенциальные уязвимости.
Это происшествие с атакой напоминает нам о том, что безопасность всегда является первоочередным фактором в быстро развивающемся мире Web3. Проектам следует вложить больше ресурсов в обеспечение безопасности, а пользователям необходимо повысить осведомленность о рисках и осторожно участвовать в различных DeFi проектах.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
15 Лайков
Награда
15
6
Поделиться
комментарий
0/400
airdrop_whisperer
· 7ч назад
Еще одна ликвидирована. Кто следующий?
Посмотреть ОригиналОтветить0
MEV_Whisperer
· 8ч назад
Срочные займы, я в восторге!
Посмотреть ОригиналОтветить0
DogeBachelor
· 8ч назад
Кто сказал, что DeFi безопасен, встаньте и скажите.
Euler Finance подвергся флеш-атаке займа, в результате чего потерял почти 200 миллионов долларов.
Euler Finance подвергся флеш-атаке займа, потеряв почти 200 миллионов долларов
13 марта проект Euler Finance стал жертвой флеш-атаки займа из-за уязвимости в смарт-контракте, что привело к потере около 197 миллионов долларов. Эта атака затронула 6 токенов и является одним из крупнейших инцидентов безопасности в области DeFi в последнее время.
Анализ процесса атаки
Атакующий сначала получает срочный займ в 30 миллионов DAI с одной из платформ для кредитования, затем разворачивает два контракта: на кредитование и ликвидацию. Процесс атаки выглядит примерно так:
Заставьте 20 миллионов DAI в протоколе Euler, чтобы получить 19,5 миллионов eDAI.
Используя 10-кратный кредитный рычаг протокола Euler, занять 195,6 миллиона eDAI и 200 миллионов dDAI.
Использовать оставшиеся 10 миллионов DAI для частичного погашения долга, уничтожить соответствующий dDAI.
Снова занять такое же количество eDAI и dDAI.
Пожертвовать 100 миллионов eDAI через функцию donateToReserves, затем вызвать функцию liquidate для ликвидации, получить 310 миллионов dDAI и 250 миллионов eDAI.
В конце извлекли 3890 миллионов DAI, погасили 3000 миллионов Срочные займы, чистая прибыль составила примерно 887 миллионов DAI.
Причина уязвимости
Ключевым моментом этой атаки является отсутствие необходимых проверок ликвидности в функции donateToReserves Euler Finance. В отличие от других функций, таких как mint, donateToReserves не вызывает функцию checkLiquidity для проверки состояния активов пользователя. Это позволяет злоумышленникам использовать эту функцию, чтобы привести свои счета в состояние, подлежащее ликвидации, и таким образом осуществить атаку.
В нормальных условиях функция checkLiquidity вызывает модуль RiskManager, чтобы убедиться, что eToken пользователя больше, чем dToken, для поддержания безопасности системы. Однако функция donateToReserves пропускает этот важный шаг, предоставляя злоумышленникам возможность воспользоваться ситуацией.
Рекомендации по безопасности
Это событие еще раз подчеркивает важность безопасности контрактов DeFi проектов. В отношении кредитных проектов особенно следует обратить внимание на следующие моменты:
Убедитесь, что все функции, связанные с операциями с финансами, проходят тщательную проверку ликвидности.
Строго контролировать кредитное плечо пользователей, чтобы предотвратить системные риски, вызванные чрезмерным кредитным плечом.
Реализуйте многоуровневые механизмы безопасности, такие как функция экстренной приостановки, для реагирования на неожиданные инциденты безопасности.
Проведение комплексного аудита контрактов, особенно с акцентом на ключевые этапы, такие как погашение средств, проверка ликвидности и ликвидация долгов.
Регулярно проводить оценку безопасности и стресс-тестирование, своевременно выявлять и устранять потенциальные уязвимости.
Это происшествие с атакой напоминает нам о том, что безопасность всегда является первоочередным фактором в быстро развивающемся мире Web3. Проектам следует вложить больше ресурсов в обеспечение безопасности, а пользователям необходимо повысить осведомленность о рисках и осторожно участвовать в различных DeFi проектах.