Oleh: Tim Keamanan Doris@SlowMist
latar belakang
Pada tanggal 10 Juni 2024, menurut pemantauan sistem pemantauan keamanan SlowMist MistEye, UwU Lend, sebuah platform yang menyediakan layanan pinjaman aset digital pada rantai EVM, diserang dan mengakibatkan kerugian sekitar US$19,3 juta. Tim keamanan SlowMist menganalisis insiden tersebut dan membagikan hasilnya sebagai berikut:
https://x.com/SlowMist_Team/status/1800181916857155761 Informasi terkait
Alamat penyerang:
0x841ddf093f5188989fa1524e7b893de64b421f47
Alamat kontrak yang rentan:
0x9bc6333081266e55d88942e277fc809b485698b9 transaksi serangan: 0xca1bbf3b320662c89232006f1ec6624b56242850f07e0f1dadbe4f69ba0d6ac3
0xb3f067618ce54bc26a960b660cfc28f9ea0315e2e9a1a855ede1508eb4017376
0x242a0fb4fde9de0dc2fd42e8db743cbc197ffa2bf6a036ba0bba303df296408b
Serang intinya
Inti dari serangan ini adalah penyerang dapat secara langsung memanipulasi ramalan harga dengan melakukan pertukaran dalam jumlah besar di kumpulan CurveFinance, memengaruhi harga token sUSDE, dan menggunakan harga yang dimanipulasi untuk mengevakuasi aset lain di kumpulan tersebut.
Proses serangan
1. Pinjaman kilat meminjam aset dan menurunkan harga USDE: Penyerang pertama-tama meminjam sejumlah besar aset melalui pinjaman kilat dan menukar beberapa token USDE yang dipinjam dengan token lain di kumpulan Curve yang dapat memengaruhi harga sUSDE.
2. Buat posisi pinjaman dalam jumlah besar: Dalam situasi saat ini di mana harga sUSDE anjlok, pinjamkan token sUSDE dalam jumlah besar dengan menyetorkan token dasar lainnya.
3. Memanipulasi oracle lagi untuk menaikkan harga sUSDE: Dengan melakukan operasi pertukaran terbalik di kumpulan Curve sebelumnya, harga sUSDE dengan cepat dinaikkan.
4. Likuidasi posisi tanggung jawab secara besar-besaran: Karena harga sUSDE naik dengan cepat, penyerang dapat melikuidasi posisi yang dipinjam sebelumnya dalam jumlah besar untuk mendapatkan uWETH.
5. Setorkan sisa sUSDE dan pinjamkan token dasar lainnya dalam kontrak: Penyerang kembali menyetorkan sUSDE yang saat ini berharga tinggi untuk meminjamkan lebih banyak token aset dasar untuk mendapatkan keuntungan.
Tidak sulit untuk melihat bahwa penyerang memperoleh keuntungan dengan berulang kali memanipulasi harga sUSDE, meminjam dalam jumlah besar saat harga rendah, dan melikuidasi serta menggadaikan kembali saat harga tinggi. Kami menindaklanjuti kontrak oracle sUSDePriceProviderBUniCatch yang menghitung harga sUSDE:
Terlihat bahwa harga sUSDE ditentukan dengan terlebih dahulu memperoleh perbedaan harga 11 token USDE dari pool USDE dan pool UNI V3 di CurveFinance, lalu mengurutkan dan menghitung median berdasarkan harga tersebut.
Dalam logika perhitungan di sini, harga 5 USDE secara langsung menggunakan fungsi get_p untuk mendapatkan harga spot Curve pool secara real-time. Hal ini memungkinkan penyerang untuk secara langsung mempengaruhi harga median dengan menukarkan jumlah besar dalam satu Nomor transaksi hasil perhitungan.
Analisis MistTrack
Menurut analisis alat pelacakan on-chain MistTrack, penyerang 0x841ddf093f5188989fa1524e7b893de64b421f47 memperoleh keuntungan sekitar US$19,3 juta dari serangan ini, termasuk mata uang ETH, crvUSD, bLUSD, dan USDC. Token ERC-20 kemudian ditukar dengan ETH.
Dengan menelusuri biaya penanganan alamat penyerang, ditemukan bahwa dana awal pada alamat tersebut berasal dari 0,98 ETH yang ditransfer dari Tornado Cash, dan selanjutnya alamat tersebut juga menerima 5 dana dari Tornado Cash.
Memperluas grafik transaksi, ditemukan bahwa penyerang mentransfer 1,292.98 ETH ke alamat 0x48d7c1dd4214b41eda3301bca434348f8d1c5eb6. Saldo alamat saat ini adalah 1,282.98 ETH; penyerang mentransfer sisa 4,000 ETH ke alamat 0x050c7e9c62bf991 84182 7f37745ddadb563feb70, saldo saat ini alamat ini adalah 4,010 ETH.
MistTrack telah memblokir alamat yang relevan dan akan terus memantau transfer dana curian.
Meringkaskan
Inti dari serangan ini adalah penyerang menggunakan kelemahan kompatibilitas dari price oracle untuk secara langsung mendapatkan harga spot instan dan harga median yang dihitung untuk memanipulasi harga sUSDE, sehingga melakukan peminjaman dan likuidasi di bawah pengaruh perbedaan harga yang serius untuk mendapatkan keuntungan tak terduga. Tim keamanan SlowMist merekomendasikan agar tim proyek meningkatkan kemampuan anti-manipulasi oracle harga dan merancang mekanisme pemberian harga oracle yang lebih aman untuk menghindari insiden serupa terulang kembali.