Euler Finance зазнала флеш-атаки, внаслідок чого втратила 1.97 мільярда доларів

robot
Генерація анотацій у процесі

Euler Finance зазнала флеш-атаки, збитки склали до 197 мільйонів доларів

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

Аналіз вразливостей Euler Finance: як стати жертвою флеш-атаки, втративши 1,97 млрд доларів!

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

  1. Зловмисник спочатку позичає 30 мільйонів DAI за допомогою Термінові позики з певної платформи кредитування та розгортає два контракти: кредитний контракт і контракт на ліквідацію.

  2. Атакуючий заклав 20 мільйонів DAI в контракт Euler Protocol, отримавши 195 тисяч 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. Нарешті, зловмисник витягнув 389 тисяч DAI та повернув термінові позики в 30 мільйонів DAI, в результаті чого отримав прибуток у 8,87 мільйона DAI.

Аналіз вразливостей Euler Finance: як стати жертвою флеш-атаки, втрати 1,97 мільярда доларів!

Аналіз причин вразливості

Основна проблема цієї атаки полягає в тому, що в контракті Euler Finance функція donateToReserves не має необхідної перевірки ліквідності. На відміну від функції mint, функція donateToReserves не виконує крок checkLiquidity, що дозволяє зловмиснику обійти нормальну перевірку ліквідності.

У нормальних умовах функція checkLiquidity викликає модуль RiskManager, щоб забезпечити, що кількість eToken у користувача перевищує кількість dToken. Однак через відсутність цього ключового кроку у функції donateToReserves зловмисник зміг скористатися цією вразливістю, спочатку поставивши себе в стан, що підлягає ліквідації, а потім завершивши операцію ліквідації.

Аналіз вразливості Euler Finance: як стати жертвою флеш-атаки, втрати 197 мільйонів доларів!

Рекомендації з безпеки

Щодо таких атак, ми рекомендуємо проектам 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
  • Закріпити