Chibi Finance angeblich 1 Mio. US-Dollar Teppichraub: Wie es dazu kam

Am 26. Juni wurde der dezentrale Finanzaggregator (DeFi) Chibi Finance von seinem eigenen Deployer-Konto ausgenutzt und Kryptowährungen im Wert von 1 Million US-Dollar wurden in einem offensichtlichen Rug-Pull- oder Exit-Betrug aus seinen Verträgen abgezogen. Die offizielle Benutzeroberfläche des Protokolls verschwand, was zu einem 404-Fehler führte, und alle sozialen Medien für die App wurden entfernt. Nachdem die Gelder aufgebraucht waren, wurden sie gegen Wrapped Ether (WETH) getauscht und an Ethereum weitergeleitet, wo sie anschließend vom Angreifer an Tornado Cash gesendet wurden.

Der Preis des Governance-Tokens von Chibi Finance (CHIBI) fiel um über 90 %, als die Nachricht bekannt wurde.

CHIBI-Token-Preis. Quelle: CoinGecko.

Aber „Teppichzüge“ sollten in DeFi nicht möglich sein. Schließlich laufen diese Apps per Definition nicht auf einer zentralen Infrastruktur. Der Ersteller der App sollte also nicht in der Lage sein, mit jedermanns Krypto oder Bargeld davonzulaufen.

Aus diesem Grund könnte es sinnvoll sein, zu analysieren, wie der mutmaßliche Betrug durchgeführt wurde.

CertiK hat produziert einen ausführlichen Bericht nach der Untersuchung des Vorfalls. In Kombination mit Blockchain-Daten kann dieser Bericht Aufschluss darüber geben, wie der Angriff stattgefunden hat und was Benutzer tun können, um sich in Zukunft vor ähnlichen Angriffen oder Betrügereien zu schützen.

Die Chibi Finance-App

Bevor seine Benutzeroberfläche offline ging, bezeichnete sich Chibi als „der beliebteste Ertragsaggregator auf Arbitrum“. Es wurde behauptet, dass es Benutzern ermöglicht, Erträge aus dem gesamten Arbitrum-Ökosystem zu erzielen.

Laut CertiK ist der Total Value Locked (TVL) des DeFi-Aggregators seit seiner Einführung im April gewachsen – ein Maß für den Wert der in den Verträgen einer App enthaltenen Kryptowährungen. Am 21. Juni gab Chibi bekannt, dass es einen TVL von 500.000 US-Dollar erreicht hatte. Damals gab das Team das Ziel an, 1 Million US-Dollar zu erreichen.

Am 26. Juni wurde die App erstmals auf CoinGecko gelistet, was ihr eine größere Bekanntheit verschaffte. Es scheint, dass es sein 1-Millionen-Dollar-Ziel kurz nach diesem Ereignis erreicht hat, kurz bevor die Token aus seinen Verträgen entfernt wurden. Infolgedessen verloren Anleger durch den Angriff oder Betrug Kryptowährungen im Wert von über 1 Million US-Dollar.

Chibi Finance-Verträge

Der Angriff nutzte eine Lücke in acht verschiedenen Verträgen aus, die im Chibi Finance-Protokoll verwendet werden. Diese Verträge stammten aus anderen Projekten und galten nicht nur für Chibi. Eines davon war beispielsweise StrategyAave.sol an der Arbitrum-Adresse 0x45E8a9BA6Fcd612a30ae186F3Cc93d78Be3E7d8d, das auch an mehreren anderen Adressen auf Abitrum, Ethereum, der BNB Smart Chain und anderen Netzwerken bereitgestellt wurde.

Ein weiteres Beispiel ist der StrategySushiSwap.sol-Vertrag unter 0x9458Ea03af408cED1d919C8866a97FB35D06Aae0. Es gibt auch mehrere Versionen davon auf Arbitrum und anderen Netzwerken.

Diese Verträge scheinen häufig in DeFi-Aggregatoranwendungen verwendet zu werden, nicht nur in Chibi Finance.

Verwandt: DeFi-Aggregation: Wegbereiter für die Masseneinführung

Panikfunktion

Blockchain-Daten zeigen, dass einige der von Chibi Finance verwendeten Verträge eine „Panik“-Funktion enthalten, mit der alle Token aus einem Pool abgezogen und an eine bestimmte Adresse gesendet werden können. Diese Funktion war für die Vorgehensweise des Angreifers von wesentlicher Bedeutung. Hier ist eine Erklärung der Funktionsweise am Beispiel von StrategySushiSwap.sol:

