Euler Finance mengalami serangan pinjaman flash, kehilangan hampir 200 juta USD
Pada 13 Maret 2023, proyek Euler Finance mengalami serangan pinjaman flash akibat celah pada kontrak pintar, yang mengakibatkan kerugian sekitar 197 juta USD. Penyerang memanfaatkan celah pada fungsi donateToReserves yang tidak memiliki pemeriksaan likuiditas, melalui sejumlah operasi untuk mendapatkan keuntungan besar.
Analisis Proses Serangan
Penyerang pertama-tama meminjam 30 juta DAI dari platform pinjaman Flash dan menerapkan dua kontrak: kontrak pinjaman dan kontrak likuidasi.
Meminjam DAI sebesar 20 juta dan menyetorkannya ke kontrak Euler Protocol, untuk mendapatkan sekitar 19,5 juta eDAI.
Menggunakan fitur leverage 10x dari Euler Protocol, meminjam 195,6 juta eDAI dan 200 juta dDAI.
Menggunakan sisa 10 juta DAI untuk membayar sebagian utang dan menghancurkan dDAI yang sesuai, kemudian meminjam kembali jumlah yang sama dari eDAI dan dDAI.
Memanggil fungsi donateToReserves untuk mendonasikan 100 juta eDAI, kemudian melakukan likuidasi melalui fungsi liquidate, mendapatkan 310 juta dDAI dan 250 juta eDAI.
Terakhir menarik 38,9 juta DAI, mengembalikan Pinjaman Flash sebesar 30 juta DAI, dan memperoleh keuntungan bersih sekitar 8,87 juta DAI.
Alasan Kerentanan
Alasan utama keberhasilan serangan adalah fungsi donateToReserves yang tidak memiliki pemeriksaan likuiditas yang diperlukan. Berbeda dengan fungsi kunci lainnya (seperti mint), donateToReserves tidak memanggil fungsi checkLiquidity untuk memverifikasi status likuiditas pengguna. Hal ini memungkinkan penyerang untuk memanipulasi akun mereka sendiri masuk ke dalam keadaan yang dapat dilikuidasi, dan mendapatkan keuntungan dari situ.
Dalam kondisi normal, fungsi checkLiquidity akan memanggil modul RiskManager untuk memastikan jumlah Etoken pengguna lebih besar dari jumlah Dtoken, guna menjaga kesehatan akun. Namun, fungsi donateToReserves melewatkan langkah penting ini, menciptakan peluang bagi serangan.
Pelajaran dan Saran
Peristiwa ini sekali lagi menyoroti pentingnya audit keamanan kontrak pintar. Untuk proyek peminjaman, ada beberapa aspek yang perlu diperhatikan dengan seksama:
Integritas mekanisme pengembalian dana
Keterpaduan Deteksi Likuiditas
Keamanan Proses Likuidasi Utang
Tim proyek harus melakukan audit keamanan yang menyeluruh dan ketat sebelum kontrak diluncurkan, untuk memastikan keamanan dan stabilitas kontrak. Selain itu, pemantauan keamanan yang berkelanjutan dan perbaikan kerentanan yang tepat waktu juga sangat diperlukan.
Seiring dengan perkembangan cepat keuangan terdesentralisasi, kejadian keamanan serupa mungkin akan terus muncul. Pengembang dan pihak proyek perlu tetap waspada, terus belajar dan berbenah, untuk membangun ekosistem blockchain yang lebih aman dan dapat diandalkan.
Halaman ini mungkin berisi konten pihak ketiga, yang disediakan untuk tujuan informasi saja (bukan pernyataan/jaminan) dan tidak boleh dianggap sebagai dukungan terhadap pandangannya oleh Gate, atau sebagai nasihat keuangan atau profesional. Lihat Penafian untuk detailnya.
5 Suka
Hadiah
5
6
Posting ulang
Bagikan
Komentar
0/400
ChainComedian
· 9jam yang lalu
Satu proyek lagi yang sangat mengesankan telah gagal.
Lihat AsliBalas0
OfflineNewbie
· 9jam yang lalu
suckers lagi dipermainkan~
Lihat AsliBalas0
SmartMoneyWallet
· 9jam yang lalu
197 juta USD? Cara operasi ini terlalu rendah, tetapi jumlah dananya tidak kecil.
Lihat AsliBalas0
SolidityStruggler
· 9jam yang lalu
Sekali lagi, pahlawan yang disalahkan adalah smart contract
Euler Finance mengalami serangan Pinjaman Flash senilai 200 juta dolar AS, celah pada smart contract menjadi penyebabnya.
Euler Finance mengalami serangan pinjaman flash, kehilangan hampir 200 juta USD
Pada 13 Maret 2023, proyek Euler Finance mengalami serangan pinjaman flash akibat celah pada kontrak pintar, yang mengakibatkan kerugian sekitar 197 juta USD. Penyerang memanfaatkan celah pada fungsi donateToReserves yang tidak memiliki pemeriksaan likuiditas, melalui sejumlah operasi untuk mendapatkan keuntungan besar.
Analisis Proses Serangan
Penyerang pertama-tama meminjam 30 juta DAI dari platform pinjaman Flash dan menerapkan dua kontrak: kontrak pinjaman dan kontrak likuidasi.
Meminjam DAI sebesar 20 juta dan menyetorkannya ke kontrak Euler Protocol, untuk mendapatkan sekitar 19,5 juta eDAI.
Menggunakan fitur leverage 10x dari Euler Protocol, meminjam 195,6 juta eDAI dan 200 juta dDAI.
Menggunakan sisa 10 juta DAI untuk membayar sebagian utang dan menghancurkan dDAI yang sesuai, kemudian meminjam kembali jumlah yang sama dari eDAI dan dDAI.
Memanggil fungsi donateToReserves untuk mendonasikan 100 juta eDAI, kemudian melakukan likuidasi melalui fungsi liquidate, mendapatkan 310 juta dDAI dan 250 juta eDAI.
Terakhir menarik 38,9 juta DAI, mengembalikan Pinjaman Flash sebesar 30 juta DAI, dan memperoleh keuntungan bersih sekitar 8,87 juta DAI.
Alasan Kerentanan
Alasan utama keberhasilan serangan adalah fungsi donateToReserves yang tidak memiliki pemeriksaan likuiditas yang diperlukan. Berbeda dengan fungsi kunci lainnya (seperti mint), donateToReserves tidak memanggil fungsi checkLiquidity untuk memverifikasi status likuiditas pengguna. Hal ini memungkinkan penyerang untuk memanipulasi akun mereka sendiri masuk ke dalam keadaan yang dapat dilikuidasi, dan mendapatkan keuntungan dari situ.
Dalam kondisi normal, fungsi checkLiquidity akan memanggil modul RiskManager untuk memastikan jumlah Etoken pengguna lebih besar dari jumlah Dtoken, guna menjaga kesehatan akun. Namun, fungsi donateToReserves melewatkan langkah penting ini, menciptakan peluang bagi serangan.
Pelajaran dan Saran
Peristiwa ini sekali lagi menyoroti pentingnya audit keamanan kontrak pintar. Untuk proyek peminjaman, ada beberapa aspek yang perlu diperhatikan dengan seksama:
Tim proyek harus melakukan audit keamanan yang menyeluruh dan ketat sebelum kontrak diluncurkan, untuk memastikan keamanan dan stabilitas kontrak. Selain itu, pemantauan keamanan yang berkelanjutan dan perbaikan kerentanan yang tepat waktu juga sangat diperlukan.
Seiring dengan perkembangan cepat keuangan terdesentralisasi, kejadian keamanan serupa mungkin akan terus muncul. Pengembang dan pihak proyek perlu tetap waspada, terus belajar dan berbenah, untuk membangun ekosistem blockchain yang lebih aman dan dapat diandalkan.