Pada 13 Oktober 2022, menurut platform pemantauan keamanan EagleEye Web3 Beosin, pertukaran FTX berada di bawah serangan pencurian bahan bakar di mana ia dimanipulasi untuk membayar semua biaya bahan bakar untuk mencetak token XEN dalam jumlah besar untuk peretas.
Menanggapi serangan ini, Coinlive mengundang Beosin, sebuah firma keamanan Web3 yang berbasis di Singapura, untuk menganalisis proses spesifik dari eksploitasi tersebut.
1. Informasi terkait acara
A few transactions of the attacks: 0xc96b84cd834655290aa4bae7de80a3c117cc19d414f5bcf2fb85b8c5544300890x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d690x6bada8e084f8d3b62311f0b6eda10f2690e7542dab75a0de436a640036bccf94
Salah satu alamat penyerang: 0x1d371CF00038421d6e57CFc31EEff7A09d4B8760
Salah satu kontrak yang diserang: 0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3
Alamat hot wallet FTX yang diserang: 0xC098B2a3Aa256D2140208C3de6543aAEf5A94444
2. Aliran serangan
Kami akan fokus pada satu transaksi serangan tertentu sebagai contoh: (0x8eb73bd5c08318a4cfd233940c3a58744830cda999e59ecbc56f094618a91d69)
Pada langkah pertama, penyerang menyebarkan alamat kontrak berbahaya pada rantai (0xCba9b1Fd69626932c704DAc4CB58c29244A47FD3)
Pada langkah kedua, peretas menggunakan alamat hot wallet FTX-nya untuk mentransfer sejumlah kecil dana ke alamat kontrak berbahaya (0xCba9...7FD3) dan selanjutnya menggunakan kontrak ini untuk membuat sub-kontrak secara berkelompok.
Karena banyak kontrak dibuat di seluruh serangan, dan setiap kali sub-kontrak dieksekusi, sub-kontrak akan hancur dengan sendirinya, sehingga gambar berikut ditampilkan sebagai contoh.
Pada langkah ketiga, fungsi fallback() subkontrak akan memulai permintaan mint ke kontrak $XEN. Fungsi claimRank() melewati jangka waktu (>= 1 hari) untuk pencetakan, hanya perlu membayar biaya panggilan tanpa biaya lain yang terkait.
Fungsi claimMintRewardAndShare() adalah untuk claim, yang hanya menentukan term tercapai atau tidak (dalam hal ini diset 1 hari oleh hacker), kemudian dapat ditarik tanpa syarat ke alamat manapun. Namun, dalam proses panggilan ini, inisiator transaksi adalah alamat hot wallet FTX, jadi gas dari seluruh proses panggilan dibayar oleh alamat hot wallet FTX, dan alamat $XEN mint adalah alamat penyerang.
Ketiga langkah di atas diulang terus menerus dalam satu siklus. Setiap kali menarik token yang kedaluwarsa dan memulai permintaan pencetakan baru secara bersamaan.
3. Analisis Kerentanan
Serangan ini terutama memanfaatkan fakta bahwa FTX tidak memberlakukan batasan apa pun pada alamat kontrak penerima, juga tidak memberlakukan batasan pada batas gas ETH, ini memungkinkan peretas untuk mengeksploitasi dan mencetak token $XEN untuk mendapatkan keuntungan.
Pada saat publikasi, pertukaran FTX kehilangan total 81 ETH dan peretas menukar token $XEN untuk transfer ETH melalui pertukaran terdesentralisasi seperti DODO dan Uniswap.
Bagan Gerakan dan Penelusuran Dana Beosin