Versiune populară: O simplă "traducere" pentru a interpreta analiza hackerului @CetusProtocol de către șeful tehnologiei: Acest atac expune o problemă clasică de depășire a numărului întreg, care se manifestă prin trunchierea datelor în timpul conversiei tipului. Detalii tehnice dezasamblate: 1) Locația vulnerabilității: Problema apare în mecanismul de conversie a tipului funcției get_amount_by_liquidity, iar conversia de la U256 la U64 provoacă pierderi de date la nivel înalt. 2) Procesul de atac: 1. Atacatorul transmite o cantitate mare de parametri de lichiditate prin funcția add_liquidity; 2. Numărul de tokenuri B necesare pentru calculul apelului get_delta_b al funcției de sistem; 3. În procesul de calcul, cele două date de tip U128 sunt înmulțite, iar rezultatul teoretic ar trebui să fie de tip U256; Defect cheie: Rezultatul u256 este proiectat la u64 atunci când funcția se întoarce, rezultând trunchierea datelor de nivel înalt pe 128 de biți. 3) Efectul de utilizare: Cota de lichiditate care inițial necesita un număr mare de jetoane pentru emitere poate fi acum completată doar cu un număr foarte mic de jetoane. Atacatorul obține o cotă uriașă de lichiditate la un cost foarte mic și apoi realizează arbitrajul pool-ului prin distrugerea unei părți din lichiditate. Analogie simplă: la fel ca utilizarea unui calculator care poate afișa doar 8 cifre pentru a calcula 1 miliard × 1 miliard, rezultatul unui calcul de 20 de cifre poate afișa doar ultimele 8 cifre, iar primele 12 cifre dispar direct. Atacatorul exploatează această vulnerabilitate. Pentru a fi clar: această vulnerabilitate nu are nimic de-a face cu arhitectura de securitate de bază a @SuiNetwork, iar "gloria" de securitate a limbajului Move este încă credibilă pentru moment. De ce? Limbajul Move are avantaje semnificative în ceea ce privește gestionarea resurselor și securitatea tipului și poate preveni în mod eficient problemele de securitate de nivel scăzut, cum ar fi cheltuielile duble și scurgerile de resurse. Cu toate acestea, de data aceasta protocolul Cetus este o eroare matematică la nivel de logică de aplicare, nu un defect de proiectare în limbajul Move în sine. Mai exact, sistemul de tip al lui Move, deși riguros, se bazează în continuare pe judecata corectă a dezvoltatorului pentru distribuirea explicită. Când un program efectuează în mod activ o conversie de tip de la U256 la U64, compilatorul nu poate spune dacă aceasta este intenționată sau o eroare logică. În plus, acest incident de securitate nu are nimic de-a face cu funcțiile de bază ale lui Sui, cum ar fi mecanismul de consens, procesarea tranzacțiilor și gestionarea statului. Sui Network execută fidel doar instrucțiunile de tranzacție trimise de protocolul Cetus, iar vulnerabilitatea provine din defectele logice ale protocolului stratului de aplicație în sine. Ca să spunem direct, nicio cantitate de limbaje de programare avansate nu poate elimina complet erorile logice la nivelul aplicației. Move poate preveni majoritatea riscurilor de securitate subiacente, dar nu poate înlocui dezvoltatorii cu verificarea limitelor logicii de afaceri și protecția împotriva operațiilor matematice.
After investigating the Cetus exploit transaction, I believe I have identified the root cause of the bug. The issue stems from a type casting from u256 to u64 within the get_amount_by_liquidity function.
Afișare original
53,94 K
151
Conținutul de pe această pagină este furnizat de terți. Dacă nu se menționează altfel, OKX nu este autorul articolului citat și nu revendică niciun drept intelectual pentru materiale. Conținutul este furnizat doar pentru informare și nu reprezintă opinia OKX. Nu este furnizat pentru a fi o susținere de nicio natură și nu trebuie să fie considerat un sfat de investiție sau o solicitare de a cumpăra sau vinde active digitale. În măsura în care AI-ul de generare este utilizat pentru a furniza rezumate sau alte informații, astfel de conținut generat de AI poate să fie inexact sau neconsecvent. Citiți articolul asociat pentru mai multe detalii și informații. OKX nu răspunde pentru conținutul găzduit pe pagini terțe. Deținerile de active digitale, inclusiv criptomonedele stabile și NFT-urile, prezintă un grad ridicat de risc și pot fluctua semnificativ. Trebuie să analizați cu atenție dacă tranzacționarea sau deținerea de active digitale este adecvată pentru dumneavoastră prin prisma situației dumneavoastră financiare.