Analisis Lengkap Kerentanan Keamanan Umum dalam Keuangan Desentralisasi dan Langkah-Langkah Pencegahannya

robot
Pembuatan abstrak sedang berlangsung

Keamanan Umum dalam Keuangan Desentralisasi dan Langkah Pencegahannya

Baru-baru ini, seorang ahli keamanan membahas tentang peristiwa keamanan besar yang dihadapi industri Web3 dalam lebih dari satu tahun terakhir di sebuah konferensi berbagi online, menganalisis penyebab terjadinya peristiwa tersebut dan bagaimana cara menghindarinya, serta merangkum kerentanan keamanan umum pada kontrak pintar dan langkah-langkah pencegahannya. Selain itu, ia memberikan beberapa saran keamanan kepada pihak proyek dan pengguna biasa.

Jenis kerentanan DeFi yang umum meliputi pinjaman kilat, manipulasi harga, masalah hak akses fungsi, panggilan eksternal sembarangan, masalah fungsi fallback, kerentanan logika bisnis, kebocoran kunci pribadi, dan serangan reentrancy, antara lain. Di antara ini, pinjaman kilat, manipulasi harga, dan serangan reentrancy adalah beberapa yang paling khas.

Pinjaman Kilat

Pinjaman kilat sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi juga sering dimanfaatkan oleh peretas. 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 digunakan untuk berinteraksi dengan beberapa fungsi dalam satu transaksi untuk mendapatkan keuntungan yang tidak sah.

Selama dua tahun terakhir, banyak proyek Keuangan Desentralisasi diserang karena masalah pinjaman kilat. Beberapa proyek memberikan hadiah berdasarkan jumlah kepemilikan dalam waktu tertentu, tetapi dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli banyak token, sehingga mendapatkan sebagian besar keuntungan saat hadiah diberikan. Selain itu, beberapa proyek yang menghitung harga berdasarkan token juga rentan terhadap pengaruh pinjaman kilat.

Manipulasi Harga

Masalah manipulasi harga sangat terkait dengan pinjaman kilat, terutama ada dua jenis:

  1. Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau pemeriksaan hilang, mengakibatkan harga dimanipulasi secara jahat.

  2. Menggunakan jumlah token dari alamat tertentu sebagai variabel perhitungan, sementara saldo token alamat tersebut dapat ditambah atau dikurangi secara sementara.

Serangan Reentrancy

Salah satu risiko utama dalam memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih alur kontrol dan melakukan perubahan tak terduga pada data. Contoh tipikal serangan reentrancy adalah sebagai berikut:

soliditas mapping (address => uint) private userBalances;

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

Karena saldo pengguna akan disetel ke 0 hanya di akhir fungsi, pemanggilan berulang masih dapat berhasil menarik saldo.

Untuk menyelesaikan masalah reentrancy, perlu diperhatikan:

  1. Tidak hanya mencegah reentrancy dari fungsi tunggal
  2. Mengikuti pola Checks-Effects-Interactions
  3. Menggunakan modifier pencegah reentrancy yang teruji

Saran Keamanan Proyek

  1. Mengikuti praktik keamanan terbaik dalam pengembangan kontrak
  2. Mewujudkan fungsionalitas kontrak yang dapat ditingkatkan dan dijeda
  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 pengendalian risiko.
  7. Hati-hati dalam melibatkan pihak ketiga, secara default hulu dan hilir tidak aman.

Metode Pengguna untuk Menilai Keamanan Kontrak Pintar

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

Singkatnya, keamanan DeFi adalah masalah sistemik yang memerlukan perhatian bersama dari pihak proyek dan pengguna, serta penerapan langkah-langkah keamanan yang komprehensif untuk secara efektif mengurangi risiko.

Cobo Keuangan Desentralisasi 安全课(下):Keuangan Desentralisasi 常⻅安全漏洞及预防

DEFI18.74%
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
  • 5
  • Bagikan
Komentar
0/400
ForkThisDAOvip
· 07-12 07:12
Audit kode itu sangat penting.
Lihat AsliBalas0
NewPumpamentalsvip
· 07-12 05:08
Harap tetapkan audit kontrak secara ketat
Lihat AsliBalas0
ConsensusDissentervip
· 07-10 09:19
Audit juga perlu diaudit
Lihat AsliBalas0
RektRecoveryvip
· 07-10 09:18
Tanda tangan tripel adalah dasar
Lihat AsliBalas0
FallingLeafvip
· 07-10 09:09
Keamanan adalah pilihan utama yang tak terelakkan
Lihat AsliBalas0
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)