Keamanan Umum pada Keuangan Desentralisasi dan Tindakan Pencegahan
Baru-baru ini, seorang ahli industri membagikan wawasan tentang keamanan Keuangan Desentralisasi. Dia meninjau insiden keamanan besar yang dialami industri Web3 selama lebih dari satu tahun terakhir, membahas penyebab insiden tersebut serta cara menghindarinya, merangkum celah keamanan umum pada kontrak pintar dan langkah pencegahan, serta memberikan beberapa saran keamanan kepada pengembang 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 privat, dan serangan re-entry. Berikut ini akan dijelaskan secara khusus tentang pinjaman kilat, manipulasi harga, serta serangan re-entry.
Pinjaman Kilat
Meskipun pinjaman kilat adalah inovasi dalam Keuangan Desentralisasi, namun sering dimanfaatkan oleh hacker. Penyerang meminjam sejumlah besar dana melalui pinjaman kilat untuk memanipulasi harga atau menyerang logika bisnis. Pengembang perlu mempertimbangkan apakah fungsi kontrak akan berperilaku tidak normal karena dana yang besar, atau apakah mungkin untuk berinteraksi dengan beberapa fungsi dalam satu transaksi untuk mendapatkan imbalan yang tidak semestinya.
Banyak proyek DeFi tampak memberikan imbal hasil yang tinggi, tetapi sebenarnya tingkat keahlian pengembang proyek bervariasi. Beberapa proyek mungkin menggunakan kode yang dibeli, meskipun kode itu sendiri tidak memiliki celah, secara logika tetap mungkin ada masalah. Misalnya, beberapa proyek memberikan imbalan berdasarkan jumlah kepemilikan pada waktu tertentu, tetapi dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli sejumlah besar token, dan pada saat imbalan diberikan, mereka mendapatkan sebagian besar keuntungan.
Manipulasi Harga
Masalah manipulasi harga berkaitan erat dengan pinjaman kilat, terutama karena beberapa parameter dalam perhitungan harga dapat dikontrol oleh pengguna. Ada dua jenis masalah yang umum:
Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau kurang pemeriksaan, menyebabkan harga dimanipulasi secara jahat.
Menggunakan jumlah token dari alamat tertentu sebagai variabel perhitungan, di mana saldo token dari alamat tersebut dapat ditambah atau dikurangi sementara.
Serangan Reentrancy
Salah satu risiko utama dalam memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih aliran kontrol dan melakukan perubahan yang tidak terduga pada data. Misalnya:
Karena saldo pengguna hanya diset menjadi 0 pada akhir fungsi, panggilan kedua dan seterusnya masih akan berhasil, sehingga saldo dapat ditarik berulang kali.
Untuk mengatasi masalah reentrancy, perlu diperhatikan hal-hal berikut:
Tidak hanya mencegah masalah reentrancy dari fungsi tunggal
Mengkode mengikuti pola Checks-Effects-Interactions
Gunakan modifier pencegah reentrancy yang telah diverifikasi
Sebaiknya menggunakan praktik keamanan yang sudah matang, daripada mengulang roda. Solusi baru yang dikembangkan sendiri sering kali kurang teruji dan memiliki probabilitas masalah yang lebih tinggi.
Saran Keamanan
Saran Keamanan Proyek
Pengembangan kontrak mengikuti praktik keamanan terbaik
Kontrak dapat ditingkatkan, dapat dijeda
Menggunakan kunci waktu
Meningkatkan investasi keamanan, membangun sistem keamanan yang komprehensif
Meningkatkan kesadaran keamanan semua karyawan
Mencegah kejahatan internal, sambil meningkatkan efisiensi dan memperkuat pengendalian risiko.
Hati-hati dalam melibatkan pihak ketiga, lakukan verifikasi keamanan terhadap hulu dan hilir
Bagaimana pengguna dapat menentukan apakah kontrak pintar aman
Apakah kontrak bersifat open source?
Apakah Pemilik menggunakan multi-tanda tangan terdesentralisasi
Periksa keadaan transaksi yang sudah ada pada kontrak
Apakah kontrak tersebut merupakan kontrak perwakilan, apakah dapat diperbarui, apakah ada kunci waktu
Apakah kontrak telah diaudit oleh beberapa lembaga, dan apakah hak akses Owner terlalu besar?
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.
13 Suka
Hadiah
13
6
Bagikan
Komentar
0/400
BearMarketBuilder
· 2jam yang lalu
Bug ini diperbaiki satu demi satu, kapan ini akan berakhir?
Lihat AsliBalas0
BackrowObserver
· 2jam yang lalu
Apa gunanya jika tidak bisa mengembangkan? Sudah kena hack.
Lihat AsliBalas0
NFT_Therapy
· 2jam yang lalu
Kontrak yang ditulis tidak kuat, Hacker tidak bisa kabur.
Lihat AsliBalas0
PhantomMiner
· 2jam yang lalu
Bug ini terlalu banyak, bagaimana para suckers bisa mengatasi Hacker?
Lihat AsliBalas0
consensus_whisperer
· 3jam yang lalu
Kita akan membahas keamanan Keuangan Desentralisasi lagi.
Lihat AsliBalas0
WalletManager
· 3jam yang lalu
Setelah melihat audit kode, bahkan cadangan dompet dingin terasa tidak cukup aman, kerentanan reentrancy ini terlalu dalam!
Keamanan DeFi: Analisis lengkap kerentanan umum dan strategi perlindungan
Keamanan Umum pada Keuangan Desentralisasi dan Tindakan Pencegahan
Baru-baru ini, seorang ahli industri membagikan wawasan tentang keamanan Keuangan Desentralisasi. Dia meninjau insiden keamanan besar yang dialami industri Web3 selama lebih dari satu tahun terakhir, membahas penyebab insiden tersebut serta cara menghindarinya, merangkum celah keamanan umum pada kontrak pintar dan langkah pencegahan, serta memberikan beberapa saran keamanan kepada pengembang 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 privat, dan serangan re-entry. Berikut ini akan dijelaskan secara khusus tentang pinjaman kilat, manipulasi harga, serta serangan re-entry.
Pinjaman Kilat
Meskipun pinjaman kilat adalah inovasi dalam Keuangan Desentralisasi, namun sering dimanfaatkan oleh hacker. Penyerang meminjam sejumlah besar dana melalui pinjaman kilat untuk memanipulasi harga atau menyerang logika bisnis. Pengembang perlu mempertimbangkan apakah fungsi kontrak akan berperilaku tidak normal karena dana yang besar, atau apakah mungkin untuk berinteraksi dengan beberapa fungsi dalam satu transaksi untuk mendapatkan imbalan yang tidak semestinya.
Banyak proyek DeFi tampak memberikan imbal hasil yang tinggi, tetapi sebenarnya tingkat keahlian pengembang proyek bervariasi. Beberapa proyek mungkin menggunakan kode yang dibeli, meskipun kode itu sendiri tidak memiliki celah, secara logika tetap mungkin ada masalah. Misalnya, beberapa proyek memberikan imbalan berdasarkan jumlah kepemilikan pada waktu tertentu, tetapi dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli sejumlah besar token, dan pada saat imbalan diberikan, mereka mendapatkan sebagian besar keuntungan.
Manipulasi Harga
Masalah manipulasi harga berkaitan erat dengan pinjaman kilat, terutama karena beberapa parameter dalam perhitungan harga dapat dikontrol oleh pengguna. Ada dua jenis masalah yang umum:
Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau kurang pemeriksaan, menyebabkan harga dimanipulasi secara jahat.
Menggunakan jumlah token dari alamat tertentu sebagai variabel perhitungan, di mana saldo token dari alamat tersebut dapat ditambah atau dikurangi sementara.
Serangan Reentrancy
Salah satu risiko utama dalam memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih aliran kontrol dan melakukan perubahan yang tidak terduga pada data. Misalnya:
soliditas mapping (address => uint) private userBalances;
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 diset menjadi 0 pada akhir fungsi, panggilan kedua dan seterusnya masih akan berhasil, sehingga saldo dapat ditarik berulang kali.
Untuk mengatasi masalah reentrancy, perlu diperhatikan hal-hal berikut:
Sebaiknya menggunakan praktik keamanan yang sudah matang, daripada mengulang roda. Solusi baru yang dikembangkan sendiri sering kali kurang teruji dan memiliki probabilitas masalah yang lebih tinggi.
Saran Keamanan
Saran Keamanan Proyek
Bagaimana pengguna dapat menentukan apakah kontrak pintar aman
总之,在Keuangan Desentralisasi领域,安全问题不容忽视。项目方和用户都应该提高警惕,采取必要的安全措施,共同维护Keuangan Desentralisasi生态的健康发展。