Keamanan Umum dalam Keuangan Desentralisasi dan Langkah Pencegahannya
Baru-baru ini, seorang ahli keamanan membahas tentang peristiwa keamanan besar yang dihadapi industri Web3 dalam lebih dari satu tahun terakhir di sebuah konferensi berbagi online, menganalisis penyebab terjadinya peristiwa tersebut dan bagaimana cara menghindarinya, serta merangkum kerentanan keamanan umum pada kontrak pintar dan langkah-langkah pencegahannya. Selain itu, ia memberikan beberapa saran keamanan kepada pihak proyek dan pengguna biasa.
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 pribadi, dan serangan reentrancy, antara lain. Di antara ini, pinjaman kilat, manipulasi harga, dan serangan reentrancy adalah beberapa yang paling khas.
Pinjaman Kilat
Pinjaman kilat sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi juga 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 karena dana yang sangat besar, atau digunakan untuk berinteraksi dengan beberapa fungsi dalam satu transaksi untuk mendapatkan keuntungan yang tidak sah.
Selama dua tahun terakhir, banyak proyek Keuangan Desentralisasi diserang karena masalah pinjaman kilat. Beberapa proyek memberikan hadiah berdasarkan jumlah kepemilikan dalam waktu tertentu, tetapi dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli banyak token, sehingga mendapatkan sebagian besar keuntungan saat hadiah diberikan. Selain itu, beberapa proyek yang menghitung harga berdasarkan token juga rentan terhadap pengaruh pinjaman kilat.
Manipulasi Harga
Masalah manipulasi harga sangat terkait dengan pinjaman kilat, terutama ada dua jenis:
Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau pemeriksaan hilang, mengakibatkan harga dimanipulasi secara jahat.
Menggunakan jumlah token dari alamat tertentu sebagai variabel perhitungan, sementara saldo token alamat tersebut dapat ditambah atau dikurangi secara sementara.
Serangan Reentrancy
Salah satu risiko utama dalam memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih alur kontrol dan melakukan perubahan tak terduga pada data. Contoh tipikal serangan reentrancy adalah sebagai berikut:
Karena saldo pengguna akan disetel ke 0 hanya di akhir fungsi, pemanggilan berulang masih dapat berhasil menarik saldo.
Untuk menyelesaikan masalah reentrancy, perlu diperhatikan:
Tidak hanya mencegah reentrancy dari fungsi tunggal
Mengikuti pola Checks-Effects-Interactions
Menggunakan modifier pencegah reentrancy yang teruji
Saran Keamanan Proyek
Mengikuti praktik keamanan terbaik dalam pengembangan kontrak
Mewujudkan fungsionalitas kontrak yang dapat ditingkatkan dan dijeda
Menggunakan mekanisme kunci waktu
Meningkatkan investasi keamanan, membangun sistem keamanan yang lengkap
Meningkatkan kesadaran keamanan semua karyawan
Mencegah kejahatan internal, sambil meningkatkan efisiensi dan memperkuat pengendalian risiko.
Hati-hati dalam melibatkan pihak ketiga, secara default hulu dan hilir tidak aman.
Metode Pengguna untuk Menilai Keamanan Kontrak Pintar
Pastikan kontrak bersifat open source
Periksa apakah Pemilik menggunakan multi-tanda tangan terdesentralisasi
Lihat situasi perdagangan yang ada pada kontrak
Pastikan kontrak dapat diperbarui, apakah ada kunci waktu.
Periksa apakah telah diaudit oleh beberapa lembaga, apakah hak akses Owner terlalu besar
Perhatikan penggunaan oracle
Singkatnya, keamanan DeFi adalah masalah sistemik yang memerlukan perhatian bersama dari pihak proyek dan pengguna, serta penerapan langkah-langkah keamanan yang komprehensif untuk secara efektif mengurangi risiko.
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.
Analisis Lengkap Kerentanan Keamanan Umum dalam Keuangan Desentralisasi dan Langkah-Langkah Pencegahannya
Keamanan Umum dalam Keuangan Desentralisasi dan Langkah Pencegahannya
Baru-baru ini, seorang ahli keamanan membahas tentang peristiwa keamanan besar yang dihadapi industri Web3 dalam lebih dari satu tahun terakhir di sebuah konferensi berbagi online, menganalisis penyebab terjadinya peristiwa tersebut dan bagaimana cara menghindarinya, serta merangkum kerentanan keamanan umum pada kontrak pintar dan langkah-langkah pencegahannya. Selain itu, ia memberikan beberapa saran keamanan kepada pihak proyek dan pengguna biasa.
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 pribadi, dan serangan reentrancy, antara lain. Di antara ini, pinjaman kilat, manipulasi harga, dan serangan reentrancy adalah beberapa yang paling khas.
Pinjaman Kilat
Pinjaman kilat sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi juga 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 karena dana yang sangat besar, atau digunakan untuk berinteraksi dengan beberapa fungsi dalam satu transaksi untuk mendapatkan keuntungan yang tidak sah.
Selama dua tahun terakhir, banyak proyek Keuangan Desentralisasi diserang karena masalah pinjaman kilat. Beberapa proyek memberikan hadiah berdasarkan jumlah kepemilikan dalam waktu tertentu, tetapi dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli banyak token, sehingga mendapatkan sebagian besar keuntungan saat hadiah diberikan. Selain itu, beberapa proyek yang menghitung harga berdasarkan token juga rentan terhadap pengaruh pinjaman kilat.
Manipulasi Harga
Masalah manipulasi harga sangat terkait dengan pinjaman kilat, terutama ada dua jenis:
Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau pemeriksaan hilang, mengakibatkan harga dimanipulasi secara jahat.
Menggunakan jumlah token dari alamat tertentu sebagai variabel perhitungan, sementara saldo token alamat tersebut dapat ditambah atau dikurangi secara sementara.
Serangan Reentrancy
Salah satu risiko utama dalam memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih alur kontrol dan melakukan perubahan tak terduga pada data. Contoh tipikal serangan reentrancy adalah sebagai berikut:
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 akan disetel ke 0 hanya di akhir fungsi, pemanggilan berulang masih dapat berhasil menarik saldo.
Untuk menyelesaikan masalah reentrancy, perlu diperhatikan:
Saran Keamanan Proyek
Metode Pengguna untuk Menilai Keamanan Kontrak Pintar
Singkatnya, keamanan DeFi adalah masalah sistemik yang memerlukan perhatian bersama dari pihak proyek dan pengguna, serta penerapan langkah-langkah keamanan yang komprehensif untuk secara efektif mengurangi risiko.