Keamanan Umum pada Keuangan Desentralisasi dan Langkah Pencegahannya
Baru-baru ini, seorang ahli keamanan membagikan pengetahuan keamanan DeFi kepada anggota komunitas. Ia meninjau peristiwa keamanan besar yang dialami industri Web3 selama lebih dari setahun terakhir, membahas penyebab terjadinya peristiwa tersebut serta cara-cara untuk menghindarinya, merangkum kerentanan keamanan kontrak pintar yang umum dan langkah-langkah pencegahannya, serta memberikan beberapa saran keamanan.
Jenis-jenis kerentanan DeFi yang umum meliputi pinjaman kilat, manipulasi harga, masalah hak akses fungsi, panggilan eksternal sembarangan, masalah fungsi fallback, kerentanan logika bisnis, kebocoran kunci pribadi, dan reentrancy. Artikel ini akan fokus pada tiga jenis tersebut: pinjaman kilat, manipulasi harga, dan serangan reentrancy.
Pinjaman Kilat
Pinjaman kilat sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi ketika dimanfaatkan oleh peretas, dapat meminjam sejumlah besar dana tanpa biaya untuk melakukan serangan. Serangan yang umum sering kali disertai dengan pinjaman kilat, di mana penyerang meminjam sejumlah besar dana kemudian 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 keuntungan yang tidak semestinya.
Beberapa proyek akan memberikan hadiah berdasarkan kepemilikan pada waktu tertentu, tetapi disalahgunakan 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 dapat dipengaruhi oleh pinjaman kilat. Pihak proyek harus lebih waspada terhadap masalah ini.
Manipulasi Harga
Masalah manipulasi harga terkait erat dengan pinjaman kilat, yang terutama terdiri dari dua jenis:
Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau pemeriksaan yang hilang menyebabkan harga dimanipulasi secara jahat.
Menggunakan jumlah Token dari alamat tertentu sebagai variabel perhitungan, dan saldo Token di alamat tersebut dapat ditambah atau dikurangi sementara.
Serangan Reentrancy
Risiko utama dalam memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih alur kontrol, melakukan perubahan yang tidak terduga pada data. Contohnya:
Karena saldo baru diatur menjadi 0 pada akhir fungsi, pemanggilan berulang masih dapat berhasil menarik.
Metode serangan reentrancy beragam, dapat melibatkan beberapa fungsi atau kontrak. Untuk menyelesaikan masalah reentrancy, perlu diperhatikan:
Tidak hanya mencegah reentrancy fungsi tunggal
Mengkode mengikuti pola Checks-Effects-Interactions
Menggunakan modifier pencegahan reentrancy yang terverifikasi
Sebisa mungkin gunakan praktik keamanan yang matang, hindari membuat roda dari awal.
Saran Keamanan Proyek
Pengembangan kontrak mengikuti praktik keamanan terbaik
Kontrak dapat ditingkatkan dan dijeda: segera menemukan dan mengurangi kerugian
Menggunakan kunci waktu: memberikan waktu untuk pemeriksaan dan reaksi
Membangun sistem keamanan yang lengkap: menghindari risiko secara menyeluruh
Meningkatkan kesadaran keamanan semua karyawan
Mencegah penyelewengan internal, sambil meningkatkan efisiensi dan memperkuat kontrol risiko
Hati-hati dalam melibatkan pihak ketiga: Verifikasi keamanan hulu dan hilir
Bagaimana Pengguna Menilai Keamanan Kontrak Pintar
Apakah kontrak tersebut bersifat sumber terbuka
Apakah Pemilik menggunakan multi-tanda tangan terdesentralisasi
Periksa situasi transaksi kontrak yang sudah ada
Apakah kontrak dapat diupgrade, apakah ada kunci waktu
Apakah menerima audit dari beberapa lembaga, apakah hak akses Pemilik terlalu besar
Perhatikan keandalan oracle
Singkatnya, keamanan sangat penting di bidang Keuangan Desentralisasi. Pihak proyek dan pengguna harus tetap waspada dan mengambil langkah-langkah yang diperlukan untuk mengurangi risiko.
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.
13 Suka
Hadiah
13
2
Bagikan
Komentar
0/400
StableGeniusDegen
· 18jam yang lalu
Saya harus mulai belajar keamanan dari nol lagi, pusing.
Lihat AsliBalas0
DAOplomacy
· 18jam yang lalu
teater keamanan terbaik... kerentanan yang sama, ketidakselarasan pemangku kepentingan yang sama sejujurnya
Analisis Tiga Kerentanan Keamanan DeFi: Pinjaman Flash, Manipulasi Harga, dan Serangan Reentrancy
Keamanan Umum pada Keuangan Desentralisasi dan Langkah Pencegahannya
Baru-baru ini, seorang ahli keamanan membagikan pengetahuan keamanan DeFi kepada anggota komunitas. Ia meninjau peristiwa keamanan besar yang dialami industri Web3 selama lebih dari setahun terakhir, membahas penyebab terjadinya peristiwa tersebut serta cara-cara untuk menghindarinya, merangkum kerentanan keamanan kontrak pintar yang umum dan langkah-langkah pencegahannya, serta memberikan beberapa saran keamanan.
Jenis-jenis kerentanan DeFi yang umum meliputi pinjaman kilat, manipulasi harga, masalah hak akses fungsi, panggilan eksternal sembarangan, masalah fungsi fallback, kerentanan logika bisnis, kebocoran kunci pribadi, dan reentrancy. Artikel ini akan fokus pada tiga jenis tersebut: pinjaman kilat, manipulasi harga, dan serangan reentrancy.
Pinjaman Kilat
Pinjaman kilat sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi ketika dimanfaatkan oleh peretas, dapat meminjam sejumlah besar dana tanpa biaya untuk melakukan serangan. Serangan yang umum sering kali disertai dengan pinjaman kilat, di mana penyerang meminjam sejumlah besar dana kemudian 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 keuntungan yang tidak semestinya.
Beberapa proyek akan memberikan hadiah berdasarkan kepemilikan pada waktu tertentu, tetapi disalahgunakan 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 dapat dipengaruhi oleh pinjaman kilat. Pihak proyek harus lebih waspada terhadap masalah ini.
Manipulasi Harga
Masalah manipulasi harga terkait erat dengan pinjaman kilat, yang terutama terdiri dari dua jenis:
Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau pemeriksaan yang hilang menyebabkan harga dimanipulasi secara jahat.
Menggunakan jumlah Token dari alamat tertentu sebagai variabel perhitungan, dan saldo Token di alamat tersebut dapat ditambah atau dikurangi sementara.
Serangan Reentrancy
Risiko utama dalam memanggil kontrak eksternal adalah bahwa mereka dapat mengambil alih alur kontrol, melakukan perubahan yang tidak terduga pada data. Contohnya:
soliditas pemetaan (alamat => uint) saldoPenggunaPrivat;
fungsi tarikSaldo() publik { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }
Karena saldo baru diatur menjadi 0 pada akhir fungsi, pemanggilan berulang masih dapat berhasil menarik.
Metode serangan reentrancy beragam, dapat melibatkan beberapa fungsi atau kontrak. Untuk menyelesaikan masalah reentrancy, perlu diperhatikan:
Sebisa mungkin gunakan praktik keamanan yang matang, hindari membuat roda dari awal.
Saran Keamanan Proyek
Pengembangan kontrak mengikuti praktik keamanan terbaik
Kontrak dapat ditingkatkan dan dijeda: segera menemukan dan mengurangi kerugian
Menggunakan kunci waktu: memberikan waktu untuk pemeriksaan dan reaksi
Membangun sistem keamanan yang lengkap: menghindari risiko secara menyeluruh
Meningkatkan kesadaran keamanan semua karyawan
Mencegah penyelewengan internal, sambil meningkatkan efisiensi dan memperkuat kontrol risiko
Hati-hati dalam melibatkan pihak ketiga: Verifikasi keamanan hulu dan hilir
Bagaimana Pengguna Menilai Keamanan Kontrak Pintar
Apakah kontrak tersebut bersifat sumber terbuka
Apakah Pemilik menggunakan multi-tanda tangan terdesentralisasi
Periksa situasi transaksi kontrak yang sudah ada
Apakah kontrak dapat diupgrade, apakah ada kunci waktu
Apakah menerima audit dari beberapa lembaga, apakah hak akses Pemilik terlalu besar
Perhatikan keandalan oracle
Singkatnya, keamanan sangat penting di bidang Keuangan Desentralisasi. Pihak proyek dan pengguna harus tetap waspada dan mengambil langkah-langkah yang diperlukan untuk mengurangi risiko.