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

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

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

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

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

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

  1. Злоумышленник сначала берет в долг 30 миллионов DAI через Срочные займы на одной из платформ, а затем развертывает два контракта: контракт займа и контракт ликвидации.

  2. Атакующий заложил 20 миллионов DAI в контракт Euler Protocol и получил 195000 eDAI.

  3. Используя функцию 10-кратного кредитного плеча Euler Protocol, злоумышленник занял 1,956,000 eDAI и 2,000,000 dDAI.

  4. Нападающий использует оставшиеся 10 миллионов DAI для частичного погашения долга и уничтожает соответствующее количество dDAI, после чего снова берет в долг 1,956,000 eDAI и 2,000,000 dDAI.

  5. Ключевые шаги: злоумышленник вызывает функцию donateToReserves, жертвуя 1 миллион eDAI (это в 10 раз больше суммы возврата). Затем злоумышленник вызывает функцию liquidate для ликвидации, получая 3,1 миллиона dDAI и 2,5 миллиона eDAI.

  6. Наконец, злоумышленник вывел 389000 DAI и вернул Срочные займы в 30000000 DAI, в конечном итоге заработав 8870000 DAI.

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

Анализ причин уязвимости

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

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

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

Рекомендации по безопасности

В связи с подобными атаками, мы рекомендуем командам DeFi проектов:

  1. Проведение全面 аудита безопасности перед запуском контракта, чтобы гарантировать безопасность контракта.

  2. Для кредитных проектов особое внимание следует уделить ключевым аспектам, таким как погашение средств, проверка ликвидности и ликвидация долгов.

  3. В каждой функции, которая может повлиять на состояние средств пользователя, должны быть реализованы строгие проверки ликвидности.

  4. Регулярно проводить аудит кода и обновления, своевременно исправлять обнаруженные уязвимости.

  5. Рассмотрите возможность внедрения дополнительных мер безопасности, таких как многофакторная подпись или временная блокировка.

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

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

Посмотреть Оригинал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Награда
  • 7
  • Поделиться
комментарий
0/400
HodlVeteranvip
· 07-13 01:44
Ещё одна яма, опытный водитель наступает на неё уже десять лет.
Посмотреть ОригиналОтветить0
DiamondHandsvip
· 07-13 01:36
Снова взорвалось
Посмотреть ОригиналОтветить0
GasFeeCriervip
· 07-12 00:27
Контракт слишком небрежен.
Посмотреть ОригиналОтветить0
NftMetaversePaintervip
· 07-10 03:38
еще одна примитивная эксплуатация из-за недостаточной алгоритмической верификации...сочувствую, web3 буквально плачет сейчас
Посмотреть ОригиналОтветить0
SocialAnxietyStakervip
· 07-10 03:26
Чувствуется безопасность контракта!
Посмотреть ОригиналОтветить0
StakeOrRegretvip
· 07-10 03:23
Уязвимости нарасхват!
Посмотреть ОригиналОтветить0
BearMarketSurvivorvip
· 07-10 03:18
Еще одно сражение, рынок был активирован.
Посмотреть ОригиналОтветить0
  • Закрепить