Analisis Tiga Risiko Keamanan DeFi: Pinjaman Flash, Manipulasi Harga, dan Serangan Re-Entrancy

Keamanan DeFi dan Langkah Pencegahan

Belakangan ini, seorang ahli keamanan membagikan kursus keamanan DeFi untuk komunitas. Ahli tersebut meninjau kejadian keamanan besar yang dihadapi industri Web3 selama setahun terakhir, membahas penyebab kejadian tersebut dan bagaimana cara menghindarinya, merangkum celah keamanan kontrak pintar yang umum serta langkah pencegahannya, dan memberikan beberapa saran keamanan untuk pengembang proyek dan pengguna.

Jenis-jenis kerentanan DeFi yang umum termasuk 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 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 mengalami anomali akibat dana yang besar, atau dimanfaatkan untuk mendapatkan imbalan yang tidak semestinya.

Banyak proyek Keuangan Desentralisasi rentan terhadap serangan pinjaman kilat karena masalah kode atau logika. Misalnya, beberapa proyek memberikan hadiah berdasarkan kepemilikan dalam waktu tetap, namun dapat dimanfaatkan oleh penyerang yang menggunakan pinjaman kilat untuk membeli sejumlah besar token dan mendapatkan sebagian besar hadiah. Ada juga proyek yang menghitung harga melalui Token, yang juga bisa terpengaruh oleh pinjaman kilat. Pihak proyek harus tetap waspada terhadap masalah ini.

Pengendalian Harga

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

  1. Menghitung harga menggunakan data pihak ketiga, 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-alamat 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 diinginkan pada data. Contohnya:

solidity pemetaan (alamat => uint) saldoPenggunaPribadi;

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

Karena saldo pengguna diatur menjadi 0 hanya di akhir fungsi, pemanggilan ulang masih akan berhasil, sehingga saldo dapat ditarik beberapa kali.

Berbagai bentuk serangan reentrancy dapat melibatkan fungsi yang berbeda dari kontrak tunggal atau fungsi dari beberapa kontrak. Untuk menyelesaikan masalah reentrancy, perlu diperhatikan:

  1. Tidak hanya mencegah reentrancy dari satu fungsi
  2. Mengkode sesuai pola Checks-Effects-Interactions
  3. Gunakan modifier anti-reentrancy yang telah terverifikasi

Disarankan untuk menggunakan praktik keamanan yang matang, hindari membuat roda yang sama. Solusi baru yang dikembangkan sendiri kurang divalidasi secara memadai, sehingga probabilitas munculnya masalah cukup tinggi.

Saran Keamanan

Saran Keamanan Proyek

  1. Mengikuti praktik keamanan terbaik dalam pengembangan kontrak
  2. Mewujudkan fungsi 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 tindakan jahat internal, sambil meningkatkan efisiensi dan memperkuat manajemen risiko.
  7. Hati-hati dalam memperkenalkan ketergantungan pihak ketiga, secara default hilir dan hulu tidak aman

Bagaimana pengguna menentukan keamanan kontrak pintar

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

Total, pihak proyek dan pengguna harus meningkatkan kesadaran keamanan, mengambil langkah-langkah yang diperlukan untuk mengurangi risiko keamanan Keuangan Desentralisasi.

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
  • 7
  • Bagikan
Komentar
0/400
RugResistantvip
· 23jam yang lalu
Sekali lagi ada yang datang dengan nama pencegahan untuk play people for suckers.
Lihat AsliBalas0
ChainDoctorvip
· 23jam yang lalu
Lagi-lagi Pinjaman Flash yang disalahkan, tsk tsk
Lihat AsliBalas0
PessimisticOraclevip
· 23jam yang lalu
Di balik celah selalu ada godaan keuntungan besar.
Lihat AsliBalas0
ParallelChainMaxivip
· 23jam yang lalu
Banyak celah, hati-hati ya semua.
Lihat AsliBalas0
TokenGuruvip
· 23jam yang lalu
Penambangan periode telah melihat celah lama, jangan anggap remeh ya.
Lihat AsliBalas0
Anon4461vip
· 23jam yang lalu
Jangan pamer, sepertinya setiap orang memiliki celah.
Lihat AsliBalas0
RektCoastervip
· 23jam yang lalu
Ikan mati jaring putus tidak akan kalah dari mei orang dan wei ruan
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)