10 июня 2024 года UwU Lend подвергся атаке, в результате которой проект потерял около 19,3 млн долл. США.
SharkTeam провела технический анализ инцидента и обобщила меры безопасности при первой возможности. Мы надеемся, что последующие проекты смогут извлечь уроки из этого инцидента и совместно выстроить линию защиты безопасности для индустрии блокчейна.
1. Анализ атакных транзакций
Атакующий: 0x841dDf093f5188989fA1524e7B893de64B421f47
Всего злоумышленник инициировал 3 транзакции атаки:
Атака транзакции 1:
0x242a0fb4fde9de0dc2fd42e8db743cbc197ffa2bf6a036ba0bba303df296408b
Атака транзакции 2:
0xb3f067618ce54bc26a960b660cfc28f9ea0315e2e9a1a855ede1508eb4017376
Атака транзакции 3:
0xca1bbf3b320662c89232006f1ec6624b56242850f07e0f1dadbe4f69ba0d6ac3
В качестве примера для анализа возьмем атакующую транзакцию 1:
Контракт атаки: 0x21c58d8f816578b1193aef4683e8c64405a4312e
Целевой контракт: контракт UwU Lend Treasury, включая:
США: 0xf1293141fc6ab23b2a0143acc196e3429e0b67a6
uDAI: 0xb95bd0793bcc5524af358ffaae3e38c3903c7626
uUSDT: 0x24959f75d7bda1884f1ec9861f644821ce233c7d
Процесс атаки выглядит следующим образом:
1. Мгновенный заем нескольких токенов с разных платформ, включая WETH, WBTC, sUSDe, USDe, DAI, FRAX, USDC, GHO
Адрес получения токена — 0x4fea76b66db8b548842349dc01c85278da3925da
Токены и объемы мгновенных кредитов следующие:
Мгновенный кредит 159 053,16 WETH и 14 800 WBTC от Aave V3
Быстрый кредит 40 000 WETH от Aave V2
Быстрый кредит 91 075,70 WETH и 4 979,79 WBTC от Spark
Мгновенный кредит 301 738 880,01 sUSDe, 236 934 023,17 USDe и 100 786 052,15 DAI от Morpho
Мгновенный кредит 60 000 000 FRAX и 15 000 000 USDC от Uniswap V3: FRAX-USDC
Мгновенный кредит 4,627,557.47 GHO и 38,413.34 WETH от Balancer
Мгновенный кредит 500 000 000 DAI от Maker
Всего приблизительно 328 542,2 WETH, 19 779,79 WBTC, 6 007 860 52,15 DAI, 301 738 880,01 sUSDe, 236 934 023,17 USDe, 4 627 557,47 GHO, 60 000 000 FRAX, 15 000 000 USDC
2. Переведите токен мгновенного кредита в контракт 0xf19d66e82ffe8e203b30df9e81359f8a201517ad (сокращенно 0xf19d) для подготовки к запуску атаки.
3. Контролируйте цену sUSDe (снижайте цену) путем обмена токенов
(1) USDecrvUSD.exchange
Конвертировать 8 676 504,84 USDe в 8 730 453,49 crvUSD. Количество USDe в USDecrvUSD увеличивается, цена уменьшается, а количество crvUSD уменьшается, цена увеличивается.
(2) USDeDAI.exchange
Конвертировать 46 452 158,05 USDe в 14 389 460,59 DAI. Количество USDe в USDeDAI увеличивается, цена уменьшается, а количество DAI уменьшается, цена увеличивается.
(3) FRAXUSDe.exchange
Конвертировать 14,477,791.69 USDe в 46,309,490.86 FRAX. Количество USDe в USDDeDAI увеличивается, цена уменьшается, а количество FRAX уменьшается, цена увеличивается.
(4) GHOUSDe.exchange
Конвертировать 4,925,427.20 USDe в 4,825,479.07 GHO. Количество USDe в USDDeDAI увеличивается, цена уменьшается, а количество GHO уменьшается, цена увеличивается.
(5) USDeUSDC.exchange
Конвертировать 14 886 912,83 USDe в 14 711 447,94 USDC. Количество USDe в USDDeDAI увеличивается, цена уменьшается, а количество USDC уменьшается, цена увеличивается.
После вышеуказанного обмена цены USDe в пяти пулах финансирования снизились, что в конечном итоге привело к резкому падению цены sUSDe.
4. Продолжайте создавать кредитные позиции, то есть вносите другие активы (WETH, WBTC и DAI) в контракт LendingPool, а затем занимайте sUSDe. Поскольку цена sUSDe резко упала, сумма заимствованных sUSDe намного больше, чем до падения цены.
5. Аналогично шагу 3, обратная операция приводит к росту цены sUSDe.
При извлечении sUSDe стоимость кредитной позиции на шаге 4 превысила стоимость обеспечения и достигла стандарта ликвидации.
6. Ликвидируйте кредитные позиции партиями и получайте вознаграждения за ликвидацию uWETH
7. Погасите кредит и выведите базовые активы WETH, WBTC, DAI и sUSDe.
8. Снова внесите sUSDe в LendingPool. В это время цена sUSDe повышается, поэтому можно взять в долг больше других активов, включая DAI и USDT.
9. Обмен токенов и погашение срочных кредитов. Итоговая прибыль: 1,946.89 ETH
2. Анализ уязвимости
В результате вышеприведенного анализа было установлено, что существует большое количество срочных кредитов и множественных манипуляций ценой sUSDe в течение всего процесса атаки. Когда sUSDe закладывается, будет затронута сумма заемных активов; когда sUSDe заимствуется, будет затронута ставка заимствования, а затем будет затронут коэффициент ликвидации (фактор здоровья).
Атакующий воспользовался этим и использовал срочные кредиты, чтобы снизить цену sUSDe, заложил другие активы, занял большую сумму sUSDe, а затем поднял цену sUSDe, ликвидировал заложенные активы с целью получения прибыли и заложил оставшиеся sUSDe, чтобы занять другие активы. Наконец, он погасил срочный кредит, и атака была завершена.
Из шага 3 выше мы обнаружили, что злоумышленник манипулировал ценой sUSDe, контролируя цену USDe в торговых пулах Curve Finances USDe/rvUSD, USDe/AI, FRAX/SDe, GHO/SDe и USDe/SDC. Функция считывания цены выглядит следующим образом:
Среди них цена sUSDe рассчитывается на основе 11 цен, первые 10 из которых считываются из CurveFinance, а последняя предоставляется Uniswap V3.
Цены, считываемые с CurveFinance, предоставляются пятью торговыми пулами: USDe/rvUSD, USDe/AI, FRAX/SDe, GHO/SDe и USD/SDC, которые также являются пятью торговыми пулами, манипулируемыми злоумышленником в транзакции атаки.
Возвращаемая цена рассчитывается на основе цены, считанной uwuOracle, price_oracle(0) и get_p(0) в контракте торгового пула CurveFinance.
(1) Цена предоставляется Chainlink и не может быть изменена;
(2) Параметры торгового пула
Злоумышленник манипулирует возвращаемым значением get_p(0), манипулируя количеством токенов в пуле транзакций, тем самым манипулируя ценой.
3. Рекомендации по безопасности
В ответ на эту атаку во время разработки следует соблюдать следующие меры предосторожности:
(1) Для устранения уязвимости ценового манипулирования можно использовать ценовой оракул вне сети, который позволит предотвратить ценовое манипулирование.
(2) Перед запуском проекта в сеть сторонняя профессиональная аудиторская компания должна провести аудит смарт-контракта.
О нас
Видение SharkTeams заключается в защите безопасности мира Web3. Команда состоит из опытных специалистов по безопасности и старших исследователей со всего мира, которые владеют базовыми теориями блокчейна и смарт-контрактов. Она предоставляет услуги, включая идентификацию и блокировку рисков, аудит смарт-контрактов, KYT/AML, ончейн-анализ, и создала ончейн-платформу интеллектуальной идентификации и блокировки рисков ChainAegis, которая может эффективно бороться с передовыми постоянными угрозами (APT) в мире Web3. Она установила долгосрочные отношения сотрудничества с ключевыми игроками в различных областях экосистемы Web3, такими как Polkadot, Moonbeam, polygon, Sui, OKX, imToken, Collab.Land, TinTinLand и т. д.
Официальный сайт: https://www.sharkteam.org
Твиттер: https://twitter.com/sharkteamorg
Телеграм: https://t.me/sharkteamorg
Дискорд: https://discord.gg/jGH9xXCjDZ
Эта статья взята из интернета: SharkTeam: Анализ атаки UwU Lend
За последние 24 часа на рынке появилось много новых горячих валют и тем, и весьма вероятно, что они станут следующей возможностью заработать деньги. Европейский центральный банк снизил процентные ставки на 25 базисных пунктов, что может запустить цикл снижения процентных ставок мировыми центральными банками. Спотовые ETF BTC продолжают получать чистый приток в течение 18 дней подряд. Рынок альткоинов показал нулевые результаты. Торговая активность мемов экосистемы Solana остается высокой. io.net (IO) будет открыт для торгов 11 июня. Секторы с самым сильным эффектом создания богатства: Концептуальный мем GameStop Сектор, который заслуживает внимания в будущем: Экосистема TON Наиболее часто пользователи ищут токены и темы: Glacier Network, Ultiverse, io.net Потенциальные возможности для airdrop включают:…