Peretasan UniLend $200K: Apa yang Salah dan Bagaimana DeFi Bisa Lebih Baik

Menengah1/22/2025, 4:23:33 PM
UniLend dieksploitasi karena kerentanan, menyebabkan pencurian sekitar $200K (4% dari TVL). Penyerang menggunakan pinjaman kilat untuk mendepositkan 60 juta USDC, memanipulasi perhitungan jaminan, dan mengeksploitasi bug kontrak dalam proses pemeriksaan kesehatan untuk membesarkan nilai jaminan, menarik 60 stETH. Kekurangan berasal dari implementasi yang buruk dari fungsi userBalanceOfToken. UniLend sejak itu memperbaiki masalah tersebut, menghentikan deposit V2, dan menawarkan hadiah untuk memulihkan dana. Insiden ini menegaskan pentingnya keamanan yang kritis untuk platform DeFi dan kebutuhan akan audit kontrak pintar yang teliti.

Pengenalan UniLend

@UniLend_Financeadalah protokol pasar uang terdesentralisasi tanpa izin dengan layanan pinjaman dan peminjaman melalui kontrak pintar.

UniLend memungkinkan pengguna untuk menggunakan kripto mereka dengan menyediakan jaminan kepada jaringan yang dapat dipinjam dengan jaminan kripto yang lebih tinggi. Ini menciptakan lingkungan peminjaman yang aman di mana pemberi pinjaman menerima tingkat bunga yang terakumulasi setiap tahunnya (APY) yang dibayarkan per blok sementara peminjam membayar bunga atas kripto yang dipinjam.

Bagaimana UniLend Beroperasi

Protokol UniLend V2 berfungsi melalui tiga komponen teknis utama:

1. Model Dual Aset Kolam

UniLend menggunakan kolam aset ganda terisolasi untuk setiap pasangan ERC20/ERC20-kompatibel. Desain ini memastikan bahwa kinerja atau volatilitas satu aset tidak memengaruhi yang lain, meningkatkan keamanan dan stabilitas. Arsitektur ini memungkinkan pengguna untuk membuat dan mengelola kolam pinjaman dan pinjaman untuk berbagai aset di beberapa blockchain.

2. Pasokan dan Peminjaman

  • Pemasokan: Pengguna menyetorkan token ERC20 ke dalam kolam yang ditunjuk dan menerima Token Non-Fungible (NFT) yang mewakili posisi likuiditas mereka yang unik. NFT ini menyimpan detail tentang aset yang dipasok dan dapat ditransfer atau ditebus jika diperlukan. Aset yang disediakan menghasilkan bunga variabel berdasarkan penggunaan kolam dan permintaan pasar.
  • Peminjaman: Untuk meminjam, pengguna harus menyediakan cryptocurrency yang dijaminkan lebih dari nilai pinjaman. Protokol menegakkan rasio jaminan, yang dapat disesuaikan melalui tata kelola. Jumlah yang dipinjam akan mengakumulasi bunga per blok, ditentukan oleh tingkat pemanfaatan kolam, memastikan pinjaman tetap aman.

3. Model Tingkat Bunga

UniLend menggunakan model suku bunga dinamis berdasarkan Rasio Utilisasi (U) pool, yang dihitung sebagai:

Ux=PinjamxBerimbalax+Uangx

Tingkat Bunga Pinjaman:

Bunga Pinjamanx=10%+(Ux×30%)

Tarif meningkat dengan penggunaan yang lebih tinggi untuk menyeimbangkan pasokan dan permintaan.

  • Suku Bunga Pasokan:

Suku bunga Pasokanx = Suku bunga Pinjamx × Ux × (1−S)

Ini memastikan para pemasok mendapatkan pengembalian yang berkelanjutan sementara protokol tetap menguntungkan.

Komponen-komponen ini bekerja bersama untuk menciptakan pasar uang terdesentralisasi yang aman, efisien, dan dapat diskalakan.

Analisis Serangan

Pada tanggal 12 Januari 2025, terjadi kerentanan keamanan pada protokol UniLend yang dieksploitasi, mengakibatkan kerugian sekitar $200,000 dari UniLend Pool. Penyerang memanipulasi perhitungan jaminan yang secara salah menilai faktor kesehatan pengguna. Kekurangan ini memungkinkan penyerang menarik 60 token stETH tanpa jaminan yang memadai.

Aset yang dicuri termasuk 60 token stETH, memanfaatkan kesalahan perhitungan saldo token pengguna dalam protokol.

Rincian Terperinci tentang Serangan

1. Inisialisasi Pengeksploitasian

