Analisis mendalam insiden Yearn $9M aset diretas: dari celah protokol hingga penguapan nilai dolar

Pada 1 Desember 2025, protokol Earn mengalami serangan majemuk berlapis yang terencana dengan baik dalam sejarah DeFi, yang pada akhirnya mengakibatkan hilangnya sekitar $9 juta aset pengguna. Ini bukan titik eksploitasi tunggal yang sederhana, tetapi penghancuran sistematis oleh penyerang yang menggunakan pinjaman kilat untuk memanfaatkan dana, menerobos mekanisme perlindungan protokol lapis demi lapis, mencetak token LP terkait yETH tanpa batas waktu, dan akhirnya menghabiskan kumpulan. Insiden ini sekali lagi memperingatkan seluruh industri: risiko keamanan protokol DeFi tidak terletak pada satu kerentanan, tetapi pada superposisi dari banyak kekurangan - ini adalah mode serangan yang paling sulit di industri untuk dipertahankan.

Ikhtisar Acara: Bagaimana Pinjaman Kilat Dapat Menjadi Serangan Multi-Tahap

Strategi pendanaan penyerang mungkin tampak biasa, tetapi ini meletakkan dasar untuk serangkaian operasi rantai berikutnya. Mereka meluncurkan pinjaman kilat dari protokol Balancer dan Aave pada saat yang sama, dan meminjamkan sejumlah besar derivatif ETH seperti wstETH, rETH, WETH, ETHx, dan cbETH pada satu waktu. Aset ini tidak langsung masuk ke dalam transaksi tetapi didistribusikan dengan hati-hati: 100 dari 1.100 ETH dikirim ke Tornado.Cash untuk pencampuran – sebuah langkah yang tujuan sebenarnya adalah untuk menutupi sumber dana dan membuka jalan bagi operasi “whitewashing” berikutnya.

Setelah pencampuran selesai, penyerang menarik 100 ETH 0x3e8e7533dcf69c698Cf806C3DB22f7f10B9B0b97 alamat kontrak berbahaya dan memicu fungsi penggantiannya. Dalam penarikan terselubung ini, semua aset yang dipinjam dikonversi menjadi token LP untuk kumpulan stableswap tertimbang yETH – setara dengan pembelian “sertifikat saham” untuk kumpulan ini. Di permukaan, ini adalah suntikan likuiditas biasa, tetapi sebenarnya ini adalah persiapan terakhir untuk “teknik pengosongan kolam” yang indah.

Tiga kerentanan inti: kombinasi fatal dari hilangnya presisi, pengupasan pendapatan, dan inisialisasi pasokan nol

Kerentanan lapisan 1: kehilangan akurasi dan merusak status tanpa biaya

Di jantung teknis dari seluruh serangan terletak kelemahan kode yang tampaknya sepele:remove_liquidity fungsi tidak korsleting jumlah nol

Langkah pertama penyerang adalah dengan sengaja menciptakan ketidakseimbangan aset yang ekstrem di pool. Dia berulang kali menyebut fungsi add_liquidity (tambah likuiditas), tetapi dengan sengaja melewatkan injeksi indeks 3 (rETH), indeks 6 (wOETH), dan indeks 7 (mETH), sehingga secara artifisial memperlebar kesenjangan rasio antara ketiga aset ini dan aset lainnya. Selanjutnya, dia secara sepihak menyuntikkan sejumlah besar rETH, semakin memperluas ketidakseimbangan.

Dalam status kumpulan yang sangat tidak seimbang ini, penyerang memanggil remove_liquidity, tetapi memasukkan parameter jumlah penarikan 0. Menurut logika konvensional, penarikan token 0 harus kembali secara langsung dan tidak boleh mengalami perubahan status sama sekali. Tetapi kontrak pool.vy tidak melakukan ini - ia masih menjalankan perulangan perhitungan vb_prod penuh (produk saldo virtual).

