Poolz Mengalami Serangan Kerentanan Overflow Aritmatika, Kerugian Sekitar 66,5 Ribu Dolar AS
Pada pukul 00:00 tanggal 15 Maret 2023, Poolz diserang di jaringan Ethereum, BNB Chain, dan Polygon, mengakibatkan kerugian berbagai aset token dengan total nilai sekitar 665.000 dolar AS. Penyerang memanfaatkan celah overflows aritmatika dalam kontrak pintar, berhasil melewati batasan transfer dana.
Menurut pemantauan data on-chain, serangan kali ini melibatkan beberapa token, termasuk MEE, ESNC, DON, ASW, KMON, POOLZ, dan lainnya. Penyerang telah menukar sebagian token yang diperoleh menjadi BNB, tetapi saat ini dana tersebut belum dipindahkan.
Proses serangan dibagi menjadi tiga langkah utama:
Penyerang pertama-tama menukarkan sejumlah kecil token MNZ melalui DEX tertentu.
Selanjutnya memanggil fungsi CreateMassPools di dalam kontrak Poolz. Fungsi ini seharusnya digunakan untuk membuat kumpulan likuiditas secara massal dan menyediakan likuiditas awal, tetapi terdapat kerentanan penting di dalamnya.
Kerentanan terjadi pada fungsi getArraySum. Fungsi ini melakukan penjumlahan dengan menjelajahi array _StartAmount, tetapi tidak mempertimbangkan kemungkinan overflow. Penyerang telah menyusun array yang menyebabkan overflow uint256, sehingga nilai kembali dari fungsi adalah 1, sementara nilai _StartAmount yang sebenarnya adalah angka yang sangat besar.
Akhirnya, penyerang memanggil fungsi withdraw untuk menarik dana, menyelesaikan seluruh proses serangan.
Kejadian kali ini kembali menyoroti bahaya masalah overflow aritmatika dalam kontrak pintar. Untuk mencegah serangan serupa, pengembang harus mempertimbangkan saran berikut:
Gunakan versi terbaru dari compiler Solidity, yang dilengkapi dengan mekanisme pemeriksaan overflow.
Di versi Solidity yang lebih rendah, Anda dapat mengimpor pustaka keamanan pihak ketiga seperti SafeMath dari OpenZeppelin untuk menangani operasi bilangan bulat.
Lakukan audit kode secara menyeluruh, dengan perhatian khusus pada bagian yang melibatkan perhitungan matematis.
Mengimplementasikan langkah-langkah keamanan tambahan seperti tanda tangan multi untuk menambah lapisan perlindungan pada operasi penting.
Peristiwa ini mengingatkan kita bahwa dalam ekosistem blockchain, kode adalah hukum. Tim pengembang harus selalu waspada dan terus memperbaiki praktik keamanan untuk melindungi aset pengguna dan reputasi proyek.
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.
Poolz mengalami serangan overflow aritmatika dengan kerugian sebesar 66,5 ribu dolar AS, aset multi-chain terpengaruh.
Poolz Mengalami Serangan Kerentanan Overflow Aritmatika, Kerugian Sekitar 66,5 Ribu Dolar AS
Pada pukul 00:00 tanggal 15 Maret 2023, Poolz diserang di jaringan Ethereum, BNB Chain, dan Polygon, mengakibatkan kerugian berbagai aset token dengan total nilai sekitar 665.000 dolar AS. Penyerang memanfaatkan celah overflows aritmatika dalam kontrak pintar, berhasil melewati batasan transfer dana.
Menurut pemantauan data on-chain, serangan kali ini melibatkan beberapa token, termasuk MEE, ESNC, DON, ASW, KMON, POOLZ, dan lainnya. Penyerang telah menukar sebagian token yang diperoleh menjadi BNB, tetapi saat ini dana tersebut belum dipindahkan.
Proses serangan dibagi menjadi tiga langkah utama:
Penyerang pertama-tama menukarkan sejumlah kecil token MNZ melalui DEX tertentu.
Selanjutnya memanggil fungsi CreateMassPools di dalam kontrak Poolz. Fungsi ini seharusnya digunakan untuk membuat kumpulan likuiditas secara massal dan menyediakan likuiditas awal, tetapi terdapat kerentanan penting di dalamnya.
Kerentanan terjadi pada fungsi getArraySum. Fungsi ini melakukan penjumlahan dengan menjelajahi array _StartAmount, tetapi tidak mempertimbangkan kemungkinan overflow. Penyerang telah menyusun array yang menyebabkan overflow uint256, sehingga nilai kembali dari fungsi adalah 1, sementara nilai _StartAmount yang sebenarnya adalah angka yang sangat besar.
Akhirnya, penyerang memanggil fungsi withdraw untuk menarik dana, menyelesaikan seluruh proses serangan.
Kejadian kali ini kembali menyoroti bahaya masalah overflow aritmatika dalam kontrak pintar. Untuk mencegah serangan serupa, pengembang harus mempertimbangkan saran berikut:
Gunakan versi terbaru dari compiler Solidity, yang dilengkapi dengan mekanisme pemeriksaan overflow.
Di versi Solidity yang lebih rendah, Anda dapat mengimpor pustaka keamanan pihak ketiga seperti SafeMath dari OpenZeppelin untuk menangani operasi bilangan bulat.
Lakukan audit kode secara menyeluruh, dengan perhatian khusus pada bagian yang melibatkan perhitungan matematis.
Mengimplementasikan langkah-langkah keamanan tambahan seperti tanda tangan multi untuk menambah lapisan perlindungan pada operasi penting.
Peristiwa ini mengingatkan kita bahwa dalam ekosistem blockchain, kode adalah hukum. Tim pengembang harus selalu waspada dan terus memperbaiki praktik keamanan untuk melindungi aset pengguna dan reputasi proyek.