Kolejnym hackiem, któremu ostatnio się przyjrzałem, jest Vicuna Finance z marca tego roku. Stracili 700 tys. dolarów w wyniku manipulacji wyrocznią tokenów LP w łańcuchu Sonic. Atak wykorzystywał fundamentalną lukę cenową, której można było zapobiec za pomocą prostego stwierdzenia. Tokeny LP zostały wycenione przy użyciu podstawowej formuły sumy (price_token1 * amount_token1 + price_token0 * amount_token0) zamiast uczciwej ceny, która uwzględnia stałą formułę produktu puli. Sekwencja ataku: - Duża zamiana z token0 na token1 sztucznie zawyżona cena wyroczni tokena LP - Wpłać przewartościowane tokeny LP jako zabezpieczenie - Pożycz maksymalną liczbę aktywów pod zawyżoną wartość zabezpieczenia - Reverse swap zdeflował cenę LP, pozostawiając protokół ze złym długiem Manipulacja cenami to wzorzec, który widzimy raz po raz i jest to wzorzec, przed którym twierdzenia dobrze chronią. W tym przykładzie eksperymentujemy z nowym kodem, który pozwoli na inspekcję połączeń w stosie wywołań, co jest idealne do wykrywania manipulacji cenami wewnątrz TX. Sprawdzamy, czy wezwanie "swap" nie może spowodować, że cena odbiegnie o więcej niż 5% od linii bazowej w dowolnym momencie podczas realizacji tx. Jest to prosty, ale skuteczny sposób ochrony przed np. atakami typu flash loan.
2,46K