Keamanan DeFi: Panduan Pencegahan Pinjaman Flash, Manipulasi Harga, dan Serangan Reentrancy

robot
Pembuatan abstrak sedang berlangsung

Keamanan DeFi dan Langkah Pencegahan

Baru-baru ini, seorang ahli keamanan membagikan pelajaran keamanan DeFi kepada anggota komunitas. Dia meninjau kejadian keamanan besar yang baru-baru ini dialami oleh industri Web3, membahas penyebab dari kejadian-kejadian tersebut serta cara untuk menghindarinya, merangkum celah keamanan umum dalam kontrak pintar dan langkah-langkah pencegahannya, serta memberikan beberapa saran keamanan untuk pengembang proyek dan pengguna.

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

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, serangan reentrancy, dan lain-lain. Berikut ini akan dibahas secara khusus tentang pinjaman kilat, manipulasi harga, dan serangan reentrancy.

Pinjaman Kilat

Pinjaman kilat sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi dapat menyebabkan kerugian besar ketika dimanfaatkan oleh peretas:

  • Penyerang meminjam sejumlah besar dana melalui pinjaman kilat, memanipulasi harga atau menyerang logika bisnis
  • Pengembang perlu mempertimbangkan apakah fungsi kontrak akan mengalami anomali karena dana besar.
  • Beberapa proyek menggunakan jumlah Token untuk menghitung hadiah, atau menggunakan jumlah Token dalam pasangan perdagangan DEX untuk berpartisipasi dalam perhitungan, variabel ini mudah dimanipulasi oleh pinjaman kilat.

Selama dua tahun terakhir, banyak proyek DeFi dengan imbal hasil tinggi mengalami serangan pinjaman kilat karena masalah kode atau logika. Misalnya, beberapa proyek memberikan imbalan berdasarkan jumlah kepemilikan pada waktu tertentu, dan penyerang memanfaatkan pinjaman kilat untuk membeli sejumlah besar token dan mendapatkan sebagian besar imbalan.

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.
  2. Menggunakan saldo Token dari alamat tertentu sebagai variabel perhitungan, dan saldo ini dapat ditambah atau dikurangi sementara.

Serangan Reentrancy

Risiko utama dari memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih alur kontrol dan melakukan perubahan yang tidak terduga pada data. Contohnya:

solidity pemetaan (alamat => uint) saldoPenggunaPribadi;

fungsi tarikSaldo() 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 di akhir fungsi, pemanggilan ulang masih akan berhasil menarik saldo.

Untuk menyelesaikan masalah reentry perlu diperhatikan:

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

Serangan reentrancy memiliki berbagai bentuk, dan mungkin melibatkan beberapa fungsi atau kontrak. Disarankan untuk menggunakan praktik keamanan yang matang, dan menghindari menciptakan roda yang sama.

Saran Keamanan

Saran Keamanan Proyek

  1. Mengikuti praktik keamanan terbaik dalam pengembangan kontrak
  2. Mewujudkan kontrak yang dapat ditingkatkan dan dapat dijeda
  3. Menggunakan mekanisme kunci waktu
  4. Meningkatkan investasi keamanan, membangun sistem keamanan yang sempurna
  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 baik hulu maupun hilir tidak aman

pengguna menilai keamanan kontrak pintar

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

Singkatnya, di bidang Keuangan Desentralisasi, risiko keamanan sangat banyak, baik pihak proyek maupun pengguna perlu meningkatkan kewaspadaan, mengambil langkah perlindungan ganda, dan bersama-sama memelihara keamanan ekosistem.

DEFI7.35%
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
TokenCreatorOPvip
· 07-28 02:54
Seandainya saya tahu lebih awal, USDT saya sudah hilang.
Lihat AsliBalas0
RooftopReservervip
· 07-28 02:53
Sekali lagi ada suckers yang ingin naik ke atap.
Lihat AsliBalas0
consensus_failurevip
· 07-28 02:53
Sekali lagi memainkan skenario ingin jebakan Rug Pull~
Lihat AsliBalas0
ParallelChainMaxivip
· 07-28 02:34
Tidak ada proyek yang aman.
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)