Pada 10 Juni 2024, UwU Lend diserang dan proyek tersebut kehilangan sekitar US$19,3 juta.
SharkTeam melakukan analisis teknis atas insiden tersebut dan merangkum tindakan pencegahan keamanan pada kesempatan pertama. Kami berharap proyek-proyek berikutnya dapat belajar dari insiden ini dan bersama-sama membangun garis pertahanan keamanan untuk industri blockchain.
1. Analisis transaksi serangan
Penyerang: 0x841dDf093f5188989fA1524e7B893de64B421f47
Penyerang memulai total 3 transaksi serangan:
Transaksi Serangan 1:
0x242a0fb4fde9de0dc2fd42e8db743cbc197ffa2bf6a036ba0bba303df296408b
Transaksi Serangan 2:
0xb3f067618ce54bc26a960b660cfc28f9ea0315e2e9a1a855ede1508eb4017376
Transaksi Serangan 3:
0xca1bbf3b320662c89232006f1ec6624b56242850f07e0f1dadbe4f69ba0d6ac3
Ambil transaksi serangan 1 sebagai contoh untuk analisis:
Kontrak serangan: 0x21c58d8f816578b1193aef4683e8c64405a4312e
Kontrak target: Kontrak UwU Lend Treasury, termasuk:
ASUSDE: 0xf1293141fc6ab23b2a0143acc196e3429e0b67a6
uDAI: 0xb95bd0793bcc5524af358ffaae3e38c3903c7626
USDT: 0x24959f75d7bda1884f1ec9861f644821ce233c7d
Proses serangannya adalah sebagai berikut:
1. Pinjaman kilat beberapa token dari berbagai platform, termasuk WETH, WBTC, sUSDe, USDe, DAI, FRAX, USDC, GHO
Alamat penerima token adalah 0x4fea76b66db8b548842349dc01c85278da3925da
Token dan jumlah pinjaman kilat adalah sebagai berikut:
Pinjaman kilat 159.053,16 WETH dan 14.800 WBTC dari Aave V3
Pinjaman kilat 40.000 WETH dari Aave V2
Pinjaman kilat 91.075,70 WETH dan 4.979,79 WBTC dari Spark
Pinjaman kilat 301.738.880,01 sUSDe, 236.934.023,17 USDe dan 100.786.052,15 DAI dari Morpho
Pinjaman kilat 60.000.000 FRAX dan 15.000.000 USDC dari Uniswap V3: FRAX-USDC
Pinjaman kilat 4.627.557,47 GHO dan 38.413,34 WETH dari Balancer
Pinjaman kilat 500.000.000 DAI dari Maker
Total sekitar 328.542,2 WETH, 19.779,79 WBTC, 6.0078.6052,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. Transfer token pinjaman kilat ke kontrak 0xf19d66e82ffe8e203b30df9e81359f8a201517ad (disingkat 0xf19d) sebagai persiapan untuk meluncurkan serangan.
3. Kontrol harga sUSDe (turunkan harga) dengan menukar token
(1) USDecrvUSD.pertukaran
Konversi 8.676.504,84 USDe menjadi 8.730.453,49 crvUSD. Jumlah USDe dalam USDecrvUSD meningkat, harga menurun, dan jumlah crvUSD menurun, harga meningkat.
(2) USDeDAI.pertukaran
Konversi 46.452.158,05 USDe ke 14.389.460,59 DAI. Semakin besar jumlah USDe dalam USDeDAI, semakin rendah harganya. Jika jumlah DAI semakin rendah, semakin tinggi harganya.
(3) FRAXUSDe.pertukaran
Konversi 14.477.791,69 USDe ke 46.309.490,86 FRAX. Jumlah USDe dalam USDDeDAI meningkat, harga menurun, dan jumlah FRAX menurun, harga meningkat.
(4) GHOUSDe.pertukaran
Konversi 4.925.427,20 USDe ke 4.825.479,07 GHO. Semakin besar jumlah USDe dalam USDDeDAI, semakin rendah harganya. Sebaliknya, semakin kecil jumlah GHO, semakin tinggi harganya.
(5) USDeUSDC.pertukaran
Konversi 14.886.912,83 USDe ke 14.711.447,94 USDC. Jumlah USDe dalam USDDeDAI meningkat, harga menurun, dan jumlah USDC menurun, harga meningkat.
Setelah pertukaran di atas, harga USDe di lima kumpulan pendanaan menurun, yang akhirnya menyebabkan penurunan tajam pada harga sUSDe.
4. Terus ciptakan posisi pinjaman, yaitu, setorkan aset lain (WETH, WBTC, dan DAI) ke dalam kontrak LendingPool, lalu pinjam sUSDe. Karena harga sUSDe telah anjlok, jumlah sUSDe yang dipinjam jauh lebih banyak daripada sebelum harganya anjlok.
5. Mirip dengan langkah 3, operasi sebaliknya akan menaikkan harga sUSDe.
Saat sUSDe ditarik, nilai posisi pinjaman pada langkah 4 melampaui nilai agunan dan mencapai standar likuidasi.
6. Likuidasi posisi pinjaman secara berkelompok dan terima hadiah likuidasi uWETH
7. Lunasi pinjaman dan tarik aset dasar WETH, WBTC, DAI, dan sUSDe.
8. Setorkan sUSDe ke LendingPool lagi. Saat ini, harga sUSDe naik, sehingga lebih banyak aset lain yang dapat dipinjam, termasuk DAI dan USDT.
9. Tukar token dan lunasi pinjaman kilat. Keuntungan akhir: 1.946,89 ETH
2. Analisis Kerentanan
Melalui analisis di atas, ditemukan bahwa terdapat sejumlah besar pinjaman kilat dan berbagai manipulasi harga sUSDe selama keseluruhan proses serangan. Ketika sUSDe dijaminkan, jumlah aset yang dipinjam akan terpengaruh; ketika sUSDe dipinjam, suku bunga pinjaman akan terpengaruh, dan kemudian koefisien likuidasi (faktor kesehatan) akan terpengaruh.
Penyerang memanfaatkan hal ini dan menggunakan pinjaman kilat untuk menurunkan harga sUSDe, menggadaikan aset lain, meminjam sUSDe dalam jumlah besar, lalu menaikkan harga sUSDe, melikuidasi aset yang digadaikan untuk mendapatkan keuntungan, dan menggadaikan sisa sUSDe untuk meminjam aset lain. Akhirnya, ia melunasi pinjaman kilat tersebut dan serangan pun selesai.
Dari langkah 3 di atas, kami menemukan bahwa penyerang memanipulasi harga sUSDe dengan mengendalikan harga USDe di kumpulan perdagangan Curve Finances USDe/rvUSD, USDe/AI, FRAX/SDe, GHO/SDe dan USDe/SDC. Fungsi pembacaan harga adalah sebagai berikut:
Di antara mereka, harga sUSDe dihitung dari 11 harga, 10 harga pertama diambil dari CurveFinance, dan harga terakhir disediakan oleh Uniswap V3.
Harga yang dibaca dari CurveFinance disediakan oleh lima kumpulan perdagangan: USDe/rvUSD, USDe/AI, FRAX/SDe, GHO/SDe, dan USD/SDC, yang juga merupakan lima kumpulan perdagangan yang dimanipulasi oleh penyerang dalam transaksi serangan.
Harga yang dikembalikan dihitung berdasarkan harga yang dibaca oleh uwuOracle, price_oracle(0) dan get_p(0) dalam kontrak kumpulan perdagangan CurveFinance.
(1) Harga disediakan oleh Chainlink dan tidak dapat dimanipulasi;
(2) Parameter kolam perdagangan
Penyerang memanipulasi nilai pengembalian get_p(0) dengan memanipulasi jumlah token dalam kumpulan transaksi, sehingga memanipulasi harga.
3. Rekomendasi Keselamatan
Untuk menanggapi serangan ini, tindakan pencegahan berikut harus diikuti selama pengembangan:
(1) Untuk mengatasi kerentanan manipulasi harga, oracle harga di luar rantai dapat digunakan untuk mencegah manipulasi harga.
(2) Sebelum proyek berjalan, perusahaan audit profesional pihak ketiga perlu melakukan audit kontrak pintar.
Tentang Kami
Visi SharkTeams adalah melindungi keamanan dunia Web3. Tim ini terdiri dari para profesional keamanan berpengalaman dan peneliti senior dari seluruh dunia, yang ahli dalam teori dasar blockchain dan kontrak pintar. Tim ini menyediakan layanan termasuk identifikasi dan pemblokiran risiko, audit kontrak pintar, KYT/AML, analisis on-chain, dan telah menciptakan platform identifikasi dan pemblokiran risiko cerdas on-chain ChainAegis, yang secara efektif dapat memerangi ancaman persisten tingkat lanjut (APT) di dunia Web3. Tim ini telah menjalin hubungan kerja sama jangka panjang dengan para pemain utama di berbagai bidang ekosistem Web3, seperti Polkadot, Moonbeam, Polygon, Sui, OKX, imToken, Collab.Land, TinTinLand, dll.
Situs web resmi: https://www.sharkteam.org
Twitter: https://twitter.com/sharkteamorg
Telegram: https://t.me/sharkteamorg
Perselisihan: https://discord.gg/jGH9xXCjDZ
Artikel ini bersumber dari internet: SharkTeam: Analisis Serangan UwU Lend
Dalam 24 jam terakhir, banyak mata uang dan topik hangat baru muncul di pasar, dan sangat mungkin mata uang dan topik tersebut akan menjadi peluang berikutnya untuk menghasilkan uang. Bank Sentral Eropa memangkas suku bunga sebesar 25 basis poin, yang dapat memulai siklus pemangkasan suku bunga oleh bank sentral global. ETF spot BTC terus mengalami arus masuk bersih selama 18 hari berturut-turut. Pasar altcoin berkinerja datar. Aktivitas perdagangan meme ekosistem Solana tetap tinggi. io.net (IO) akan dibuka untuk perdagangan pada 11 Juni. Sektor dengan efek penciptaan kekayaan terkuat adalah: Meme konsep GameStop Sektor yang patut mendapat perhatian di masa mendatang: Ekosistem TON Token dan topik yang paling banyak dicari oleh pengguna adalah: Glacier Network, Ultiverse, io.net Peluang airdrop potensial meliputi:…