Jarvis Network mengalami serangan reentrancy pinjaman flash, 663,101 MATIC dicuri

robot
Pembuatan abstrak sedang berlangsung

Analisis Serangan Re-entrance Pinjaman Flash pada Proyek Jarvis Network

Pada 15 Januari 2023, proyek Jarvis_Network diserang, mengakibatkan 663.101 MATIC dicuri. Peristiwa ini memicu perhatian terhadap keamanan proyek.

Analisis Peristiwa Serangan Re-entrancy Pinjaman Flash Jarvis Network

Melalui analisis tumpukan panggilan transaksi, ditemukan bahwa penyerang memanfaatkan kerentanan reentrancy. Dalam proses reentrancy, meskipun parameter input sama, panggilan fungsi yang sama pada kontrak yang sama memiliki perbedaan signifikan dalam nilai kembali. Perbedaan ini terutama terjadi pada fungsi remove_liquidity.

Analisis Kejadian Serangan Re-entrance Pinjaman Flash Jarvis Network

Serangan reentrancy terutama menargetkan fungsi remove_liquidity dari kontrak pintar tertentu. Fungsi ini akan mengembalikan token yang ditambahkan pengguna saat menghapus likuiditas. Karena kesetaraan antara Polygon dan rantai EVM, logika reentrancy terpicu saat MATIC ditransfer ke kontrak.

Jarvis Network Pinjaman Flash重入攻击事件分析

Analisis lebih lanjut menunjukkan bahwa masalah terletak pada implementasi fungsi getUnderlyingPrice. Fungsi ini melibatkan beberapa kontrak yang tidak diopen-source, yang meningkatkan kesulitan analisis. Namun, dengan memeriksa slot penyimpanan dan tumpukan panggilan, kita dapat menyimpulkan nilai variabel kunci dan jalur panggilan fungsi.

Analisis Peristiwa Serangan Re-Entry Pinjaman Flash Jarvis Network

Analisis kejadian serangan reentrancy Pinjaman Flash Jarvis Network

Analisis Kejadian Serangan Re-entrance Pinjaman Flash Jarvis Network

Inti dari serangan terletak pada nilai kembali dari fungsi get_virtual_price yang mengalami perubahan signifikan sebelum dan sesudah reentrancy. Perubahan ini terkait dengan waktu pembaruan variabel self.D. Dalam kondisi normal, self.D seharusnya diperbarui setelah transfer selesai, tetapi dalam serangan ini, karena terjadinya reentrancy, menyebabkan kesalahan dalam perhitungan harga.

Analisis Kejadian Serangan Reentrancy Pinjaman Flash Jarvis Network

Analisis Kejadian Serangan Re-entrance Pinjaman Flash Jarvis Network

Proses eksekusi fungsi remove_liquidity meliputi: 1) menghancurkan token LP pengguna; 2) mengirimkan dana yang dipertaruhkan kepada pengguna; 3) memperbarui nilai self.D. Penyerang melakukan reentrancy pada langkah kedua, memanfaatkan nilai self.D yang belum diperbarui untuk meminjam, sehingga memperoleh keuntungan yang tidak sah.

Analisis Kejadian Serangan Re-entrancy Pinjaman Flash Jarvis Network

Analisis kejadian serangan reentrancy Pinjaman Flash Jarvis Network

Perlu dicatat bahwa meskipun fungsi remove_liquidity menggunakan dekorator @nonreentrant('lock') untuk mencegah reentrancy, karena penyerang yang melakukan reentrancy memasuki kontrak lain untuk meminjam, kunci reentrancy ini tidak berfungsi seperti yang diharapkan.

Analisis Peristiwa Serangan Re-entrance Pinjaman Flash Jarvis Network

Serangan kali ini mengungkapkan pentingnya waktu pembaruan variabel dalam kontrak pintar. Untuk meningkatkan keamanan, disarankan agar pihak proyek mengambil langkah-langkah berikut:

  1. Melakukan audit keamanan yang ketat
  2. Pastikan modifikasi variabel selesai sebelum pemanggilan eksternal
  3. Menggunakan metode multi-sumber data untuk mendapatkan informasi harga
  4. Tulis kode mengikuti pola "Pemeriksaan-Efek-Interaksi" (Checks-Effects-Interactions)

Dengan menerapkan praktik terbaik ini, keamanan dan stabilitas kontrak pintar dapat meningkat secara signifikan, menyediakan infrastruktur yang lebih andal untuk ekosistem Web3.

Analisis kejadian serangan reentrancy Pinjaman Flash Jarvis Network

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
  • 4
  • Bagikan
Komentar
0/400
CantAffordPancakevip
· 7jam yang lalu
Sudah dipermainkan lagi oleh para suckers~
Lihat AsliBalas0
RugpullTherapistvip
· 7jam yang lalu
Satu proyek lagi rug pull?? Tragis~
Lihat AsliBalas0
not_your_keysvip
· 7jam yang lalu
Ada proyek lain yang dicuri lagi~
Lihat AsliBalas0
GateUser-a180694bvip
· 7jam yang lalu
Audit kode ini terlalu dangkal, ya?!
Lihat AsliBalas0
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)