Penyerang memulai serangan dengan memanfaatkan pinjaman flash untuk mendepositokan sejumlah besar USDC ke dalam kolam UniLend. Secara khusus, mereka mendepositokan 60 juta USDC, yang secara signifikan meningkatkan jaminan mereka di dalam kolam.

Pinjaman kilat memungkinkan pengguna meminjam sejumlah besar aset tanpa agunan, asalkan jumlah yang dipinjam dikembalikan dalam transaksi yang sama.

Penyerang menggunakan mekanisme ini untuk memperoleh USDC yang diperlukan tanpa modal awal, sehingga menciptakan posisi yang terlalu tinggi secara artifisial dalam kolam.

2. Manipulasi Perhitungan Jaminan

Setelah menyetor USDC, penyerang melanjutkan untuk meminjam token stETH. Protokol menghitung nilai jaminan pengguna berdasarkan saldo token mereka dalam kumpulan. Namun, karena implementasi yang cacat, saldo dihitung menggunakan saldo token saat ini dalam kontrak kumpulan daripada jumlah transfer aktual selama pemeriksaan faktor kesehatan. Perbedaan ini berarti bahwa saldo token pengguna tampak jauh lebih tinggi daripada yang sebenarnya, terutama di kolam dengan likuiditas besar.

Akar dari manipulasi ini terletak pada fungsi userBalanceOfToken. Dalam skenario di mana pool memiliki likuiditas yang substansial, fungsi ini dapat mengembalikan lendBalance yang tinggi bahkan ketika hanya ada sedikit saham lend yang tersisa. Overestimasi saldo pengguna memberikan ilusi kepada penyerang bahwa mereka memiliki lebih banyak jaminan daripada yang sebenarnya mereka miliki. Akibatnya, penyerang dapat meminjam token stETH melebihi hak yang sebenarnya berdasarkan jaminan mereka yang sebenarnya.

3. Menebus Aset Dasar

Dengan nilai agunan yang terlalu tinggi, penyerang melanjutkan untuk menebus USDC dan stETH mereka. Fungsi redeemUnderlying dipanggil, yang membakar token LP yang terkait dengan deposit pengguna. Namun, karena pemeriksaan faktor kesehatan yang cacat terjadi sebelum transfer token, sistem percaya bahwa pengguna memiliki agunan yang cukup untuk menarik lebih dari yang seharusnya. Kelemahan ini memungkinkan penyerang untuk menarik 60 token stETH tanpa mempertahankan agunan yang diperlukan, efektif memperoleh token-token ini secara gratis.

Bagaimana Serangan Dapat Dicegah

Untuk mencegah serangan tersebut, UniLend seharusnya mengurutkan operasi dalam fungsi redeemUnderlying. Dengan melakukan pemeriksaan faktor kesehatan setelah mentransfer token ke pengguna, protokol akan memastikan bahwa saldo token sebenarnya pengguna mencerminkan dengan akurat status jaminan mereka.

Keamanan blockchain bukanlah pilihan. Lindungi kontrak pintar dan protokol DeFi Anda dengan Three Sigma, mitra keamanan terpercaya dalam audit blockchain, penilaian kerentanan kontrak pintar, dan keamanan Web3.

Klik untukDapatkan Audit Kontrak Pintar Anda Hari Ini.

Konsekuensi

Eksploitasi UniLend mengakibatkan kerugian keuangan yang signifikan sekitar $200.000 dari kolam UniLend. Kerugian yang besar ini secara langsung memengaruhi cadangan platform dan mengurangi likuiditas yang tersedia untuk pengguna lain, berpotensi mengganggu kegiatan pemberian pinjaman dan peminjaman yang sedang berlangsung.

Respon Protokol UniLend

Setelah terjadi eksploitasi, UniLend segera mengambil langkah-langkah untuk mengatasi kerentanan dan meyakinkan pengguna basisnya.

Mereka mengumumkan hadiah sebesar 20% kepada pihak yang bertanggung jawab atas pengembalian dana dengan aman.

Alamat

Transaksi Serangan:

Alamat Eksploiter:

Alamat UnilendV2Core:

Penafian:

  1. Artikel ini dicetak ulang dari [X]. Semua hak cipta adalah milik penulis asli [@threesigmaxyz]. Jika ada keberatan terhadap cetak ulang ini, silakan hubungi Gate Belajartim, dan mereka akan menanganinya dengan cepat.
  2. Penyangkalan Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata merupakan pendapat penulis dan tidak merupakan nasihat investasi apa pun.
  3. Tim Pembelajaran Gate melakukan terjemahan artikel ke dalam bahasa lain. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.

Peretasan UniLend $200K: Apa yang Salah dan Bagaimana DeFi Bisa Lebih Baik

