Keamanan DeFi: Analisis Risiko Pinjaman Flash, Manipulasi Harga, dan Serangan Reentrancy

robot
Pembuatan abstrak sedang berlangsung

Keuangan Desentralisasi Kerentanan Keamanan Umum dan Langkah Pencegahan

Belakangan ini, seorang ahli keamanan telah membagikan sebuah pelajaran keamanan DeFi kepada anggota komunitas. Ahli tersebut meninjau peristiwa keamanan besar yang terjadi di industri Web3 selama lebih dari setahun terakhir, membahas penyebab terjadinya peristiwa tersebut dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum dari kontrak pintar dan langkah-langkah pencegahannya, serta memberikan beberapa saran keamanan kepada pihak proyek dan pengguna biasa.

Jenis kerentanan DeFi yang umum meliputi pinjaman kilat, manipulasi harga, masalah izin fungsi, panggilan eksternal sembarangan, masalah fungsi fallback, kerentanan logika bisnis, kebocoran kunci pribadi, dan serangan reentrancy. Artikel ini akan fokus pada tiga jenis: pinjaman kilat, manipulasi harga, dan serangan reentrancy.

Cobo Keuangan Desentralisasi keamanan kelas (bawah): Kerentanan keamanan umum DeFi dan pencegahannya

Pinjaman Instan

Pinjaman kilat adalah inovasi dalam Keuangan Desentralisasi, tetapi sering kali dimanfaatkan oleh penyerang. Penyerang meminjam sejumlah besar dana melalui pinjaman kilat untuk memanipulasi harga atau menyerang logika bisnis. Pengembang perlu mempertimbangkan apakah fungsi kontrak akan mengalami anomali karena dana yang sangat besar, atau dimanfaatkan untuk mendapatkan keuntungan yang tidak sah.

Banyak proyek DeFi tampak memberikan imbal hasil yang tinggi, tetapi pada kenyataannya, tingkat keahlian pihak proyek bervariasi. Beberapa proyek mungkin membeli kode mereka, meskipun kode itu sendiri tidak memiliki kerentanan, secara logis masih bisa terdapat masalah. Misalnya, beberapa proyek akan memberikan imbalan pada waktu tertentu berdasarkan jumlah token yang dimiliki, tetapi dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli sejumlah besar token, sehingga mendapatkan sebagian besar imbalan saat distribusi imbalan.

Manipulasi Harga

Masalah manipulasi harga terkait erat dengan pinjaman kilat, terutama karena beberapa parameter dalam perhitungan harga dapat dikendalikan oleh pengguna. Ada dua jenis masalah yang umum:

  1. Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau kurangnya pemeriksaan, menyebabkan harga dimanipulasi secara jahat.
  2. Menggunakan jumlah token dari alamat tertentu sebagai variabel perhitungan, di mana saldo token alamat tersebut dapat ditambah atau dikurangi sementara.

Serangan Reentrancy

Serangan reentrancy adalah salah satu bahaya utama yang mungkin dihadapi saat memanggil kontrak eksternal. Penyerang dapat mengambil alih aliran kontrol dan melakukan perubahan yang tidak terduga pada data. Contohnya:

solidity mapping (address => uint) private userBalances;

fungsi withdrawBalance() publik { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }

Dalam contoh ini, karena saldo pengguna baru diatur menjadi 0 di akhir fungsi, penyerang dapat memanggil fungsi tersebut lagi setelah panggilan pertama berhasil, sehingga dapat menarik saldo beberapa kali.

Untuk menyelesaikan masalah reentrancy, perlu diperhatikan hal-hal berikut:

  1. Tidak hanya harus mencegah masalah reentrancy dari fungsi tunggal;
  2. Ikuti pola Checks-Effects-Interactions saat melakukan pengkodean;
  3. Gunakan modifier pencegah re-entrance yang telah teruji waktu.

Salah satu contoh klasik dari serangan reentrancy adalah peristiwa Omni Protocol. Dalam serangan ini, transaksi yang diajukan oleh penyerang yang menemukan celah ditangkap dan dieksekusi lebih dulu oleh peretas lain, menyebabkan penyerang asli hanya mendapatkan sebagian dari keuntungan. Ini menyoroti fitur "hutan gelap" dalam ekosistem Web3, di mana penyerang juga dapat saling menjadi mangsa.

Saran Keamanan

Saran Keamanan Proyek

  1. Ikuti praktik keamanan terbaik dalam pengembangan kontrak.
  2. Mewujudkan kemampuan kontrak untuk diupgrade dan dihentikan.
  3. Menggunakan mekanisme kunci waktu.
  4. Meningkatkan investasi keamanan, membangun sistem keamanan yang lengkap.
  5. Meningkatkan kesadaran keamanan semua karyawan.
  6. Mencegah kejahatan internal, sambil meningkatkan efisiensi dan memperkuat kontrol risiko.
  7. Hati-hati dalam memperkenalkan layanan pihak ketiga, ikuti prinsip "default upstream dan downstream tidak aman."

Bagaimana pengguna/LP menentukan apakah kontrak pintar aman?

  1. Periksa apakah kontrak tersebut bersifat open source.
  2. Verifikasi apakah Pemilik menggunakan mekanisme multi-tanda tangan terdesentralisasi.
  3. Lihat situasi perdagangan yang sudah ada pada kontrak.
  4. Pastikan kontrak tersebut adalah kontrak agen, dapat diupgrade, dan memiliki kunci waktu.
  5. Periksa apakah kontrak telah diaudit oleh banyak lembaga, dan evaluasi apakah hak akses Pemilik terlalu besar.
  6. Perhatikan pemilihan dan penggunaan oracle.

Singkatnya, dalam bidang Keuangan Desentralisasi, masalah keamanan selalu menjadi salah satu pertimbangan terpenting. Baik pengembang proyek maupun pengguna biasa perlu tetap waspada dan mengambil langkah-langkah keamanan yang tepat untuk mengurangi risiko dan memastikan keamanan aset.

DEFI-3.77%
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
  • 8
  • Bagikan
Komentar
0/400
BearMarketBarbervip
· 14menit yang lalu
Jumlah rambut dan jumlah koin keduanya big dump, sudah diplay people for suckers hingga botak.
Lihat AsliBalas0
TokenomicsTrappervip
· 16jam yang lalu
hanya hari lain menonton para degen terjebak oleh eksploitasi lama yang sama... sejujurnya, saya sudah memprediksi pola ini berbulan-bulan yang lalu.
Lihat AsliBalas0
DegenWhisperervip
· 16jam yang lalu
Hitam dan putih, semuanya jelas.
Lihat AsliBalas0
degenonymousvip
· 16jam yang lalu
Lagi-lagi smart contract terjebak ya
Lihat AsliBalas0
BlockchainFriesvip
· 16jam yang lalu
Mencari celah sepanjang hari lebih baik pergi mengantar makanan.
Lihat AsliBalas0
Ser_This_Is_A_Casinovip
· 16jam yang lalu
defi benar-benar seperti kasino, ya. Jika harus rugi, ya rugi.
Lihat AsliBalas0
OPsychologyvip
· 16jam yang lalu
Pinjaman Flash takut apa, saya semua koin Gode.
Lihat AsliBalas0
GateUser-00be86fcvip
· 16jam yang lalu
Proyek saya selalu mengutamakan keamanan.
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)