In den Zeilen 340–343 von StrategySushiSwap.sol heißt es, dass bei Aufruf der panic()-Funktion eine zweite Funktion mit dem Namen „emergencyWithdraw“ im ISushiStake-Vertrag aufgerufen wird.

Die Funktion panic() im StrategySushiSwap.sol-Vertrag. Quelle: Blockchain-Daten.

Der ISushiStake-Vertrag wiederum ist nur eine Schnittstelle. Es enthält keinen ausführbaren Code. Stattdessen verweist es auf den SushiSwap: MiniChefV2-Vertrag bei 0xF4d73326C13a4Fc5FD7A064217e12780e9Bd62c3.

Die MiniChefV2-Adresse lautet aufgeführt als offizieller Vertrag für die dezentrale Börse SushiSwap. Die „Panic“-Funktion ruft also eine „emergencyWithdraw“-Funktion innerhalb von SushiSwap auf.

An der SushiSwap-Adresse ist die EmergencyWithdraw-Funktion in den Zeilen 626–643 zu sehen.

SushiSwap MiniChefV2 Notfall-Abhebungsfunktion. Quelle: Blockchain-Daten.

Diese Funktion ermöglicht es dem Besitzer von Geldern, Geld abzuheben, ohne Belohnungen entgegenzunehmen. Dies kann im Notfall nützlich sein. Beispielsweise möchte ein Benutzer diese Funktion möglicherweise aufrufen, wenn ein Fehler im Belohnungsvertrag dazu führt, dass er keine Belohnungen erhalten kann.

Die Funktion „EmergencyWithdraw“ verfügt über eine Ausfallsicherung, um die Nutzung durch Unbefugte zu verhindern. In Zeile 360 ​​heißt es: „UserInfo storage user = userInfo[pid][msg.sender]Das bedeutet, dass der „Benutzer“ als Absender der Nachricht definiert ist. Unter normalen Umständen sollte dies einem Benutzer ermöglichen, im Notfall sein eigenes Geld abzuheben, jedoch nicht das Geld, das jemand anderem gehört.

An dieser Funktion in SushiSwap scheint es nichts Schädliches zu geben. Allerdings kann es zu einem Problem kommen, wenn der Nutzer diese Funktion nicht direkt aus dem eigenen Wallet aufruft.

Wenn ein Benutzer beispielsweise Geld über Chibi Finance einzahlte, wurde seine Kryptowährung über den StrategySushiSwap-Vertrag an SushiSwap gesendet, nicht direkt vom Endbenutzer. Dies bedeutete, dass die Chibi Finance-App als „Benutzer“ erkannt wurde, als sie versuchte, im Notfall Geld abzuheben. Dies wiederum ermöglichte es Chibi, die Gelder der Benutzer im Namen der Benutzer abzuheben.

Verwandt: So erkennen Sie einen Rug Pull in DeFi: 6 Tipps von Cointelegraph

Allerdings dürften die Gelder noch sicher gewesen sein, solange die Panikfunktion nur vom Endnutzer aufgerufen werden konnte.

Bei der Panikfunktion ist diese Voraussetzung leider nicht gegeben. Stattdessen wird es im Chibi Finance-Vertrag einfach als „onlyGov“-Funktion aufgeführt, was bedeutet, dass ein Administrator sie aufrufen kann, aber niemand anderes. Der Angreifer nutzte diese Lücke, um seinen Angriff durchzuführen.

Wie der Chibi Finance-Angriff durchgeführt wurde

Laut CertiK-Bericht hat der Ethereum-Benutzer Shadowout.eth am 15. Juni 10 Ether (ETH) von Tornado Cash abgezogen. Diese Gelder wurden an Arbitrum weitergeleitet und 0,2 ETH wurden von diesem Benutzer an die Adresse 0x80c1ca8f002744a3b22ac5ba6ffc4dc0deda58e3 gesendet. Dann dieser zweite Account erstellt ein böswilliger Vertrag am 23. Juni unter der Adresse 0xb61222189b240be3da072898eda7db58b00fd6ee.

