Keamanan Umum dalam Keuangan Desentralisasi dan Langkah-Langkah Pencegahannya
Baru-baru ini, seorang ahli keamanan berbagi kursus keamanan DeFi untuk anggota komunitas. Dia meninjau peristiwa keamanan besar yang dialami industri Web3 selama lebih dari setahun terakhir, mendiskusikan penyebab terjadinya peristiwa tersebut dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum dalam kontrak pintar dan langkah-langkah pencegahannya, serta memberikan beberapa saran keamanan untuk pihak 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 pribadi, dan serangan reentrancy. Artikel ini akan fokus pada tiga jenis tersebut yaitu 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 dieksploitasi untuk mendapatkan imbalan yang tidak semestinya.
Beberapa proyek tidak mempertimbangkan dampak pinjaman kilat saat merancang, yang mengakibatkan pencurian dana
Selama dua tahun terakhir, pinjaman kilat telah menimbulkan banyak masalah. Beberapa proyek DeFi dengan imbal hasil tinggi memiliki tingkat pengembangan yang bervariasi dan terdapat banyak celah. Misalnya, ada proyek yang memberikan hadiah berdasarkan kepemilikan pada waktu tertentu, yang dieksploitasi oleh penyerang dengan memanfaatkan pinjaman kilat untuk membeli sejumlah besar token dan mendapatkan sebagian besar hadiah. Selain itu, beberapa proyek yang menghitung harga melalui Token dapat dipengaruhi oleh pinjaman kilat. Tim proyek harus tetap waspada terhadap masalah ini.
Pengendalian Harga
Masalah manipulasi harga terkait erat dengan pinjaman kilat, terutama ada dua jenis:
Menggunakan data pihak ketiga untuk menghitung harga, tetapi penggunaan yang tidak tepat atau kurangnya pemeriksaan menyebabkan harga dikendalikan secara jahat.
Menggunakan saldo Token dari alamat tertentu sebagai variabel perhitungan, dan saldo ini dapat ditambah atau dikurangi sementara.
Serangan Reentrancy
Risiko utama dari memanggil kontrak eksternal adalah bahwa mereka bisa mengambil alih alur kontrol, melakukan modifikasi yang tidak terduga pada data. Misalnya:
Karena saldo pengguna baru akan dihapus pada akhir fungsi, pemanggilan ulang masih akan berhasil menarik saldo.
Berbagai bentuk serangan reentrancy dapat melibatkan beberapa fungsi atau kontrak. Untuk mengatasi masalah reentrancy, perlu diperhatikan:
Tidak hanya mencegah reentrancy dari satu fungsi
Mengikuti pola Checks-Effects-Interactions
Gunakan modifier anti-reentrancy yang telah terverifikasi
Sebaiknya menggunakan praktik keamanan terbaik yang sudah ada, daripada mengulang roda. Solusi yang sudah matang lebih aman dan dapat diandalkan dibandingkan dengan pengembangan solusi baru.
Saran Keamanan untuk Pihak 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 sempurna
Meningkatkan kesadaran keamanan semua karyawan
Mencegah kejahatan internal, sekaligus meningkatkan efisiensi dan memperkuat manajemen risiko.
Hati-hati dalam melibatkan pihak ketiga, lakukan pemeriksaan keamanan dengan baik
Bagaimana Pengguna Menilai Keamanan Kontrak Pintar
Pastikan kontrak tersebut bersifat sumber terbuka
Periksa apakah Pemilik menggunakan multi-tanda tangan terdesentralisasi
Lihat situasi perdagangan yang sudah ada pada kontrak
Menentukan apakah kontrak dapat ditingkatkan, apakah ada kunci waktu
Pastikan kontrak telah diaudit oleh beberapa institusi, apakah hak akses Owner terlalu besar.
Perhatikan penggunaan oracle
Singkatnya, dalam ekosistem Keuangan Desentralisasi, pihak proyek dan pengguna perlu mempertahankan kesadaran keamanan yang tinggi, mengambil langkah-langkah pencegahan yang diperlukan, dan bersama-sama menjaga perkembangan sehat ekosistem.
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.
16 Suka
Hadiah
16
3
Bagikan
Komentar
0/400
ImpermanentPhobia
· 11jam yang lalu
Hacker dan Pinjaman Flash, benar-benar mendebarkan
Keamanan DeFi: Panduan pencegahan Pinjaman Flash, manipulasi harga, dan serangan reentrancy
Keamanan Umum dalam Keuangan Desentralisasi dan Langkah-Langkah Pencegahannya
Baru-baru ini, seorang ahli keamanan berbagi kursus keamanan DeFi untuk anggota komunitas. Dia meninjau peristiwa keamanan besar yang dialami industri Web3 selama lebih dari setahun terakhir, mendiskusikan penyebab terjadinya peristiwa tersebut dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum dalam kontrak pintar dan langkah-langkah pencegahannya, serta memberikan beberapa saran keamanan untuk pihak 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 pribadi, dan serangan reentrancy. Artikel ini akan fokus pada tiga jenis tersebut yaitu pinjaman kilat, manipulasi harga, dan serangan reentrancy.
Pinjaman Kilat
Pinjaman kilat adalah inovasi dalam Keuangan Desentralisasi, tetapi sering dimanfaatkan oleh peretas:
Selama dua tahun terakhir, pinjaman kilat telah menimbulkan banyak masalah. Beberapa proyek DeFi dengan imbal hasil tinggi memiliki tingkat pengembangan yang bervariasi dan terdapat banyak celah. Misalnya, ada proyek yang memberikan hadiah berdasarkan kepemilikan pada waktu tertentu, yang dieksploitasi oleh penyerang dengan memanfaatkan pinjaman kilat untuk membeli sejumlah besar token dan mendapatkan sebagian besar hadiah. Selain itu, beberapa proyek yang menghitung harga melalui Token dapat dipengaruhi oleh pinjaman kilat. Tim proyek harus tetap waspada terhadap masalah ini.
Pengendalian Harga
Masalah manipulasi harga terkait erat dengan pinjaman kilat, terutama ada dua jenis:
Menggunakan data pihak ketiga untuk menghitung harga, tetapi penggunaan yang tidak tepat atau kurangnya pemeriksaan menyebabkan harga dikendalikan secara jahat.
Menggunakan saldo Token dari alamat tertentu sebagai variabel perhitungan, dan saldo ini dapat ditambah atau dikurangi sementara.
Serangan Reentrancy
Risiko utama dari memanggil kontrak eksternal adalah bahwa mereka bisa mengambil alih alur kontrol, melakukan modifikasi yang tidak terduga pada data. Misalnya:
solidity pemetaan (alamat => uint) saldoPenggunaPrivat;
fungsi withdrawBalance() publik { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }
Karena saldo pengguna baru akan dihapus pada akhir fungsi, pemanggilan ulang masih akan berhasil menarik saldo.
Berbagai bentuk serangan reentrancy dapat melibatkan beberapa fungsi atau kontrak. Untuk mengatasi masalah reentrancy, perlu diperhatikan:
Sebaiknya menggunakan praktik keamanan terbaik yang sudah ada, daripada mengulang roda. Solusi yang sudah matang lebih aman dan dapat diandalkan dibandingkan dengan pengembangan solusi baru.
Saran Keamanan untuk Pihak Proyek
Bagaimana Pengguna Menilai Keamanan Kontrak Pintar
Singkatnya, dalam ekosistem Keuangan Desentralisasi, pihak proyek dan pengguna perlu mempertahankan kesadaran keamanan yang tinggi, mengambil langkah-langkah pencegahan yang diperlukan, dan bersama-sama menjaga perkembangan sehat ekosistem.