Euler Finance зазнав флеш-атаки на суму 1,97 мільярда доларів через вразливість у функції donateToReserves

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

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

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

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

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

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

Основні етапи атаки такі:

  1. Залучити 20 мільйонів DAI до контракту Euler Protocol, отримавши 19,5 мільйонів eDAI.

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

  3. Використати залишок у 10 мільйонів DAI для часткового погашення боргу та знищити відповідну кількість dDAI.

  4. Знову позичити таку ж кількість eDAI та dDAI.

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

  6. В кінці було витрачено 38.9 мільйонів DAI, повернуто 30 мільйонів Термінові позики, чистий прибуток становить приблизно 8.87 мільйонів DAI.

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

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

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

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

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

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

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

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

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

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

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

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

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

Щодо таких атак, блокчейн-проекти повинні:

  1. Провести комплексний аудит безпеки перед запуском контракту, щоб забезпечити якість та безпеку коду.

  2. Особлива увага до ключових етапів, таких як повернення коштів, перевірка ліквідності та ліквідація боргів у проєктах, пов'язаних з позиками.

  3. Забезпечте, щоб усі функції, які можуть вплинути на стан активів користувачів, містили необхідні кроки перевірки безпеки.

  4. Регулярно проводити перевірку коду та сканування на вразливості, своєчасно виправляти потенційні ризики.

  5. Розгляньте можливість впровадження механізму багатопідпису або таймлоків як додаткових заходів безпеки, щоб залишити буферний час для реагування в екстрених ситуаціях.

Ця подія ще раз підкреслила важливість безпеки смарт-контрактів. Команди проектів повинні завжди ставити безпеку на перше місце, через безперервну практику безпеки та технологічні інновації спільно створювати більш безпечну та надійну екосистему Web3.

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

Переглянути оригінал
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.
  • Нагородити
  • 5
  • Поділіться
Прокоментувати
0/400
liquidation_surfervip
· 07-11 22:36
Термінові позики знову стали проблемою
Переглянути оригіналвідповісти на0
ZKSherlockvip
· 07-11 21:59
Аудит контрактів занадто м'який
Переглянути оригіналвідповісти на0
ResearchChadButBrokevip
· 07-10 21:58
Дуже важко захистити контракти від вразливостей.
Переглянути оригіналвідповісти на0
UnluckyMinervip
· 07-10 21:51
Код ревізії не є строгим.
Переглянути оригіналвідповісти на0
ForumMiningMastervip
· 07-10 21:49
Ще одна уразливість була використана
Переглянути оригіналвідповісти на0
  • Закріпити