Der Angreifer hat am 23. Juni acht Mal die Funktion „Pool hinzufügen“ für diesen bösartigen Vertrag aufgerufen. Da der Vertrag nicht verifiziert ist, ist der Code für diese Funktion „Pool hinzufügen“ unbekannt. CertiK spekulierte jedoch, dass jede dieser Transaktionen möglicherweise einen Chibi Finance-Vertrag zu einer Liste in den Daten des böswilligen Vertrags hinzugefügt hat, was insgesamt acht Verträge in der Liste betrifft.

Am 27. Juni wurde das Deployer-Konto für Chibi Finance eröffnet übertragen Administratorrechte für die acht Chibi Finance-Verträge für den böswilligen Vertrag. Dies geschah durch acht separate Transaktionen, von denen jede die Funktion „setGov“ für einen bestimmten Vertrag aufrief.

Administratorrechte für einen der Chibi Finance-Verträge werden geändert. Quelle: Blockchain-Daten.

Nachdem der böswillige Vertrag diese Governance-Rechte erlangt hatte, nannte sein Ersteller seine „Ausführungs“-Funktion. Dies führte dazu, dass bei jedem der acht Verträge „Panik“ ausgerufen wurde, was wiederum bei zugehörigen Pools in DeFi-Apps wie SushiSwap, Aave und Global Hectare den Ausruf „emergencyWithdraw“ auslöste.

Das Ergebnis war, dass alle von Benutzern über Chibi Finance in diese Pools eingezahlten Gelder vom Angreifer abgezogen wurden, was zu Verlusten von über 1 Million US-Dollar für die Anleger führte.

Wie können Teppichzüge im Chibi-Stil vermieden werden?

Angesichts der Tatsache, dass der Angriff auf einer „Panik“-Funktion beruhte, die es einem Administrator ermöglichte, alle Gelder der Benutzer abzuschöpfen, wäre eine Möglichkeit, einen Rug Pull im Chibi-Stil zu vermeiden, darin, keine Apps zu verwenden, die über diese Funktion verfügen.

Verfügt ein Aggregator andererseits nicht über eine „Panik“-Funktion, besteht das Risiko, dass die Gelder des Benutzers stecken bleiben, wenn ein Fehler oder Exploit in der Aggregator-App entdeckt wird. Benutzer sollten diese Kompromisse möglicherweise in Betracht ziehen, wenn sie sich für die Verwendung von Aggregator-Apps entscheiden, anstatt direkt mit den zugrunde liegenden Pools zu interagieren.

Verwandt: Über 204 Millionen US-Dollar gingen im zweiten Quartal durch DeFi-Hacks und -Betrügereien verloren: Bericht

DeFi-Benutzer sollten auch bedenken, dass Smart-Contract-Code äußerst komplex sein kann und es für die meisten Benutzer möglicherweise nicht möglich ist, selbst festzustellen, ob eine App eine Sicherheitslücke aufweist. Wie CertiK in seinem Bericht behauptete:

„Der Vorfall mit Chibi Finance zeigt die Risiken, die mit der Zentralisierung im Web3-Bereich verbunden sind.[…]Es ist eine unrealistische Erwartung, dass normale Anleger die Zentralisierungsrisiken in Projekten wie Chibi Finance erkennen und verstehen, indem sie einfach ihre eigenen Recherchen durchführen.“

Aus diesem Grund möchten Benutzer möglicherweise die veröffentlichten Audits einer App überprüfen, bevor sie sie verwenden, so CertiK.

Chibi Finance behauptete, von der Blockchain-Sicherheitsfirma SolidProof geprüft worden zu sein. Der Inhalt der angeblichen Prüfung ist nicht mehr verfügbar, da der GitHub des Projekts entfernt wurde und nie von Internetarchiven gespeichert wurde. Cointelegraph konnte nicht feststellen, ob die von der „Panik“-Funktion ausgehenden Risiken im Prüfungsbericht offengelegt wurden oder ob überhaupt eine Prüfung stattgefunden hat.

Cointelegraph hat SolidProof um einen Kommentar gebeten, jedoch keine Antwort per Veröffentlichung erhalten.

Rug Pulls oder Exit Scams sind im DeFi-Bereich zu einem häufigen Problem geworden. Am 1. Juni berichtete das Blockchain-Sicherheitsunternehmen Beosin, dass durch Rug-Pulls im Mai über 45 Millionen US-Dollar verloren gingen, was mehr war als bei regulären DeFi-Exploits. Im April wurde angeblich auch das Ordinals Finance-Protokoll durch eine „safuToken“-Transferfunktion um 1 Million US-Dollar erhöht.