Keuangan Desentralisasi tiga risiko keamanan utama: Pinjaman Flash, manipulasi harga, dan serangan reentrancy

Keamanan Umum dalam Keuangan Desentralisasi dan Langkah-langkah Pencegahan

Baru-baru ini, seorang ahli keamanan membagikan sebuah kursus tentang keamanan Keuangan Desentralisasi, membahas kejadian-kejadian keamanan besar yang baru-baru ini dialami oleh industri Web3, menganalisis penyebab terjadinya kejadian tersebut serta cara menghindarinya, dan merangkum celah-celah keamanan umum dalam kontrak pintar serta langkah-langkah pencegahannya. Artikel ini akan fokus pada tiga jenis celah umum: pinjaman kilat, manipulasi harga, dan serangan reentrancy.

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

Pinjaman Kilat

Pinjaman kilat sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi sering dimanfaatkan oleh peretas untuk melakukan serangan:

  • Penyerang meminjam sejumlah besar dana melalui pinjaman kilat, memanipulasi harga atau menyerang logika bisnis
  • Pengembang perlu mempertimbangkan apakah fungsi kontrak akan berfungsi secara abnormal karena dana yang besar, atau digunakan untuk mendapatkan terlalu banyak imbalan dalam satu transaksi.
  • Pertanyaan Umum: Menghitung hadiah menggunakan jumlah Token, atau berpartisipasi dalam perhitungan menggunakan jumlah Token dalam pasangan perdagangan DEX

Selama dua tahun terakhir, banyak masalah muncul. Beberapa proyek Keuangan Desentralisasi tampak memberikan imbal hasil tinggi, tetapi sebenarnya memiliki tingkat pengembangan yang bervariasi. Misalnya, ada proyek yang memberikan imbalan berdasarkan kepemilikan pada waktu tertentu, yang dieksploitasi oleh penyerang dengan memanfaatkan pinjaman kilat untuk membeli sejumlah besar token dan mendapatkan sebagian besar imbalan.

Manipulasi Harga

Harga manipulasi sangat terkait dengan pinjaman kilat, ada dua masalah utama:

  1. Menggunakan data pihak ketiga saat menghitung harga, tetapi penggunaan yang tidak tepat atau kurangnya pemeriksaan.
  2. Menggunakan saldo Token dari alamat tertentu sebagai variabel perhitungan, dan saldo ini dapat ditambahkan atau dikurangi sementara.

Serangan Reentrancy

Risiko utama dari pemanggilan kontrak eksternal adalah kemungkinan pengambilalihan aliran kontrol, yang dapat menyebabkan modifikasi data yang tidak terduga.

Sebuah contoh tipikal dari serangan reentrancy: solidity mapping (address => uint) private userBalances;

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

Karena saldo pengguna hanya akan direset pada akhir fungsi, pemanggilan berulang dapat menarik beberapa kali.

Mengatasi masalah reentrancy perlu diperhatikan:

  1. Tidak hanya mencegah reentrasi fungsi tunggal
  2. Mengikuti pola Checks-Effects-Interactions
  3. Gunakan modifier pencegah reentrancy yang terverifikasi

Disarankan untuk menggunakan praktik keamanan yang matang, hindari mengulang roda.

Saran Keamanan Proyek

  1. Mengembangkan kontrak sesuai dengan praktik keamanan terbaik
  2. Mewujudkan kontrak yang dapat ditingkatkan dan fungsi jeda
  3. Menggunakan kunci waktu
  4. Membangun sistem keamanan yang lengkap
  5. Meningkatkan kesadaran keamanan seluruh anggota
  6. Mencegah kejahatan internal, meningkatkan efisiensi sekaligus memperkuat pengendalian risiko
  7. Hati-hati dalam memperkenalkan pihak ketiga, anggap mereka tidak aman dan lakukan verifikasi dengan baik.

Bagaimana pengguna menilai keamanan kontrak pintar

  1. Apakah kontrak tersebut bersifat open source?
  2. Apakah Pemilik menggunakan multi-tanda tangan yang terdesentralisasi
  3. Lihat situasi transaksi kontrak yang ada
  4. Apakah kontrak dapat ditingkatkan, apakah ada kunci waktu
  5. Apakah menerima audit dari beberapa lembaga, apakah hak akses Owner terlalu besar?
  6. Perhatikan keandalan oracle

Singkatnya, keamanan sangat penting di bidang Keuangan Desentralisasi. Pihak proyek harus membangun sistem keamanan secara menyeluruh, dan pengguna juga perlu meningkatkan kewaspadaan serta berhati-hati dalam berpartisipasi.

DEFI-8.26%
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
DeFiVeteranvip
· 25menit yang lalu
Dompet lagi hilang, tidak heran.
Lihat AsliBalas0
DisillusiionOraclevip
· 6jam yang lalu
Baiklah defi terus ramai, orang-orang Hacker setiap hari mencukur bulu sapi.
Lihat AsliBalas0
GateUser-bd883c58vip
· 07-21 12:00
Tetap harus menyisakan pintu belakang, ya!
Lihat AsliBalas0
LayoffMinervip
· 07-21 02:24
Hah, masih sama seperti biasa, cara mencuci tambang yang beragam.
Lihat AsliBalas0
LiquidationWatchervip
· 07-21 02:19
Dengan begitu banyak celah, untuk apa bermain DeFi?
Lihat AsliBalas0
NestedFoxvip
· 07-21 02:18
Dianggap Bodoh lagi
Lihat AsliBalas0
Layer2Observervip
· 07-21 02:08
Kode adalah bukti yang paling keras.
Lihat AsliBalas0
SerumSurfervip
· 07-21 02:07
Pinjaman Flash masih tidak dimainkan oleh anjing
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)