Analisis Umum Kerentanan Keamanan dalam Keuangan Desentralisasi dan Langkah Pencegahannya
Baru-baru ini, seorang ahli keamanan membagikan wawasan tentang keamanan DeFi kepada anggota komunitas. Dia meninjau kejadian keamanan besar yang terjadi di industri Web3 selama lebih dari setahun terakhir, membahas penyebab terjadinya peristiwa tersebut dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum dari kontrak pintar serta langkah-langkah pencegahannya, dan memberikan beberapa saran keamanan kepada proyek dan pengguna.
Jenis-jenis kerentanan yang umum ditemukan di bidang Keuangan Desentralisasi termasuk pinjaman kilat, manipulasi harga, masalah otorisasi fungsi, panggilan 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.
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 dimanfaatkan dalam satu transaksi untuk berinteraksi dengan beberapa fungsi untuk mendapatkan keuntungan yang tidak semestinya.
Selama dua tahun terakhir, pinjaman kilat telah menimbulkan banyak masalah. Beberapa proyek DeFi yang tampak memberikan imbal hasil tinggi, sebenarnya memiliki banyak risiko keamanan. Misalnya, ada proyek yang memberikan imbalan berdasarkan jumlah kepemilikan pada waktu tertentu, yang dimanfaatkan oleh penyerang untuk membeli sejumlah besar token menggunakan pinjaman kilat untuk mendapatkan sebagian besar imbalan. Ada juga beberapa proyek yang menghitung harga berdasarkan token, yang mudah dipengaruhi oleh pinjaman kilat.
Pengendalian Harga
Masalah manipulasi harga berkaitan erat dengan pinjaman kilat, terutama ada dua situasi:
Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau kurang pemeriksaan, menyebabkan harga dimanipulasi secara jahat.
Menggunakan saldo token dari alamat tertentu sebagai variabel perhitungan, di mana saldo tersebut dapat ditambah atau dikurangi sementara.
Serangan Reentrancy
Risiko utama dari memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih alur kontrol dan membuat perubahan yang tidak terduga pada data. Contoh serangan reentrancy yang umum adalah sebagai berikut:
Dalam contoh ini, karena saldo pengguna hanya diatur menjadi 0 pada akhir fungsi, penyerang dapat memanggil fungsi penarikan beberapa kali di tengah, yang menyebabkan penarikan yang berulang.
Untuk menyelesaikan masalah reentrancy, perlu diperhatikan hal-hal berikut:
Tidak hanya mencegah reentrancy dari fungsi tunggal, tetapi juga mempertimbangkan reentrancy antar fungsi dan antar kontrak.
Ikuti pola Checks-Effects-Interactions dalam pengkodean.
Gunakan modifier anti-reentrancy yang telah terverifikasi.
Penting untuk menghindari pengulangan roda, dan sebaiknya menggunakan praktik keamanan terbaik yang telah teruji dalam industri.
Saran Keamanan untuk Proyek
Mematuhi praktik keamanan terbaik dalam pengembangan kontrak pintar.
Mewujudkan fungsi kontrak yang dapat ditingkatkan dan dijeda.
Menggunakan mekanisme kunci waktu.
Meningkatkan investasi keamanan dan membangun sistem keamanan yang komprehensif.
Meningkatkan kesadaran keamanan semua karyawan.
Mencegah tindakan jahat internal, sambil meningkatkan efisiensi dan memperkuat pengendalian risiko.
Hati-hati dalam melibatkan pihak ketiga, ikuti prinsip "default hulu dan hilir tidak aman".
Bagaimana Pengguna Menilai Keamanan Kontrak Pintar
Pastikan kontrak tersebut open-source.
Periksa apakah Pemilik menggunakan mekanisme multi-tanda tangan yang terdesentralisasi.
Lihat situasi perdagangan yang sudah ada pada kontrak.
Ketahui apakah kontrak tersebut adalah kontrak perwakilan, apakah dapat ditingkatkan, dan apakah ada kunci waktu.
Pastikan kontrak telah diaudit oleh beberapa lembaga, dan evaluasi apakah hak akses Owner terlalu besar.
Perhatikan jenis dan keamanan oracle yang digunakan oleh proyek.
Singkatnya, dalam bidang Keuangan Desentralisasi, keamanan selalu merupakan faktor utama yang perlu dipertimbangkan. Pihak proyek harus secara menyeluruh meningkatkan kesadaran dan langkah-langkah keamanan, sementara pengguna perlu tetap waspada dan dengan cermat mengevaluasi keamanan proyek sebelum membuat keputusan.
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.
14 Suka
Hadiah
14
4
Posting ulang
Bagikan
Komentar
0/400
UnluckyLemur
· 08-12 15:44
Sekali lagi, itu hanya jebakan lama. Kapan kita bisa memiliki beberapa cara bermain baru?
Lihat AsliBalas0
DefiPlaybook
· 08-10 18:09
Statistik menunjukkan bahwa Pinjaman Flash masih merupakan sumber risiko terbesar, dengan proporsi mencapai 47,8%.
Lihat AsliBalas0
wrekt_but_learning
· 08-10 17:58
Kelemahan masih jebakan yang lama, tidak ada yang baru.
Lihat AsliBalas0
BoredApeResistance
· 08-10 17:46
Para suckers yang mengalami kerugian besar akhirnya mengerti?
Keamanan DeFi yang Rentan: Analisis Kerentanan Umum dan Strategi Pencegahan
Analisis Umum Kerentanan Keamanan dalam Keuangan Desentralisasi dan Langkah Pencegahannya
Baru-baru ini, seorang ahli keamanan membagikan wawasan tentang keamanan DeFi kepada anggota komunitas. Dia meninjau kejadian keamanan besar yang terjadi di industri Web3 selama lebih dari setahun terakhir, membahas penyebab terjadinya peristiwa tersebut dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum dari kontrak pintar serta langkah-langkah pencegahannya, dan memberikan beberapa saran keamanan kepada proyek dan pengguna.
Jenis-jenis kerentanan yang umum ditemukan di bidang Keuangan Desentralisasi termasuk pinjaman kilat, manipulasi harga, masalah otorisasi fungsi, panggilan 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.
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 dimanfaatkan dalam satu transaksi untuk berinteraksi dengan beberapa fungsi untuk mendapatkan keuntungan yang tidak semestinya.
Selama dua tahun terakhir, pinjaman kilat telah menimbulkan banyak masalah. Beberapa proyek DeFi yang tampak memberikan imbal hasil tinggi, sebenarnya memiliki banyak risiko keamanan. Misalnya, ada proyek yang memberikan imbalan berdasarkan jumlah kepemilikan pada waktu tertentu, yang dimanfaatkan oleh penyerang untuk membeli sejumlah besar token menggunakan pinjaman kilat untuk mendapatkan sebagian besar imbalan. Ada juga beberapa proyek yang menghitung harga berdasarkan token, yang mudah dipengaruhi oleh pinjaman kilat.
Pengendalian Harga
Masalah manipulasi harga berkaitan erat dengan pinjaman kilat, terutama ada dua situasi:
Serangan Reentrancy
Risiko utama dari memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih alur kontrol dan membuat perubahan yang tidak terduga pada data. Contoh serangan reentrancy yang umum adalah sebagai berikut:
solidity 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; }
Dalam contoh ini, karena saldo pengguna hanya diatur menjadi 0 pada akhir fungsi, penyerang dapat memanggil fungsi penarikan beberapa kali di tengah, yang menyebabkan penarikan yang berulang.
Untuk menyelesaikan masalah reentrancy, perlu diperhatikan hal-hal berikut:
Penting untuk menghindari pengulangan roda, dan sebaiknya menggunakan praktik keamanan terbaik yang telah teruji dalam industri.
Saran Keamanan untuk Proyek
Bagaimana Pengguna Menilai Keamanan Kontrak Pintar
Singkatnya, dalam bidang Keuangan Desentralisasi, keamanan selalu merupakan faktor utama yang perlu dipertimbangkan. Pihak proyek harus secara menyeluruh meningkatkan kesadaran dan langkah-langkah keamanan, sementara pengguna perlu tetap waspada dan dengan cermat mengevaluasi keamanan proyek sebelum membuat keputusan.