Euler Finance зазнала флеш-атаки, втратили майже 200 мільйонів доларів
Нещодавно проект Euler Finance зазнав флеш-атаки через вразливість смарт-контракту, що призвело до величезних фінансових втрат. У цій статті буде проведено детальний аналіз цієї події.
Огляд події
13 березня 2023 року у контракті Etoken проєкту Euler Finance функція donateToReserves не містила необхідної перевірки ліквідності, що було використано зловмисником для флеш-атаки. Зловмисник, виконуючи кілька операцій з різними токенами, в результаті завдав збитків приблизно на 197 мільйонів доларів США, залучивши 6 видів токенів. Викрадені кошти досі залишаються на рахунку зловмисника.
Аналіз процесу атаки
Зловмисник спочатку позичає 30 мільйонів DAI через Термінові позики з певної платформи кредитування та розгортає кредитний контракт і контракт на ліквідацію.
Через функцію deposit застейкити 20 мільйонів DAI в контракті Euler Protocol, отримати 19,5 мільйонів eDAI.
Використовуючи функцію 10-кратного кредитного плеча Euler Protocol, позичте 1,956 мільйона eDAI та 200 мільйонів dDAI.
Використати залишок у 10 мільйонів DAI для часткового погашення боргу та знищити відповідну кількість dDAI, після чого знову позичити таку ж кількість eDAI та dDAI.
Викликати функцію donateToReserves, щоб пожертвувати 100 мільйонів eDAI, а потім через функцію liquidate провести ліквідацію, отримавши 310 мільйонів dDAI та 250 мільйонів eDAI.
Нарешті через функцію withdraw було виведено 38900000 DAI, повернуто 300000 DAI Термінові позики, чистий прибуток склав 8870000 DAI.
Аналіз причин уразливостей
Після перегляду коду було виявлено, що проблема полягає у функції donateToReserves. У порівнянні з ключовими функціями, такими як mint, у функції donateToReserves відсутній важливий крок checkLiquidity.
функція checkLiquidity зазвичай викликає модуль RiskManager для перевірки користувача, щоб забезпечити, що кількість Etoken перевищує кількість Dtoken. Оскільки функція donateToReserves не виконує цю перевірку, зловмисник може скористатися певними функціями протоколу, щоб спочатку привести себе в стан, що підлягає ліквідації, а потім завершити ліквідацію з прибутком.
Рекомендації з безпеки
Щодо таких атак, проектна команда повинна звернути увагу на такі моменти:
Перед запуском контракту необхідно провести всебічний аудит безпеки, щоб забезпечити безпеку контракту.
Проекти з позик потрібно особливо уважно стежити за ключовими етапами, такими як повернення коштів, перевірка ліквідності та ліквідація боргів.
Усі функції, які можуть вплинути на стан активів користувача, повинні містити необхідні механізми перевірки безпеки.
Регулярно проводити перевірку коду та програму винагород за вразливості, щоб вчасно виявляти та виправляти потенційні загрози.
Встановити механізм реагування на надзвичайні ситуації, щоб швидко вжити заходів у разі атаки.
З розвитком проектів DeFi питання безпеки стає все важливішим. Команди проектів повинні завжди бути на чеку, вживаючи комплексних заходів безпеки, щоб забезпечити надійний захист активів користувачів.
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
19 лайків
Нагородити
19
3
Поділіться
Прокоментувати
0/400
BagHolderTillRetire
· 07-24 17:19
Грати в якісь хардкорні проекти, краще купувати просадку BTC зі мною.
Euler Finance зазнав флеш-атаки на 200 мільйонів доларів, вразливість смартконтракту стала причиною лиха.
Euler Finance зазнала флеш-атаки, втратили майже 200 мільйонів доларів
Нещодавно проект Euler Finance зазнав флеш-атаки через вразливість смарт-контракту, що призвело до величезних фінансових втрат. У цій статті буде проведено детальний аналіз цієї події.
Огляд події
13 березня 2023 року у контракті Etoken проєкту Euler Finance функція donateToReserves не містила необхідної перевірки ліквідності, що було використано зловмисником для флеш-атаки. Зловмисник, виконуючи кілька операцій з різними токенами, в результаті завдав збитків приблизно на 197 мільйонів доларів США, залучивши 6 видів токенів. Викрадені кошти досі залишаються на рахунку зловмисника.
Аналіз процесу атаки
Зловмисник спочатку позичає 30 мільйонів DAI через Термінові позики з певної платформи кредитування та розгортає кредитний контракт і контракт на ліквідацію.
Через функцію deposit застейкити 20 мільйонів DAI в контракті Euler Protocol, отримати 19,5 мільйонів eDAI.
Аналіз причин уразливостей
Після перегляду коду було виявлено, що проблема полягає у функції donateToReserves. У порівнянні з ключовими функціями, такими як mint, у функції donateToReserves відсутній важливий крок checkLiquidity.
функція checkLiquidity зазвичай викликає модуль RiskManager для перевірки користувача, щоб забезпечити, що кількість Etoken перевищує кількість Dtoken. Оскільки функція donateToReserves не виконує цю перевірку, зловмисник може скористатися певними функціями протоколу, щоб спочатку привести себе в стан, що підлягає ліквідації, а потім завершити ліквідацію з прибутком.
Рекомендації з безпеки
Щодо таких атак, проектна команда повинна звернути увагу на такі моменти:
Перед запуском контракту необхідно провести всебічний аудит безпеки, щоб забезпечити безпеку контракту.
Проекти з позик потрібно особливо уважно стежити за ключовими етапами, такими як повернення коштів, перевірка ліквідності та ліквідація боргів.
Усі функції, які можуть вплинути на стан активів користувача, повинні містити необхідні механізми перевірки безпеки.
Регулярно проводити перевірку коду та програму винагород за вразливості, щоб вчасно виявляти та виправляти потенційні загрози.
Встановити механізм реагування на надзвичайні ситуації, щоб швидко вжити заходів у разі атаки.
З розвитком проектів DeFi питання безпеки стає все важливішим. Команди проектів повинні завжди бути на чеку, вживаючи комплексних заходів безпеки, щоб забезпечити надійний захист активів користувачів.