Belakangan ini, seorang ahli keamanan membagikan kursus keamanan DeFi untuk komunitas. Ahli tersebut meninjau kejadian keamanan besar yang dihadapi industri Web3 selama setahun terakhir, membahas penyebab kejadian tersebut dan bagaimana cara menghindarinya, merangkum celah keamanan kontrak pintar yang umum serta langkah pencegahannya, dan memberikan beberapa saran keamanan untuk pengembang proyek dan pengguna.
Jenis-jenis kerentanan DeFi yang umum termasuk 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 dimanfaatkan oleh peretas untuk melakukan serangan. 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 dimanfaatkan untuk mendapatkan imbalan yang tidak semestinya.
Banyak proyek Keuangan Desentralisasi rentan terhadap serangan pinjaman kilat karena masalah kode atau logika. Misalnya, beberapa proyek memberikan hadiah berdasarkan kepemilikan dalam waktu tetap, namun dapat dimanfaatkan oleh penyerang yang menggunakan pinjaman kilat untuk membeli sejumlah besar token dan mendapatkan sebagian besar hadiah. Ada juga proyek yang menghitung harga melalui Token, yang juga bisa terpengaruh oleh pinjaman kilat. Pihak proyek harus tetap waspada terhadap masalah ini.
Pengendalian Harga
Masalah manipulasi harga sangat terkait dengan pinjaman kilat, terutama ada dua situasi:
Menghitung harga menggunakan data pihak ketiga, 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-alamat 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 diinginkan pada data. Contohnya:
Karena saldo pengguna diatur menjadi 0 hanya di akhir fungsi, pemanggilan ulang masih akan berhasil, sehingga saldo dapat ditarik beberapa kali.
Berbagai bentuk serangan reentrancy dapat melibatkan fungsi yang berbeda dari kontrak tunggal atau fungsi dari beberapa kontrak. Untuk menyelesaikan masalah reentrancy, perlu diperhatikan:
Tidak hanya mencegah reentrancy dari satu fungsi
Mengkode sesuai pola Checks-Effects-Interactions
Gunakan modifier anti-reentrancy yang telah terverifikasi
Disarankan untuk menggunakan praktik keamanan yang matang, hindari membuat roda yang sama. Solusi baru yang dikembangkan sendiri kurang divalidasi secara memadai, sehingga probabilitas munculnya masalah cukup tinggi.
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 tindakan jahat internal, sambil meningkatkan efisiensi dan memperkuat manajemen risiko.
Hati-hati dalam memperkenalkan ketergantungan pihak ketiga, secara default hilir dan hulu tidak aman
Bagaimana pengguna menentukan keamanan kontrak pintar
Apakah kontrak tersebut bersifat sumber terbuka
Apakah Pemilik menggunakan multi-tanda tangan terdesentralisasi
Periksa situasi transaksi yang sudah ada dalam kontrak
Apakah kontrak dapat diupgrade, apakah ada penguncian waktu
Apakah menerima audit dari banyak lembaga, apakah hak akses Owner terlalu besar
Perhatikan keandalan oracle
Total, pihak proyek dan pengguna harus meningkatkan kesadaran keamanan, mengambil langkah-langkah yang diperlukan untuk mengurangi risiko keamanan Keuangan Desentralisasi.
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.
7 Suka
Hadiah
7
7
Bagikan
Komentar
0/400
RugResistant
· 23jam yang lalu
Sekali lagi ada yang datang dengan nama pencegahan untuk play people for suckers.
Lihat AsliBalas0
ChainDoctor
· 23jam yang lalu
Lagi-lagi Pinjaman Flash yang disalahkan, tsk tsk
Lihat AsliBalas0
PessimisticOracle
· 23jam yang lalu
Di balik celah selalu ada godaan keuntungan besar.
Lihat AsliBalas0
ParallelChainMaxi
· 23jam yang lalu
Banyak celah, hati-hati ya semua.
Lihat AsliBalas0
TokenGuru
· 23jam yang lalu
Penambangan periode telah melihat celah lama, jangan anggap remeh ya.
Lihat AsliBalas0
Anon4461
· 23jam yang lalu
Jangan pamer, sepertinya setiap orang memiliki celah.
Lihat AsliBalas0
RektCoaster
· 23jam yang lalu
Ikan mati jaring putus tidak akan kalah dari mei orang dan wei ruan
Analisis Tiga Risiko Keamanan DeFi: Pinjaman Flash, Manipulasi Harga, dan Serangan Re-Entrancy
Keamanan DeFi dan Langkah Pencegahan
Belakangan ini, seorang ahli keamanan membagikan kursus keamanan DeFi untuk komunitas. Ahli tersebut meninjau kejadian keamanan besar yang dihadapi industri Web3 selama setahun terakhir, membahas penyebab kejadian tersebut dan bagaimana cara menghindarinya, merangkum celah keamanan kontrak pintar yang umum serta langkah pencegahannya, dan memberikan beberapa saran keamanan untuk pengembang proyek dan pengguna.
Jenis-jenis kerentanan DeFi yang umum termasuk 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 dimanfaatkan oleh peretas untuk melakukan serangan. 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 dimanfaatkan untuk mendapatkan imbalan yang tidak semestinya.
Banyak proyek Keuangan Desentralisasi rentan terhadap serangan pinjaman kilat karena masalah kode atau logika. Misalnya, beberapa proyek memberikan hadiah berdasarkan kepemilikan dalam waktu tetap, namun dapat dimanfaatkan oleh penyerang yang menggunakan pinjaman kilat untuk membeli sejumlah besar token dan mendapatkan sebagian besar hadiah. Ada juga proyek yang menghitung harga melalui Token, yang juga bisa terpengaruh oleh pinjaman kilat. Pihak proyek harus tetap waspada terhadap masalah ini.
Pengendalian Harga
Masalah manipulasi harga sangat terkait dengan pinjaman kilat, terutama ada dua situasi:
Menghitung harga menggunakan data pihak ketiga, 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-alamat 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 diinginkan pada data. Contohnya:
solidity pemetaan (alamat => uint) saldoPenggunaPribadi;
fungsi menarikSaldo() publik { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }
Karena saldo pengguna diatur menjadi 0 hanya di akhir fungsi, pemanggilan ulang masih akan berhasil, sehingga saldo dapat ditarik beberapa kali.
Berbagai bentuk serangan reentrancy dapat melibatkan fungsi yang berbeda dari kontrak tunggal atau fungsi dari beberapa kontrak. Untuk menyelesaikan masalah reentrancy, perlu diperhatikan:
Disarankan untuk menggunakan praktik keamanan yang matang, hindari membuat roda yang sama. Solusi baru yang dikembangkan sendiri kurang divalidasi secara memadai, sehingga probabilitas munculnya masalah cukup tinggi.
Saran Keamanan
Saran Keamanan Proyek
Bagaimana pengguna menentukan keamanan kontrak pintar
Total, pihak proyek dan pengguna harus meningkatkan kesadaran keamanan, mengambil langkah-langkah yang diperlukan untuk mengurangi risiko keamanan Keuangan Desentralisasi.