Die dezentrale Finanzwelt (DeFi) ist auch in dieser Woche nicht von Hacks verschont geblieben. Einem Angreifer gelang es, 30 Millionen US-Dollar aus dem Grim Finance-Protokoll zu stehlen, und zwar durch einen relativ bekannten „Re-Entry“-Angriff.
Grim Finance werden 30 Millionen Dollar entwendet
Grim Finance (GRIM), ein dezentrales Finanzprotokoll (DeFi), bestätigte die Nachricht auf seinem Twitter-Account. Am Samstag war es Opfer eines Angriffs geworden, der zum Verlust von digitalen Vermögenswerten im Wert von 30 Millionen US-Dollar führte. Da die Schwachstelle direkt die „Vaults“ (d. h. die Tresore) betrifft, sind derzeit alle Gelder der Nutzer gefährdet.
Das Protokoll ist in der Blockchain Fantom Opera implementiert, die in der Programmiersprache Solidity aufgebaut und mit Ethereum (ETH) kompatibel ist. Grim Finance versteht sich als „Compound Return Optimizer“, d.h. es verspricht, Ihren Token eine Rendite zu verschaffen, indem es sie vorübergehend in seinen Vaults blockiert.
Hello Grim Community,
It is with heavy hearts that we inform you that our platform was exploited today by an external attacker roughly 6 hours ago. The attackers address has been identified with over 30 million dollars worth of theft here https://t.co/qA3iBTSepb
– Grim Finance (@financegrim) December 19, 2021
In seiner technischen Dokumentation erklärt Grim, es wolle „den Nutzern helfen, mehr Belohnungen zu sammeln, ohne Ärger“. Verfehlt, wie es scheint.
Was ist das für ein Angriff?
Nach Informationen von Grim Finance soll der Hacker einen recht gängigen Angriff vom Typ „reentrancy“ verwendet haben. Dabei wird eine Abhebungsanfrage initiiert und dann mehrere andere gleichzeitig durchgeführt, solange die erste noch ausgeführt wird. Auf diese Weise täuscht der Angreifer das Protokoll und nimmt eine Abhebung vor, die den Gesamtbetrag des Tresors übersteigt.
In solchen Fällen verfügen die Protokolle in der Regel nur über eine Sicherheit bei der Initiierung und dem Abschluss Ihres Antrags. Sie prüfen zunächst, ob Ihr Tresor über den ausreichenden Betrag für die Abhebung verfügt. Dann wird bei der Bestätigung der Transaktion eine weitere Überprüfung vorgenommen, hauptsächlich um die angehängten Gebühren zu berechnen.
Angenommen, es gelingt, mehrere Abhebungsanträge für das gesamte Schließfach gleichzeitig zu stellen, bevor auch nur einer davon bestätigt wird. Dann wird jeder Antrag genehmigt und man kann mehr abheben, als man tatsächlich besitzt. Das ist das (stark vereinfachte) Prinzip eines „reentrancy attack“.
Details des Angriffs:
Dies war ein fortgeschrittener Angriff. Der Angreifer griff über die Funktion mit dem Titel vorherDeposit() aus unserer Vault-Strategie an, indem er einen schädlichen Token-Vertrag eingab.
– Grim Finance (@financegrim) December 19, 2021
Wie sieht die Zukunft von Grim Finance aus
„Reentrancy“-Angriffe sind in Ethereum relativ häufig anzutreffen und werden von den Protokollen allmählich gut erkannt und erfasst. Übrigens behauptet Rugdoc.io, eine DeFi-Überwachungsgruppe aus Smart Contracts-Experten und Auditoren, in einer Reihe von Tweets, dass die Schuld direkt bei Grim Finance liegt. Der Code hätte einen „reentrancy guard“ enthalten müssen, d.h. einen speziellen Schutz gegen diese Art von Angriff.
Hoffen wir, dass alle Projekte aus diesem Vorfall lernen können. Es gibt viel Wissen, das die meisten erfahrenen Solidity-Entwickler zur Hand haben. Wenn Sie es noch nicht verstanden haben, bauen Sie keine Projekte im Wert von mehreren Millionen Dollar. Lassen Sie sich nicht von Firmen prüfen, von denen jeder weiß, dass sie nichts taugen“, heißt es in einem der Tweets.
Grim Finance wurde von der Firma Solidity Finance beauftragt, die Sicherheit des Codes der Smart-Contracts ihres Protokolls zu prüfen. Laut ihrem Bericht wird „ReetrancyGuard an den Stellen eingesetzt, an denen es notwendig ist, um Reentrancy-Angriffe zu verhindern“. Wieder einmal verfehlt.
Ein harter Schlag für die Wirtschaft des Grim Finance-Ökosystems: Das GRIM-Token litt bald unter den Folgen der Nachricht. Der Preis fiel um mehr als 80% von etwa 0,8 $ auf nur noch 0,15 $ im Tiefststand. Zum Zeitpunkt des Schreibens dieser Zeilen wurde es für 0,2 $ gehandelt.

Kursentwicklung des GRIM-Tokens (Quelle: CoinGecko)
Am Sonntagmorgen wurden einige Vaults vorübergehend geöffnet, damit die Nutzer ihre Gelder abheben konnten. Seit dem späten Nachmittag bleiben jedoch alle Ein- und Auszahlungen in den Vaults von Grim Finance pausiert, um weitere Zwischenfälle zu vermeiden