Keamanan Keuangan Desentralisasi: Jenis Kerentanan Umum dan Langkah-Langkah Pencegahan
Baru-baru ini, seorang ahli keamanan berbagi pelajaran tentang keamanan DeFi kepada anggota komunitas. Dia meninjau kejadian keamanan besar yang dialami industri Web3 selama lebih dari satu tahun terakhir, membahas penyebab terjadinya kejadian-kejadian ini dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum pada kontrak pintar serta langkah-langkah pencegahannya, dan memberikan beberapa saran keamanan kepada pengembang proyek dan pengguna biasa.
Jenis-jenis kerentanan DeFi yang umum meliputi pinjaman kilat, manipulasi harga, masalah hak akses fungsi, pemanggilan 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 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 besar, atau dimanfaatkan dalam satu transaksi untuk berinteraksi dengan beberapa fungsi untuk mendapatkan imbalan yang tidak semestinya.
Banyak proyek Keuangan Desentralisasi tampak memiliki imbal hasil yang tinggi, namun pada kenyataannya, tingkat kemampuan tim proyek sangat bervariasi. Meskipun kode itu sendiri tidak memiliki kerentanan, secara logika masih mungkin ada masalah. Misalnya, beberapa proyek akan memberikan imbalan berdasarkan jumlah token yang dimiliki pemegang pada waktu tertentu, tetapi dapat dieksploitasi oleh penyerang dengan memanfaatkan pinjaman kilat untuk membeli sejumlah besar token, sehingga mendapatkan sebagian besar imbalan saat imbalan diberikan.
Manipulasi Harga
Masalah manipulasi harga erat kaitannya dengan pinjaman kilat, terutama karena beberapa parameter yang digunakan dalam perhitungan harga dapat dikontrol oleh pengguna. Ada dua jenis masalah yang umum terjadi:
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, di mana saldo Token dari alamat tersebut dapat ditambahkan atau dikurangi secara sementara.
Serangan Reentrancy
Salah satu risiko utama dari memanggil kontrak eksternal adalah mereka dapat mengambil alih aliran kontrol dan melakukan perubahan yang tidak terduga pada data. Contoh klasik dari serangan reentrancy adalah, dalam fungsi penarikan, saldo pengguna baru disetel ke 0 di akhir fungsi, yang memungkinkan pemanggilan berulang untuk tetap berhasil melakukan penarikan.
Untuk menyelesaikan masalah reentrancy, perlu diperhatikan hal-hal berikut:
Tidak hanya harus mencegah masalah reentrancy dari fungsi tunggal
Mengikuti pola Checks-Effects-Interactions dalam pengkodean
Menggunakan modifier pencegah reentrancy yang telah teruji oleh waktu
Dalam praktik keamanan, sebaiknya menggunakan solusi matang yang telah terverifikasi dengan baik, daripada menciptakan roda yang sama.
Saran Keamanan untuk Proyek
Mengikuti praktik keamanan terbaik dalam pengembangan kontrak
Mewujudkan fungsi kontrak yang dapat diperbarui dan dijeda
Menggunakan mekanisme kunci waktu
Meningkatkan investasi dalam keamanan, membangun sistem keamanan yang lengkap
Meningkatkan kesadaran keamanan semua karyawan
Mencegah tindakan jahat internal, sambil meningkatkan efisiensi dan memperkuat manajemen risiko
Hati-hati dalam memasukkan komponen pihak ketiga, pastikan keamanannya
Bagaimana Pengguna Menilai Keamanan Kontrak Pintar
Konfirmasi apakah kontrak bersifat sumber terbuka
Periksa apakah Pemilik menggunakan mekanisme multi-tanda tangan yang terdesentralisasi
Lihat situasi transaksi yang sudah ada pada kontrak
Konfirmasi apakah kontrak adalah kontrak perwakilan, apakah dapat diupgrade, apakah memiliki kunci waktu
Periksa apakah kontrak telah diaudit oleh beberapa lembaga, apakah hak pemilik terlalu besar.
Perhatikan penggunaan oracle, utamakan memilih oracle yang memiliki reputasi tinggi.
Dengan memperhatikan poin-poin di atas, pengguna dapat lebih baik menilai keamanan suatu proyek Keuangan Desentralisasi, sehingga dapat membuat keputusan investasi yang lebih bijaksana.
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.
10 Suka
Hadiah
10
4
Bagikan
Komentar
0/400
MidnightSeller
· 5jam yang lalu
Lagi melakukan audit, tim proyek bisa mendengarnya?
Lihat AsliBalas0
UncommonNPC
· 07-22 05:57
Tetap banyak metode serangan...
Lihat AsliBalas0
NeverPresent
· 07-22 05:54
Sekali lagi membahas audit, sama saja dengan tidak mengatakan apa-apa.
Panduan Lengkap Keamanan DeFi: Analisis Kedalaman Kerentanan Umum dan Strategi Pencegahan
Keamanan Keuangan Desentralisasi: Jenis Kerentanan Umum dan Langkah-Langkah Pencegahan
Baru-baru ini, seorang ahli keamanan berbagi pelajaran tentang keamanan DeFi kepada anggota komunitas. Dia meninjau kejadian keamanan besar yang dialami industri Web3 selama lebih dari satu tahun terakhir, membahas penyebab terjadinya kejadian-kejadian ini dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum pada kontrak pintar serta langkah-langkah pencegahannya, dan memberikan beberapa saran keamanan kepada pengembang proyek dan pengguna biasa.
Jenis-jenis kerentanan DeFi yang umum meliputi pinjaman kilat, manipulasi harga, masalah hak akses fungsi, pemanggilan 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 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 besar, atau dimanfaatkan dalam satu transaksi untuk berinteraksi dengan beberapa fungsi untuk mendapatkan imbalan yang tidak semestinya.
Banyak proyek Keuangan Desentralisasi tampak memiliki imbal hasil yang tinggi, namun pada kenyataannya, tingkat kemampuan tim proyek sangat bervariasi. Meskipun kode itu sendiri tidak memiliki kerentanan, secara logika masih mungkin ada masalah. Misalnya, beberapa proyek akan memberikan imbalan berdasarkan jumlah token yang dimiliki pemegang pada waktu tertentu, tetapi dapat dieksploitasi oleh penyerang dengan memanfaatkan pinjaman kilat untuk membeli sejumlah besar token, sehingga mendapatkan sebagian besar imbalan saat imbalan diberikan.
Manipulasi Harga
Masalah manipulasi harga erat kaitannya dengan pinjaman kilat, terutama karena beberapa parameter yang digunakan dalam perhitungan harga dapat dikontrol oleh pengguna. Ada dua jenis masalah yang umum terjadi:
Serangan Reentrancy
Salah satu risiko utama dari memanggil kontrak eksternal adalah mereka dapat mengambil alih aliran kontrol dan melakukan perubahan yang tidak terduga pada data. Contoh klasik dari serangan reentrancy adalah, dalam fungsi penarikan, saldo pengguna baru disetel ke 0 di akhir fungsi, yang memungkinkan pemanggilan berulang untuk tetap berhasil melakukan penarikan.
Untuk menyelesaikan masalah reentrancy, perlu diperhatikan hal-hal berikut:
Dalam praktik keamanan, sebaiknya menggunakan solusi matang yang telah terverifikasi dengan baik, daripada menciptakan roda yang sama.
Saran Keamanan untuk Proyek
Bagaimana Pengguna Menilai Keamanan Kontrak Pintar
Dengan memperhatikan poin-poin di atas, pengguna dapat lebih baik menilai keamanan suatu proyek Keuangan Desentralisasi, sehingga dapat membuat keputusan investasi yang lebih bijaksana.