Keuangan Desentralisasi keamanan besar-besaran: Jenis kerentanan umum dan panduan pencegahan

robot
Pembuatan abstrak sedang berlangsung

Keamanan Umum dalam Keuangan Desentralisasi dan Langkah-Langkah Pencegahannya

Baru-baru ini, seorang ahli keamanan membagikan wawasan tentang keamanan Keuangan Desentralisasi, meninjau peristiwa keamanan besar yang dialami industri Web3 dalam setahun terakhir, membahas penyebab terjadinya peristiwa-peristiwa ini serta cara untuk menghindarinya, merangkum kerentanan keamanan umum pada kontrak pintar dan langkah-langkah pencegahannya, serta memberikan beberapa saran keamanan kepada proyek dan pengguna.

Jenis-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 privat, dan reentrancy. Di bawah ini, kami akan fokus pada tiga jenis ini: pinjaman kilat, manipulasi harga, dan serangan reentrancy.

Pinjaman Kilat

Pinjaman kilat adalah inovasi dalam Keuangan Desentralisasi, tetapi juga dimanfaatkan oleh peretas untuk melakukan serangan. Penyerang meminjam sejumlah besar dana melalui pinjaman kilat, untuk memanipulasi harga atau menyerang logika bisnis. Pengembang perlu mempertimbangkan apakah fungsi kontrak akan berperilaku tidak normal akibat dana yang besar, atau dimanfaatkan untuk mendapatkan imbalan yang tidak semestinya.

Banyak proyek Keuangan Desentralisasi tampak memberikan hasil tinggi, tetapi sebenarnya tingkat kemampuan tim proyek sangat bervariasi. Beberapa proyek mungkin membeli kode mereka, meskipun kode itu sendiri tidak memiliki celah, secara logika masih mungkin terdapat masalah. Misalnya, beberapa proyek akan memberikan hadiah berdasarkan kepemilikan pada waktu yang telah ditentukan, tetapi dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli sejumlah besar token, mendapatkan sebagian besar hadiah.

Pengendalian Harga

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

  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 di alamat tersebut dapat ditambah atau dikurangi secara sementara.

Serangan Reentrancy

Salah satu risiko utama dalam memanggil kontrak eksternal adalah mereka dapat mengambil alih alur kontrol, melakukan perubahan yang tidak terduga pada data. Contohnya:

soliditas 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; }

Karena saldo pengguna hanya diatur menjadi nol di akhir fungsi, pemanggilan ulang masih akan berhasil, dan saldo dapat ditarik berulang kali.

Untuk menyelesaikan masalah reentrancy, perlu diperhatikan:

  1. Tidak hanya mencegah reentrancy dari satu fungsi
  2. Mengikuti pola Checks-Effects-Interactions
  3. Menggunakan modifier anti-reentrancy yang telah diverifikasi

Metode serangan reentrancy sangat beragam, dan bisa melibatkan beberapa fungsi atau kontrak, sehingga penyelesaiannya cukup kompleks. Sebaiknya gunakan praktik terbaik yang telah terverifikasi dengan baik, daripada menciptakan kembali roda.

Saran Keamanan Proyek

  1. Mengikuti praktik keamanan terbaik dalam pengembangan kontrak
  2. Mengimplementasikan fungsi kontrak yang dapat diupgrade 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 manajemen risiko.
  7. Hati-hati dalam memperkenalkan komponen pihak ketiga, lakukan verifikasi keamanan dengan baik

Bagaimana pengguna dapat menilai keamanan kontrak pintar

  1. Pastikan kontrak bersifat open source
  2. Periksa apakah Owner menggunakan multisig, dan apakah multisig tersebut terdesentralisasi.
  3. Lihat situasi perdagangan yang ada pada kontrak
  4. Menentukan apakah kontrak adalah kontrak perwakilan, apakah dapat ditingkatkan, dan apakah memiliki kunci waktu
  5. Pastikan kontrak telah diaudit oleh beberapa lembaga, apakah hak akses Owner terlalu besar
  6. Perhatikan penggunaan oracle

总之,在Keuangan Desentralisasi领域,安全问题尤为重要。项目方应当重视安全投入,用户也要提高警惕,谨慎参与。只有共同努力,才能构建一个更加安全可靠的Keuangan Desentralisasi生态系统。

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

Lihat Asli
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Hadiah
  • 4
  • Bagikan
Komentar
0/400
SchrodingerProfitvip
· 5jam yang lalu
Potong, sekarang masih ada yang tidak dipermainkan untuk menjadi suckers?
Lihat AsliBalas0
ContractSurrendervip
· 5jam yang lalu
Ini adalah panduan besar untuk Dianggap Bodoh!
Lihat AsliBalas0
SnapshotDayLaborervip
· 5jam yang lalu
Harus benar-benar waspada, untung saya bisa berlari cepat.
Lihat AsliBalas0
CoconutWaterBoyvip
· 5jam yang lalu
Jadi intinya ini adalah pajak IQ!
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)