Post-Mortem Insiden Keuangan Euler
Artikel ini dimaksudkan untuk menganalisis insiden Euler Finance yang terjadi pada tanggal 13 Maret sekitar pukul 08:50 UTC secara tidak memihak dan mengidentifikasi akar penyebabnya.
Analisis Kerentanan
Kerentanan yang dieksploitasi berasal dari bagaimana Euler Finance mengizinkan donasi dilakukan tanpa pemeriksaan kesehatan akun yang tepat.
Kode rentan diperkenalkan di eIP-14 ¹ yang memperkenalkan banyak perubahan di seluruh Ekosistem Euler. Kelemahannya terletak pada perubahan pertama yang dilakukan terhadap ETokenimplementasi ( EToken::donateToReservesfitur ²).
Logika di dalam Liquidationmodul akan mencoba untuk membayar kembali seluruh utang pelanggar, namun, jika agunan yang mereka miliki tidak akan memenuhi hasil pembayaran yang diharapkan, sistem default ke agunan apa pun yang dimiliki pengguna ³.
Asumsi blok kode ini menyatakan bahwa agunan yang tersedia milik peminjam tidak akan mencukupi hanya jika:
Hal ini dapat terjadi ketika peminjam memiliki banyak agunan dan menyita semua ini tidak akan membawa pelanggar kembali ke solvabilitas
Jaminan keamanan ini tidak didukung oleh mekanisme donasi yang memungkinkan pengguna untuk membuat "piutang buruk" dalam bentuk leverage yang tidak dijamin dengan menyumbangkan unitnya ETokentanpa mempengaruhi saldonya⁴ DToken.
Masalah Inti
Protokol Euler Finance mengizinkan penggunanya untuk membuat leverage buatan dengan mencetak dan menyimpan aset dalam transaksi yang sama melalui EToken::mint. Mekanisme ini memungkinkan pembuatan token yang melebihi agunan yang dimiliki oleh protokol Euler Finance itu sendiri.
Mekanisme donasi yang diperkenalkan oleh Euler Finance di eIP-14 ¹ ( EToken::donateToReserves) memungkinkan pengguna untuk menyumbangkan saldo mereka ke reserveBalancetoken yang mereka gunakan untuk bertransaksi. Cacatnya terletak pada tidak melakukan pemeriksaan kesehatan pada akun yang melakukan donasi.
Karena donasi akan menyebabkan utang pengguna ( DToken) tetap tidak berubah sementara ETokensaldo ekuitas ( ) mereka menurun, likuidasi akun mereka akan menyebabkan sebagian DTokenunit tetap berada di pengguna sehingga menimbulkan utang macet.
Cacat di atas memungkinkan penyerang untuk membuat posisi leverage berlebih dan melikuidasinya sendiri di blok yang sama dengan secara artifisial menyebabkannya "di bawah air".
Ketika violatormelikuidasi diri mereka sendiri, diskon berbasis persentase diterapkan yang akan menyebabkan liquidatorsebagian besar ETokenunit didiskon, menjamin bahwa mereka akan "di atas air" dan hanya menanggung hutang yang sesuai dengan agunan yang akan mereka peroleh. .
Hasil akhirnya adalah violatordengan jumlah “bad debt” ( DToken) yang signifikan dan a liquidatordengan jaminan berlebihan atas utangnya ( DToken> EToken) karena insentif likuidasi berbasis persentase yang dimiliki Protokol Euler ⁵. Sebagaimana dibuktikan dalam transaksi itu sendiri⁶, diskon maksimum 20% diterapkan selama likuidasi serangan.
Skenario Serangan
Agar penyerang dapat melikuidasi dirinya sendiri, mereka harus menggunakan setidaknya dua kontrak untuk mengeksploitasi kerentanan. Transaksi serangan ⁶ dikirim sekitar 2023–02–01 06:29:18 UTC meminta kontrak yang telah diterapkan dalam transaksi sebelumnya⁷.
Kontrak ini melakukan langkah-langkah berikut selama eksekusi transaksi serangan:
A. Kontrak Utama:
- Dapatkan pinjaman kilat DAI 30 juta dari AAVE V2
- Terapkan dua kontrak (
violator⁸&liquidator⁹) untuk serangan itu - Transfer saldo pinjaman DAI 30 juta penuh ke
violator
- Setor 20 juta DAI ke DAI
ETokenEuler Finance, menerima ~19,56 jutaeDAItoken - Buat
eDAIpengungkit buatan 200m, cetak ~195,68meDAIdan 200mdDAIkeviolator - Bayar 10m DAI pada
violatorposisi, menyebabkandDAIsaldo mereka menjadi 190m - Buat
eDAIpengungkit buatan 200m lagi, cetak ~195,68meDAIdan 200mdDAIkeviolator - Donasi 100m
eDAIke cadanganEToken
eDAI: ~310,93mdDAI: 390m
Seperti yang dinyatakan sebelumnya, Liquidationmodul akan dilikuidasi hingga saldo agunan pengguna. Dengan demikian, mereka liquidatordapat melikuidasi violator, yang menimbulkan eDAIsaldo ~310,93 juta penuh mereka tetapi hanya sebagian dari dDAIsaldo mereka, yang selanjutnya diperburuk oleh diskon likuidasi Euler Finance⁵.
Karena diskon maksimum akan diterapkan pada posisi ini karena tingkat kesehatannya yang rendah, akan liquidatordikenakan eDAIsaldo ~310,93 juta dengan tingkat konversi 1.25 eDAItoken per dDAI. Ini pada akhirnya akan dievaluasi menjadi dDAIsaldo pasca-biaya ~259,31 juta.
liquidatorKontrak:
- Likuidasi posisi, dapatkan ~310,93 juta
eDAItoken dan ~259,31 jutadDAItoken - Tarik cadangan penuh
DAItoken dengan membakareDAItoken yang sesuai
Dengan demikian, nilai tukar sekitar 0,97 eDAIper DAIdigunakan untuk penebusan. Karena pengguna sudah "di atas air" karena diskon likuidasi maksimum 20% yang diterapkan selama likuidasi mereka, mereka dapat "membakar" ~38 juta yang diperlukan eDAIuntuk melepaskan ~38,9 juta DAIyang dipegang oleh kontrak.
Pada akhirnya, penyerang dapat mempertahankan aset berikut pasca eksekusi transaksi mereka:
+~8,877,507 DAI=~8,779,854.423 USD
Kami dapat menilai dampak finansial dari DAIaset dan menghitung estimasi laba kira-kira ~8,779,854.423 USDpada 13-03-2023 12:42:00 UTC.
Serangan itu telah direplikasi ke beberapa aset lainnya. Dengan demikian, peringatan setoran berlaku untuk ETokenaset berikut : DAI,WETH
Audit Keamanan
Omniscia telah melakukan beberapa audit keamanan terhadap protokol Euler Finance. Namun, perubahan tersebut diperkenalkan di eIP-14 . Sebagaimana dibuktikan di papan pesan itu sendiri, Omniscia hanya melakukan audit terhadap komponen integrasi Chainlink yang tersedia untuk umum di sini .
Fitur EToken::donateToReserveyang menjadi inti dari kerentanan ini tidak termasuk dalam cakupan audit apa pun yang dilakukan oleh Omniscia. Dengan demikian, kode yang menyebabkan kerentanan tidak pernah tercakup dalam audit apa pun yang dilakukan oleh tim kami.
Fungsi donateToReserves diaudit oleh tim Sherlock pada Juli 2022. Euler Finance dan Sherlock telah mengonfirmasi bahwa Euler memiliki kebijakan cakupan aktif dengan Sherlock pada saat eksploitasi.
Kesimpulan
Serangan tersebut pada akhirnya muncul dari mekanisme donasi yang salah dan tidak memperhitungkan kesehatan utang donatur, memungkinkan mereka membuat utang yang tidak dapat dikembalikan DTokenyang tidak akan pernah dilikuidasi.
Sumber
- Proposal Perbaikan Euler 14:https://forum.euler.finance/t/eip-14-contract-upgrades/305
- Proposal Peningkatan Euler 14 Delta:https://euler-xyz.github.io/euler-contracts-upgrade-diffs/eip14/EToken.html
LiquidatorLogika Default Agunan Euler :https://github.com/euler-xyz/euler-contracts/blob/fa9398728165676a5666939d8c34a7578d8e1919/contracts/modules/Liquidation.sol#L139-L151ETokenMekanisme Donasi Euler yang Rusak:https://github.com/euler-xyz/euler-contracts/blob/fa9398728165676a5666939d8c34a7578d8e1919/contracts/modules/EToken.sol#L356-L386- Diskon Likuidasi Euler:https://docs.euler.finance/euler-protocol/eulers-default-parameters#maximum-liquidation-discount
- Tautan Transaksi Serangan Etherscan:https://etherscan.io/tx/0xc310a0affe2169d1f6feec1c63dbc7f7c62a887fa48795d327d4d2da2d6b111d
- Alamat Etherscan dari Kontrak Utama:https://etherscan.io/address/0xebc29199c817dc47ba12e3f86102564d640cbf99
- Alamat Etherscan dari Kontrak Pelanggar:https://etherscan.io/address/0x583c21631c48d442b5c0e605d624f54a0b366c72
- Alamat Etherscan dari Kontrak Likuidator:https://etherscan.io/address/0xa0b3ee897f233f385e5d61086c32685257d4f12b
BaseLogicPerhitungan Nilai Tukar Euler :https://github.com/euler-xyz/euler-contracts/blob/fa9398728165676a5666939d8c34a7578d8e1919/contracts/BaseLogic.sol#L292-L296
Didirikan pada awal tahun 2021 oleh veteran keamanan siber blockchain, omniscia.io adalah pelopor dalam keamanan Web3, memanfaatkan pengalaman bertahun-tahun, mengembangkan alat berpemilik dan pendekatan yang telah dicoba dan diuji untuk mengamankan kontrak cerdas dan protokol terdesentralisasi yang rumit di luar sana — termasuk suka Aave, YFI, lien, 1inch, fetch, compound, synthetix, dan banyak lainnya.
Klien, mitra, dan pendukung kami meliputi pemain ekosistem terkemuka seperti L'Oréal, Polygon, AvaLabs, Morpho, Euler, CLabs, Olympus DAO, Fetch.ai, LimitBreak, dan banyak lagi.
Pastikan untuk mengikuti media sosial kami dan berlangganan buletin kami untuk pembaruan lebih lanjut:
Twitter / LinkedIn / Buletin

![Apa itu Linked List? [Bagian 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