Menengah1/22/2025, 4:23:33 PM
UniLend dieksploitasi karena kerentanan, menyebabkan pencurian sekitar $200K (4% dari TVL). Penyerang menggunakan pinjaman kilat untuk mendepositkan 60 juta USDC, memanipulasi perhitungan jaminan, dan mengeksploitasi bug kontrak dalam proses pemeriksaan kesehatan untuk membesarkan nilai jaminan, menarik 60 stETH. Kekurangan berasal dari implementasi yang buruk dari fungsi userBalanceOfToken. UniLend sejak itu memperbaiki masalah tersebut, menghentikan deposit V2, dan menawarkan hadiah untuk memulihkan dana. Insiden ini menegaskan pentingnya keamanan yang kritis untuk platform DeFi dan kebutuhan akan audit kontrak pintar yang teliti.

Pengenalan UniLend

@UniLend_Financeadalah protokol pasar uang terdesentralisasi tanpa izin dengan layanan pinjaman dan peminjaman melalui kontrak pintar.

UniLend memungkinkan pengguna untuk menggunakan kripto mereka dengan menyediakan jaminan kepada jaringan yang dapat dipinjam dengan jaminan kripto yang lebih tinggi. Ini menciptakan lingkungan peminjaman yang aman di mana pemberi pinjaman menerima tingkat bunga yang terakumulasi setiap tahunnya (APY) yang dibayarkan per blok sementara peminjam membayar bunga atas kripto yang dipinjam.

Bagaimana UniLend Beroperasi

Protokol UniLend V2 berfungsi melalui tiga komponen teknis utama:

1. Model Dual Aset Kolam

UniLend menggunakan kolam aset ganda terisolasi untuk setiap pasangan ERC20/ERC20-kompatibel. Desain ini memastikan bahwa kinerja atau volatilitas satu aset tidak memengaruhi yang lain, meningkatkan keamanan dan stabilitas. Arsitektur ini memungkinkan pengguna untuk membuat dan mengelola kolam pinjaman dan pinjaman untuk berbagai aset di beberapa blockchain.

2. Pasokan dan Peminjaman

  • Pemasokan: Pengguna menyetorkan token ERC20 ke dalam kolam yang ditunjuk dan menerima Token Non-Fungible (NFT) yang mewakili posisi likuiditas mereka yang unik. NFT ini menyimpan detail tentang aset yang dipasok dan dapat ditransfer atau ditebus jika diperlukan. Aset yang disediakan menghasilkan bunga variabel berdasarkan penggunaan kolam dan permintaan pasar.
  • Peminjaman: Untuk meminjam, pengguna harus menyediakan cryptocurrency yang dijaminkan lebih dari nilai pinjaman. Protokol menegakkan rasio jaminan, yang dapat disesuaikan melalui tata kelola. Jumlah yang dipinjam akan mengakumulasi bunga per blok, ditentukan oleh tingkat pemanfaatan kolam, memastikan pinjaman tetap aman.

3. Model Tingkat Bunga

UniLend menggunakan model suku bunga dinamis berdasarkan Rasio Utilisasi (U) pool, yang dihitung sebagai:

Ux=PinjamxBerimbalax+Uangx

Tingkat Bunga Pinjaman:

Bunga Pinjamanx=10%+(Ux×30%)

Tarif meningkat dengan penggunaan yang lebih tinggi untuk menyeimbangkan pasokan dan permintaan.

  • Suku Bunga Pasokan:

Suku bunga Pasokanx = Suku bunga Pinjamx × Ux × (1−S)

Ini memastikan para pemasok mendapatkan pengembalian yang berkelanjutan sementara protokol tetap menguntungkan.

Komponen-komponen ini bekerja bersama untuk menciptakan pasar uang terdesentralisasi yang aman, efisien, dan dapat diskalakan.

Analisis Serangan

Pada tanggal 12 Januari 2025, terjadi kerentanan keamanan pada protokol UniLend yang dieksploitasi, mengakibatkan kerugian sekitar $200,000 dari UniLend Pool. Penyerang memanipulasi perhitungan jaminan yang secara salah menilai faktor kesehatan pengguna. Kekurangan ini memungkinkan penyerang menarik 60 token stETH tanpa jaminan yang memadai.

Aset yang dicuri termasuk 60 token stETH, memanfaatkan kesalahan perhitungan saldo token pengguna dalam protokol.

Rincian Terperinci tentang Serangan

1. Inisialisasi Pengeksploitasian

Penyerang memulai serangan dengan memanfaatkan pinjaman flash untuk mendepositokan sejumlah besar USDC ke dalam kolam UniLend. Secara khusus, mereka mendepositokan 60 juta USDC, yang secara signifikan meningkatkan jaminan mereka di dalam kolam.

