Euler Finance mengalami flash loan attack, kehilangan hampir 200 juta dolar.
Pada 13 Maret, proyek Euler Finance mengalami serangan pinjaman flash akibat kerentanan kontrak pintar, yang menyebabkan kerugian sekitar 197 juta dolar. Serangan ini melibatkan 6 jenis token, dan merupakan salah satu insiden keamanan terbesar di bidang DeFi baru-baru ini.
Analisis Proses Serangan
Penyerang pertama-tama mendapatkan pinjaman flash sebesar 30 juta DAI dari suatu platform pinjaman, kemudian menerapkan dua kontrak untuk meminjam dan menyita. Proses serangan secara umum adalah sebagai berikut:
Menyimpan 20 juta DAI ke dalam Protokol Euler untuk mendapatkan 19,5 juta eDAI.
Meminjam 195,6 juta eDAI dan 200 juta dDAI dengan leverage 10x menggunakan Protokol Euler.
Menggunakan sisa 10 juta DAI untuk membayar sebagian utang, menghancurkan dDAI yang sesuai.
Meminjam kembali jumlah eDAI dan dDAI yang sama.
Donasikan 100 juta eDAI melalui fungsi donateToReserves, kemudian panggil fungsi liquidate untuk melakukan likuidasi, mendapatkan 310 juta dDAI dan 250 juta eDAI.
Terakhir menarik 38,9 juta DAI, membayar kembali 30 juta Pinjaman Flash, laba bersih sekitar 8,87 juta DAI.
Penyebab Kerentanan
Kunci dari serangan ini terletak pada fungsi donateToReserves dari Euler Finance yang tidak memiliki pemeriksaan likuiditas yang diperlukan. Berbeda dengan fungsi lainnya seperti mint, donateToReserves tidak memanggil fungsi checkLiquidity untuk memverifikasi kondisi aset pengguna. Hal ini memungkinkan penyerang untuk menggunakan fungsi tersebut untuk membuat akun mereka berada dalam keadaan yang dapat dilikuidasi, sehingga dapat melakukan serangan.
Dalam keadaan normal, fungsi checkLiquidity akan memanggil modul RiskManager untuk memastikan bahwa eToken pengguna lebih besar dari dToken, untuk menjaga keamanan sistem. Namun, fungsi donateToReserves melewatkan langkah penting ini, memberikan peluang bagi penyerang.
Saran Keamanan
Kejadian ini sekali lagi menyoroti pentingnya keamanan kontrak proyek DeFi. Untuk proyek peminjaman, ada beberapa hal yang perlu diperhatikan:
Pastikan semua fungsi yang melibatkan operasi keuangan melakukan pemeriksaan likuiditas yang memadai.
Mengontrol secara ketat leverage pinjaman pengguna, untuk mencegah risiko sistem yang disebabkan oleh leverage berlebihan.
Terapkan mekanisme keamanan ganda, seperti fungsi penghentian darurat, untuk menghadapi kejadian keamanan yang mendesak.
Melakukan audit kontrak secara menyeluruh, dengan fokus khusus pada pengembalian dana, deteksi likuiditas, dan penyelesaian utang yang merupakan bagian kunci.
Secara berkala melakukan evaluasi keamanan dan uji tekanan, untuk segera menemukan dan memperbaiki kerentanan yang potensial.
Peristiwa serangan ini mengingatkan kita bahwa dalam dunia Web3 yang berkembang pesat, keamanan selalu merupakan faktor utama yang harus dipertimbangkan. Pihak proyek harus menginvestasikan lebih banyak sumber daya untuk pembangunan keamanan, dan pengguna juga perlu meningkatkan kesadaran risiko serta berhati-hati dalam berpartisipasi dalam berbagai proyek DeFi.
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.
Euler Finance遭Pinjaman Flash攻击 损失近2亿美元
Euler Finance mengalami flash loan attack, kehilangan hampir 200 juta dolar.
Pada 13 Maret, proyek Euler Finance mengalami serangan pinjaman flash akibat kerentanan kontrak pintar, yang menyebabkan kerugian sekitar 197 juta dolar. Serangan ini melibatkan 6 jenis token, dan merupakan salah satu insiden keamanan terbesar di bidang DeFi baru-baru ini.
Analisis Proses Serangan
Penyerang pertama-tama mendapatkan pinjaman flash sebesar 30 juta DAI dari suatu platform pinjaman, kemudian menerapkan dua kontrak untuk meminjam dan menyita. Proses serangan secara umum adalah sebagai berikut:
Menyimpan 20 juta DAI ke dalam Protokol Euler untuk mendapatkan 19,5 juta eDAI.
Meminjam 195,6 juta eDAI dan 200 juta dDAI dengan leverage 10x menggunakan Protokol Euler.
Menggunakan sisa 10 juta DAI untuk membayar sebagian utang, menghancurkan dDAI yang sesuai.
Meminjam kembali jumlah eDAI dan dDAI yang sama.
Donasikan 100 juta eDAI melalui fungsi donateToReserves, kemudian panggil fungsi liquidate untuk melakukan likuidasi, mendapatkan 310 juta dDAI dan 250 juta eDAI.
Terakhir menarik 38,9 juta DAI, membayar kembali 30 juta Pinjaman Flash, laba bersih sekitar 8,87 juta DAI.
Penyebab Kerentanan
Kunci dari serangan ini terletak pada fungsi donateToReserves dari Euler Finance yang tidak memiliki pemeriksaan likuiditas yang diperlukan. Berbeda dengan fungsi lainnya seperti mint, donateToReserves tidak memanggil fungsi checkLiquidity untuk memverifikasi kondisi aset pengguna. Hal ini memungkinkan penyerang untuk menggunakan fungsi tersebut untuk membuat akun mereka berada dalam keadaan yang dapat dilikuidasi, sehingga dapat melakukan serangan.
Dalam keadaan normal, fungsi checkLiquidity akan memanggil modul RiskManager untuk memastikan bahwa eToken pengguna lebih besar dari dToken, untuk menjaga keamanan sistem. Namun, fungsi donateToReserves melewatkan langkah penting ini, memberikan peluang bagi penyerang.
Saran Keamanan
Kejadian ini sekali lagi menyoroti pentingnya keamanan kontrak proyek DeFi. Untuk proyek peminjaman, ada beberapa hal yang perlu diperhatikan:
Pastikan semua fungsi yang melibatkan operasi keuangan melakukan pemeriksaan likuiditas yang memadai.
Mengontrol secara ketat leverage pinjaman pengguna, untuk mencegah risiko sistem yang disebabkan oleh leverage berlebihan.
Terapkan mekanisme keamanan ganda, seperti fungsi penghentian darurat, untuk menghadapi kejadian keamanan yang mendesak.
Melakukan audit kontrak secara menyeluruh, dengan fokus khusus pada pengembalian dana, deteksi likuiditas, dan penyelesaian utang yang merupakan bagian kunci.
Secara berkala melakukan evaluasi keamanan dan uji tekanan, untuk segera menemukan dan memperbaiki kerentanan yang potensial.
Peristiwa serangan ini mengingatkan kita bahwa dalam dunia Web3 yang berkembang pesat, keamanan selalu merupakan faktor utama yang harus dipertimbangkan. Pihak proyek harus menginvestasikan lebih banyak sumber daya untuk pembangunan keamanan, dan pengguna juga perlu meningkatkan kesadaran risiko serta berhati-hati dalam berpartisipasi dalam berbagai proyek DeFi.