Baru-baru ini, Curve, protokol mata uang yang sangat stabil, diserang oleh serangan reentrancy, menyebabkan kerugian serius. Berikut ini adalah analisis keamanan dan rekomendasi keamanan MetaTrust Labs untuk serangan ini.
Tinjauan Acara
Menurut Twitter resmi Curve Finance, pada 31 Juli 2023, beberapa kumpulan stabil (alETH/mSETH/pETH) yang ditulis menggunakan Vyper versi 0.2.15 menjadi sasaran serangan reentrancy. Curve Finance menyatakan bahwa serangan itu disebabkan oleh kegagalan fungsi kunci reentrancy di Vyper versi 0.2.15 dan hanya kumpulan yang terpengaruh yang menggunakan ETH murni. Saat ini, Curve sedang menilai kerusakan dan kolam lainnya aman.
Menurut analisis MetaTrust Labs, kerentanan diperkenalkan antara Agustus dan Oktober 2021, terutama karena kompiler Vyper versi 0.2.15/0.2.16/0.3.0. Alasan kerentanan ini adalah karena logika reentrancy dalam bytecode yang dihasilkan seharusnya tidak berlaku karena adanya bug di kompiler.
Menurut statistik rantai, insiden peretasan kumpulan stablecoin Curve Finance telah menyebabkan kerugian kumulatif sebesar 52 juta dolar AS dalam kumpulan Alchemix, JPEG'd, CRV/ETH, dll. CRV token Curve Finance juga terpukul keras, turun lebih dari 15% pada hari itu.
Analisis Penyebab
Alasan mengapa Curve Finance diserang kali ini adalah ketika Curve menggunakan bahasa Vyper untuk menulis kontrak pintar, ia menggunakan Vyper versi 0.2.15. Ada kerentanan dalam versi ini yang disebut kunci reentrancy yang tidak berfungsi (kegagalan kunci reentrancy). Eksploitasi diluncurkan serangan reentrancy untuk menyebabkan kerugian. Kerentanan Curve Finance kali ini adalah kerentanan Language Specific.
Kerentanan Spesifik Bahasa mengacu pada kerentanan yang disebabkan oleh cacat atau ketidaksesuaian dalam bahasa pemrograman tertentu atau kompiler itu sendiri. Kerentanan seperti itu seringkali sulit ditemukan dan dicegah, karena tidak disebabkan oleh kelalaian pengembang atau kesalahan logika, tetapi oleh masalah dengan platform teknologi yang mendasarinya. Jenis kerentanan ini juga cenderung memengaruhi banyak proyek atau kontrak karena semuanya menggunakan bahasa atau kompiler yang sama.
Vyper adalah bahasa pemrograman kontrak pintar berbasis Python yang dirancang untuk keamanan dan keterbacaan yang lebih baik. Vyper mengklaim sebagai bahasa "mengutamakan keselamatan" dan tidak mendukung beberapa fitur yang dapat menyebabkan risiko keamanan, seperti kelas, pewarisan, pengubah, perakitan inline, dll. Namun, Vyper tidak sempurna, dan masih memiliki beberapa bug atau celah yang dapat memengaruhi keamanan kontrak. Misalnya, selain kegagalan kunci reentrant yang ditemui oleh Curve Finance kali ini, Vyper juga mengalami masalah seperti array out-of-bounds, integer overflow, dan kesalahan akses penyimpanan.
Tindakan Keamanan
Untuk serangan reentrancy Curve Finance kali ini, beberapa tindakan pencegahan telah diambil atau diusulkan. Berikut adalah beberapa penanggulangan keamanan yang dapat Anda lakukan:
Penarikan likuiditas: Untuk kumpulan yang terpengaruh, pengguna dapat memilih untuk menarik likuiditas untuk menghindari kerugian lebih lanjut. Curve Finance telah menyediakan tombol untuk menarik likuiditas di situs resminya, yang memudahkan pengguna untuk mengoperasikannya.
Tingkatkan kompiler: Untuk kontrak yang menggunakan kompiler versi Vyper 0.2.15/0.2.16/0.3.0, disarankan untuk memutakhirkan ke versi Vyper 0.3.1 terbaru, yang telah memperbaiki masalah kegagalan kunci masuk kembali. Pada saat yang sama, disarankan juga untuk menggunakan alat atau metode lain untuk memverifikasi keamanan kontrak, seperti verifikasi formal, audit kode, dll.
Waspada: Untuk kontrak yang ditulis dalam Vyper atau bahasa lain, disarankan untuk waspada, memperhatikan pembaruan bahasa atau penyusun dan perbaikan bug, dan mengambil tindakan yang diperlukan secara tepat waktu untuk melindungi aset Anda. Pada saat yang sama, disarankan juga bahwa ketika menggunakan bahasa baru atau teknologi baru, evaluasi kematangan dan stabilitasnya dengan hati-hati, dan hindari mengejar kesegaran atau efisiensi secara membabi buta.
Ringkas
Insiden reentrancy Curve Finance adalah insiden keamanan yang tidak menguntungkan dan pelajaran yang menggugah pikiran. Di bidang keuangan terdesentralisasi (DeFi), keamanan selalu menjadi prioritas utama. Pihak proyek harus terus meningkatkan kesadaran dan kemampuan keamanan mereka. Detail apa pun dapat menjadi terobosan untuk dieksploitasi oleh penyerang.
Ikuti kami
Twitter: @MetaTrustLabs
Situs web: metatrust.io
Lihat Asli
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.
Lubang hitam ditelan: Kerentanan Vyper membuat Curve terbalik dengan kokoh
Baru-baru ini, Curve, protokol mata uang yang sangat stabil, diserang oleh serangan reentrancy, menyebabkan kerugian serius. Berikut ini adalah analisis keamanan dan rekomendasi keamanan MetaTrust Labs untuk serangan ini.
Tinjauan Acara
Menurut Twitter resmi Curve Finance, pada 31 Juli 2023, beberapa kumpulan stabil (alETH/mSETH/pETH) yang ditulis menggunakan Vyper versi 0.2.15 menjadi sasaran serangan reentrancy. Curve Finance menyatakan bahwa serangan itu disebabkan oleh kegagalan fungsi kunci reentrancy di Vyper versi 0.2.15 dan hanya kumpulan yang terpengaruh yang menggunakan ETH murni. Saat ini, Curve sedang menilai kerusakan dan kolam lainnya aman.
Menurut analisis MetaTrust Labs, kerentanan diperkenalkan antara Agustus dan Oktober 2021, terutama karena kompiler Vyper versi 0.2.15/0.2.16/0.3.0. Alasan kerentanan ini adalah karena logika reentrancy dalam bytecode yang dihasilkan seharusnya tidak berlaku karena adanya bug di kompiler.
Menurut statistik rantai, insiden peretasan kumpulan stablecoin Curve Finance telah menyebabkan kerugian kumulatif sebesar 52 juta dolar AS dalam kumpulan Alchemix, JPEG'd, CRV/ETH, dll. CRV token Curve Finance juga terpukul keras, turun lebih dari 15% pada hari itu.
Analisis Penyebab
Alasan mengapa Curve Finance diserang kali ini adalah ketika Curve menggunakan bahasa Vyper untuk menulis kontrak pintar, ia menggunakan Vyper versi 0.2.15. Ada kerentanan dalam versi ini yang disebut kunci reentrancy yang tidak berfungsi (kegagalan kunci reentrancy). Eksploitasi diluncurkan serangan reentrancy untuk menyebabkan kerugian. Kerentanan Curve Finance kali ini adalah kerentanan Language Specific.
Kerentanan Spesifik Bahasa mengacu pada kerentanan yang disebabkan oleh cacat atau ketidaksesuaian dalam bahasa pemrograman tertentu atau kompiler itu sendiri. Kerentanan seperti itu seringkali sulit ditemukan dan dicegah, karena tidak disebabkan oleh kelalaian pengembang atau kesalahan logika, tetapi oleh masalah dengan platform teknologi yang mendasarinya. Jenis kerentanan ini juga cenderung memengaruhi banyak proyek atau kontrak karena semuanya menggunakan bahasa atau kompiler yang sama.
Vyper adalah bahasa pemrograman kontrak pintar berbasis Python yang dirancang untuk keamanan dan keterbacaan yang lebih baik. Vyper mengklaim sebagai bahasa "mengutamakan keselamatan" dan tidak mendukung beberapa fitur yang dapat menyebabkan risiko keamanan, seperti kelas, pewarisan, pengubah, perakitan inline, dll. Namun, Vyper tidak sempurna, dan masih memiliki beberapa bug atau celah yang dapat memengaruhi keamanan kontrak. Misalnya, selain kegagalan kunci reentrant yang ditemui oleh Curve Finance kali ini, Vyper juga mengalami masalah seperti array out-of-bounds, integer overflow, dan kesalahan akses penyimpanan.
Tindakan Keamanan
Untuk serangan reentrancy Curve Finance kali ini, beberapa tindakan pencegahan telah diambil atau diusulkan. Berikut adalah beberapa penanggulangan keamanan yang dapat Anda lakukan:
Ringkas
Insiden reentrancy Curve Finance adalah insiden keamanan yang tidak menguntungkan dan pelajaran yang menggugah pikiran. Di bidang keuangan terdesentralisasi (DeFi), keamanan selalu menjadi prioritas utama. Pihak proyek harus terus meningkatkan kesadaran dan kemampuan keamanan mereka. Detail apa pun dapat menjadi terobosan untuk dieksploitasi oleh penyerang.
Ikuti kami
Twitter: @MetaTrustLabs
Situs web: metatrust.io