Hakerowi udało się wykraść ponad 6 milionów dolarów z protokołu zdecentralizowanych finansów (DeFi) Delta Prime poprzez wygenerowanie dowolnie dużej liczby tokenów służących do kwitowania depozytów.

Według danych z eksploratora bloków Arbiscan, w pierwotnym ataku atakujący wybił ponad 115 duovigintillionów tokenów Delta Prime USD (DPUSDC), co w notacji naukowej stanowi kwotę większą niż 1,1*10^69.

DPUSDC to dowód wpłaty na stablecoina USDC (USDC) przechowywanego w Delta Prime. Ma być wymienialny w stosunku 1:1 na USDC.

Mimo wybicia tak dużej liczby pokwitowań depozytowych w USDC, atakujący spalił tylko 2,4 miliona z nich, otrzymując w zamian stablecoina o wartości 2,4 miliona USDC.

Atakujący wybija bardzo dużą liczbę tokenów DPUSDC i wykupuje część z nich. Źródło: Arbiscan.

Następnie atakujący powtórzył te kroki dla innych tokenów potwierdzeń depozytowych, wybijając ponad 1 duovgintylionów Delta Prime Wrapped Bitcoin (DPBTCb), 115 oktodecylionów Delta Prime Wrapped Ether (DPWETH), 115 oktodecylionów Delta Prime Arbitrum (DPARB) i wiele innych tokenów potwierdzeń depozytowych, ostatecznie wymieniając niewielką część wybitej kwoty na ponad 1 milion dolarów w Bitcoinach (BTC), Etherach (ETH), Arbitrum (ARB) i innych tokenach.

Według specjalisty ds. bezpieczeństwa blockchain, Chaofana Shou, atakujący do tej pory ukradł środki szacowane na 6 milionów dolarów.


Źródło: Chaofan Shu.

Atakujący był w stanie wybić te tokeny depozytów, najpierw uzyskując kontrolę nad kontem administratora kończącym się na b1afb, co prawdopodobnie osiągnął, kradnąc klucz prywatny programisty. Korzystając z tego konta, wywołali funkcję „aktualizacji” w każdym z kontraktów puli płynności protokołu.

Te funkcje są przeznaczone do użytku w przypadku aktualizacji oprogramowania. Umożliwiają one deweloperowi zmianę kodu w kontrakcie poprzez wskazanie jego proxy na inny adres implementacji.

Jednak atakujący użył tych funkcji, aby wskazać każdemu proxy złośliwy kontrakt, który stworzył. Każdy złośliwy kontrakt pozwalał atakującemu na wybicie dowolnie dużej liczby pokwitowań depozytowych, co skutecznie pozwalało im opróżnić każdą pulę funduszy.

Kontrakty na modernizację atakującego Delta Prime. Źródło: Arbiscan.

Delta Prime potwierdziła atak w poście X, stwierdzając, że „O 6:14 rano czasu środkowoeuropejskiego DeltaPrime Blue (Arbitrum) padła ofiarą ataku i straciła 5,98 mln USD”.

Twierdził, że wersja Avalanche, DeltaPrime Blue, nie jest podatna na atak. Stwierdził również, że ubezpieczenie protokołu „pokryje wszelkie potencjalne straty, jeśli będzie to możliwe/konieczne”.

Atak Delta Prime ilustruje ryzyko związane z protokołami DeFi wykorzystującymi kontrakty z możliwością aktualizacji.

Ekosystem Web3 został zaprojektowany tak, aby uniemożliwić hakerom wykorzystanie kluczy prywatnych i wykorzystanie całych protokołów.

Teoretycznie atakujący musiałby ukraść klucze prywatne każdego użytkownika, aby wyczerpać cały protokół. Jednak gdy kontrakty są aktualizowane, wprowadza to element ryzyka centralizacji, który może doprowadzić do utraty funduszy przez całą bazę użytkowników.

Mimo to niektóre protokoły uważają, że rezygnacja z możliwości aktualizacji może być gorsza od jej alternatywy, ponieważ może uniemożliwić deweloperowi naprawienie błędów znalezionych po wdrożeniu. Deweloperzy Web3 nadal debatują, kiedy protokoły powinny, a kiedy nie powinny zezwalać na aktualizacje.

Wykorzystywanie inteligentnych kontraktów nadal stanowi zagrożenie dla użytkowników Web3. 11 września atakujący ukradł ponad 1,4 miliona dolarów z puli płynności tokenów CUT, używając niejasnej linii kodu, która wskazywała na niezweryfikowaną funkcję w oddzielnym kontrakcie.

3 września z protokołu Penpie wypłacono ponad 27 milionów dolarów po tym, jak atakującemu udało się zarejestrować własny złośliwy kontrakt jako rynek tokenów.