Wie wir die gestohlenen Gelder für TransitSwap und BabySwap zurückerlangt haben

Schnelle Wiederherstellung gestohlener Gelder: Wie wir gestohlene Gelder aus dem Angriff auf TransitSwap und BabySwap im BSC-Netzwerk mithilfe einer Schwachstelle im Bot des Angreifers effizient wiederhergestellt haben

Wie wir die gestohlenen Gelder für TransitSwap und BabySwap zurückerlangt haben

Einleitung

BabySwap und TransitSwap auf BSC wurden am 1. Oktober angegriffen. Einige Angriffstransaktionen wurden von einem Bot front-runnt. Interessanterweise war dieser Bot anfällig für die Profanity-Tool-Schwachstelle, und wir konnten seinen privaten Schlüssel erfolgreich wiederherstellen. Wir haben es auch geschafft, den Bot-Vertrag zu reverse-engineeren und die Gelder aus dem Bot-Vertrag auf unser sicheres Konto abzuheben. Wir haben die Gelder an TransitSwap überwiesen und sind derzeit dabei, BabySwap anzubinden.

Zeitstrahl

Die Entdeckung des Angriffs auf BabySwap

Am 01.10.2022 um 14:47 Uhr (UTC) meldete unser internes System eine Angriffstransaktion. Unsere weitere Analyse ergab, dass dies auf die kontrollierten Factorys im Smart Router Contract zurückzuführen ist. Wir haben die Details zu diesem Zeitpunkt jedoch nicht 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-runnte. Dieses Konto weist auch ein Muster mit acht führenden Nullen auf, was darauf hindeutet, dass es vom 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 Uhr (UTC) hat unser Tool den privaten Schlüssel dieses Bots in etwa 20 Minuten erfolgreich wiederhergestellt. Mit dem wiederhergestellten privaten Schlüssel haben wir die Gelder auf ein sicheres Konto übertragen (was der typische Prozess unserer Rettungsaktion 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.

Gelder vom Bot abheben

Die Herausforderung besteht darin, dass sich die Gelder im Contract befinden, der vom Bot bereitgestellt wurde, und nicht im Bot EOA-Konto selbst. Wie die Gelder abgehoben werden sollen, ist eine Herausforderung.

Wir haben den Contract dekompiliert und festgestellt, dass es eine withdraw-Funktion im Contract gibt (wie in der folgenden Abbildung gezeigt).

Diese Funktion kann genutzt werden, um die Gelder im Contract abzuheben. Das erste Argument ist die Token-Adresse, und das zweite Argument sollte Null sein.

Wir haben eine Transaktion gesendet und erfolgreich die Gelder aus dem Contract auf den Bot abgehoben und dann die Gelder auf unser sicheres Konto übertragen.

Hier kommt ein weiterer Angriff!

Ein paar Stunden später meldete unser System einen weiteren Angriff auf TransSwap. Es gab mehrere Angriffstransaktionen von verschiedenen Adressen, und eine Transaktion wurde erneut von diesem Bot front-runnt! Da der vom Bot bereitgestellte Contract jedoch ein anderer ist, ist die Funktion zum Abheben 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 durch den Bot durch den Angriff auf anfällige Contracts erhalten. Obwohl der Bot die Angriffstransaktion front-runnte (statt den Angriff von vornherein zu starten), sind wir 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. 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 Rettungsaktion

Wir sind weiterhin dabei, anfällige Adressen zu retten (https://twitter.com/BlockSecTeam/status/1577146334863560705). 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änkungen der Rechenleistung noch Zeit, um die gesamte Rettungsaktion 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 auf diese Schwachstelle?

Bleiben Sie dran und sicher.

Fazit

Ein sicheres DeFi-Projekt zu schaffen, ist keine leichte Aufgabe. Neben der Code-Prüfung sind wir der Meinung, dass die Community proaktiv den Projektstatus überwachen und den Angriff blockieren sollte, bevor er überhaupt stattfindet.

Über BlockSec

BlockSec ist ein Pionierunternehmen im Bereich der Blockchain-Sicherheit, das 2021 von einer Gruppe weltweit anerkannter Sicherheitsexperten gegründet wurde. Das Unternehmen hat es sich zur Aufgabe gemacht, die Sicherheit und Benutzerfreundlichkeit der aufstrebenden Web3-Welt zu verbessern, um deren Massenadoption zu fördern. Zu diesem Zweck bietet BlockSec Auditing-Dienste für Smart Contracts und EVM-Chains, die Phalcon-Plattform für die Entwicklung von Sicherheitsmaßnahmen und die proaktive Blockierung von Bedrohungen, die MetaSleuth-Plattform für die Verfolgung und Untersuchung von Geldern 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 erstklassigen Investoren wie Matrix Partners, Vitalbridge Capital und Fenbushi Capital zweistellige Millionenbeträge erhalten.

Offizielle Website: https://blocksec.com/ Offizieller Twitter-Account: https://twitter.com/BlockSecTeam

Sign up for the latest updates