Keamanan DeFi: Kerentanan Umum dan Langkah Pencegahan
Baru-baru ini, seorang ahli keamanan berbagi kursus keamanan DeFi untuk anggota komunitas, meninjau peristiwa keamanan besar yang dialami industri Web3 selama lebih dari setahun terakhir, membahas penyebab terjadinya peristiwa tersebut serta 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 hak akses fungsi, panggilan eksternal sembarangan, masalah fungsi fallback, kerentanan logika bisnis, kebocoran kunci pribadi, dan reentrancy. Berikut ini akan dibahas secara khusus tentang pinjaman kilat, manipulasi harga, dan serangan reentrancy.
Pinjaman Kilat
Pinjaman kilat itu sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi ketika dimanfaatkan oleh peretas, mereka dapat meminjam sejumlah besar dana tanpa biaya apapun, melakukan arbitrase dan mengembalikannya, hanya dengan membayar sedikit biaya Gas untuk mendapatkan keuntungan besar.
Dalam dua tahun terakhir, pinjaman kilat telah menimbulkan banyak masalah keamanan. Beberapa proyek DeFi tampak menawarkan imbal hasil yang tinggi, tetapi kualitas tim proyek sangat bervariasi. Meskipun kode itu sendiri tidak memiliki celah, secara logis masih mungkin ada masalah. Misalnya, beberapa proyek akan memberikan hadiah berdasarkan jumlah kepemilikan pada waktu tertentu, tetapi penyerang memanfaatkan pinjaman kilat untuk membeli sejumlah besar token, sehingga mereka mendapatkan sebagian besar hadiah saat hadiah diberikan. Ada juga beberapa proyek yang menghitung harga melalui Token, yang dapat dipengaruhi oleh pinjaman kilat. Tim proyek harus lebih waspada terhadap masalah ini.
Manipulasi Harga
Masalah manipulasi harga sangat terkait dengan pinjaman kilat, terutama karena beberapa parameter dalam perhitungan harga dapat dikendalikan oleh pengguna. Ada dua jenis masalah umum:
Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau pemeriksaan yang hilang menyebabkan harga dimanipulasi secara jahat.
Menggunakan saldo Token di beberapa alamat sebagai variabel perhitungan, di mana jumlah Token di alamat tersebut dapat ditambah atau dikurangi sementara.
Serangan Reentrancy
Salah satu risiko utama dari memanggil kontrak eksternal adalah mereka dapat mengambil alih alur kontrol dan melakukan perubahan yang tidak terduga pada data.
Untuk kontrak yang berbeda, metode serangan reentrancy bervariasi dan mungkin melibatkan beberapa fungsi atau kontrak. Untuk menyelesaikan masalah reentrancy, perlu diperhatikan:
Tidak hanya mencegah masalah reentrancy pada fungsi tunggal
Mengkode sesuai pola Checks-Effects-Interactions
Menggunakan modifier pencegah reentrancy yang telah diverifikasi
Sebaiknya menggunakan praktik keamanan yang sudah matang, daripada mengulangi roda. Solusi baru yang dikembangkan sendiri kurang terverifikasi dengan baik, dan kemungkinan mengalami masalah jauh lebih tinggi dibandingkan dengan menggunakan solusi matang yang sudah teruji.
Saran Keamanan
Saran Keamanan dari Pihak Proyek
Pengembangan kontrak mengikuti praktik keamanan terbaik.
Kontrak dapat ditingkatkan dan dijeda: membantu dalam mendeteksi dan mengurangi kerugian akibat serangan secara tepat waktu.
Menggunakan kunci waktu: memberikan jendela waktu untuk pemantauan dan respons.
Meningkatkan investasi keamanan, membangun sistem keamanan yang lengkap: Keamanan adalah pekerjaan sistemik, tidak bisa hanya bergantung pada audit kontrak.
Meningkatkan kesadaran keamanan semua karyawan: Berpikir lebih banyak dan lebih memperhatikan dapat menghindari banyak risiko.
Mencegah tindakan jahat internal, sambil meningkatkan efisiensi dan memperkuat kontrol risiko: seperti menggunakan multi-tanda tangan, membatasi hak akses, dll.
Hati-hati dalam melibatkan pihak ketiga: verifikasi hulu dan hilir, jangan mengacu pada kontrak yang tidak bersumber terbuka.
Metode pengguna untuk menilai keamanan kontrak
Konfirmasi apakah kontrak bersifat open source
Periksa apakah Pemilik menggunakan multi-tanda tangan desentralisasi
Lihat situasi perdagangan yang ada pada kontrak
Pahami apakah kontrak dapat diperbarui, apakah ada kunci waktu
Perhatikan apakah kontrak telah diaudit oleh beberapa lembaga, apakah hak Owner terlalu besar.
Perhatikan keandalan oracle
Singkatnya, para peserta di bidang Keuangan Desentralisasi harus meningkatkan kesadaran keamanan, pihak proyek harus memperbaiki sistem keamanan, dan pengguna perlu dengan hati-hati mengevaluasi keamanan proyek. Hanya dengan usaha bersama semua pihak, kita dapat membangun ekosistem Keuangan Desentralisasi yang lebih aman.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
13 Suka
Hadiah
13
7
Bagikan
Komentar
0/400
RektButSmiling
· 07-10 13:36
Gulung satu proyek, jatuhkan sepuluh rug.
Lihat AsliBalas0
MagicBean
· 07-08 21:32
Masih khawatir tentang bagaimana menangani celah?
Lihat AsliBalas0
0xDreamChaser
· 07-08 02:24
Keamanan masih tergantung pada seberapa dapat diandalkannya tim proyek.
Lihat AsliBalas0
StakeWhisperer
· 07-08 02:23
masih perlu audit smart contract, keselamatan adalah yang terpenting
Lihat AsliBalas0
Web3ExplorerLin
· 07-08 02:12
hipotesis: seperti labirin kuno, arsitektur defi membutuhkan kebijaksanaan dan kehati-hatian...
Lihat AsliBalas0
DataPickledFish
· 07-08 02:03
Bug ini harus diperbaiki hingga menguras tim proyek.
Lihat AsliBalas0
LiquidationAlert
· 07-08 02:01
Lagi membicarakan jebakan ini, kita juga tidak bisa terus-menerus menghindar.
Analisis Kerentanan Keamanan Keuangan Desentralisasi Penjelasan Langkah-langkah Pencegahan Serangan Re-entrance Manipulasi Harga Pinjaman Flash
Keamanan DeFi: Kerentanan Umum dan Langkah Pencegahan
Baru-baru ini, seorang ahli keamanan berbagi kursus keamanan DeFi untuk anggota komunitas, meninjau peristiwa keamanan besar yang dialami industri Web3 selama lebih dari setahun terakhir, membahas penyebab terjadinya peristiwa tersebut serta 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 hak akses fungsi, panggilan eksternal sembarangan, masalah fungsi fallback, kerentanan logika bisnis, kebocoran kunci pribadi, dan reentrancy. Berikut ini akan dibahas secara khusus tentang pinjaman kilat, manipulasi harga, dan serangan reentrancy.
Pinjaman Kilat
Pinjaman kilat itu sendiri adalah inovasi dalam Keuangan Desentralisasi, tetapi ketika dimanfaatkan oleh peretas, mereka dapat meminjam sejumlah besar dana tanpa biaya apapun, melakukan arbitrase dan mengembalikannya, hanya dengan membayar sedikit biaya Gas untuk mendapatkan keuntungan besar.
Dalam dua tahun terakhir, pinjaman kilat telah menimbulkan banyak masalah keamanan. Beberapa proyek DeFi tampak menawarkan imbal hasil yang tinggi, tetapi kualitas tim proyek sangat bervariasi. Meskipun kode itu sendiri tidak memiliki celah, secara logis masih mungkin ada masalah. Misalnya, beberapa proyek akan memberikan hadiah berdasarkan jumlah kepemilikan pada waktu tertentu, tetapi penyerang memanfaatkan pinjaman kilat untuk membeli sejumlah besar token, sehingga mereka mendapatkan sebagian besar hadiah saat hadiah diberikan. Ada juga beberapa proyek yang menghitung harga melalui Token, yang dapat dipengaruhi oleh pinjaman kilat. Tim proyek harus lebih waspada terhadap masalah ini.
Manipulasi Harga
Masalah manipulasi harga sangat terkait dengan pinjaman kilat, terutama karena beberapa parameter dalam perhitungan harga dapat dikendalikan oleh pengguna. Ada dua jenis masalah umum:
Menggunakan data pihak ketiga saat menghitung harga, tetapi cara penggunaannya tidak benar atau pemeriksaan yang hilang menyebabkan harga dimanipulasi secara jahat.
Menggunakan saldo Token di beberapa alamat sebagai variabel perhitungan, di mana jumlah Token di alamat tersebut dapat ditambah atau dikurangi sementara.
Serangan Reentrancy
Salah satu risiko utama dari memanggil kontrak eksternal adalah mereka dapat mengambil alih alur kontrol dan melakukan perubahan yang tidak terduga pada data.
Untuk kontrak yang berbeda, metode serangan reentrancy bervariasi dan mungkin melibatkan beberapa fungsi atau kontrak. Untuk menyelesaikan masalah reentrancy, perlu diperhatikan:
Tidak hanya mencegah masalah reentrancy pada fungsi tunggal
Mengkode sesuai pola Checks-Effects-Interactions
Menggunakan modifier pencegah reentrancy yang telah diverifikasi
Sebaiknya menggunakan praktik keamanan yang sudah matang, daripada mengulangi roda. Solusi baru yang dikembangkan sendiri kurang terverifikasi dengan baik, dan kemungkinan mengalami masalah jauh lebih tinggi dibandingkan dengan menggunakan solusi matang yang sudah teruji.
Saran Keamanan
Saran Keamanan dari Pihak Proyek
Pengembangan kontrak mengikuti praktik keamanan terbaik.
Kontrak dapat ditingkatkan dan dijeda: membantu dalam mendeteksi dan mengurangi kerugian akibat serangan secara tepat waktu.
Menggunakan kunci waktu: memberikan jendela waktu untuk pemantauan dan respons.
Meningkatkan investasi keamanan, membangun sistem keamanan yang lengkap: Keamanan adalah pekerjaan sistemik, tidak bisa hanya bergantung pada audit kontrak.
Meningkatkan kesadaran keamanan semua karyawan: Berpikir lebih banyak dan lebih memperhatikan dapat menghindari banyak risiko.
Mencegah tindakan jahat internal, sambil meningkatkan efisiensi dan memperkuat kontrol risiko: seperti menggunakan multi-tanda tangan, membatasi hak akses, dll.
Hati-hati dalam melibatkan pihak ketiga: verifikasi hulu dan hilir, jangan mengacu pada kontrak yang tidak bersumber terbuka.
Metode pengguna untuk menilai keamanan kontrak
Konfirmasi apakah kontrak bersifat open source
Periksa apakah Pemilik menggunakan multi-tanda tangan desentralisasi
Lihat situasi perdagangan yang ada pada kontrak
Pahami apakah kontrak dapat diperbarui, apakah ada kunci waktu
Perhatikan apakah kontrak telah diaudit oleh beberapa lembaga, apakah hak Owner terlalu besar.
Perhatikan keandalan oracle
Singkatnya, para peserta di bidang Keuangan Desentralisasi harus meningkatkan kesadaran keamanan, pihak proyek harus memperbaiki sistem keamanan, dan pengguna perlu dengan hati-hati mengevaluasi keamanan proyek. Hanya dengan usaha bersama semua pihak, kita dapat membangun ekosistem Keuangan Desentralisasi yang lebih aman.