Proyek Poolz diserang karena kerentanan overflow aritmatika, mengalami kerugian sekitar 66,5 ribu dolar AS
Baru-baru ini, sebuah insiden serangan terhadap proyek Poolz menarik perhatian luas dari komunitas cryptocurrency. Menurut data pemantauan di blockchain, serangan terjadi pada tanggal 15 Maret 2023, melibatkan tiga jaringan yaitu Ethereum, BNB Chain, dan Polygon. Penyerang memanfaatkan celah overflow aritmatika dalam smart contract, berhasil mencuri sejumlah besar token dengan total nilai sekitar 66,5 ribu dolar AS.
Detail Serangan
Penyerang melaksanakan serangan ini melalui langkah-langkah berikut:
Pertama, tukarkan sejumlah token MNZ di bursa terdesentralisasi.
Selanjutnya, fungsi CreateMassPools dalam kontrak Poolz dipanggil. Fungsi ini seharusnya memungkinkan pengguna untuk membuat kolam likuiditas secara massal dan memberikan likuiditas awal, tetapi terdapat celah serius di dalamnya.
Masalah terjadi di fungsi getArraySum. Fungsi ini digunakan untuk menghitung jumlah likuiditas awal yang diberikan oleh pengguna, tetapi gagal menangani situasi overflow integer dengan benar.
Penyerang dengan cerdik menyusun parameter input sehingga array _StartAmount berisi angka yang melebihi nilai maksimum uint256. Ini menyebabkan hasil penjumlahan meluap, dan nilai yang dikembalikan akhirnya adalah 1.
Karena kontrak menggunakan nilai asli _StartAmount saat mencatat atribut kolam, bukan jumlah token yang sebenarnya ditransfer, penyerang hanya perlu mentransfer 1 token untuk membuat kolam dengan likuiditas yang jauh lebih tinggi daripada yang sebenarnya.
Terakhir, penyerang mengambil sejumlah besar token yang tidak sah dengan memanggil fungsi withdraw, menyelesaikan seluruh proses serangan.
Aset yang Dicuri
Serangan ini menyebabkan berbagai token mengalami kerugian, termasuk namun tidak terbatas pada:
2.805.805 MEE
525.134 ESNC
774,997 DON
2.007.504.238 ASW
6.510.689 KMON
2.521.065 POOLZ
35,976,107 DCD
760.845 PORTX
Penyerang telah menukarkan sebagian token yang dicuri menjadi BNB, tetapi hingga laporan ini dibuat, dana tersebut belum dipindahkan dari alamat penyerang.
Saran Pencegahan
Untuk mencegah kerentanan overflow aritmetika serupa, para ahli merekomendasikan langkah-langkah berikut:
Gunakan versi compiler Solidity yang lebih baru, yang secara otomatis melakukan pemeriksaan overflow selama proses kompilasi.
Untuk proyek yang menggunakan versi Solidity yang lebih lama, disarankan untuk mengimpor pustaka SafeMath dari OpenZeppelin untuk menangani operasi integer, sehingga menghindari masalah overflow.
Lakukan audit kode secara menyeluruh, khususnya fokus pada bagian yang melibatkan operasi angka besar.
Laksanakan validasi input yang ketat untuk memastikan parameter yang diberikan oleh pengguna berada dalam rentang yang wajar.
Pertimbangkan untuk menambahkan mekanisme keamanan seperti tanda tangan ganda atau kunci waktu dalam operasi kunci.
Insiden ini sekali lagi menyoroti pentingnya keamanan kontrak pintar, mengingatkan pengembang dan pihak proyek untuk selalu waspada dan terus meningkatkan keamanan kode. Pada saat yang sama, juga mengingatkan pengguna untuk sangat berhati-hati saat berinteraksi dengan proyek keuangan terdesentralisasi, terutama saat berpartisipasi dalam proyek yang baru diluncurkan atau yang belum diaudit secara menyeluruh.
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.
18 Suka
Hadiah
18
8
Bagikan
Komentar
0/400
GateUser-a5fa8bd0
· 07-23 01:44
Kembali ada masalah dengan kontrak, tsk tsk.
Lihat AsliBalas0
SellTheBounce
· 07-20 10:40
又一 suckers turun ke nol,熟悉的剧情
Lihat AsliBalas0
DataBartender
· 07-20 02:14
Dengarkan satu kalimat dari Anda, minum secangkir teh.
Lihat AsliBalas0
GasFeeCrying
· 07-20 02:13
Sudah ada sejarah hitam lagi, pergi lagi.
Lihat AsliBalas0
LazyDevMiner
· 07-20 02:13
Kasus lain dari peringatan overflows nol
Lihat AsliBalas0
DEXRobinHood
· 07-20 02:13
Siapa yang akan menjadi berikutnya setelah yang hitam ini?
Proyek Poolz mengalami serangan overflow aritmatika dengan kerugian 665.000 dolar AS dalam aset enkripsi.
Proyek Poolz diserang karena kerentanan overflow aritmatika, mengalami kerugian sekitar 66,5 ribu dolar AS
Baru-baru ini, sebuah insiden serangan terhadap proyek Poolz menarik perhatian luas dari komunitas cryptocurrency. Menurut data pemantauan di blockchain, serangan terjadi pada tanggal 15 Maret 2023, melibatkan tiga jaringan yaitu Ethereum, BNB Chain, dan Polygon. Penyerang memanfaatkan celah overflow aritmatika dalam smart contract, berhasil mencuri sejumlah besar token dengan total nilai sekitar 66,5 ribu dolar AS.
Detail Serangan
Penyerang melaksanakan serangan ini melalui langkah-langkah berikut:
Pertama, tukarkan sejumlah token MNZ di bursa terdesentralisasi.
Selanjutnya, fungsi CreateMassPools dalam kontrak Poolz dipanggil. Fungsi ini seharusnya memungkinkan pengguna untuk membuat kolam likuiditas secara massal dan memberikan likuiditas awal, tetapi terdapat celah serius di dalamnya.
Masalah terjadi di fungsi getArraySum. Fungsi ini digunakan untuk menghitung jumlah likuiditas awal yang diberikan oleh pengguna, tetapi gagal menangani situasi overflow integer dengan benar.
Penyerang dengan cerdik menyusun parameter input sehingga array _StartAmount berisi angka yang melebihi nilai maksimum uint256. Ini menyebabkan hasil penjumlahan meluap, dan nilai yang dikembalikan akhirnya adalah 1.
Karena kontrak menggunakan nilai asli _StartAmount saat mencatat atribut kolam, bukan jumlah token yang sebenarnya ditransfer, penyerang hanya perlu mentransfer 1 token untuk membuat kolam dengan likuiditas yang jauh lebih tinggi daripada yang sebenarnya.
Terakhir, penyerang mengambil sejumlah besar token yang tidak sah dengan memanggil fungsi withdraw, menyelesaikan seluruh proses serangan.
Aset yang Dicuri
Serangan ini menyebabkan berbagai token mengalami kerugian, termasuk namun tidak terbatas pada:
Penyerang telah menukarkan sebagian token yang dicuri menjadi BNB, tetapi hingga laporan ini dibuat, dana tersebut belum dipindahkan dari alamat penyerang.
Saran Pencegahan
Untuk mencegah kerentanan overflow aritmetika serupa, para ahli merekomendasikan langkah-langkah berikut:
Gunakan versi compiler Solidity yang lebih baru, yang secara otomatis melakukan pemeriksaan overflow selama proses kompilasi.
Untuk proyek yang menggunakan versi Solidity yang lebih lama, disarankan untuk mengimpor pustaka SafeMath dari OpenZeppelin untuk menangani operasi integer, sehingga menghindari masalah overflow.
Lakukan audit kode secara menyeluruh, khususnya fokus pada bagian yang melibatkan operasi angka besar.
Laksanakan validasi input yang ketat untuk memastikan parameter yang diberikan oleh pengguna berada dalam rentang yang wajar.
Pertimbangkan untuk menambahkan mekanisme keamanan seperti tanda tangan ganda atau kunci waktu dalam operasi kunci.
Insiden ini sekali lagi menyoroti pentingnya keamanan kontrak pintar, mengingatkan pengembang dan pihak proyek untuk selalu waspada dan terus meningkatkan keamanan kode. Pada saat yang sama, juga mengingatkan pengguna untuk sangat berhati-hati saat berinteraksi dengan proyek keuangan terdesentralisasi, terutama saat berpartisipasi dalam proyek yang baru diluncurkan atau yang belum diaudit secara menyeluruh.