Pinjaman kilat memungkinkan pengguna meminjam sejumlah besar aset tanpa agunan, asalkan jumlah yang dipinjam dikembalikan dalam transaksi yang sama.

Penyerang menggunakan mekanisme ini untuk memperoleh USDC yang diperlukan tanpa modal awal, sehingga menciptakan posisi yang terlalu tinggi secara artifisial dalam kolam.

2. Manipulasi Perhitungan Jaminan

Setelah menyetor USDC, penyerang melanjutkan untuk meminjam token stETH. Protokol menghitung nilai jaminan pengguna berdasarkan saldo token mereka dalam kumpulan. Namun, karena implementasi yang cacat, saldo dihitung menggunakan saldo token saat ini dalam kontrak kumpulan daripada jumlah transfer aktual selama pemeriksaan faktor kesehatan. Perbedaan ini berarti bahwa saldo token pengguna tampak jauh lebih tinggi daripada yang sebenarnya, terutama di kolam dengan likuiditas besar.

Akar dari manipulasi ini terletak pada fungsi userBalanceOfToken. Dalam skenario di mana pool memiliki likuiditas yang substansial, fungsi ini dapat mengembalikan lendBalance yang tinggi bahkan ketika hanya ada sedikit saham lend yang tersisa. Overestimasi saldo pengguna memberikan ilusi kepada penyerang bahwa mereka memiliki lebih banyak jaminan daripada yang sebenarnya mereka miliki. Akibatnya, penyerang dapat meminjam token stETH melebihi hak yang sebenarnya berdasarkan jaminan mereka yang sebenarnya.

3. Menebus Aset Dasar

Dengan nilai agunan yang terlalu tinggi, penyerang melanjutkan untuk menebus USDC dan stETH mereka. Fungsi redeemUnderlying dipanggil, yang membakar token LP yang terkait dengan deposit pengguna. Namun, karena pemeriksaan faktor kesehatan yang cacat terjadi sebelum transfer token, sistem percaya bahwa pengguna memiliki agunan yang cukup untuk menarik lebih dari yang seharusnya. Kelemahan ini memungkinkan penyerang untuk menarik 60 token stETH tanpa mempertahankan agunan yang diperlukan, efektif memperoleh token-token ini secara gratis.

Bagaimana Serangan Dapat Dicegah

Untuk mencegah serangan tersebut, UniLend seharusnya mengurutkan operasi dalam fungsi redeemUnderlying. Dengan melakukan pemeriksaan faktor kesehatan setelah mentransfer token ke pengguna, protokol akan memastikan bahwa saldo token sebenarnya pengguna mencerminkan dengan akurat status jaminan mereka.

Keamanan blockchain bukanlah pilihan. Lindungi kontrak pintar dan protokol DeFi Anda dengan Three Sigma, mitra keamanan terpercaya dalam audit blockchain, penilaian kerentanan kontrak pintar, dan keamanan Web3.

Klik untukDapatkan Audit Kontrak Pintar Anda Hari Ini.

Konsekuensi

Eksploitasi UniLend mengakibatkan kerugian keuangan yang signifikan sekitar $200.000 dari kolam UniLend. Kerugian yang besar ini secara langsung memengaruhi cadangan platform dan mengurangi likuiditas yang tersedia untuk pengguna lain, berpotensi mengganggu kegiatan pemberian pinjaman dan peminjaman yang sedang berlangsung.

Respon Protokol UniLend

Setelah terjadi eksploitasi, UniLend segera mengambil langkah-langkah untuk mengatasi kerentanan dan meyakinkan pengguna basisnya.

Mereka mengumumkan hadiah sebesar 20% kepada pihak yang bertanggung jawab atas pengembalian dana dengan aman.

Alamat

Transaksi Serangan:

Alamat Eksploiter:

Alamat UnilendV2Core:

Penafian:

  1. Artikel ini dicetak ulang dari [X]. Semua hak cipta adalah milik penulis asli [@threesigmaxyz]. Jika ada keberatan terhadap cetak ulang ini, silakan hubungi Gate Belajartim, dan mereka akan menanganinya dengan cepat.
  2. Penyangkalan Tanggung Jawab: Pandangan dan opini yang terdapat dalam artikel ini semata-mata merupakan pendapat penulis dan tidak merupakan nasihat investasi apa pun.
  3. Tim Pembelajaran Gate melakukan terjemahan artikel ke dalam bahasa lain. Kecuali disebutkan, menyalin, mendistribusikan, atau menjiplak artikel yang diterjemahkan dilarang.
Mulai Sekarang
Daftar dan dapatkan Voucher
$100
!