Kerugian 215 juta dolar! Analisis kerentanan kejadian MobiusDAO dan pelacakan dana yang dicuri

Tulis oleh: Beosin

Baru-baru ini, proyek ekosistem BNB Chain MobiusDAO mengalami serangan, di mana penyerang mencetak sejumlah besar token MBU melalui celah logika dalam kontrak proyek dan menjualnya untuk mendapatkan keuntungan. Tim keamanan Beosin telah melakukan analisis celah dan pelacakan dana terkait peristiwa ini, dan membagikan hasilnya sebagai berikut:

Langkah-langkah serangan yang rinci

(1) Penyerang pertama-tama mengdeploy kontrak serangan (0x631adFF068D484Ce531Fb519Cda4042805521641)

dan menggunakan kontrak tersebut untuk memanggil fungsi deposit dari kontrak proxy Mobius 0x95e92B09b89cF31Fa9F1Eca4109A85F88EB08531, kemudian kontrak Mobius mencetak lebih dari 9.7x10^15 token MBU dan mengirimkannya ke kontrak penyerang.

Hash transaksi serangan: 0x2a65254b41b42f39331a0bcc9f893518d6b106e80d9a476b8ca3816325f4a150

(2) Kontrak serangan memanggil kontrak terkait PancakeSwap untuk menjual token MBU setelah menerima token MBU, menyelesaikan keuntungan.

Analisis kerentanan

Fungsi setoran kontrak Mobius akan mencetak jumlah token MBU yang setara dan mengirimkannya kepada penyetor setelah menerima setoran. Dalam fungsi ini, setiap kali pengguna menyetor WBNB, fungsi ini akan mengambil harga BNB untuk menghitung jumlah token MBU yang harus dicetak dan ditransfer.

Harga BNB berasal dari fungsi getBNBPriceInUSDT, yang mengembalikan harga dengan presisi hingga 18 desimal. Seperti yang ditunjukkan pada gambar di atas, harga yang dikembalikan sekitar 656 dolar.

Karena kontrak logika Mobius tidak bersifat open source, melalui dekompilasi kami menemukan bahwa kerentanan muncul ketika fungsi mengembalikan hasil dengan 18 desimal, kontrak tersebut kembali mengalikan nilai tersebut dengan 10^18, sehingga menghasilkan jumlah token MBU yang lebih tinggi 10^18 kali dibandingkan hasil normal.

Pelacakan dana yang dicuri

Beosin Trace telah melacak dana yang dicuri dan menemukan: dana yang dicuri telah diubah oleh penyerang menjadi sekitar 2.15 juta token USDT, di mana 1.35 juta USDT ditukar menjadi BNB dan disimpan di Tornado Cash, sementara 800 ribu USDT ditukar lintas rantai menjadi ETH di rantai Ethereum, kemudian disimpan di Tornado Cash. Beosin Trace telah menambahkan alamat terkait hacker ke dalam daftar hitam, dan akan terus melakukan pelacakan ke depannya.

Menurut analisis Beosin Trace, semua dana yang dicuri telah disimpan di Tornado Cash

Ringkasan

Inti dari serangan kali ini adalah penyerang memanfaatkan kesalahan aritmatika dalam kontrak proyek, mencetak jumlah besar token untuk dijual dan meraih keuntungan. Ini seharusnya merupakan kesalahan kode yang sangat mudah ditemukan, tetapi pihak proyek Mobius sebelumnya tidak melakukan pengujian kode yang mendetail untuk menemukan kesalahan tersebut, dan juga tidak melakukan audit, yang mengakibatkan kerugian lebih dari 2,15 juta dolar AS. Tim keamanan Beosin menyarankan agar pihak proyek memperkuat audit dan pengujian keamanan pada kode kontrak proyek, untuk mencegah terjadinya situasi serupa.

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.
  • Hadiah
  • Komentar
  • Bagikan
Komentar
0/400
Tidak ada komentar
  • Sematkan
Perdagangkan Kripto Di Mana Saja Kapan Saja
qrCode
Pindai untuk mengunduh aplikasi Gate
Komunitas
Bahasa Indonesia
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)