Využití roninského mostu v hodnotě 10 milionů dolarů 6. srpna bylo způsobeno chybným skriptem pro nasazení upgradu, podle zprávy bezpečnostní firmy pro blockchain Verichains.
Upgrade snížil práh hlasování pro validátory na nulu, což v podstatě umožnilo každému uživateli odstoupit z mostu „bez podpisu,“ uvedl Verichains.
Útočník se pokusil využít tuto chybu k vysoušení mostu, ale byli řízeni robotem MEV, který útok skutečně provedl, pravděpodobně bez úmyslu. Majitel robota později vrátil většinu prostředků týmu Ronin.
Analýza společnosti Verichains odhaluje rizika, která uživatelé podstupují při interakci s upgradovatelnými inteligentními smlouvami. Protokol mohl přijít o celou částku, kdyby útočník zaplatil více plynu, a vyhnul by se tak předskokani.
Ronin je blockchain síť věnovaná hostování Web3 her. Nejznámější je tím, že je domovem Axie Infinity, hry na rozmnožování monster, která tvrdila, že měla více než 2 miliony hráčů během svého vrcholu v roce 2022. Hráči hry Ronin využívají most k převodu finančních prostředků mezi Ethereem a Roninem. .
Podle zprávy společnosti Verichain se most spoléhá na proměnnou mimimumVoteWeight, aby zabránil uživatelům vybírat prostředky, které jim nepatří. Každá transakce musí být autorizována minimálním počtem validátorů stanoveným touto proměnnou. Když se vypočítá minimumVoteWeight, použije jako vstup další proměnnou totalWeight.
V dřívějších verzích mostu existoval totalWeight na samostatné smlouvě nazvané „MainchainBridgeManager“. Když vývojáři vytvořili nový upgrade, chtěli tuto proměnnou přesunout do vlastního interního úložiště mostu, místo aby ji nechali v jiné smlouvě. To znamenalo, že potřebovali inicializovat proměnnou v okamžiku nasazení a nastavit TotalWeight na hodnotu, která byla v předchozí verzi.
Bohužel právě zde se upgrade šeredně pokazil. Podle Verichainu vývojáři Roninu napsali několik různých „inicializačních“ funkcí, které měly být volány v okamžiku nasazení. Každá z těchto funkcí měla jiné číslo verze. Třetí verze obsahovala zásadní inicializaci totalWeight. Když ale vývojáři napsali skript nasazení, zavolali pouze verzi 4 a ponechali totalWeight na výchozí nulové hodnotě.
Po tomto upgradu již uživatelé nemuseli odesílat podpisy validátorům, aby prokázali své právo na odstoupení od smlouvy. Mohli odstoupit „bez podpisu“, protože „splňovala podmínku minimálního počtu hlasů (která byla 0 kvůli neinicializaci).
Auditor inteligentních smluv Composable Security Damian Rusinek v příspěvku ze 7. srpna pro X uvedl další podrobnosti o tom, co umožnilo, aby k útoku došlo. Podle Rusinka útočník poskytl podpis z adresy končící na B849f. Tato adresa však „[nebyla] na seznamu operátorů mostu“. Nemusel být na seznamu operátorů mostu, protože „minimální počet hlasů operátorů byl 0“. Proto „byl vyžadován pouze JEDEN podpis a mohl to být JAKÝKOLI platný podpis“.
Ačkoli nezacházeli do tak velkých detailů jako Verichains nebo Rusinek, Ronin v příspěvku ze 6. srpna potvrdil, že zneužití bylo způsobeno tím, že upgrade „zavedl problém, který vedl most k nesprávné interpretaci požadované hranice hlasování operátorů mostu pro výběr prostředků. .“
Data blockchainu ukazují, že tato útočná transakce byla vedena robotem MEV jménem „Frontrunner Yoink“, který z mostu úspěšně odčerpal kryptoměnu v hodnotě více než 10 milionů dolarů. Podle Rusinka robot s největší pravděpodobností „simuloval změnu adresy a částky a použil svůj vlastní podpis“. Poté transakci odeslala, jakmile tato simulace prokázala, že zneužití bude fungovat.
Související: Síť Ronin byla zneužita za 9,8 milionů $ v ETH, podezření na hackera bílého klobouku
Majitel Frontrunner Yoink vrátil většinu prostředků ve stejný den a tým Ronin oznámil, že si bude moci ponechat hodnotu 500 000 $ jako odměnu za chyby.
Uživatelé Roninu utrpěli těsný kontakt s exploitem ze 6. srpna. Naštěstí útok řídil robot MEV, jehož vlastníkem byl poctivý bílý klobouk. Nicméně skutečnost, že útok byl tak blízko úspěchu, odhaluje riskantní povahu modernizovatelných křížových mostů.
Některé sítě tvrdí, že tento problém bude odstraněn, když vrstvy Ethereum 2 dosáhnou „fáze 2“ a všechny aktualizace budou zpožděny nejméně sedm dní po zahájení. Kritici však tvrdí, že proces dosažení této fáze trvá příliš dlouho a nemusí být nikdy dokončen.
Magazine: Divný hack s „nulovou adresou“ iVest, miliony počítačů jsou stále zranitelné malwarem „Sinkclose“: Crypto-Sec