
Reading time: 3 min
07/02/23
Z Cow Swap skradziono ponad 550 BNB
550 BNB z prowizji… przez tydzień
CoW Swap różni się od tradycyjnych zdecentralizowanych giełd (DEX), ponieważ nie wymaga od użytkowników samodzielnego dokonywania transakcji. Zamiast tego użytkownicy podpisują umowę handlową, aby wymienić dwa tokeny po określonej cenie, która jest następnie przekazywana zewnętrznym "solverom". Każdy solver ma dostęp do umowy rozliczeniowej, która zwykle przechowuje zebrane opłaty przez okres jednego tygodnia (przed wykorzystaniem do nagradzania solverów).
CoW Swap niedawno doświadczyło ataku, tracąc co najmniej 550 BNB w exploicie kontraktowym, który zatwierdził transfery środków z protokołu.
Firma PeckShield poinformowała, że haker z powodzeniem odprowadził około 550 BNB z CoW Swap do Tornado Cash wartych około 180 000 USD. MevRefund oznaczył to zdarzenie i wykrył, że fundusze wydawały się pochodzić od CoW Swap. Uzytkownik ostrzegł DEX i jego klientów przed exploitem w wątku na Twitterze.
Według firmy BlockSec zajmującej się audytem smart contractów, adres portfela został dodany jako "solver" CoW Swap przez multisig. Następnie adres ten wywołał transakcję zatwierdzenia DAI do SwapGuard, co doprowadziło do przeniesienia przez SwapGuard DAI z kontraktu rozliczeniowego CoW Swap na inne adresy.
Zespół w CoW Swap uspokajał, że nikt nie jest w stanie uzyskać dostępu do funduszy użytkowników bez transakcji podpisanej bezpośrednio przez użytkowników - właścicieli środków.
Podczas ataku niektórzy członkowie społeczności wpadli w panikę i namawiali użytkowników do cofnięcia smart contractów z DEX. Powiedziano im jednak, że nie jest to konieczne, ponieważ nie ma możliwości, aby użytkownicy stracili jakiekolwiek pieniądze po wysłaniu swoich zamówień za pośrednictwem kontraktu wymiany, ponieważ są one kontrolowane przez smart contracty Ethereum, a nie ludzi.
Zespół CoW Swap powiedział, że umowa rozliczeniowa, która została wykorzystana, ma dostęp tylko do opłat zebranych przez protokół w tygodniu i że haker nie był w stanie bezpośrednio uzyskać dostępu do funduszy użytkownika. Zespół powiedział, że doświadczył naruszenia bezpieczeństwa po tym, jak haker wykorzystał konto solvera, uczestnika, który działa, aby zapewnić użytkownikowi najlepszą cenę handlową. W odpowiedzi na naruszenie, Cow Swap natychmiast cofnął wszystkie zatwierdzenia dla dotkniętego kontraktu i uaktualnił do nowego kontraktu bez funkcjonalności kodu arbitralnego wykonania.
Celem CoW Swap jest zapewnienie użytkownikom najlepszych cen na zdecentralizowanych giełdach. Jednak haker obrał za swój cel smart contract rozliczający handel, GPv2Settlement, aby wyciągnąć fundusze z platformy.
PeckShield oszacował, że napastnik wydrenował około 180 000 USD DAI z CoW Swap przed skierowaniem funduszy przez Tornado Cash, aby uzyskać 551 BNB. Atak był skierowany na GPv2Settlement, inteligentny kontrakt rozliczający handel, który jest częścią protokołu CoW Swap alpha (GPv2).
Wydaje się, że atakujący oszukał właściciela kontraktu GPv2Settlement, aby zatwierdził użycie SwapGuard, co normalnie nie jest dozwolone. Według PeckShield, SwapGuard jest drugim kontraktem używanym przez CoW Swap do wspomagania i zatwierdzania wyników wymiany. To zatwierdzenie mogło przyczynić się do ataku, ponieważ SwapGuard pozwala na arbitralne wywołania funkcji. W kontekście inteligentnych kontraktów, arbitralne wywołania funkcji pozwalają każdemu, kto ma dostęp do kontraktu, na wykonanie dowolnej funkcji w jego kodzie.