Populární témata
#
BTC hit ATH again after 4 months
#
Labubu craze goes global with memecoin price exploding 3,000%
#
Startup meta gains attention onchain
#
ETH is showing strong price momentum following the recent Pectra upgrade.
#
Boop.Fun leading the way with a new launchpad on Solana.
Populární verze: Jednoduchý "překlad" k interpretaci analýzy hackera @CetusProtocol od technického šéfa:
Tento útok odhaluje klasický problém s přetečením celých čísel, který se projevuje zkrácením dat při převodu typu.
Technické detaily v rozebraném stavu:
1) Umístění zranitelnosti: Problém se vyskytuje v mechanismu převodu typu funkce get_amount_by_liquidity a převod přetypování z U256 na U64 způsobuje ztrátu dat na vysoké úrovni.
2) Proces útoku:
1. Útočník předává prostřednictvím funkce add_liquidity velké množství parametrů likvidity;
2. Počet tokenů B potřebných pro výpočet systémového volání get_delta_b funkce;
3. V procesu výpočtu se vynásobí dvě data typu U128 a teoretickým výsledkem by měl být typ U256;
Klíčová chyba: Výsledek u256 je při návratu funkce přehozen na u64, což má za následek zkrácení 128bitových dat vysoké úrovně.
3) Efekt využití: Kvóta likvidity, která původně vyžadovala k ražbě velkého počtu tokenů, může být nyní dokončena pouze s velmi malým počtem tokenů. Útočník získá obrovský podíl likvidity za velmi nízkou cenu a poté realizuje arbitráž poolu tím, že zničí část likvidity.
Jednoduchá analogie: Stejně jako při použití kalkulačky, která dokáže zobrazit pouze 8 číslic pro výpočet 1 miliardy × 1 miliardy, může výsledek 20místného výpočtu zobrazit pouze posledních 8 číslic a prvních 12 číslic zmizí přímo. Útočník tuto chybu zabezpečení zneužije.
Aby bylo jasno: tato zranitelnost nemá nic společného se základní bezpečnostní architekturou @SuiNetwork a bezpečnostní "sláva" jazyka Move je prozatím stále důvěryhodná. Proč?
Jazyk Move má významné výhody, pokud jde o správu zdrojů a zabezpečení typu, a může účinně předcházet problémům se zabezpečením na nízké úrovni, jako je dvojnásobné utrácení a únik zdrojů. Tentokrát je však protokol Cetus matematickou chybou na úrovni aplikační logiky, nikoli konstrukční chybou v samotném jazyce Move.
Konkrétně typový systém Move, i když je přísný, stále spoléhá na správný úsudek vývojářů při explicitním obsazení. Když program aktivně provádí převod typu z U256 na U64, kompilátor nemůže určit, zda se jedná o záměrnou nebo logickou chybu.
Kromě toho tento bezpečnostní incident nemá nic společného se základními funkcemi Sui, jako je mechanismus konsensu, zpracování transakcí a správa stavu. Sui Network pouze věrně provádí transakční instrukce odeslané protokolem Cetus a zranitelnost pramení z logických nedostatků samotného protokolu aplikační vrstvy.
Řečeno bez obalu, žádné množství pokročilých programovacích jazyků nemůže zcela eliminovat logické chyby na aplikační vrstvě. Move může zabránit většině základních bezpečnostních rizik, ale nemůže nahradit vývojáře kontrolou hranic obchodní logiky a ochranou proti přetečení matematických operací.
53.38K
Top
Hodnocení
Oblíbené