Euler Finance подвергся флеш-атаки займа, убытки составили почти 200 миллионов долларов
Недавно одно крупное происшествие в области безопасности привлекло широкое внимание криптовалютного сообщества. По данным мониторинга на блокчейне, проект Euler Finance 13 марта 2023 года подвергся серьезной флеш-атаки займа, что привело к огромным потерям в размере до 197 миллионов долларов, затронув 6 различных криптовалют.
Коренная причина этой атаки заключается в ключевой уязвимости контракта проекта Euler Finance. В частности, функция donateToReserves в токене проекта не имела необходимого механизма проверки ликвидности, что создало возможности для злоумышленников. Хакеры использовали эту уязвимость, многократно вызывая соответствующие функции различных валют, в конечном итоге осуществив крупномасштабное похищение средств.
Конкретный процесс атаки можно обобщить в следующих нескольких шагах:
Хакер сначала получил 30 миллионов DAI в Срочные займы с одной платформы кредитования.
Затем были развернуты два ключевых контракта: один для операций займа, другой для операций ликвидации.
Хакер заложил 20 миллионов DAI, взятых в займы, в контракт Euler Protocol и получил около 19,5 миллионов eDAI.
Используя функцию 10-кратного плеча Euler Protocol, хакер занял большое количество eDAI и dDAI.
С помощью хитрых манипуляций с функциями repay и mint злоумышленник дополнительно увеличил лимит займа.
Ключевым шагом является вызов функции donateToReserves, в которой пожертвовано в 10 раз больше суммы, чем сумма погашения, после чего с помощью функции liquidate проводится ликвидация, в результате чего получено большое количество dDAI и eDAI.
Наконец, хакер извлек около 3890 миллионов DAI, погасил первоначальный срочный заем в 3000 миллионов DAI и получил чистую прибыль около 887 миллионов DAI.
Эта атака выявила серьезный недостаток в дизайне контракта проекта Euler Finance. В отличие от других ключевых функций, функция donateToReserves не содержит необходимого шага checkLiquidity, который должен вызывать RiskManager для обеспечения того, чтобы Etoken пользователя всегда был больше Dtoken. Именно этот упущение дало возможность атакующему манипулировать состоянием своего аккаунта, чтобы оно соответствовало условиям ликвидации, а затем извлечь из этого прибыль.
Это событие снова подчеркивает важность безопасности аудита смарт-контрактов. Для проектов в области кредитования особенно важно уделять внимание безопасности таких ключевых аспектов, как возврат средств, проверка ликвидности и ликвидация долгов. Только через строгий аудит безопасности и всестороннюю оценку рисков можно максимально снизить вероятность возникновения подобных инцидентов и обеспечить безопасность активов пользователей.
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
7 Лайков
Награда
7
1
Репост
Поделиться
комментарий
0/400
DaoDeveloper
· 16ч назад
точно то, что мы бы ожидали при отсутствии проверок ликвидности... аудит смарт-контрактов 101, если честно
Euler Finance подвергся флеш-атаке займа на 197 миллионов долларов, уязвимость контракта выявила重大安全风险
Euler Finance подвергся флеш-атаки займа, убытки составили почти 200 миллионов долларов
Недавно одно крупное происшествие в области безопасности привлекло широкое внимание криптовалютного сообщества. По данным мониторинга на блокчейне, проект Euler Finance 13 марта 2023 года подвергся серьезной флеш-атаки займа, что привело к огромным потерям в размере до 197 миллионов долларов, затронув 6 различных криптовалют.
Коренная причина этой атаки заключается в ключевой уязвимости контракта проекта Euler Finance. В частности, функция donateToReserves в токене проекта не имела необходимого механизма проверки ликвидности, что создало возможности для злоумышленников. Хакеры использовали эту уязвимость, многократно вызывая соответствующие функции различных валют, в конечном итоге осуществив крупномасштабное похищение средств.
Конкретный процесс атаки можно обобщить в следующих нескольких шагах:
Хакер сначала получил 30 миллионов DAI в Срочные займы с одной платформы кредитования.
Затем были развернуты два ключевых контракта: один для операций займа, другой для операций ликвидации.
Хакер заложил 20 миллионов DAI, взятых в займы, в контракт Euler Protocol и получил около 19,5 миллионов eDAI.
Используя функцию 10-кратного плеча Euler Protocol, хакер занял большое количество eDAI и dDAI.
С помощью хитрых манипуляций с функциями repay и mint злоумышленник дополнительно увеличил лимит займа.
Ключевым шагом является вызов функции donateToReserves, в которой пожертвовано в 10 раз больше суммы, чем сумма погашения, после чего с помощью функции liquidate проводится ликвидация, в результате чего получено большое количество dDAI и eDAI.
Наконец, хакер извлек около 3890 миллионов DAI, погасил первоначальный срочный заем в 3000 миллионов DAI и получил чистую прибыль около 887 миллионов DAI.
Эта атака выявила серьезный недостаток в дизайне контракта проекта Euler Finance. В отличие от других ключевых функций, функция donateToReserves не содержит необходимого шага checkLiquidity, который должен вызывать RiskManager для обеспечения того, чтобы Etoken пользователя всегда был больше Dtoken. Именно этот упущение дало возможность атакующему манипулировать состоянием своего аккаунта, чтобы оно соответствовало условиям ликвидации, а затем извлечь из этого прибыль.
Это событие снова подчеркивает важность безопасности аудита смарт-контрактов. Для проектов в области кредитования особенно важно уделять внимание безопасности таких ключевых аспектов, как возврат средств, проверка ликвидности и ликвидация долгов. Только через строгий аудит безопасности и всестороннюю оценку рисков можно максимально снизить вероятность возникновения подобных инцидентов и обеспечить безопасность активов пользователей.