To je druh chyby, která drží protokolární týmy vzhůru po nocích. Exploit za 5 milionů dolarů na ZKSwap, umožněný jediným příkazem ponechaným na špatném místě. Zde je hluboký ponor do toho, jak se to stalo a jak to mohlo monitorování onchain zastavit. 🧵
1/ 9. července byla GMX hacknuta za 42 milionů dolarů. Ten den se však stalo něco jiného a sotva si toho někdo všiml: most ZKSwap byl v tichosti vyčerpán za 5 milionů dolarů. Zajímavá část? Nejednalo se o žádné fantastické využití. Jen kritická funkce, která udělala... nic.
2/ ZKSwap je zk-rollup postavený na Ethereu. Stejně jako mnoho jiných rollupů používá most k přesunu aktiv mezi L1 a L2. Jako bezpečnostní opatření most obsahuje "režim Exodus", způsob, jak mohou uživatelé získat zpět finanční prostředky bez potřeby operátora. Teoreticky je to skvělý nápad. V praxi...
3/ Režim Exodus umožňuje uživatelům ručně prokázat, že vlastnili tokeny v posledním ověřeném stavu L2. Je to záložní mechanismus: nedůvěryhodný, sebeopatrovní, neinteraktivní. Implementace ZKSwap však měla jednu fatální chybu: Funkce zodpovědná za ověřování důkazů nic neověřovala. Doslova.
4/ Zde je kód, který měl útok 👇 zastavit Na první pohled to vypadá jako skutečný zk-proof verifikátor. Ale podívejte se pozorně na první řádek: return true; A je to. Nic jiného neběží.
5/ Výsledek? Každý "důkaz" o odstoupení (bez ohledu na to, jak falešný) prošel validací. Smlouva akceptovala svévolné nároky na zůstatky tokenů... a připisoval jsem jim zásluhy, jako by byly skutečné. Změnil nedůvěryhodný záložní mechanismus na nehlídaný faucet.
6/ Útočník nepotřeboval vymyšlené exploity - jen opakovaná volání exit() s vymyšlenými daty. Obcházeli kontroly zůstatku, vybírali přes více tokenů a zneužívali slabou logiku nullifikátoru, aby se vyhnuli detekci. To vše za předpokladu, že smlouva říká: ✅
7/ Tohle nebyl nějaký obskurní okrajový případ. To byla základní logika pro obnovu aktiv, která zůstala zcela otevřená. A protože se režim Exodus spouští jen zřídka, přerušená cesta zůstala bez povšimnutí... měsíce.
8/ Zde je to, co mělo spustit alarmy: • Režim Exodus se spouští po dlouhém klidu • Desítky výběrových hovorů probíhajících najednou • Náhlý nárůst zůstatkůToWithdraw změny To vše bylo viditelné a mohlo to být zastaveno monitorováním v reálném čase.
9/ Z čeho si tedy vzít? • Nouzový kód je stále produkční kód • Záložní cesty nepomohou, pokud nefungují • Monitorování v reálném čase není volitelné, je kritické pro přežití
Zobrazit originál
34,12 tis.
379
Obsah na této stránce poskytují třetí strany. Není-li uvedeno jinak, společnost OKX není autorem těchto informací a nenárokuje si u těchto materiálů žádná autorská práva. Obsah je poskytován pouze pro informativní účely a nevyjadřuje názory společnosti OKX. Nejedná se o doporučení jakéhokoli druhu a nemělo by být považováno za investiční poradenství ani nabádání k nákupu nebo prodeji digitálních aktiv. Tam, kde se k poskytování souhrnů a dalších informací používá generativní AI, může být vygenerovaný obsah nepřesný nebo nekonzistentní. Další podrobnosti a informace naleznete v připojeném článku. Společnost OKX neodpovídá za obsah, jehož hostitelem jsou externí weby. Držená digitální aktiva, včetně stablecoinů a tokenů NFT, zahrnují vysokou míru rizika a mohou značně kolísat. Měli byste pečlivě zvážit, zde je pro vás obchodování s digitálními aktivy nebo jejich držení vhodné z hlediska vaší finanční situace.