Euler Finance mengalami flash loan attack, kehilangan hampir 200 juta dolar
Pada 13 Maret 2023, proyek Euler Finance mengalami serangan flash loan akibat kerentanan kontrak pintar, menyebabkan kerugian sekitar 197 juta USD. Serangan ini melibatkan 6 jenis token, di mana penyerang memanfaatkan cacat fungsi dalam kontrak proyek untuk melakukan serangan.
Analisis Proses Serangan
Penyerang pertama-tama mendapatkan pinjaman flash sebesar 30 juta DAI dari suatu platform peminjaman, kemudian mengerahkan dua kontrak untuk operasi peminjaman dan likuidasi. Serangan ini terutama dibagi menjadi beberapa langkah berikut:
Menyimpan 20 juta DAI ke dalam kontrak Euler Protocol, mendapatkan 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, menghancurkan dDAI yang sesuai, dan terus meminjam lebih banyak eDAI dan dDAI.
Melalui fungsi donateToReserves,捐赠 1亿 eDAI, kemudian melakukan operasi likuidasi, mendapatkan 3.1亿 dDAI dan 2.5亿 eDAI.
Terakhir, menarik 38,9 juta DAI, setelah membayar kembali Pinjaman Flash, memperoleh sekitar 8,87 juta DAI.
Penyebab Kerentanan
Alasan utama keberhasilan serangan adalah karena fungsi donateToReserves dalam kontrak Euler Finance tidak memiliki pemeriksaan likuiditas yang diperlukan. Berbeda dengan fungsi kunci lainnya seperti mint, fungsi donateToReserves tidak memanggil checkLiquidity untuk verifikasi likuiditas pengguna.
Dalam keadaan normal, fungsi checkLiquidity akan memanggil modul RiskManager untuk memastikan jumlah eToken pengguna lebih besar dari jumlah dToken. Karena langkah kunci ini hilang, penyerang dapat memanipulasi status akun mereka sehingga berada dalam keadaan dapat dilikuidasi, sehingga menghasilkan keuntungan yang tidak semestinya.
Saran Keamanan
Kejadian ini sekali lagi menyoroti pentingnya audit keamanan kontrak pintar. Untuk proyek keuangan terdesentralisasi (DeFi), terutama platform yang melibatkan fungsi peminjaman, perlu memperhatikan beberapa aspek berikut:
Integritas mekanisme pengembalian dana
Komprehensifitas deteksi likuiditas
Keamanan Proses Likuidasi Utang
Pengembang proyek harus melakukan audit keamanan yang komprehensif sebelum penyebaran kontrak, untuk memastikan keamanan dan interoperabilitas dari setiap modul fungsional. Selain itu, pemantauan keamanan yang berkelanjutan dan perbaikan kerentanan yang tepat waktu juga merupakan kunci untuk menjaga operasi proyek yang stabil dalam jangka panjang.
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.
22 Suka
Hadiah
22
7
Bagikan
Komentar
0/400
WagmiWarrior
· 07-22 11:52
Dianggap Bodoh tangan semakin canggih.
Lihat AsliBalas0
CountdownToBroke
· 07-22 02:14
Satu lagi yang meledak, antri perlahan.
Lihat AsliBalas0
MEVHunterX
· 07-21 21:20
Apakah ini masalah audit lagi? Lucu sekali.
Lihat AsliBalas0
defi_detective
· 07-20 16:03
Satu proyek lagi ditutup dengan buruk.
Lihat AsliBalas0
DegenDreamer
· 07-20 15:55
Ini adalah celah keamanan lagi, dunia ini tidak bisa dimainkan lagi.
Lihat AsliBalas0
GhostInTheChain
· 07-20 15:53
Sial~~ Ini adalah mesin pemotong pengumpul suckers baru lagi
Euler Finance mengalami serangan Pinjaman Flash dengan kerugian hampir 200 juta dolar AS
Euler Finance mengalami flash loan attack, kehilangan hampir 200 juta dolar
Pada 13 Maret 2023, proyek Euler Finance mengalami serangan flash loan akibat kerentanan kontrak pintar, menyebabkan kerugian sekitar 197 juta USD. Serangan ini melibatkan 6 jenis token, di mana penyerang memanfaatkan cacat fungsi dalam kontrak proyek untuk melakukan serangan.
Analisis Proses Serangan
Penyerang pertama-tama mendapatkan pinjaman flash sebesar 30 juta DAI dari suatu platform peminjaman, kemudian mengerahkan dua kontrak untuk operasi peminjaman dan likuidasi. Serangan ini terutama dibagi menjadi beberapa langkah berikut:
Menyimpan 20 juta DAI ke dalam kontrak Euler Protocol, mendapatkan 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, menghancurkan dDAI yang sesuai, dan terus meminjam lebih banyak eDAI dan dDAI.
Melalui fungsi donateToReserves,捐赠 1亿 eDAI, kemudian melakukan operasi likuidasi, mendapatkan 3.1亿 dDAI dan 2.5亿 eDAI.
Terakhir, menarik 38,9 juta DAI, setelah membayar kembali Pinjaman Flash, memperoleh sekitar 8,87 juta DAI.
Penyebab Kerentanan
Alasan utama keberhasilan serangan adalah karena fungsi donateToReserves dalam kontrak Euler Finance tidak memiliki pemeriksaan likuiditas yang diperlukan. Berbeda dengan fungsi kunci lainnya seperti mint, fungsi donateToReserves tidak memanggil checkLiquidity untuk verifikasi likuiditas pengguna.
Dalam keadaan normal, fungsi checkLiquidity akan memanggil modul RiskManager untuk memastikan jumlah eToken pengguna lebih besar dari jumlah dToken. Karena langkah kunci ini hilang, penyerang dapat memanipulasi status akun mereka sehingga berada dalam keadaan dapat dilikuidasi, sehingga menghasilkan keuntungan yang tidak semestinya.
Saran Keamanan
Kejadian ini sekali lagi menyoroti pentingnya audit keamanan kontrak pintar. Untuk proyek keuangan terdesentralisasi (DeFi), terutama platform yang melibatkan fungsi peminjaman, perlu memperhatikan beberapa aspek berikut:
Pengembang proyek harus melakukan audit keamanan yang komprehensif sebelum penyebaran kontrak, untuk memastikan keamanan dan interoperabilitas dari setiap modul fungsional. Selain itu, pemantauan keamanan yang berkelanjutan dan perbaikan kerentanan yang tepat waktu juga merupakan kunci untuk menjaga operasi proyek yang stabil dalam jangka panjang.