Kolejny hack, który ostatnio przeanalizowałem, to Vicuna Finance z marca tego roku. Stracili 700 tys. dolarów przez manipulację oraklem tokenów LP na łańcuchu Sonic. Atak wykorzystał fundamentalną wadę wyceny, którą można było zapobiec prostym assertem. Tokeny LP były wyceniane za pomocą podstawowej formuły sumy (price_token1 * amount_token1 + price_token0 * amount_token0) zamiast uczciwej wyceny, która uwzględnia formułę stałego produktu puli. Sekwencja ataku: - Duża wymiana z tokena0 na token1 sztucznie zawyżyła cenę orakla tokenów LP - Złożenie przewartościowanych tokenów LP jako zabezpieczenia - Pożyczenie maksymalnych aktywów przeciwko zawyżonej wartości zabezpieczenia - Odwrócenie wymiany, co spowodowało spadek ceny LP, pozostawiając protokół z złym długiem Manipulacja cenami to wzór, który widzimy w kółko, i jest to wzór, przeciwko któremu asserty dobrze chronią. W tym przykładzie eksperymentujemy z nowym kodem oszustwa, który pozwoli na inspekcję wywołań w stosie wywołań, co jest idealne do wykrywania manipulacji cenami wewnątrz transakcji. Sprawdzamy, że wywołanie "swap" nie może spowodować, że cena odchyla się o więcej niż 5% od wartości bazowej w dowolnym momencie podczas wykonywania transakcji. To prosty, ale potężny sposób na ochronę przed, na przykład, atakami flash loan.
2,42K