Dalam lingkungan matematis ketidakseimbangan berat yang ekstrem, fungsi _pow_down (pembulatan ke bawah) menghasilkan hilangnya presisi yang signifikan. Kontrak salah menghitung nilai vb_prod kecil dan menulis nilai yang dirusak ini ke packed_pool_vb status global. Pada dasarnya, penyerang berhasil merusak nilai buku seluruh kumpulan dengan operasi “tanpa biaya” (tidak ada token yang ditransfer).

Celah lapisan 2: divestasi pendapatan dan erosi saham

Lapisan kerentanan kedua lebih tersembunyi. Ketika penyerang memanggil fungsi update_rates, itu memicu logika _update_supply internal. Karena vb_prod telah ditekan dengan jahat, sistem menciptakan persepsi yang salah bahwa nilai total kolam telah menyusut tajam. Untuk menyeimbangkan pembukuan, kontrak secara otomatis membakar sejumlah besar token LP yang dipegang oleh kontrak staking.

Penyerang secara akurat melakukan operasi arbitrase sebelum dan sesudah pembaruan nilai tukar. Setiap panggilan update_rates memperbarui nilai tukar aset tertentu (misalnya, wOETH, mETH), dan kemudian segera menelepon remove_liquidity menarik aset tersebut. Karena sejumlah besar saham kontrak staking dihancurkan, secara relatif, proporsi saham LP di tangan penyerang meningkat secara pasif. Dengan mengulangi siklus “update-extract-burn” ini, penyerang memeras saldo aktual wOETH dan mETH di pool selangkah demi selangkah, sambil mendorong Total Supply pool ke batas nilai nol yang berbahaya.

Kerentanan lapisan 3: titik kritis dari pasokan nol pencetakan tak terbatas

Setelah serangkaian operasi dalam dua tahap pertama, kolam telah dikosongkan: total pasokan mendekati 0, dan saldo wOETH dan mETH sangat rendah. Pada titik ini, penyerang memberikan pukulan fatal terakhir: panggil add_liquidity dengan parameter yang disuntikkan [1, 1, 1, 1, 1, 1, 9] - yaitu, tujuh aset pertama masing-masing menyuntikkan 1 wei (unit terkecil), dan yang kedelapan (mETH) menyuntikkan 9 wei.

Operasi yang tampaknya tidak masuk akal ini memicu keruntuhan komputasi kontrak pada saat kritis ketika kolam akan dihancurkan. Rumus iteratif _calc_supply gagal ketika berhadapan dengan nilai minimum, dan kontrak salah dicetak235.443 token yETH LP。 Ini setara dengan membuat jutaan dolar aset palsu dari udara tipis.

Penjelasan terperinci tentang empat tahap serangan: dari ketidakseimbangan ekstrim hingga pencetakan tak terbatas

Tahap 1: Persiapan dana dan inisialisasi status kumpulan

  • Pinjam beberapa derivatif ETH dari Balancer dan Aave
  • Menyamarkan sumber dana melalui pencampuran Tornado.Cash
  • Konversi semua dana campuran dan aset pinjaman menjadi token yETH LP

Tahap 2: Pembuatan buatan ketidakseimbangan ekstrem

  • Suntikan likuiditas sepihak berulang kali, melewatkan token tertentu (rETH, wOETH, mETH)
  • Injeksi sepihak rETH dalam jumlah besar semakin memperlebar ketidakseimbangan
  • Tahap ini menciptakan kondisi matematis untuk hilangnya presisi

Tahap 3: Pengupasan pendapatan dan perambahan saham

  • Memicu hilangnya status presisi dengan remove_liquidity (0).
  • Panggilan update_rates perbarui nilai tukar, yang mengakibatkan penghancuran token LP kontrak staking
  • Operasi arbitrase berulang untuk menguras saldo wOETH dan mETH
  • Total Pasokan Kumpulan didorong ke 0

Fase 4: Pasokan nol pencetakan tak terbatas

  • Panggil add_liquidity saat kolam akan dihancurkan ([1,1,1,1,1,1,1,9])
  • Perhitungan _calc_supply kontrak macet, salah mencetak 235.443 token LP
  • Penyerang menyelesaikan pertukaran aset melalui Exchange dan Redeem
  • Membayar kembali pinjaman kilat, menukar aset yang diperoleh dengan aset likuid seperti Bitcoin dan dolar AS untuk likuidasi

