Euler Finance зазнала флеш-атаки, втративши майже 200 мільйонів доларів
Нещодавно серйозний інцидент безпеки привернув широку увагу у світі криптовалют. Згідно з даними моніторингу в блокчейні, проект Euler Finance зазнав серйозної флеш-атаки 13 березня 2023 року, що призвело до величезних втрат у розмірі до 197 мільйонів доларів, з залученням 6 різних криптовалют.
Основною причиною цієї атаки є ключова вразливість у контракті проекту Euler Finance. Конкретно, у функції donateToReserves токена проекту Etoken відсутній необхідний механізм перевірки ліквідності, що створило можливість для зловмисника. Хакер скористався цією вразливістю, неодноразово викликаючи відповідні функції різних валют, врешті-решт завершивши масоване викрадення коштів.
Конкретний процес атаки можна підсумувати в наступних кількох кроках:
Хакер спочатку отримав 30 мільйонів DAI з Термінові позики з певної платформи кредитування.
Потім були розгорнуті два ключові контракти: один для позикових операцій, інший для операцій з ліквідації.
Хакер заставив позичені 20 мільйонів DAI в контракті Euler Protocol, отримавши приблизно 19,5 мільйонів eDAI.
Використовуючи функцію 10-кратного кредитного плеча протоколу Euler, хакер позичив величезну кількість eDAI та dDAI.
Завдяки хитрим маніпуляціям з функціями repay та mint, хакер додатково збільшив кредитний ліміт.
Ключовим етапом є виклик функції donateToReserves, де було пожертвувано 10-кратну суму від погашених коштів, після чого через функцію liquidate було проведено ліквідацію, в результаті чого було отримано велику кількість dDAI та eDAI.
В кінці, хакер вилучив близько 38900000 DAI, повернув початкові 30000000 DAI Термінові позики, чистий прибуток склав близько 8870000 DAI.
Ця атака виявила серйозний недолік у дизайні контракту проекту Euler Finance. У порівнянні з іншими ключовими функціями, функція donateToReserves не містила необхідного кроку checkLiquidity, який мав би викликати RiskManager для забезпечення того, щоб Etoken користувача завжди був більшим за Dtoken. Саме ця недбалість дозволила зловмиснику маніпулювати станом свого рахунку, щоб відповідати умовам ліквідації, а потім отримати з цього прибуток.
Ця подія ще раз підкреслила важливість безпеки аудиту смарт-контрактів. Для проектів, пов'язаних з кредитуванням, особливо необхідно звертати увагу на безпеку в ключових етапах, таких як повернення коштів, перевірка ліквідності та ліквідація боргів. Лише завдяки суворому аудиту безпеки та всебічній оцінці ризиків можна максимально знизити ймовірність виникнення подібних безпекових подій та забезпечити безпеку активів користувачів.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
7 лайків
Нагородити
7
1
Репост
Поділіться
Прокоментувати
0/400
DaoDeveloper
· 15год тому
точно те, що ми очікували з відсутніми перевірками ліквідності... аудит смарт-контрактів 101, якщо чесно
Euler Finance зазнала флеш-атаки на суму 1.97 мільярда доларів США, внаслідок чого вразливості в контракті виявили значні ризики безпеки.
Euler Finance зазнала флеш-атаки, втративши майже 200 мільйонів доларів
Нещодавно серйозний інцидент безпеки привернув широку увагу у світі криптовалют. Згідно з даними моніторингу в блокчейні, проект Euler Finance зазнав серйозної флеш-атаки 13 березня 2023 року, що призвело до величезних втрат у розмірі до 197 мільйонів доларів, з залученням 6 різних криптовалют.
Основною причиною цієї атаки є ключова вразливість у контракті проекту Euler Finance. Конкретно, у функції donateToReserves токена проекту Etoken відсутній необхідний механізм перевірки ліквідності, що створило можливість для зловмисника. Хакер скористався цією вразливістю, неодноразово викликаючи відповідні функції різних валют, врешті-решт завершивши масоване викрадення коштів.
Конкретний процес атаки можна підсумувати в наступних кількох кроках:
Хакер спочатку отримав 30 мільйонів DAI з Термінові позики з певної платформи кредитування.
Потім були розгорнуті два ключові контракти: один для позикових операцій, інший для операцій з ліквідації.
Хакер заставив позичені 20 мільйонів DAI в контракті Euler Protocol, отримавши приблизно 19,5 мільйонів eDAI.
Використовуючи функцію 10-кратного кредитного плеча протоколу Euler, хакер позичив величезну кількість eDAI та dDAI.
Завдяки хитрим маніпуляціям з функціями repay та mint, хакер додатково збільшив кредитний ліміт.
Ключовим етапом є виклик функції donateToReserves, де було пожертвувано 10-кратну суму від погашених коштів, після чого через функцію liquidate було проведено ліквідацію, в результаті чого було отримано велику кількість dDAI та eDAI.
В кінці, хакер вилучив близько 38900000 DAI, повернув початкові 30000000 DAI Термінові позики, чистий прибуток склав близько 8870000 DAI.
Ця атака виявила серйозний недолік у дизайні контракту проекту Euler Finance. У порівнянні з іншими ключовими функціями, функція donateToReserves не містила необхідного кроку checkLiquidity, який мав би викликати RiskManager для забезпечення того, щоб Etoken користувача завжди був більшим за Dtoken. Саме ця недбалість дозволила зловмиснику маніпулювати станом свого рахунку, щоб відповідати умовам ліквідації, а потім отримати з цього прибуток.
Ця подія ще раз підкреслила важливість безпеки аудиту смарт-контрактів. Для проектів, пов'язаних з кредитуванням, особливо необхідно звертати увагу на безпеку в ключових етапах, таких як повернення коштів, перевірка ліквідності та ліквідація боргів. Лише завдяки суворому аудиту безпеки та всебічній оцінці ризиків можна максимально знизити ймовірність виникнення подібних безпекових подій та забезпечити безпеку активів користувачів.