Einleitung
BabySwap und TransitSwap auf BSC wurden am 1. Oktober angegriffen. Einige Angriffstransaktionen wurden von einem Bot Front-run. Interessanterweise war dieser Bot anfällig für die Profanity-Tool-Schwachstelle, und wir konnten seinen privaten Schlüssel erfolgreich wiederherstellen. Außerdem ist es uns gelungen, den Bot-Contract zu Reverse-Engineeren und die Gelder aus dem Bot-Contract auf unser sicheres Konto zu überweisen. Wir haben die Gelder an TransitSwap überwiesen und verbinden derzeit BabySwap.
Zeitstrahl
Die Entdeckung des Angriffs auf BabySwap
Am 01.10.2022 um 14:47 (UTC) meldete unser internes System eine Angriffstransaktion. Unsere weitere Analyse zeigte, dass dies auf die kontrollierten Factorys im Smart-Router-Vertrag zurückzuführen ist. Zu diesem Zeitpunkt haben wir jedoch keine Details offengelegt, da das Projekt noch anfällig war. Wir kontaktierten BabySwap über Twitter DM und TG, erhielten aber keine Antwort.
Während der Untersuchung stellten wir fest, dass diese Transaktion von einem Bot-Konto ausgestellt wurde, das die ursprüngliche Angriffstransaktion front-run-te. Außerdem hat dieses Konto ein Muster mit acht führenden Nullen, was darauf hindeutet, dass es mit dem Profanity-Tool generiert wurde, das anfällig für die Profanity-Tool-Schwachstelle ist.
Die Wiederherstellung des privaten Schlüssels des Bots
Am 01.10.2022 um 16:10 (UTC) stellte unser Tool den privaten Schlüssel dieses Bots in etwa 20 Minuten erfolgreich wieder her. Mit dem wiederhergestellten privaten Schlüssel überwiesen wir die Gelder auf ein sicheres Konto (was der typische Prozess unserer Rettung ist). Andernfalls könnten andere, die ebenfalls den privaten Schlüssel wiederherstellen, das Konto übernehmen, und die Gelder auf dem Konto wären gefährdet.
Überweisung der Gelder aus dem Bot
Die Herausforderung besteht darin, dass sich die Gelder im Vertrag befinden, der vom Bot bereitgestellt wurde, und nicht im EOA-Konto des Bots selbst. Wie die Gelder überwiesen werden können, ist eine Herausforderung.
Wir haben den Vertrag dekompiliert und festgestellt, dass es im Vertrag eine Auszahlungsfunktion gibt (wie in der folgenden Abbildung gezeigt).

Diese Funktion kann genutzt werden, um die Gelder im Vertrag abzuheben. Das erste Argument ist die Token-Adresse, und das zweite Argument sollte null sein.
Wir haben eine Transaktion gesendet und die Gelder erfolgreich aus dem Vertrag an den Bot abgehoben und dann die Gelder auf unser sicheres Konto überwiesen.
Hier kommt ein weiterer Angriff!
Ein paar Stunden später [meldete unser System einen weiteren Angriff auf TransSwap](https://twitter.com/BlockSecTeam/status/1576428812514250753). Es gab einige Angriffstransaktionen von verschiedenen Adressen, und eine Transaktion wurde wieder von diesem Bot Front-run-te! Da der vom Bot bereitgestellte Vertrag jedoch ein anderer war, ist die Funktion zur Überweisung der Gelder unterschiedlich.

Rückgabe der Gelder
Nach interner Beratung haben wir beschlossen, die Gelder an die angegriffenen Projekte (statt an den Bot) zurückzugeben, und zwar aus folgenden Gründen.
-
Erstens wurden die Gelder vom Bot durch den Angriff auf anfällige Verträge erlangt. Obwohl der Bot die Angriffstransaktion Front-run-te (anstatt den Angriff von Anfang an zu starten), sind wir immer noch der Meinung, dass die Front-running-Transaktion einer Angriffstransaktion ebenfalls ein Angriff ist.
-
Zweitens gehören die Gelder den Opfern des Angriffs, d. h. den Nutzern der betroffenen DeFi-Protokolle. Die Nutzer haben aufgrund der Schwachstelle im DeFi-Protokoll viel gelitten. Sie sollten die Gelder von den Angreifern erhalten.
Wir haben die Gelder an die offizielle TransitFinance Funds Receiver Adresse überwiesen und kontaktieren BabySwap.
Aktualisierung der Rettung
Wir sind immer noch im Prozess der Rettung anfälliger Adressen. Die Herausforderung besteht darin, dass man nicht feststellen kann, ob eine Adresse anfällig ist, bevor man ihren privaten Schlüssel wiederhergestellt hat. Auch wenn wir einen optimierten Algorithmus haben, benötigen wir aufgrund der Einschränkung der Rechenleistung noch mehr Zeit, um die gesamte Rettung abzuschließen. Wir werden später einen detaillierten Bericht veröffentlichen, um den gesamten Prozess zu erörtern und die folgenden Fragen zu beantworten.
- Wie viele Adressen sind anfällig?
- Was sind die Auswirkungen der Schwachstelle, d. h. wie viele Vermögenswerte sind aufgrund der Schwachstelle gefährdet?
- Wie ist die Gesamtsituation des Angriffs dieser Schwachstelle?
Bleiben Sie dran und sicher.
Fazit
Ein sicheres DeFi-Projekt zu machen ist keine leichte Aufgabe. Neben der Code-Auditierung sind wir der Meinung, dass die Community einen proaktiven Ansatz verfolgen sollte, um den Projektstatus zu überwachen und den Angriff zu blockieren, bevor er überhaupt stattfindet.
Über BlockSec
BlockSec ist ein wegweisendes Blockchain-Sicherheitsunternehmen, das 2021 von einer Gruppe weltweit renommierter Sicherheitsexperten gegründet wurde. Das Unternehmen hat sich zum Ziel gesetzt, die Sicherheit und Benutzerfreundlichkeit für die aufstrebende Web3-Welt zu verbessern, um ihre Massenadoption zu fördern. Zu diesem Zweck bietet BlockSec Auditing-Dienste für Smart Contracts und EVM-Chains, die Phalcon-Plattform für die Sicherheitsentwicklung und die proaktive Blockierung von Bedrohungen, die MetaSleuth-Plattform für die Geldverfolgung und Untersuchung sowie die MetaDock-Erweiterung für Web3-Entwickler, die effizient im Krypto-Bereich surfen.
Bis heute hat das Unternehmen über 300 angesehene Kunden wie MetaMask, Uniswap Foundation, Compound, Forta und PancakeSwap betreut und in zwei Finanzierungsrunden von namhaften Investoren wie Matrix Partners, Vitalbridge Capital und Fenbushi Capital zehn Millionen US-Dollar erhalten.
Offizielle Website: https://blocksec.com/ Offizielles Twitter-Konto: https://twitter.com/BlockSecTeam



