Euler Finance mengalami serangan Pinjaman Flash, kehilangan hampir 200 juta dolar
Pada 13 Maret 2023, proyek Euler Finance mengalami serangan pinjaman flash akibat celah dalam kontrak pintar, yang mengakibatkan kerugian signifikan sekitar 197 juta dolar AS. Penyerang memanfaatkan celah di fungsi donateToReserves dalam kontrak yang tidak memiliki pemeriksaan likuiditas, dan berhasil menyelesaikan serangan tersebut melalui beberapa operasi.
Analisis Proses Serangan
Langkah utama penyerang adalah sebagai berikut:
Meminjam 30 juta DAI dari platform pinjaman tertentu melalui Pinjaman Flash, dan menerapkan dua kontrak untuk pinjaman dan likuidasi.
Menyimpan 20 juta DAI dalam kontrak Protokol Euler, mendapatkan 19,5 juta eDAI.
Memanfaatkan fungsi leverage 10x dari Protokol Euler, meminjam 195,6 juta eDAI dan 200 juta dDAI.
Menggunakan sisa 10 juta DAI untuk membayar sebagian utang, menghancurkan dDAI yang sesuai, kemudian meminjam kembali jumlah eDAI dan dDAI yang setara.
Donasikan 100 juta eDAI melalui fungsi donateToReserves, lalu panggil fungsi liquidate untuk melakukan likuidasi, mendapatkan 310 juta dDAI dan 250 juta eDAI.
Terakhir menarik 38,9 juta DAI, mengembalikan 30 juta Pinjaman Flash, laba bersih sekitar 8,87 juta DAI.
Penyebab Kerentanan
Inti dari serangan ini terletak pada fungsi donateToReserves dalam kontrak Euler Finance yang tidak memiliki pemeriksaan likuiditas yang diperlukan. Berbeda dengan fungsi kunci lainnya (seperti mint), fungsi donateToReserves tidak memanggil checkLiquidity untuk memverifikasi likuiditas pengguna. Hal ini memungkinkan penyerang untuk melakukan tindakan tertentu yang membuat mereka berada dalam keadaan yang dapat dilikuidasi, kemudian menyelesaikan likuidasi untuk mendapatkan keuntungan.
Dalam keadaan normal, fungsi checkLiquidity akan memanggil modul RiskManager untuk memastikan bahwa Etoken pengguna selalu lebih besar dari Dtoken, guna menjaga keamanan kontrak. Namun, fungsi donateToReserves melewati langkah penting ini, yang mengakibatkan celah keamanan yang serius.
Pelajaran dan Saran
Peristiwa ini sekali lagi menekankan pentingnya audit keamanan kontrak pintar. Untuk proyek pinjaman, perlu memperhatikan beberapa aspek kunci berikut:
Integritas mekanisme pengembalian dana
Keterpaduan deteksi likuiditas
Keamanan Proses Likuidasi Utang
Pengembang proyek harus melakukan audit keamanan yang komprehensif sebelum peluncuran, memastikan setiap fungsi kontrak telah melalui pemeriksaan keamanan yang ketat. Selain itu, pemantauan keamanan yang berkelanjutan dan program hadiah bug juga merupakan langkah efektif untuk menjaga keamanan proyek dalam jangka panjang.
Selain itu, pengembang harus memperhatikan konsistensi antar fungsi, memastikan bahwa pemeriksaan keamanan yang penting (seperti pemeriksaan likuiditas) diterapkan dengan benar di semua fungsi terkait. Ini tidak hanya mencakup fungsi utama, tetapi juga harus mencakup fungsi pendukung seperti donasi.
Akhirnya, disarankan agar pihak proyek dan pengembang tetap waspada terhadap metode serangan baru yang muncul, serta secara berkala memperbarui strategi keamanan untuk menghadapi ancaman keamanan blockchain yang terus berkembang.
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.
8 Suka
Hadiah
8
7
Bagikan
Komentar
0/400
StableGenius
· 11jam yang lalu
baik baik baik... seperti yang diprediksi, protokol lain belajar tentang ketelitian matematika dengan cara yang sulit. secara empiris, ini tidak terhindarkan.
Lihat AsliBalas0
SelfCustodyBro
· 11jam yang lalu
Berbaring dan siap menikmati!
Lihat AsliBalas0
PoetryOnChain
· 11jam yang lalu
Kontrak renyah lainnya sudah doomed
Lihat AsliBalas0
MevHunter
· 11jam yang lalu
Satu lagi Rug Pull dari penjual kontrak.
Lihat AsliBalas0
SorryRugPulled
· 11jam yang lalu
Kontrak yang tidak memiliki audit teknis juga sama dengan memberikan uang.
Lihat AsliBalas0
0xInsomnia
· 11jam yang lalu
Sekali lagi melihat celah pada smart contract
Lihat AsliBalas0
GasFeeNightmare
· 11jam yang lalu
Tengah malam duduk melihat gas hampir rugi parah... sepuluh transaksi tujuh gagal masih harus membayar pajak IQ kepada penambang.
Euler Finance遭flash loan attack损失近2亿美元
Euler Finance mengalami serangan Pinjaman Flash, kehilangan hampir 200 juta dolar
Pada 13 Maret 2023, proyek Euler Finance mengalami serangan pinjaman flash akibat celah dalam kontrak pintar, yang mengakibatkan kerugian signifikan sekitar 197 juta dolar AS. Penyerang memanfaatkan celah di fungsi donateToReserves dalam kontrak yang tidak memiliki pemeriksaan likuiditas, dan berhasil menyelesaikan serangan tersebut melalui beberapa operasi.
Analisis Proses Serangan
Langkah utama penyerang adalah sebagai berikut:
Meminjam 30 juta DAI dari platform pinjaman tertentu melalui Pinjaman Flash, dan menerapkan dua kontrak untuk pinjaman dan likuidasi.
Menyimpan 20 juta DAI dalam kontrak Protokol Euler, mendapatkan 19,5 juta eDAI.
Memanfaatkan fungsi leverage 10x dari Protokol Euler, meminjam 195,6 juta eDAI dan 200 juta dDAI.
Menggunakan sisa 10 juta DAI untuk membayar sebagian utang, menghancurkan dDAI yang sesuai, kemudian meminjam kembali jumlah eDAI dan dDAI yang setara.
Donasikan 100 juta eDAI melalui fungsi donateToReserves, lalu panggil fungsi liquidate untuk melakukan likuidasi, mendapatkan 310 juta dDAI dan 250 juta eDAI.
Terakhir menarik 38,9 juta DAI, mengembalikan 30 juta Pinjaman Flash, laba bersih sekitar 8,87 juta DAI.
Penyebab Kerentanan
Inti dari serangan ini terletak pada fungsi donateToReserves dalam kontrak Euler Finance yang tidak memiliki pemeriksaan likuiditas yang diperlukan. Berbeda dengan fungsi kunci lainnya (seperti mint), fungsi donateToReserves tidak memanggil checkLiquidity untuk memverifikasi likuiditas pengguna. Hal ini memungkinkan penyerang untuk melakukan tindakan tertentu yang membuat mereka berada dalam keadaan yang dapat dilikuidasi, kemudian menyelesaikan likuidasi untuk mendapatkan keuntungan.
Dalam keadaan normal, fungsi checkLiquidity akan memanggil modul RiskManager untuk memastikan bahwa Etoken pengguna selalu lebih besar dari Dtoken, guna menjaga keamanan kontrak. Namun, fungsi donateToReserves melewati langkah penting ini, yang mengakibatkan celah keamanan yang serius.
Pelajaran dan Saran
Peristiwa ini sekali lagi menekankan pentingnya audit keamanan kontrak pintar. Untuk proyek pinjaman, perlu memperhatikan beberapa aspek kunci berikut:
Pengembang proyek harus melakukan audit keamanan yang komprehensif sebelum peluncuran, memastikan setiap fungsi kontrak telah melalui pemeriksaan keamanan yang ketat. Selain itu, pemantauan keamanan yang berkelanjutan dan program hadiah bug juga merupakan langkah efektif untuk menjaga keamanan proyek dalam jangka panjang.
Selain itu, pengembang harus memperhatikan konsistensi antar fungsi, memastikan bahwa pemeriksaan keamanan yang penting (seperti pemeriksaan likuiditas) diterapkan dengan benar di semua fungsi terkait. Ini tidak hanya mencakup fungsi utama, tetapi juga harus mencakup fungsi pendukung seperti donasi.
Akhirnya, disarankan agar pihak proyek dan pengembang tetap waspada terhadap metode serangan baru yang muncul, serta secara berkala memperbarui strategi keamanan untuk menghadapi ancaman keamanan blockchain yang terus berkembang.