Jalur Pelacakan dan Likuidasi Dana: Kehilangan nilai dari yETH ke USD

Komedi hitam pamungkas dari serangan ini terletak pada rantai dana yang melarikan diri. 235.443 token LP yang diperoleh oleh penyerang secara bertahap ditukar dengan ETH dan stablecoin melalui serangkaian operasi pertukaran. Aset-aset ini kemudian ditukar lebih lanjut dengan bentuk aset yang lebih tersembunyi seperti Bitcoin melalui pasangan perdagangan DEX, dan pada akhirnya jutaan dolar aset ditukar dengan uang tunai atau Bitcoin melalui platform over-the-counter (OTC). Selama seluruh proses, $9 juta dana pengguna secara terang-terangan ditransfer dari saldo protokol ke dompet penyerang di rantai, dan kemudian secara bertahap ditukar dengan dolar AS, Bitcoin, dll., dan akhirnya melarikan diri.

Implikasi Industri: Bagaimana Protokol DeFi Dapat Melindungi Dari Serangan Komposisi Kompleks

Ada tiga pelajaran utama dari insiden ini:

Pelajaran 1: Memperkuat verifikasi adegan tepi Protokol DeFi harus melakukan pemeriksaan logis yang ketat pada skenario tepi seperti “jumlah nol” dan “ketidakseimbangan ekstrem”. remove_liquidity harus kembali segera setelah parameter 0 diterima, daripada menjalankan loop perhitungan penuh. “Pemrosesan hubung singkat” semacam ini mungkin tampak sederhana, tetapi secara efektif dapat mencegah kemungkinan gangguan keadaan.

Pelajaran 2: Mengoptimalkan logika perhitungan presisi _pow_down dan fungsi lain yang melibatkan perhitungan proporsional ekstrem harus memperkenalkan mekanisme perlindungan. Pertimbangkan untuk menggunakan pustaka pemrosesan numerik yang lebih canggih, menambahkan deteksi luapan menengah, atau menggunakan cabang algoritme yang berbeda dalam skenario ekstrem. Secara historis, protokol Balancer telah diserang karena masalah akurasi yang serupa, yang merupakan pelajaran dari masa lalu.

Pelajaran 3: Membangun pemantauan anomali multi-dimensi Penting untuk membangun sistem pemantauan waktu nyata untuk memberikan peringatan dini untuk operasi berikut:

  • Frekuensi tinggi injeksi likuiditas unilateral menyebabkan ketidakseimbangan ekstrem dalam pool
  • Fluktuasi nilai tukar yang tidak normal dan peristiwa pembakaran otomatis
  • Frekuensi transaksi jumlah nol yang tidak biasa dan operasi nilai minimal
  • Total Pasokan Pool berfluktuasi tajam dalam waktu singkat

Untuk seluruh ekosistem DeFi, insiden ini membuktikan kebenaran yang mendalam:Keamanan bukan tentang memperbaiki kerentanan, tetapi tentang secara sistematis mencegah kombinasi beberapa kelemahan。 Pengembang protokol perlu melihat logika kode dari perspektif proses penuh dan tidak melepaskan cacat desain yang tampaknya “tidak berbahaya”. Pada saat yang sama, industri perlu memperkuat kemampuan pelacakan dan pembekuan on-chain dari aliran modal penyerang, dan meningkatkan kemampuan perlindungan secara keseluruhan melalui daftar hitam DEX dan pengendalian risiko platform OTC. Peretasan Yearn bukanlah akhir, tetapi harus menjadi katalis untuk evolusi keamanan seluruh industri.

BAL-2,19%
AAVE-6,64%
ETH-2,5%
BTC-1,62%
Lihat Asli
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.
  • Hadiah
  • Komentar
  • Posting ulang
  • Bagikan
Komentar
Tambahkan komentar
Tambahkan komentar
Tidak ada komentar
  • Sematkan