Panduan Lengkap Keamanan DeFi: Analisis Kedalaman Kerentanan Umum dan Strategi Pencegahan

robot
Pembuatan abstrak sedang berlangsung

Keamanan Keuangan Desentralisasi: Jenis Kerentanan Umum dan Langkah-Langkah Pencegahan

Baru-baru ini, seorang ahli keamanan berbagi pelajaran tentang keamanan DeFi kepada anggota komunitas. Dia meninjau kejadian keamanan besar yang dialami industri Web3 selama lebih dari satu tahun terakhir, membahas penyebab terjadinya kejadian-kejadian ini dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum pada kontrak pintar serta langkah-langkah pencegahannya, dan memberikan beberapa saran keamanan kepada pengembang proyek dan pengguna biasa.

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

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

Pinjaman Kilat

Pinjaman kilat 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 besar, atau dimanfaatkan dalam satu transaksi untuk berinteraksi dengan beberapa fungsi untuk mendapatkan imbalan yang tidak semestinya.

Banyak proyek Keuangan Desentralisasi tampak memiliki imbal hasil yang tinggi, namun pada kenyataannya, tingkat kemampuan tim proyek sangat bervariasi. Meskipun kode itu sendiri tidak memiliki kerentanan, secara logika masih mungkin ada masalah. Misalnya, beberapa proyek akan memberikan imbalan berdasarkan jumlah token yang dimiliki pemegang pada waktu tertentu, tetapi dapat dieksploitasi oleh penyerang dengan memanfaatkan pinjaman kilat untuk membeli sejumlah besar token, sehingga mendapatkan sebagian besar imbalan saat imbalan diberikan.

Manipulasi Harga

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

  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, di mana saldo Token dari alamat tersebut dapat ditambahkan atau dikurangi secara sementara.

Serangan Reentrancy

Salah satu risiko utama dari memanggil kontrak eksternal adalah mereka dapat mengambil alih aliran kontrol dan melakukan perubahan yang tidak terduga pada data. Contoh klasik dari serangan reentrancy adalah, dalam fungsi penarikan, saldo pengguna baru disetel ke 0 di akhir fungsi, yang memungkinkan pemanggilan berulang untuk tetap berhasil melakukan penarikan.

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

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

Dalam praktik keamanan, sebaiknya menggunakan solusi matang yang telah terverifikasi dengan baik, daripada menciptakan roda yang sama.

Saran Keamanan untuk Proyek

  1. Mengikuti praktik keamanan terbaik dalam pengembangan kontrak
  2. Mewujudkan fungsi kontrak yang dapat diperbarui dan dijeda
  3. Menggunakan mekanisme kunci waktu
  4. Meningkatkan investasi dalam keamanan, membangun sistem keamanan yang lengkap
  5. Meningkatkan kesadaran keamanan semua karyawan
  6. Mencegah tindakan jahat internal, sambil meningkatkan efisiensi dan memperkuat manajemen risiko
  7. Hati-hati dalam memasukkan komponen pihak ketiga, pastikan keamanannya

Bagaimana Pengguna Menilai Keamanan Kontrak Pintar

  1. Konfirmasi apakah kontrak bersifat sumber terbuka
  2. Periksa apakah Pemilik menggunakan mekanisme multi-tanda tangan yang terdesentralisasi
  3. Lihat situasi transaksi yang sudah ada pada kontrak
  4. Konfirmasi apakah kontrak adalah kontrak perwakilan, apakah dapat diupgrade, apakah memiliki kunci waktu
  5. Periksa apakah kontrak telah diaudit oleh beberapa lembaga, apakah hak pemilik terlalu besar.
  6. Perhatikan penggunaan oracle, utamakan memilih oracle yang memiliki reputasi tinggi.

Dengan memperhatikan poin-poin di atas, pengguna dapat lebih baik menilai keamanan suatu proyek Keuangan Desentralisasi, sehingga dapat membuat keputusan investasi yang lebih bijaksana.

DEFI1.59%
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
MidnightSellervip
· 5jam yang lalu
Lagi melakukan audit, tim proyek bisa mendengarnya?
Lihat AsliBalas0
UncommonNPCvip
· 07-22 05:57
Tetap banyak metode serangan...
Lihat AsliBalas0
NeverPresentvip
· 07-22 05:54
Sekali lagi membahas audit, sama saja dengan tidak mengatakan apa-apa.
Lihat AsliBalas0
HackerWhoCaresvip
· 07-22 05:48
Kode lebih penting daripada penamaan camel!
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)