Baru-baru ini, seorang ahli keamanan membagikan pelajaran keamanan DeFi kepada anggota komunitas. Dia meninjau kejadian keamanan besar yang baru-baru ini dialami oleh industri Web3, membahas penyebab dari kejadian-kejadian tersebut serta cara untuk menghindarinya, merangkum celah keamanan umum dalam kontrak pintar dan langkah-langkah pencegahannya, serta memberikan beberapa saran keamanan untuk pengembang proyek dan pengguna.
Jenis kerentanan DeFi yang umum termasuk pinjaman kilat, manipulasi harga, masalah hak akses fungsi, panggilan eksternal sembarangan, masalah fungsi fallback, kerentanan logika bisnis, kebocoran kunci pribadi, serangan reentrancy, dan lain-lain. Berikut ini akan dibahas secara khusus tentang pinjaman kilat, manipulasi harga, dan serangan reentrancy.
Pinjaman Kilat
Pinjaman kilat sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi dapat menyebabkan kerugian besar ketika dimanfaatkan oleh peretas:
Penyerang meminjam sejumlah besar dana melalui pinjaman kilat, memanipulasi harga atau menyerang logika bisnis
Pengembang perlu mempertimbangkan apakah fungsi kontrak akan mengalami anomali karena dana besar.
Beberapa proyek menggunakan jumlah Token untuk menghitung hadiah, atau menggunakan jumlah Token dalam pasangan perdagangan DEX untuk berpartisipasi dalam perhitungan, variabel ini mudah dimanipulasi oleh pinjaman kilat.
Selama dua tahun terakhir, banyak proyek DeFi dengan imbal hasil tinggi mengalami serangan pinjaman kilat karena masalah kode atau logika. Misalnya, beberapa proyek memberikan imbalan berdasarkan jumlah kepemilikan pada waktu tertentu, dan penyerang memanfaatkan pinjaman kilat untuk membeli sejumlah besar token dan mendapatkan sebagian besar imbalan.
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.
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 dapat mengambil alih alur kontrol dan melakukan perubahan yang tidak terduga pada data. Contohnya:
Karena saldo pengguna hanya akan direset di akhir fungsi, pemanggilan ulang masih akan berhasil menarik saldo.
Untuk menyelesaikan masalah reentry perlu diperhatikan:
Tidak hanya mencegah reentrancy fungsi tunggal
Mengikuti pola Checks-Effects-Interactions
Menggunakan modifier pencegah reentrancy yang terverifikasi
Serangan reentrancy memiliki berbagai bentuk, dan mungkin melibatkan beberapa fungsi atau kontrak. Disarankan untuk menggunakan praktik keamanan yang matang, dan menghindari menciptakan roda yang sama.
Saran Keamanan
Saran Keamanan Proyek
Mengikuti praktik keamanan terbaik dalam pengembangan kontrak
Mewujudkan kontrak yang dapat ditingkatkan dan dapat dijeda
Menggunakan mekanisme kunci waktu
Meningkatkan investasi keamanan, membangun sistem keamanan yang sempurna
Meningkatkan kesadaran keamanan semua karyawan
Mencegah kejahatan internal, sambil meningkatkan efisiensi dan memperkuat pengendalian risiko
Hati-hati dalam melibatkan pihak ketiga, secara default baik hulu maupun hilir tidak aman
pengguna menilai keamanan kontrak pintar
Apakah kontrak bersifat sumber terbuka?
Apakah Pemilik menggunakan multi-tanda tangan yang terdesentralisasi?
Periksa situasi transaksi yang sudah ada pada kontrak
Apakah kontrak dapat ditingkatkan, apakah ada kunci waktu
Apakah kontrak menerima audit dari beberapa lembaga, apakah hak akses Owner terlalu besar
Perhatikan keandalan oracle
Singkatnya, di bidang Keuangan Desentralisasi, risiko keamanan sangat banyak, baik pihak proyek maupun pengguna perlu meningkatkan kewaspadaan, mengambil langkah perlindungan ganda, dan bersama-sama memelihara keamanan 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.
19 Suka
Hadiah
19
4
Bagikan
Komentar
0/400
TokenCreatorOP
· 07-28 02:54
Seandainya saya tahu lebih awal, USDT saya sudah hilang.
Lihat AsliBalas0
RooftopReserver
· 07-28 02:53
Sekali lagi ada suckers yang ingin naik ke atap.
Lihat AsliBalas0
consensus_failure
· 07-28 02:53
Sekali lagi memainkan skenario ingin jebakan Rug Pull~
Keamanan DeFi: Panduan Pencegahan Pinjaman Flash, Manipulasi Harga, dan Serangan Reentrancy
Keamanan DeFi dan Langkah Pencegahan
Baru-baru ini, seorang ahli keamanan membagikan pelajaran keamanan DeFi kepada anggota komunitas. Dia meninjau kejadian keamanan besar yang baru-baru ini dialami oleh industri Web3, membahas penyebab dari kejadian-kejadian tersebut serta cara untuk menghindarinya, merangkum celah keamanan umum dalam kontrak pintar dan langkah-langkah pencegahannya, serta memberikan beberapa saran keamanan untuk pengembang proyek dan pengguna.
Jenis kerentanan DeFi yang umum termasuk pinjaman kilat, manipulasi harga, masalah hak akses fungsi, panggilan eksternal sembarangan, masalah fungsi fallback, kerentanan logika bisnis, kebocoran kunci pribadi, serangan reentrancy, dan lain-lain. Berikut ini akan dibahas secara khusus tentang pinjaman kilat, manipulasi harga, dan serangan reentrancy.
Pinjaman Kilat
Pinjaman kilat sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi dapat menyebabkan kerugian besar ketika dimanfaatkan oleh peretas:
Selama dua tahun terakhir, banyak proyek DeFi dengan imbal hasil tinggi mengalami serangan pinjaman kilat karena masalah kode atau logika. Misalnya, beberapa proyek memberikan imbalan berdasarkan jumlah kepemilikan pada waktu tertentu, dan penyerang memanfaatkan pinjaman kilat untuk membeli sejumlah besar token dan mendapatkan sebagian besar imbalan.
Manipulasi Harga
Masalah manipulasi harga sangat terkait dengan pinjaman kilat, terutama ada dua jenis:
Serangan Reentrancy
Risiko utama dari memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih alur kontrol dan melakukan perubahan yang tidak terduga pada data. Contohnya:
solidity pemetaan (alamat => uint) saldoPenggunaPribadi;
fungsi tarikSaldo() publik { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }
Karena saldo pengguna hanya akan direset di akhir fungsi, pemanggilan ulang masih akan berhasil menarik saldo.
Untuk menyelesaikan masalah reentry perlu diperhatikan:
Serangan reentrancy memiliki berbagai bentuk, dan mungkin melibatkan beberapa fungsi atau kontrak. Disarankan untuk menggunakan praktik keamanan yang matang, dan menghindari menciptakan roda yang sama.
Saran Keamanan
Saran Keamanan Proyek
pengguna menilai keamanan kontrak pintar
Singkatnya, di bidang Keuangan Desentralisasi, risiko keamanan sangat banyak, baik pihak proyek maupun pengguna perlu meningkatkan kewaspadaan, mengambil langkah perlindungan ganda, dan bersama-sama memelihara keamanan ekosistem.