Keamanan Umum dalam Keuangan Desentralisasi dan Langkah-langkah Pencegahannya
Belakangan ini, seorang ahli keamanan membagikan pelajaran keamanan DeFi kepada anggota komunitas. Ahli tersebut meninjau kejadian-kejadian keamanan besar yang dialami industri Web3 selama lebih dari setahun yang lalu, membahas penyebab terjadinya kejadian-kejadian tersebut dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum pada kontrak pintar serta langkah-langkah pencegahannya, dan juga memberikan beberapa saran keamanan untuk pengembang proyek dan pengguna biasa.
Jenis kerentanan DeFi yang umum meliputi 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: pinjaman kilat, manipulasi harga, dan serangan reentrancy.
Pinjaman Kilat
Pinjaman kilat adalah inovasi dalam Keuangan Desentralisasi, tetapi juga 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 karena jumlah dana yang besar, atau dimanfaatkan dalam satu transaksi untuk berinteraksi dengan beberapa fungsi guna mendapatkan keuntungan yang tidak sah.
Banyak proyek DeFi terlihat memiliki imbal hasil yang tinggi, tetapi sebenarnya tingkat kemampuan tim proyek berbeda-beda. Beberapa proyek mungkin membeli kode mereka, meskipun kode itu sendiri tidak memiliki kerentanan, secara logika masih mungkin ada masalah. Misalnya, beberapa proyek memberikan imbalan pada waktu tetap berdasarkan jumlah token yang dimiliki oleh pemegang, namun dapat dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli sejumlah besar token, dan pada saat imbalan diberikan, mereka dapat mengambil sebagian besar keuntungan.
Manipulasi Harga
Masalah manipulasi harga berkaitan erat dengan pinjaman kilat, terutama karena beberapa parameter yang digunakan dalam perhitungan harga dapat dikendalikan oleh pengguna. Ada dua jenis masalah yang umum terjadi:
Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau pemeriksaan yang hilang, mengakibatkan harga dikendalikan secara jahat.
Menggunakan jumlah token di alamat tertentu sebagai variabel perhitungan, di mana saldo token di alamat tersebut dapat ditambah atau dikurangi secara sementara.
Serangan Re-entrancy
Serangan reentrancy adalah salah satu bahaya utama yang mungkin dihadapi saat memanggil kontrak eksternal. Penyerang dapat mengambil alih alur kontrol dan melakukan perubahan yang tidak terduga pada data dengan memanggil fungsi. Misalnya, dalam fungsi penarikan, jika saldo pengguna diatur menjadi 0 hanya di akhir fungsi, penyerang dapat memanggil fungsi tersebut berulang kali di tengah-tengah, sehingga dapat menarik saldo berkali-kali.
Untuk serangan reentrancy, perlu diperhatikan hal-hal berikut:
Tidak hanya mencegah masalah reentrancy pada fungsi tunggal
Mengikuti pola Checks-Effects-Interactions dalam pengkodean
Menggunakan modifier pencegah reentrancy yang telah teruji waktu
Dalam menyelesaikan masalah keamanan, sebaiknya menggunakan praktik keamanan terbaik yang telah diverifikasi dengan baik, bukan mengulang roda.
Saran Keamanan Proyek
Mengikuti praktik keamanan terbaik dalam pengembangan kontrak
Mencapai kemampuan untuk memperbarui dan menghentikan kontrak
Mengadopsi mekanisme kunci waktu
Meningkatkan investasi dalam keamanan, membangun sistem keamanan yang sempurna
Meningkatkan kesadaran keamanan semua karyawan
Mencegah kecurangan internal, sambil meningkatkan efisiensi dan memperkuat pengendalian risiko
Hati-hati dalam mengintegrasikan komponen pihak ketiga, pastikan keamanannya.
Bagaimana pengguna dapat menilai apakah kontrak pintar aman
Konfirmasi apakah kontrak bersifat open source
Periksa apakah Pemilik menggunakan mekanisme multi-tanda tangan yang terdesentralisasi
Lihat situasi perdagangan yang sudah ada pada kontrak
Ketahui apakah kontrak tersebut adalah kontrak perwakilan, apakah dapat ditingkatkan, dan apakah ada kunci waktu.
Pastikan kontrak telah diaudit oleh beberapa lembaga, dan apakah hak akses Owner terlalu besar.
Perhatikan penggunaan oracle
Melalui langkah-langkah di atas, pihak proyek dan pengguna dapat meningkatkan keamanan proyek Keuangan Desentralisasi hingga tingkat tertentu, serta mengurangi risiko diserang.
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.
21 Suka
Hadiah
21
8
Bagikan
Komentar
0/400
SadMoneyMeow
· 07-18 23:00
Setelah mendengar banyak hal selama bertahun-tahun, tetap saja jika harus dipermainkan, ya dipermainkan.
Lihat AsliBalas0
DefiPlaybook
· 07-17 00:45
Statistik menunjukkan bahwa kerentanan pinjaman flash menyumbang 43,7% dari kerugian di keuangan desentralisasi.
Lihat AsliBalas0
LiquiditySurfer
· 07-16 23:58
Lindungi dompet kalian ya semua
Lihat AsliBalas0
FundingMartyr
· 07-15 23:30
Setelah mengalami kerugian, baru kita tahu untuk lebih berhati-hati.
Lihat AsliBalas0
alpha_leaker
· 07-15 23:17
Lihat aneh tidak aneh, seorang Hacker tua.
Lihat AsliBalas0
GateUser-00be86fc
· 07-15 23:10
Banyak sekali celah, bagaimana cara bermain?
Lihat AsliBalas0
LongTermDreamer
· 07-15 23:03
Sekali lagi, catatan memberi makan domba selama tiga tahun seperti satu hari.
Panduan Keamanan Keuangan Desentralisasi: Analisis Jenis Kerentanan Umum dan Strategi Pencegahannya
Keamanan Umum dalam Keuangan Desentralisasi dan Langkah-langkah Pencegahannya
Belakangan ini, seorang ahli keamanan membagikan pelajaran keamanan DeFi kepada anggota komunitas. Ahli tersebut meninjau kejadian-kejadian keamanan besar yang dialami industri Web3 selama lebih dari setahun yang lalu, membahas penyebab terjadinya kejadian-kejadian tersebut dan bagaimana cara menghindarinya, merangkum kerentanan keamanan umum pada kontrak pintar serta langkah-langkah pencegahannya, dan juga memberikan beberapa saran keamanan untuk pengembang proyek dan pengguna biasa.
Jenis kerentanan DeFi yang umum meliputi 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: pinjaman kilat, manipulasi harga, dan serangan reentrancy.
Pinjaman Kilat
Pinjaman kilat adalah inovasi dalam Keuangan Desentralisasi, tetapi juga 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 karena jumlah dana yang besar, atau dimanfaatkan dalam satu transaksi untuk berinteraksi dengan beberapa fungsi guna mendapatkan keuntungan yang tidak sah.
Banyak proyek DeFi terlihat memiliki imbal hasil yang tinggi, tetapi sebenarnya tingkat kemampuan tim proyek berbeda-beda. Beberapa proyek mungkin membeli kode mereka, meskipun kode itu sendiri tidak memiliki kerentanan, secara logika masih mungkin ada masalah. Misalnya, beberapa proyek memberikan imbalan pada waktu tetap berdasarkan jumlah token yang dimiliki oleh pemegang, namun dapat dieksploitasi oleh penyerang yang menggunakan pinjaman kilat untuk membeli sejumlah besar token, dan pada saat imbalan diberikan, mereka dapat mengambil sebagian besar keuntungan.
Manipulasi Harga
Masalah manipulasi harga berkaitan erat dengan pinjaman kilat, terutama karena beberapa parameter yang digunakan dalam perhitungan harga dapat dikendalikan oleh pengguna. Ada dua jenis masalah yang umum terjadi:
Serangan Re-entrancy
Serangan reentrancy adalah salah satu bahaya utama yang mungkin dihadapi saat memanggil kontrak eksternal. Penyerang dapat mengambil alih alur kontrol dan melakukan perubahan yang tidak terduga pada data dengan memanggil fungsi. Misalnya, dalam fungsi penarikan, jika saldo pengguna diatur menjadi 0 hanya di akhir fungsi, penyerang dapat memanggil fungsi tersebut berulang kali di tengah-tengah, sehingga dapat menarik saldo berkali-kali.
Untuk serangan reentrancy, perlu diperhatikan hal-hal berikut:
Dalam menyelesaikan masalah keamanan, sebaiknya menggunakan praktik keamanan terbaik yang telah diverifikasi dengan baik, bukan mengulang roda.
Saran Keamanan Proyek
Bagaimana pengguna dapat menilai apakah kontrak pintar aman
Melalui langkah-langkah di atas, pihak proyek dan pengguna dapat meningkatkan keamanan proyek Keuangan Desentralisasi hingga tingkat tertentu, serta mengurangi risiko diserang.