Dompet panas Binance digodam sebanyak 6.28 bilion USD; penjejakan on-chain mendedahkan bagaimana penyerang menggunakan kebenaran EIP-7702 untuk mengambil alih dompet tersebut dan memindahkan dana sebelum Tether dan pengeluar lain sempat membekukannya, memberikan rekonstruksi penuh insiden keselamatan terbesar ini.
Pengarang: Dickson (@DicksonWuML)
Dikompil oleh: Shenchao TechFlow
Pengenalan Shenchao: Kecurian dari dompet panas Binance adalah peristiwa terbesar dalam pasaran kripto hari ini. Jurutera CertiK dan ahli SEAL, Dickson, menjejaki rekod on-chain transaksi demi transaksi, membina semula keseluruhan proses penyerang menyediakan dana dengan mengeluarkan dari Tornado Cash, menggunakan kebenaran EIP-7702 untuk mengambil alih dompet panas Ethereum Binance, dan berlumba dengan Tether, Circle, dan pengeluar lain untuk membekukan dana. Jumlah dan masa dalam artikel ini adalah statistik on-chain pada masa penulis menyiarkan (sekitar 8 pagi waktu Beijing pada 30 Oktober), dengan masa dalam UTC (+8 jam bersamaan waktu Beijing), dan belum disahkan secara rasmi oleh Binance.
Dompet panas Binance kehilangan kira-kira $6.28 bilion merentasi 8 rantaian hari ini. Daripada jumlah itu, $6.07 bilion dipindahkan keluar dalam 55 minit pertama, selepas itu penyerang berulang kali menyapu salah satu dompet Ethereum selama lebih dua jam.
Sejak itu, Tether, Circle, Ripple, Paxos, World Liberty, dan Binance telah membekukan kira-kira $2.80 bilion. Kira-kira $3.27 bilion masih boleh dipindahkan dengan bebas, terutamanya BTC dan ETH.
Saya menjejaki keseluruhan insiden on-chain, termasuk bagaimana penyerang memindahkan dana sebelum pembekuan 🧵
Pecahan $6.28 bilion (harga pada UTC 20:24):
• Ethereum $3.74 bilion
• Bitcoin 18,270.2 BTC, $1.47 bilion
• Tron $612.7 juta USDT + 46.4 juta TRX, $627.5 juta
• XRP 233.5 juta XRP, $296.5 juta
• Solana 970,522 SOL, $96.1 juta
• Arbitrum 8,426 ETH + 74.6 juta ARB, $31.8 juta
• Avalanche 1.81 juta AVAX + 8.41 juta USDt, $24.3 juta
• Optimism 44.2 juta OP, $4.8 juta
$3.74 bilion di Ethereum mengalir keluar dalam lima kelompok:
• 20:24:23, satu sweep() tunggal pada Binance 14: 167,464.25 ETH, $1.615 bilion USDT, dan 61 token lain, berjumlah $2.53 bilion
• 20:41 dan 20:59, 780 juta + 43 juta USDC dipindahkan keluar dari dompet pintar Binance yang mempercayai Binance 14, berjumlah $822.6 juta
• 20:24:47, Binance 16 menandatangani 9 pemindahan yang dihantar terus kepada penyerang: 28,005.6 ETH, 55.7 juta USDT, 25.9 juta RLUSD, 84.5 WBTC, 820,000 UNI, 1,199 XAUt, 18.8 juta ENA, 304,600 LINK, 583.6 bilion PEPE, berjumlah $174.2 juta
• 21:04 dan 21:44, dua sapuan tambahan Binance 14: 2,070 ETH dan 204.3 juta USDT, berjumlah $209.6 juta
• 22:39, sapuan terakhir ke dompet baharu: 128.5 ETH dan 122 token kecil, kira-kira $500,000
Mengikut aset: $1.87 bilion USDT, $823 juta USDC, $457 juta ETH (197,668 ETH), $88.5 juta RLUSD, $76.8 juta wBETH, $50.5 juta XAUt, $49.6 juta UNI, $44.7 juta ENA, $40.1 juta PEPE, $29.6 juta LINK, $27.8 juta USD1, serta kira-kira 50 token lebih kecil.Persiapan bermula sehari sebelumnya. Pada 28 Oktober jam 07:39 UTC, dompet utama penyerang 0x7c8601d4645b93cea45f71e118a729332e6b5ca0 mula-mula mengeluarkan 0.1 ETH daripada Tornado Cash, kemudian mengeluarkan dua kali lagi. Satu dompet kedua kemudian mengeluarkan 1 ETH daripada Tornado dan memindahkannya ke dompet utama pada 29 Oktober jam 18:20.
Pada 29 Oktober jam 02:28, mereka menggunakan kontrak sweeper. Dari 13:51 hingga 16:47, mereka membuat latihan pada dompet mereka sendiri: menggunakan delegasi EIP-7702, menyapu USDT dan USDC ujian, kemudian mengeluarkannya. Pada 15:59, mereka menggunakan versi v2 dengan fungsi panggilan generik, dan fungsi inilah yang kemudiannya memindahkan USDC bernilai $823 juta.
Pada 20:04:52 UTC, langkah pertama gagal. Dompet XRP Binance menghantar 42,750,000.1 RLUSD kepada penyerang, tetapi akaun XRP penyerang belum wujud, jadi pemindahan itu dikembalikan.
Lapan saat kemudian, 185,017,485.5 XRP berjaya dipindahkan, sekali gus mewujudkan akaun tersebut. Menjelang 20:09, empat lagi dompet XRP Binance juga telah dikosongkan.
Reaksi berantai menyusul:
20:10 Solana, 965,455.1 SOL dipindahkan dalam satu transaksi
20:18 Optimism, 44.2 juta OP
20:20 Bitcoin, 18,270.2 BTC dipindahkan dalam 11 transaksi dan dipecahkan kepada ketulan 1,000 BTC dalam blok yang sama
20:20 hingga 20:22 Tron, $612.7 juta USDT + 46.4 juta TRX
20:30 hingga 20:35 Arbitrum dan Avalanche
Ethereum mendedahkan kaedah serangan. Pada 20:20:59, penyerang menghantar transaksi yang membawa 50 kebenaran EIP-7702, semuanya ditandatangani oleh kunci peribadi Binance 14, sepadan dengan nonce 18,914,775 hingga 18,914,824.
Binance 14 sendiri baru sahaja menggunakan 18,914,775 pada 20:17:47, menunjukkan bahawa kebenaran ini ditandatangani hanya beberapa minit sebelum digunakan.
Kebenaran dengan nonce 18,914,809 sepadan. Transaksi Binance 14 sendiri dalam blok yang sama menggunakan 18,914,808, dan dari saat itu, Binance 14 menjalankan kod penyerang.
Pada 20:24:23, satu sweep() memindahkan 167,464 ETH dan $1.615 bilion USDT keluar daripadanya. Dua puluh empat saat kemudian, Binance 16 menandatangani 9 pemindahan yang dihantar terus kepada penyerang. Pada 20:41 dan 20:59, penyerang menggunakan Binance 14 untuk memindahkan $823 juta USDC keluar daripada dompet pintar Binance yang mempercayainya.
Seterusnya ialah perlumbaan menentang pembekuan. Penyerang cepat memecahkan USDT:
• Pada 20:30, $500 juta USDT dipindahkan ke 0x9749…c762. Menjelang 20:59, $325 juta daripadanya telah ditukar kepada ETH melalui pembuat pasaran RFQ, dan baki $175 juta dipindahkan seterusnya
• Pada 20:33, $200 juta USDT dipindahkan ke 0x0ddf…697e. Kira-kira $10 juta dijual di DEX, dan $190 juta dipindahkan ke 0x8d53…639a, yang mendepositkan $60 juta ke Aave dan meminjam ETH dengannya
Kumpulan pertama senarai hitam Tether berkuat kuasa pada 21:01:35: 0x5227, yang masih memegang $971 juta USDT; dan 0x9749, yang sudah dikosongkan. Circle membekukan $823 juta USDC pada 21:04:59.
Sesetengah dana terlepas pada saat-saat akhir:• Pada 21:01:59, 0x8d53 memindahkan $130 juta USDT ke 0x77ed…c3eb. Empat puluh lapan saat kemudian, pada 21:02:47, Tether membekukan 0x8d53• 21:04 hingga 21:06, 0x77ed menjual kira-kira 50 juta USDT di DEX dan memindahkan 80 juta ke 0x7aa4…bfd1
• 21:08 hingga 21:11, 0x7aa4 menjual lagi kira-kira 50 juta dan memindahkan baki 30 juta keluar. Menjelang Tether membekukan 0x7aa4 pada 21:12:35, ia sudah dikosongkan
• 21:16:11, 0xccbe…a263 memindahkan keluar 30 juta itu. 36 saat kemudian Tether membekukan 0xccbe, dan pada 21:18:59 ia memintas 30 juta itu di 0xb171…c8c3
• 175 juta yang dipindahkan keluar oleh 0x9749 kekal di 0xaa24…54a0 sehingga Tether membekukannya pada 21:14:59
Secara keseluruhan, daripada 1.875 bilion USDT di Ethereum, kira-kira 435 juta telah dijual sebelum senarai hitam sempat menyusul. 1.38 bilion telah dibekukan, dan 60 juta terperangkap sebagai cagaran Aave.
Tindakan oleh pengeluar lain, mengikut urutan kronologi:
• 20:57:47 World Liberty menyenaraikan hitam 48.5 juta WLFI dalam 0x5227
• 21:07:55 Tether membekukan 8.41 juta USDt di Avalanche. Penyerang cuba memindahkannya pada 21:40:47, dan transaksi itu revert
• 21:09 hingga 21:21 Tether membekukan 378.7 juta USDT dalam tiga dompet di Tron. Sebelum itu, 234 juta telah ditukar kepada TRX melalui SunSwap
• 21:11:23 Tether membekukan 12,574 XAUt (kira-kira 50 juta USD)
• 22:00:59 Ripple membekukan RLUSD. Penyerang sudah memindahkannya ke 0xe702…958d pada 21:33 dan menjual 48 juta kepada ETH, dengan pesanan jual terakhir dan pembekuan berlaku dalam blok yang sama. 40.5 juta telah dipintas
• 22:10:35 World Liberty membekukan 27.8 juta USD1
• 22:30:47 Paxos membekukan 1,907 PAXG
• 22:48:35 Binance menyenaraikan hitam 29,934 wBETH (kira-kira 75 juta USD); penyerang sudah memindahkannya ke 0x7f9d…15e3 pada 21:52
3.45 juta FDUSD First Digital masih boleh dipindahkan.
Binance 14 kekal didelegasikan kepada kontrak penyerang, yang bertukar menjadi tarik tali:
• Pada 21:04 dan 21:44, penyerang menyapu lagi: pertama 1,700 ETH, kemudian 370 ETH dan 200.4 juta USDT. USDT ini mendarat di 0x5227, yang sudah dibekukan oleh Tether
• Pada 22:06:23, Tether menyenaraikan hitam Binance 14 itu sendiri. Pemindahan USDT Binance sendiri dari alamat itu gagal pada 22:15 dan 23:01
• Pada 22:39, penyerang menyapu lagi, kali ini ke dompet baharu: 128.5 ETH dan 122 token kecil
• Dari 22:55 hingga 23:07, Binance sendiri mengosongkan Binance 14: 46 pemindahan token ke Binance 8, kira-kira satu setiap 12 saat
• Dari 23:36 hingga 23:38, penyerang memanggil sweep() empat kali lagi, dan keempat-empatnya kosong
Di luar Ethereum:
• Arbitrum, 21:35 hingga 21:38: kesemua 8,426 ETH dan 74.6 juta ARB dipindahkan ke dompet 7702 baharu 0x3e2b…32d5, yang memberi kebenaran ARB untuk dagangan pada 21:41. Setakat 23:50 ia masih di sana
• Avalanche, 21:45:34: 1,813,999 AVAX dipindahkan ke 0x8035…c397. Kemudian 200,005 AVAX dipindahkan keluar dari 0xc39e…9824, dan pada 23:27:35 alamat yang sama menerima 1,563,812.78 USDC di Ethereum melalui jambatan rentas rantaian CCTP Circle. Empat minit kemudian, pada 23:31:59, Circle menyenaraikan hitamnya• Dana pada Bitcoin, XRP, Solana dan Optimism belum lagi dipindahkan. BTC tersebar di 19 dompet, 17 daripadanya masing-masing memegang tepat 1,000 BTC
Status setakat kira-kira 23:50 UTC:
Dibekukan, kira-kira 2.80 bilion USD
• 1.38 bilion USDT pada Ethereum, 378.7 juta pada Tron, 8.41 juta pada Avalanche (Tether)
• 824.6 juta USDC (Circle)
• 40.5 juta RLUSD (Ripple), 27.8 juta USD1 (World Liberty), 12,574 XAUt (Tether), 29,934 wBETH (Binance), 1,907 PAXG (Paxos), 48.5 juta WLFI
Tidak dibekukan, kira-kira 3.27 bilion USD
• 18,270 BTC, 1.42 bilion USD
• 458,770 ETH tersebar di 9 dompet, 1.03 bilion USD
• 233.5 juta XRP, 289 juta USD
• 684.6 juta TRX, 243 juta USD
• Kira-kira 136 juta USD dalam token lain pada Ethereum
• 970,500 SOL, 93 juta USD, serta ARB, AVAX dan OP, kira-kira 48 juta USD
Sebanyak 60 juta USDT lagi terperangkap sebagai cagaran Aave.
Nota: Pemindahan pada BTC, XRP dan Tron dikaitkan melalui masa dan cap jari transaksi: tetingkap masa yang sama, alamat penerima yang baharu, serta fi dan format transaksi yang berbeza daripada pengeluaran Binance sendiri. Jumlah yang dicuri dikira pada harga UTC 20:24; pegangan semasa dikira pada harga sekitar UTC 23:50.
Bukti on-chain bagi setiap transaksi dan pembekuan dilampirkan dalam siaran di bawah. Jika anda perasan apa-apa yang saya terlepas, sila beritahu saya!