Panduan Keamanan Keuangan Desentralisasi: Strategi Pencegahan Pinjaman Flash, Manipulasi Harga, dan Serangan Reentrancy

robot
Pembuatan abstrak sedang berlangsung

Keamanan Umum dalam Keuangan Desentralisasi dan Langkah-langkah Pencegahan

Baru-baru ini, seorang ahli keamanan membagikan pelajaran keamanan DeFi kepada anggota komunitas. Dia meninjau kembali peristiwa keamanan besar yang dialami industri Web3 selama lebih dari setahun terakhir, membahas penyebab terjadinya peristiwa keamanan ini serta bagaimana cara menghindarinya, merangkum kerentanan keamanan umum pada kontrak pintar dan langkah-langkah pencegahannya, serta memberikan beberapa saran keamanan kepada pihak proyek dan pengguna biasa.

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

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

Pinjaman Kilat

Pinjaman kilat sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi ketika dieksploitasi oleh peretas, mereka dapat meminjam sejumlah besar dana tanpa mengeluarkan biaya, melakukan arbitrase dan mengembalikannya, hanya perlu membayar sedikit biaya Gas untuk mendapatkan keuntungan besar.

Banyak proyek DeFi tampak memberikan imbal hasil yang tinggi, tetapi sebenarnya kualitas tim proyek bervariasi. Beberapa proyek mungkin menggunakan kode yang dibeli, meskipun kode itu sendiri tidak memiliki celah, secara logika masih bisa ada masalah. Misalnya, suatu proyek akan memberikan imbalan pada waktu tertentu berdasarkan jumlah token yang dimiliki oleh pemegang, tetapi dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli banyak token, sehingga mendapatkan sebagian besar imbalan saat pemberian imbalan.

Selain itu, ada beberapa proyek yang menghitung harga melalui token, yang dapat mempengaruhi harga melalui pinjaman kilat. Sebagai pengembang proyek, Anda harus lebih waspada terhadap masalah ini.

Manipulasi Harga

Masalah manipulasi harga sangat terkait dengan pinjaman kilat, yang umumnya memiliki dua jenis yang umum:

  1. Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau pemeriksaan yang hilang menyebabkan harga dimanipulasi secara jahat.

  2. Menggunakan jumlah token dari alamat tertentu sebagai variabel perhitungan, di mana saldo token dari alamat tersebut dapat ditambahkan atau dikurangi secara sementara.

Serangan Re-entrancy

Salah satu bahaya utama dari memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih aliran kontrol dan melakukan perubahan yang tidak terduga pada data dengan memanggil fungsi. Misalnya:

solidity pemetaan (alamat => uint) saldoPengguna pribadi;

fungsi tarikSaldo() 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 pada akhir fungsi, panggilan kedua (dan seterusnya) masih akan berhasil, dan saldo akan terus ditarik berulang kali.

Untuk menyelesaikan masalah reentrancy, perlu diperhatikan hal-hal berikut:

  1. Tidak hanya mencegah masalah reentrancy fungsi tunggal
  2. Mengkodekan sesuai dengan pola Checks-Effects-Interactions
  3. Gunakan modifier anti-reentrancy yang telah teruji waktu

Ada banyak praktik keamanan terbaik di bidang ini yang sebaiknya kita gunakan secara langsung daripada menciptakan roda baru. Menggunakan solusi yang matang dan teruji jauh lebih kecil kemungkinan bermasalah daripada mengembangkan solusi baru sendiri.

Saran Keamanan Proyek

  1. Pengembangan kontrak mengikuti praktik keamanan terbaik.

  2. Kontrak dapat ditingkatkan dan dijeda: Banyak serangan bukanlah tindakan sekali jalan yang mengambil semua koin, tetapi dilakukan dalam beberapa transaksi. Jika ada mekanisme pemantauan yang relatif baik, kontrak dapat segera dideteksi dan dijeda, secara efektif mengurangi kerugian.

  3. Menggunakan kunci waktu: Jika ada kunci waktu, dapat memberikan cukup waktu bagi orang untuk menemukan anomali dan mengambil tindakan.

  4. Meningkatkan investasi keamanan, membangun sistem keamanan yang sempurna: Keamanan adalah sistem yang terintegrasi, tidak hanya mencakup audit kontrak, tetapi juga mencakup manajemen kunci pribadi, model ekonomi, dan berbagai aspek lainnya.

  5. Meningkatkan kesadaran keamanan semua karyawan: Banyak masalah keamanan dapat dihindari dengan meningkatkan kewaspadaan.

  6. Mencegah tindakan jahat internal, sambil meningkatkan efisiensi dan memperkuat pengendalian risiko: Menggunakan mekanisme seperti multi-signature, kunci waktu, dll dapat meningkatkan keamanan sambil menjaga efisiensi.

  7. Keamanan pengenalan pihak ketiga: Harus melakukan verifikasi keamanan terhadap hulu dan hilir, terutama untuk kontrak yang tidak open source harus sangat hati-hati.

Bagaimana pengguna/LP menilai apakah kontrak pintar itu aman?

  1. Apakah kontrak sumber terbuka: Jangan ikut serta dalam proyek yang tidak sumber terbuka.

  2. Apakah Pemilik menggunakan multi-signature, apakah multi-signature tersebut terdesentralisasi.

  3. Lihat kondisi transaksi yang sudah ada di kontrak: termasuk waktu penyebaran, jumlah interaksi, dll.

  4. Apakah kontrak tersebut merupakan kontrak perwakilan, apakah dapat diperbarui, apakah ada penguncian waktu.

  5. Apakah kontrak telah diaudit oleh banyak lembaga, apakah hak pemilik terlalu besar.

  6. Perhatikan oracle: Proyek yang menggunakan oracle terkenal relatif lebih aman, sementara oracle yang dibangun sendiri atau yang mudah dimanipulasi harus diwaspadai.

Singkatnya, dalam lingkungan Web3, tetap waspada dan bertanya beberapa mengapa dapat menghindari banyak risiko potensial. Baik pihak proyek maupun pengguna biasa harus menekankan masalah keamanan, membangun kesadaran keamanan yang baik dan mekanisme pencegahan.

DEFI4.1%
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
  • 6
  • Bagikan
Komentar
0/400
MEVHunterNoLossvip
· 15jam yang lalu
Masalah keamanan ini dianggap der
Lihat AsliBalas0
AirdropHustlervip
· 08-01 17:58
lebih baik ajari cara mendapatkan Airdrop
Lihat AsliBalas0
BearMarketBuildervip
· 08-01 17:53
Semua celah sudah kamu ungkapkan, lalu bagaimana hacker bisa bermain?
Lihat AsliBalas0
LightningAllInHerovip
· 08-01 17:51
Jangan bilang lagi, terakhir kali semua saya kehilangan segalanya karena pinjaman flash.
Lihat AsliBalas0
FUD_Whisperervip
· 08-01 17:45
Sudah setengah tahun mengerjakan defi tidak secepat tangan seorang Hacker.
Lihat AsliBalas0
defi_detectivevip
· 08-01 17:42
Dianggap Bodoh lagi?
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)