Subiecte populare
#
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.
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.
53.43K
Limită superioară
Clasament
Favorite