Keamanan DeFi: Panduan pencegahan Pinjaman Flash, manipulasi harga, dan serangan reentrancy

robot
Pembuatan abstrak sedang berlangsung

Keamanan Umum dalam Keuangan Desentralisasi dan Langkah-Langkah Pencegahannya

Baru-baru ini, seorang ahli keamanan berbagi kursus keamanan DeFi untuk anggota komunitas. Dia meninjau peristiwa keamanan besar yang dialami industri Web3 selama lebih dari setahun terakhir, mendiskusikan penyebab terjadinya peristiwa tersebut dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum dalam kontrak pintar dan langkah-langkah pencegahannya, serta memberikan beberapa saran keamanan untuk pihak proyek dan pengguna biasa.

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

Cobo Keuangan Desentralisasi keamanan (bawah): Kerentanan keamanan DeFi yang umum dan pencegahannya

Pinjaman Kilat

Pinjaman kilat adalah inovasi dalam Keuangan Desentralisasi, tetapi 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 akibat dana yang besar, atau dieksploitasi untuk mendapatkan imbalan yang tidak semestinya.
  • Beberapa proyek tidak mempertimbangkan dampak pinjaman kilat saat merancang, yang mengakibatkan pencurian dana

Selama dua tahun terakhir, pinjaman kilat telah menimbulkan banyak masalah. Beberapa proyek DeFi dengan imbal hasil tinggi memiliki tingkat pengembangan yang bervariasi dan terdapat banyak celah. Misalnya, ada proyek yang memberikan hadiah berdasarkan kepemilikan pada waktu tertentu, yang dieksploitasi oleh penyerang dengan memanfaatkan pinjaman kilat untuk membeli sejumlah besar token dan mendapatkan sebagian besar hadiah. Selain itu, beberapa proyek yang menghitung harga melalui Token dapat dipengaruhi oleh pinjaman kilat. Tim proyek harus tetap waspada terhadap masalah ini.

Pengendalian Harga

Masalah manipulasi harga terkait erat dengan pinjaman kilat, terutama ada dua jenis:

  1. Menggunakan data pihak ketiga untuk menghitung harga, tetapi penggunaan yang tidak tepat atau kurangnya pemeriksaan menyebabkan harga dikendalikan secara jahat.

  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 bisa mengambil alih alur kontrol, melakukan modifikasi yang tidak terduga pada data. Misalnya:

solidity pemetaan (alamat => uint) saldoPenggunaPrivat;

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

Karena saldo pengguna baru akan dihapus pada akhir fungsi, pemanggilan ulang masih akan berhasil menarik saldo.

Berbagai bentuk serangan reentrancy dapat melibatkan beberapa fungsi atau kontrak. Untuk mengatasi masalah reentrancy, perlu diperhatikan:

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

Sebaiknya menggunakan praktik keamanan terbaik yang sudah ada, daripada mengulang roda. Solusi yang sudah matang lebih aman dan dapat diandalkan dibandingkan dengan pengembangan solusi baru.

Saran Keamanan untuk Pihak Proyek

  1. Mengikuti praktik keamanan terbaik dalam pengembangan kontrak
  2. Mewujudkan fungsionalitas kontrak yang dapat ditingkatkan dan 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, sekaligus meningkatkan efisiensi dan memperkuat manajemen risiko.
  7. Hati-hati dalam melibatkan pihak ketiga, lakukan pemeriksaan keamanan dengan baik

Bagaimana Pengguna Menilai Keamanan Kontrak Pintar

  1. Pastikan kontrak tersebut bersifat sumber terbuka
  2. Periksa apakah Pemilik menggunakan multi-tanda tangan terdesentralisasi
  3. Lihat situasi perdagangan yang sudah ada pada kontrak
  4. Menentukan apakah kontrak dapat ditingkatkan, apakah ada kunci waktu
  5. Pastikan kontrak telah diaudit oleh beberapa institusi, apakah hak akses Owner terlalu besar.
  6. Perhatikan penggunaan oracle

Singkatnya, dalam ekosistem Keuangan Desentralisasi, pihak proyek dan pengguna perlu mempertahankan kesadaran keamanan yang tinggi, mengambil langkah-langkah pencegahan yang diperlukan, dan bersama-sama menjaga perkembangan sehat ekosistem.

DEFI6.83%
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
  • 3
  • Bagikan
Komentar
0/400
ImpermanentPhobiavip
· 11jam yang lalu
Hacker dan Pinjaman Flash, benar-benar mendebarkan
Lihat AsliBalas0
SnapshotBotvip
· 11jam yang lalu
tim proyek masih setiap hari Dianggap Bodoh
Lihat AsliBalas0
OffchainWinnervip
· 12jam yang lalu
Aku belajar gerakan baru lagi hehe
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)