Am 9. April 2023 wurde SushiSwap aufgrund eines nicht verifizierten externen Parameters zum Ziel eines Exploits. Der Gesamtverlust beläuft sich auf etwa 3,3 Millionen US-Dollar.
Als führendes Protokoll auf Ethereum mit einer beachtlichen Nutzerbasis sind selbst solche Top-Protokolle anfällig dafür, bei Vertrags-Upgrades schwerwiegende neue Probleme einzuführen. Dies ist eine Erinnerung für die DeFi-Community, dass Sicherheit immer oberste Priorität haben sollte. Darüber hinaus wurde dieser Sicherheitsvorfall durch den Rettungsversuch eines Whitehat-Sicherheitsforschers ausgelöst, was innerhalb der Community für erhebliche Debatten sorgte. Wir bieten eine prägnante Einführung in diesen Vorfall und heben ihn als einen der zehn wichtigsten Sicherheitsvorfälle des Jahres 2023 hervor.
Hintergrund
SushiSwap
SushiSwap, eine renommierte DEX, startete eine Vampir-Attacke gegen Uniswap und erzielte damit enorme Erfolge. Auf dem Höhepunkt erreichte der TVL 8 Milliarden US-Dollar und liegt auch heute noch bei etwa 400 Millionen US-Dollar.
Freigabe (Approval)
Kurz gesagt: die Erlaubnis für einen Vertrag, auf einen bestimmten Token aus Ihrem Wallet zuzugreifen und diesen zu transferieren.
Aus Gründen der Bequemlichkeit verlangen viele Verträge standardmäßig eine unbegrenzte Freigabe. Viele Nutzer, die um Sicherheitsrisiken besorgt sind, zahlen nur kleine Beträge in verschiedene Protokolle ein. Diese Nutzer gewähren den Protokollen jedoch eine unbegrenzte Freigabe der Gelder; wenn ein Protokoll kompromittiert wird, könnten alle freigegebenen Token im Konto verloren gehen.
Die Schwachstelle
Nicht verifizierter externer Parameter
Der processRoute()-Aufruf des RouteProcessor2-Vertrags ermöglicht Benutzern die vollständige Kontrolle über den Aufruffluss (Parameter route).
Und im uniswapV3SwapCallback() wird der Parameter from von safeTransferFrom() aus der vom Benutzer bereitgestellten route dekodiert.
Infolgedessen verloren Benutzer, die den RouteProcessor2-Vertrag freigegeben hatten, ihre Vermögenswerte.
Der Angriffsprozess
Dieser Vorfall umfasste mehrere Angriffstransaktionen, aber wir verwenden die erste Angriffstransaktion als Beispiel. Transaktion: 0x43ff7e01423044cfb501b4fe9ef1386725c0ddc117dadd6e6620cb68bdeaf4f9
- Der Angreifer rief den anfälligen
processRoute()-Aufruf des RouteProcessor2-Vertrags mit einem sorgfältig konstruierten langen Argumentrouteauf.
processRouteInternal()erstellt basierend auf der vom Benutzer bereitgestellten Route einenInputStream.
- Die Transaktion folgte der
routedes Angreifers, bis sieswapUniV3()erreichte. Beachten Sie, dass derpoolaus demstreamdekodiert wird, was bedeutet, dass der Angreifer kontrollierte, in welchempoolderswap()stattfindet, indem er ihn alslastCalledPoolfestlegte.
- Dies rief den vom Angreifer bereitgestellten bösartigen Vertrag auf, der dann einfach bösartige
calldataweitergab, um denuniswapV3SwapCallback()von RouteProcessor2 zurückzurufen. uniswapV3SwapCallback()erfordert einemsg.sender-Prüfung, aber da derlastCalledPoolbereits auf den bösartigen Vertrag gesetzt worden war, umging der Hacker die Prüfung. Wichtig ist, dass der ParameterfromvonsafeTransferFrom()aus den vom Angreifer konstruiertencalldatadekodiert wurde.
- Die Vermögenswerte des Opfers werden an den vom Angreifer bereitgestellten bösartigen Vertrag übertragen.
Umstrittene Whitehat-Rettung
Es ist erwähnenswert, dass ein Whitehat mit dem Benutzernamen @trust__90 dieses Problem identifizierte und versuchte, Gelder zu retten, aber dieser Rettungsversuch verursachte ein Desaster.
- Nutzung des Mempools zur Übertragung von Transaktionen anstelle eines privaten RPC.
- Versuch, nur 100 Ether anstelle aller gefährdeten Gelder zu retten.
Dies öffnete Tür und Tor für MEV-Bots und andere Angreifer, mehrere Nachahmer-Transaktionen durchzuführen, wodurch effektiv der Großteil der Gelder abgezogen wurde. Nach diesen Ereignissen sah sich @trust__90 mit Gegenwind konfrontiert und versuchte, sein Handeln zu verteidigen.
Leute sagen alle möglichen schrecklichen Dinge, ohne informiert zu sein, also erlaubt mir, mehr Details zu teilen.
— Trust (@trust__90) 10. April 2023
Ich habe 3 Stunden vor dem White-Hack privat die Koordination mit Immunefi-Beamten eingeleitet. 90 Minuten später erkannte ich, dass das Asset derzeit vom Frontend verwendet wird und…
BlockSec-Rettung
Bei diesem Angriff haben wir ebenfalls 100 Ether gerettet und die Gelder an das Opfer, 0xsifu, zurückgegeben.
Bis heute haben wir über 20 reale Hacks erfolgreich vereitelt und Vermögenswerte im Wert von mehr als 14.000.000 US-Dollar gerettet.Hey, @0xsifu Wir haben erfolgreich eine Angriffstransaktion blockiert und 100 Ether gerettet. Bitte nehmen Sie Kontakt mit uns auf.
— BlockSec (@BlockSecTeam) 9. April 2023
Sicherheitsempfehlungen
Upgrades sollten immer geprüft werden
Dies ist eine Erinnerung an die DeFi-Community, dass Sicherheit immer oberste Priorität haben sollte. Audits sind keine Garantie für Sicherheit, aber das Fehlen eines Audits garantiert sicherlich keine Sicherheit.
Minderungsmaßnahmen für das Freigabeproblem
Das Jahr 2023 sah zahlreiche Vorfälle mit Freigabe-Angriffen, und wir nutzen diese Gelegenheit, um die Bedeutung der Verwaltung von Freigaben erneut zu betonen. Eine bewährte Sicherheitspraxis ist es, nur die notwendigen Beträge freizugeben oder, falls Bequemlichkeit Priorität hat, einen etwas höheren Betrag als nötig freizugeben.
BlockSecs MetaSuites bietet eine praktische Funktion zur Diagnose von Freigaben. Zusätzlich können Tools wie Revoke Cash verwendet werden, um den Freigabestatus regelmäßig zu überprüfen.
Überwachungs- und automatische Reaktionsmechanismen implementieren
Ethereum ist ein dunkler Wald, und jeder in der DeFi-Community sieht sich verschiedenen Risiken und Herausforderungen gegenüber, selbst Sicherheitsexperten. Im Jahr 2023 haben wir Phalcon Security eingeführt, das branchenweit erste automatisierte Reaktionssystem, das nicht nur für die Überwachung von Angriffen, sondern für das aktive Blockieren von Bedrohungen in Echtzeit entwickelt wurde. Phalcons praxiserprobte Fähigkeiten haben ihre Wirksamkeit bewiesen, indem sie über 20 reale Hacks erfolgreich vereitelt und Vermögenswerte im Wert von mehr als 14.000.000 US-Dollar gerettet haben. Diese Innovation stellt sicher, dass alle Beteiligten nachts ruhiger schlafen können, in dem Wissen, dass proaktive Maßnahmen zum Schutz ihrer Investitionen getroffen wurden.
Lesen Sie weitere Artikel in dieser Serie:
- Lead-In: Die Top Ten der "fantastischen" Sicherheitsvorfälle 2023
- #1: MEV-Bots durch Ausnutzung von Schwachstellen im Flashbots-Relay ernten
- #2: Euler-Finance-Vorfall: Der größte Hack des Jahres 2023
- #3: KyberSwap-Vorfall: Meisterhafte Ausnutzung von Rundungsfehlern bei äußerst subtilen Berechnungen
- #4: Curve-Vorfall: Compiler-Fehler erzeugt fehlerhaften Bytecode aus unschuldigem Quellcode
- #5: Platypus Finance: Überleben von drei Angriffen mit einer Portion Glück
- #6: Hundred-Finance-Vorfall: Auslöser der Welle von präzisionsbezogenen Exploits in anfälligen geforkten Protokollen
- #7: ParaSpace-Vorfall: Ein Wettlauf gegen die Zeit, um den bisher kritischsten Angriff der Branche abzuwehren
- #9: MEV-Bot 0xd61492: Vom Raubtier zur Beute in einem genialen Exploit
- #10: ThirdWeb-Vorfall: Inkompatibilität zwischen vertrauenswürdigen Modulen legt Schwachstelle offen



