Keuangan Desentralisasi Kerentanan Keamanan Umum dan Langkah Pencegahannya
Baru-baru ini, seorang ahli keamanan membagikan kursus keamanan DeFi kepada anggota komunitas. Ahli tersebut meninjau kejadian-kejadian keamanan signifikan yang dialami industri Web3 selama lebih dari setahun terakhir, serta membahas secara mendalam penyebab terjadinya kejadian-kejadian tersebut dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum pada kontrak pintar dan langkah-langkah pencegahannya, 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 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 biasanya 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 sangat besar, atau dimanfaatkan dalam satu transaksi untuk berinteraksi dengan beberapa fungsi untuk mendapatkan imbalan yang tidak sah.
Banyak proyek DeFi tampaknya memiliki imbal hasil yang tinggi, tetapi sebenarnya tingkat keahlian tim proyek sangat bervariasi. Beberapa kode proyek mungkin dibeli, meskipun kode itu sendiri tidak memiliki celah, secara logis masih mungkin ada masalah. Misalnya, beberapa proyek memberikan hadiah pada waktu tertentu berdasarkan jumlah token yang dimiliki oleh pemegang, tetapi dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli sejumlah besar token, sehingga sebagian besar hadiah mengalir ke penyerang.
Pengendalian Harga
Masalah manipulasi harga berkaitan erat dengan pinjaman kilat, terutama karena beberapa parameter dalam perhitungan harga dapat dikendalikan oleh pengguna. Terdapat dua jenis masalah yang umum:
Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau pemeriksaan hilang, menyebabkan harga dimanipulasi secara jahat.
Menggunakan jumlah token pada alamat tertentu sebagai variabel perhitungan, di mana saldo token pada alamat tersebut dapat ditambahkan atau dikurangi secara sementara.
Serangan Reentrancy
Salah satu risiko utama dari pemanggilan kontrak eksternal adalah bahwa mereka dapat mengambil alih aliran kontrol dan melakukan perubahan yang tidak terduga pada data. Contoh klasik dari serangan reentrancy adalah dalam fungsi penarikan, di mana saldo pengguna hanya diatur menjadi 0 di akhir fungsi, sehingga memungkinkan beberapa panggilan untuk berhasil melakukan penarikan.
Untuk berbagai kontrak, metode serangan reentrancy bervariasi dan mungkin melibatkan beberapa fungsi berbeda atau beberapa kontrak. Saat 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 dekorator anti-reentrancy yang telah teruji waktu
Perlu dicatat bahwa mengulang roda sering kali berbahaya. Di dalam lingkaran Web3, sudah ada banyak praktik keamanan terbaik, mengadopsi solusi yang sudah matang ini jauh lebih aman daripada mengembangkan sendiri.
Saran Keamanan
Saran Keamanan Proyek
Mengikuti praktik keamanan terbaik dalam pengembangan kontrak
Mewujudkan fungsi 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 memperkenalkan komponen pihak ketiga, ikuti prinsip "default upstream dan downstream tidak aman".
Bagaimana pengguna/LP menilai apakah kontrak pintar aman
Pastikan kontrak bersifat open source
Periksa apakah Pemilik menggunakan mekanisme multi-tanda tangan yang terdesentralisasi
Lihat keadaan transaksi yang telah ada dalam kontrak
Memahami apakah kontrak tersebut adalah kontrak agen, 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 keandalan oracle yang digunakan proyek
Dalam lingkungan Web3, kesadaran akan keamanan sangat penting. Pengguna harus berpikir lebih banyak dan tetap waspada untuk menghindari risiko keamanan yang potensial. Terutama ketika kondisi pasar tidak baik, lebih penting untuk waspada terhadap berbagai kemungkinan tindakan penipuan.
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
6
Bagikan
Komentar
0/400
SelfRugger
· 07-31 13:56
Jadi datang lagi untuk Dianggap Bodoh ya, hodl saja sudah cukup.
Lihat AsliBalas0
FlashLoanKing
· 07-31 11:16
又见Pinjaman Flash yyds
Lihat AsliBalas0
GovernancePretender
· 07-31 11:14
Melakukan perlindungan keamanan juga tidak bisa menyelamatkan nasib para suckers.
Lihat AsliBalas0
LiquidatorFlash
· 07-31 11:13
Harga fluktuasi 0,3% sudah harus ada manajemen risiko Jangan tunggu sampai 99,99% dilikuidasi
Lihat AsliBalas0
MEVHunterBearish
· 07-31 11:10
Panduan Harian untuk Terjebak dalam Penipuan
Lihat AsliBalas0
rug_connoisseur
· 07-31 11:04
Menulis begitu banyak tetap sama saja, bukankah ini hanya diulang?
Keamanan DeFi: Panduan Pencegahan untuk Pinjaman Flash, Manipulasi Harga, dan Serangan Re-entrancy
Keuangan Desentralisasi Kerentanan Keamanan Umum dan Langkah Pencegahannya
Baru-baru ini, seorang ahli keamanan membagikan kursus keamanan DeFi kepada anggota komunitas. Ahli tersebut meninjau kejadian-kejadian keamanan signifikan yang dialami industri Web3 selama lebih dari setahun terakhir, serta membahas secara mendalam penyebab terjadinya kejadian-kejadian tersebut dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum pada kontrak pintar dan langkah-langkah pencegahannya, 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 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 biasanya 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 sangat besar, atau dimanfaatkan dalam satu transaksi untuk berinteraksi dengan beberapa fungsi untuk mendapatkan imbalan yang tidak sah.
Banyak proyek DeFi tampaknya memiliki imbal hasil yang tinggi, tetapi sebenarnya tingkat keahlian tim proyek sangat bervariasi. Beberapa kode proyek mungkin dibeli, meskipun kode itu sendiri tidak memiliki celah, secara logis masih mungkin ada masalah. Misalnya, beberapa proyek memberikan hadiah pada waktu tertentu berdasarkan jumlah token yang dimiliki oleh pemegang, tetapi dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli sejumlah besar token, sehingga sebagian besar hadiah mengalir ke penyerang.
Pengendalian Harga
Masalah manipulasi harga berkaitan erat dengan pinjaman kilat, terutama karena beberapa parameter dalam perhitungan harga dapat dikendalikan oleh pengguna. Terdapat dua jenis masalah yang umum:
Serangan Reentrancy
Salah satu risiko utama dari pemanggilan kontrak eksternal adalah bahwa mereka dapat mengambil alih aliran kontrol dan melakukan perubahan yang tidak terduga pada data. Contoh klasik dari serangan reentrancy adalah dalam fungsi penarikan, di mana saldo pengguna hanya diatur menjadi 0 di akhir fungsi, sehingga memungkinkan beberapa panggilan untuk berhasil melakukan penarikan.
Untuk berbagai kontrak, metode serangan reentrancy bervariasi dan mungkin melibatkan beberapa fungsi berbeda atau beberapa kontrak. Saat menyelesaikan masalah reentrancy, perlu diperhatikan hal-hal berikut:
Perlu dicatat bahwa mengulang roda sering kali berbahaya. Di dalam lingkaran Web3, sudah ada banyak praktik keamanan terbaik, mengadopsi solusi yang sudah matang ini jauh lebih aman daripada mengembangkan sendiri.
Saran Keamanan
Saran Keamanan Proyek
Bagaimana pengguna/LP menilai apakah kontrak pintar aman
Dalam lingkungan Web3, kesadaran akan keamanan sangat penting. Pengguna harus berpikir lebih banyak dan tetap waspada untuk menghindari risiko keamanan yang potensial. Terutama ketika kondisi pasar tidak baik, lebih penting untuk waspada terhadap berbagai kemungkinan tindakan penipuan.