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

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

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

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

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

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

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

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

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

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

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

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

  6. Нарешті, витягнули 38900000 DAI, повернувши Термінові позики, отримали прибуток у 8870000 DAI.

Аналіз вразливості 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: як зазнати флеш-атаки, втрати 1,97 мільярда доларів!

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

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

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

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

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

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

Ця подія ще раз підкреслила важливість аудиту безпеки смарт-контрактів. Для проектів, пов'язаних з кредитуванням, особливо слід звернути увагу на такі аспекти:

  1. Цілісність механізму погашення коштів
  2. Комплексність перевірки ліквідності
  3. Безпека процесу ліквідації боргів

Команда проекту повинна провести всебічний і детальний аудит безпеки перед розгортанням контракту, щоб запобігти появі подібних вразливостей. Одночасно постійний моніторинг безпеки та своєчасне виправлення вразливостей є ключовими для забезпечення довгострокової безпечної роботи проекту.

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

EUL0.74%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 2
  • Поділіться
Прокоментувати
0/400
WhaleMinionvip
· 07-25 11:58
Знову прийшли ті, хто створює проблеми
Переглянути оригіналвідповісти на0
DefiEngineerJackvip
· 07-25 11:45
*sigh* аматорська година в дизайні смарт-контрактів... покажіть мені формальну верифікацію або йдіть геть
Переглянути оригіналвідповісти на0
  • Закріпити