Attacken mot Binance
Den som attackerade Binance spenderade minst 36 timmar på att förbereda sig för hackningen av kryptovalutabörsen, som har ett värde av $6,36 miljarder. Attacken inleddes med en avrinning av $296 miljoner i XRP.
Förberedelser och genomförande
Enligt en utredning av TRM Labs, publicerad den 29 oktober, började angriparen förbereda operationen den 28 oktober, innan han genomförde koordinerade överföringar över 10 blockkedjor följande kväll. Blockchain-intelligensföretaget fann att de flesta av medlen lämnade Binance-anslutna plånböcker inom cirka 20 minuter, vilket gjorde incidenten till den största kryptovalutastölden i historien.
TRM spårade de tidigaste förberedelserna till morgonen den 28 oktober, då en angriparkontrollerad plånbok tog emot tre små överföringar från Tornado Cash, en kryptovaluta-mixningstjänst. Tidigt följande dag implementerade angriparen skadlig smart kontraktskod och testade den mot två nyss skapade Ethereum-plånböcker. Angriparen implementerade därefter en reviderad version och repeterade operationen på en tredje plånbok, där han framgångsrikt överförde testmedel innan han återförde dem.
Huvudattacken
Ungefär fyra timmar efter den sista repetitionen inleddes huvudattacken. Mellan 20:05 och 20:09 UTC överförde fem Binance-plånböcker på XRP Ledger cirka 233,46 miljoner XRP, värt $296 miljoner, till en enda angriparkontrollerad adress. On-chain-utredaren Wazz Crypto kom fram till en liknande slutsats och sa:
”Vid 20:10 UTC hade misstänkta överföringar också börjat från Binance-plånböcker på Solana och Optimism. Vid 20:20 UTC överförde en Binance Bitcoin-plånbok 18 270 BTC, värt cirka $1,47 miljarder.”
Angriparen började omedelbart dela upp medlen i mindre portioner av 1 000 BTC och 100 BTC. Inom två minuter överförde en Binance-plånbok på Tron ytterligare 612,7 miljoner USDT och 46,4 miljoner TRX, värt cirka $628 miljoner sammanlagt. Ethereum-operationen utspelade sig nästan samtidigt.
Utnyttjande av auktoriseringar
Vid 20:20 UTC skickade angriparen in 50 tidigare signerade EIP-7702-auktoriseringar till en Binance varm plånbok, vilket gjorde det möjligt för den att delegera utförande till ett skadligt smart kontrakt. Auktoriseringarna täckte på varandra följande transaktionsantal, vilket säkerställde att en skulle matcha plånbokens aktuella antal när den bearbetades.
Tre minuter och 24 sekunder senare aktiverade angriparen kontraktets svepfunktion och överförde 167 464 ETH och 63 tokens, inklusive 1,615 miljarder USDT, i en enda transaktion. Angriparen genomförde därefter ytterligare svep vid 20:41, 20:59, 21:04, 21:44, 22:39 och 23:56 UTC när fler tillgångar kom in i den komprometterade plånboken.
Slutsats
Den delegerade plånboken utnyttjade också sina befintliga rättigheter över ett separat Binance-smartkonto, vilket underlättade överföringen av ytterligare 823 miljoner USDC. En andra våg runt 23:05 UTC utvidgade operationen till ytterligare Binance-plånböcker på Avalanche och Polygon. Vid 00:30 UTC den 30 oktober hade TRM spårat cirka $6,36 miljarder i överföringar över Ethereum, Bitcoin, Tron, XRP Ledger, Solana, Arbitrum, Optimism, Base, Avalanche och Polygon.
Medan utredarna har rekonstruerat sekvensen förblir källan till de nödvändiga auktoriseringarna som möjliggjorde attacken olöst. Ethlabs-forskaren Derek Chiang sa att angriparen kan ha fått plånbokens privata nyckel eller lurat dess ägare att signera en skadlig auktorisering. Han betonade också att angriparen behövde giltig auktorisering för att utföra EIP-7702-operationen.