Analisis Kerentanan Keamanan Umum di Keuangan Desentralisasi: Pencegahan Risiko Pinjaman Flash, Manipulasi Harga, dan Serangan Reentrancy

robot
Pembuatan abstrak sedang berlangsung

Keamanan Umum dalam DeFi dan Langkah Pencegahan

Baru-baru ini, seorang ahli keamanan berbagi kursus keamanan DeFi untuk anggota komunitas. Kursus ini meninjau peristiwa keamanan besar yang dialami industri Web3 selama lebih dari setahun terakhir, membahas penyebab dan cara menghindari peristiwa tersebut, merangkum kerentanan keamanan umum dari kontrak pintar serta langkah pencegahannya, dan memberikan beberapa saran keamanan untuk pengembang proyek dan pengguna biasa.

Jenis-jenis kerentanan DeFi yang umum termasuk pinjaman kilat, manipulasi harga, masalah hak akses 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 安全课(下):Keuangan Desentralisasi 常⻅安全漏洞及预防

Pinjaman Kilat

Pinjaman kilat adalah inovasi dalam Keuangan Desentralisasi, tetapi juga dapat disalahgunakan oleh peretas. Penyerang biasanya 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 besar, atau apakah mungkin untuk berinteraksi dengan beberapa fungsi dalam satu transaksi untuk mendapatkan imbalan yang tidak sah.

Banyak proyek DeFi tampaknya memiliki imbal hasil yang tinggi, tetapi tingkat kemampuan tim proyek sangat bervariasi. Beberapa proyek mungkin menggunakan kode yang dibeli, meskipun kode itu sendiri tidak memiliki celah, secara logika masih mungkin ada masalah. Misalnya, beberapa proyek akan memberikan imbalan berdasarkan jumlah token yang dimiliki pemegang pada waktu tertentu, yang bisa dimanfaatkan oleh penyerang dengan meminjam dalam jumlah besar untuk membeli banyak token, dan pada saat pemberian imbalan, mereka mendapatkan sebagian besar imbalan.

Pengendalian Harga

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

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

Serangan Reentrancy

Salah satu risiko utama dalam memanggil kontrak eksternal adalah mereka dapat mengambil alih alur kontrol dan melakukan perubahan yang tidak terduga pada data. Misalnya, dalam fungsi penarikan, jika saldo pengguna baru disetel menjadi 0 pada akhir fungsi, maka panggilan kedua (dan seterusnya) masih akan berhasil, yang mengakibatkan penarikan ganda.

Untuk mengatasi masalah reentrancy, perhatikan hal-hal berikut:

  1. Tidak hanya mencegah masalah reentry dari fungsi tunggal.
  2. Ikuti pola Checks-Effects-Interactions dalam pengkodean.
  3. Gunakan modifier pencegah reentrancy yang telah teruji oleh waktu.

Perlu dicatat bahwa membuat roda ulang dapat membawa lebih banyak risiko. Menggunakan praktik keamanan terbaik yang telah terverifikasi dengan baik biasanya lebih aman daripada mengembangkan metode baru sendiri.

Saran Keamanan Proyek

  1. Mengikuti praktik keamanan terbaik dalam pengembangan kontrak.
  2. Mewujudkan kemampuan kontrak untuk ditingkatkan dan dijeda.
  3. Menggunakan mekanisme kunci waktu.
  4. Meningkatkan investasi keamanan dan membangun sistem keamanan yang lengkap.
  5. Meningkatkan kesadaran keamanan semua karyawan.
  6. Mencegah kejahatan internal, sambil meningkatkan efisiensi dan memperkuat pengendalian risiko.
  7. Hati-hati dalam melibatkan pihak ketiga, anggap bahwa baik hulu maupun hilir tidak aman.

Bagaimana Pengguna/LP Menilai Apakah Kontrak Cerdas Aman

  1. Pastikan kontrak tersebut bersifat open source.
  2. Periksa apakah Pemilik menggunakan multi-tanda tangan, apakah multi-tanda tangan tersebut terdesentralisasi.
  3. Lihat situasi perdagangan yang sudah ada dalam kontrak.
  4. Pastikan kontrak adalah kontrak perwakilan, apakah dapat diperbarui, dan apakah ada kunci waktu.
  5. Periksa apakah kontrak telah diaudit oleh beberapa lembaga, apakah hak akses Owner terlalu besar.
  6. Perhatikan penggunaan oracle.

Dengan memperhatikan aspek-aspek ini, pengguna dapat lebih baik menilai keamanan kontrak pintar dan mengurangi kemungkinan terlibat dalam proyek berisiko.

DEFI5.3%
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
  • 6
  • Bagikan
Komentar
0/400
GateUser-a180694bvip
· 4jam yang lalu
Pinjaman Flash 啧啧啧 Dianggap Bodoh的老伙计了吧
Lihat AsliBalas0
ContractCollectorvip
· 4jam yang lalu
Sekarang Pinjaman Flash benar-benar adalah yang paling banyak dieksploitasi.
Lihat AsliBalas0
AirdropChaservip
· 4jam yang lalu
Saya akan menyentuh porselen dulu, dan kali ini saya memotong beberapa daun bawang
Lihat AsliBalas0
BridgeTrustFundvip
· 5jam yang lalu
Sekali lagi Pinjaman Flash bermasalah
Lihat AsliBalas0
DeFiVeteranvip
· 5jam yang lalu
Sekali lagi akan ada korban Pinjaman Flash.
Lihat AsliBalas0
MidnightSnapHuntervip
· 5jam yang lalu
Serangan reentrancy sudah sering dibicarakan, kan? Sekarang siapa yang tidak tahu tentang ini?
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)