Newsticker

Hacker fälscht 120.000 Ether auf Solana und zieht fast 100.000 echte Ether ab

Ein klassisches Wurmloch, fotografiert von li.pan39, geteilt auf flickr.com. Lizenz: Creative Commons

Wir haben wieder einen 300-Millionen-Dollar-Hack: Ein Angreifer hat der dezentralen Bridge Wormhole fast 100.000 Ether gestohlen. Wormhole verbindet mehrere Smart-Contract-Blockchains, um Token zwischen diesen zu transferieren. Dies macht den Hack technisch gesehen extrem interessant.

Vergangenen Donnerstag wurde einer der interessantesten und größten DeFi-Hacks bekannt. Der Ethreum-Entwickler Leftis Karapetsas tweetete:

Zu Deutsch: „Die Wormhole Bridge wurde um 80.000 ETH beraubt. Die ETH auf Solana sind plötzlich durch nichts mehr gedeckt.“ Kurz darauf bestätigte der offizielle Twitter-Account von Wormhole, dass es noch schlimmer gekommen war:

Wormhole sei gerade abgeschaltet wegen eines Exploits. Einige Minuten später ergänzte der Account: Es habe einen 120.000-Ether-Hack gegeben. Die Ether werden, verspricht er, in den nächsten Stunden aufgefüllt, damit die wETH auf Solana wieder 1:1 gedeckt seien. Man arbeite auch daran, schon in den nächsten Stunden wieder online zu gehen.

Der Angreifer hat also die Wormhole-Bridge gehackt und dadurch auf der Solana-Blockchain 120.000 Ether – das sind gut 300 Millionen Dollar – aus reiner Luft erzeugt.

Was bedeutet das? Was ist Solana, was ist Wormhole, was ist eine Bridge? Wie ging der Hack vonstatten, welche Vulnerabilitäten nutzte er aus? Und warum ist das ganze auch noch ziemlich bulllisch für Ethereum?

Diese Fragen werden wir im Folgenden beantworten.

Solana

Erstens: Was hat es mit Wormhole, den Brücken und Solana auf sich?

Diese Frage ist relativ einfach. Lesern dieses Blogs dürfte bekannt sein, dass die Gaspreise bei Ethereum auf ein Niveau gestiegen sind, das außerhalb von Gut und Böse liegt, so dass die meisten interessanten Operationen Gebühren von 20, 30 oder auch mehr als 100 Euro kosten. Die Ethereum-Blockchain hat schlicht nicht die Kapazität, um die Nachfrage nach Smart-Contract-Transaktionen zu bedienen, die sie erst geschaffen hat.

Also hat sich ein System von Smart-Contract-Blockchains herausgebildet. Einige davon, etwa Polygon, sind eine Sidechain von Ethereum, andere, wie die Binance Smart Chain, Fantom, Terra, Avalanche und eben auch Solana sind vollkommen eigenständige Blockchains. Diese Vielzahl von Blockchains skaliert nicht Ethereum, aber die Smart Contracts von Ethereum.

Solana wirbt mit einem „Proof of History“, der angeblich eine bisher unbekannte Schnelligkeit und Skalierbarkeit ermöglicht, allerdings auch eine hohe Last für Nodes nach sich zieht. Die Blockchain gilt als sehr effizient, aber auch sehr zentralisiert. Für Investoren wurde sie einer der Glücksgriffe im Jahr 2021: Der Preis je SOL-Token stieg von knapp zwei Dollar Anfang 2021 auf eine Spitze von mehr als 200 Dollar; derzeit kostet ein SOL gut 120 Dollar.

Wie aber bekommt man Token von Ethereum auf eine andere Blockchain wie Solana? Dafür hat man zwei Möglichkeiten: Der klassische Ansatz wäre es, die Token auf eine Börse zu senden, dort zu wechseln und auf die Solana-Blockchain zu transferieren. Bequemer und schneller ist es allerdings, eine Brücke (Bridge) zu benutzen: Das ist eine Plattform, die für die User Token von einer auf die andere Blockchain transportiert.

Wormhole

Wormhole ist eine solche Brücke – und darüber hinaus noch dezentral. Wormhole dient, so die Webseite, als „dezentrales, blockchainchainübergreifendes Nachrichtenprotokoll. Es erlaubt Anwendungen, Nachrichten von einer Blockchain zu einer anderen zu senden“.

Wormhole verbindet die folgenden Blockchains: Ethereum, Solana, Terra, Binance Smart Chain, Polygon, Avalanche, and Oasis. Da Wormhole beliebige Nachrichten transportiert, kann es mit sämtlichen Token arbeiten, die auf den Blockhains funktionieren, ob nun fungible Token wie Stablecoins oder nicht-fungible Token wie NFTs.

Der Ablauf dabei ist der Folgende: Ein Token wird auf einer Blockchain eingefroren und auf der anderen neu erschaffen. Wenn man beispielsweise 120.000 Ether von der Ethereum-Blockchain auf die Solana-Blockchain überträgt, friert man zuerst 120.000 Ether auf Ethereum ein, woraufhin Wormhole auf Solana 120.000 Ether-Token schafft.

Die essenziellen Akteure bei Wormhole sind die „Guardians“: Diese überwachen und attestieren Ereignisse und Daten auf den verbundenen Blockchains. Die Guardians bilden zusammen das „Wormhole Peer-to-Peer Netzwerk“, welchem jeder beitreten kann. Sobald mindestens 2/3 der Guardians eine Nachricht signieren, ist sie gültig und wird vom Smart Contract auf der anderen Blockchain akzeptiert. Ein solches Wahlverfahren erinnert an den Konsens-Mechanismus von Ripple.

Um die 120.000 auf Ethereum eingefrorenen Blockchains auf Solana zu erschaffen, müssen also 2/3 der Guardians die entsprechenden Nachricht signieren. Dann werden die Ether als Token auf Solana automatisch erschaffen.

Brücken wie Wormhole sind definitiv ein extrem wichtiger Pfeiler des über Ethereum hinausgewachsenen Ökosystems der Smart Contracts. Aber sie bergen auch Risiken, wie der Hack vergangene Woche verdeutlichte.

120.000 gefälschte Ether

Der Wormhole-Hack ist relativ komplex und schwierig zu verstehen. Dies haben Smart-Contract-Hacks oft an sich. Denn in vielen Fällen wirken verschiedene Contacts, Accounts und Mechanismen zusammen, von denen jeder schon für sich schwierig genug zu begreifen ist.

Ich versuche im folgenden, den Hack möglichst einfach zu beschreiben. Eine nützliche Quelle dafür ist der Incident Report von Wormhole selbst.

Wormhole besteht aus Accounts und Smart Contracts auf den verschiedenen Blockchains. So gibt es etwa auf Solana einen Account, der Token wie Ether erschaffen kann, wenn, und nur wenn, er eine von den Guardians signierte Nachricht erhält, die ihm sagt, dass die entsprechende Anzahl Ether auf Ethereum eingefroren wurde, um auf Solana wiederbelebt zu werden. Um sicher zu gehen, dass die Nachricht authentisch ist, prüft der Smart Contract die Signaturen der Guardians.

Nun gab es aber einen Bug im entsprechenden Smart Contract auf Solana. Dieser Bug erlaubte es dem Angreifer, sich als den Account „sysvar::instructions“ („sysvar“) auszugeben. Der sysvar-Account gehört zur Laufzeitumgebung von Solana und hilft dabei, Informationen über vorher ausgeführte Smart-Contract-Instruktionen zu beziehen. Er ist quasi eine Funktion in Form eines Accounts, so dass Smart Contracts sie aufrufen können. Da syscar ein elementarer Teil von Solana ist, gilt er als vertrauenswürdig. An sich ist das eine praktische und nützliche Sache. Doch in der Anwendung von Wormhole verursachte sie einen Bug.

Wie es konkret funktionierte, ist äußert kompliziert. In jedem Fall gelang es dem Angreifer, dem Smart Contract vorzugaukeln, er sei der sysvar-Account, woraufhin der Smart Contract darauf verzichtete, die Signatur zu prüfen. Auf diese Weise konnte der Hacker so tun, als reiche er eine Nachricht der Guardians ein, die die Schöpfung von legitimen 120.000 Ether-Token auf Solana in Auftrag gibt. Allerdings war diese Nachricht eben nicht von den Guardians unterzeichnet, und der Angreifer hatte eben nicht 120.000 Ether auf der Ethereum-Blockchain eingefroren.

Man kann es sich so ähnlich vorstellen, als gebe sich jemand für Christine Lagarde aus, um in der Kommandozentrale der Europäischen Zentralbank die Notenpresse zu beauftragen, 262 Millionen Euro zu drucken. Da Frau Lagarde wohlbekannt und absolut vertrauenswürdig ist, verzichtet der Wachmann darauf, ihren Ausweis zu prüfen.

Dem Wormhole-Team war der Angriff bereits bekannt. Ein Bugfix lag bereits seit dem 13. Januar vor, doch das Team kam erst vergangenen Donnerstag dazu, den Fix in ein Update zu packen. Der Hacker bekam davon Wind – der Code ist Open Source – und nutzte die Schwäche prompt aus.

Der Hacker hatte also auf Solana 120.000 gefälschte Ether-Token erschaffen, die durch nichts gedeckt sind. Er benutze nun augenblicklich die Wormhole-Bridge, um 93.750 der gefälschten Solana-Ether auf die Ethereum-Blockchain zu transportieren. Dafür ist die Brücke ja da. Die Solana-Ether wurden in einem Smart Contract eingefroren, die Guardians bestätigten dies, und ein Smart Contract auf Ethereum gab die 93.750 Ether heraus — auf den Account des Angreifers.

Damit war der Hacker am Finale seines Coups gelandet: Er hat den Ether-Vorrat von Wormhole leergeräumt und besitzt nun fast 100.000 echte Ether auf der echten Ethereum-Blockchain. Das sind derzeit rund 250 Millionen Euro.

Das Nachspiel: Wormhole rappelt sich auf

Es dauerte kaum mehr als eine halbe Stunde, bis die Community den Hack bemerkte. Die Differenz der ETH-Guthaben auf Solana und Ether war nicht zu übersehen.

Kurz darauf trafen sich die Wormhole-Entwickler zu einem „War Room“-Call. Sie alarmierten die Guardians, welche Wormhole abschalteten, also keine Token-Transfers mehr freigaben. Den Entwicklern war beinah sofort klar, welchen Bug der Hacker ausgenutzt hatte. Sie sorgten dafür, dass die Software durch das Update gefixt wurde.

Auch der Schaden des Hacks konnte einigermaßen beseitigt werden. Nachdem der Hacker fast 100.000 Ether ausgezahlt hatte, waren die ETH-Reserven von Wormhole geleert, und die ETH-Token von Wormhole auf Solana – und möglicherweise auch anderen Blockchains – waren ungedeckt. Doch das Team fand in kurzer Zeit einen Investor, der die gestohlenen Ether vollständig ersetzte. Einige Stunden später ging die Wormhole-Bridge wieder in Betrieb.

Der 300-Millionen-Dollar-Hack war sicherlich schmerzhaft. Aber er war nicht fatal, und die Schnelligkeit, mit der Wormhole wieder auf die Beine sprang, ist bemerkenswert. Man stelle sich vor, dies geschieht bei einer klassischen Bank …

Aber was ist mit dem Hacker?

Weißer Hut, schwarzer Hut?

In vielen Fällen stehen hinter solchen Angriffen Whitehat-Hacker, oder zumindest welche mit einem hell- bis mittelgrauen Hut: Sie fahren den Angriff, um auf Vulnerabilitäten hinzuweisen, nehmen sich einen kleinen Teil als Service-Gebühr und geben den Rest zurück. Sie sind die Guten, und werden dafür fürstlich entlohnt.

Bisher gelang es dem Wormhole-Team nicht, Kontakt zum Hacker aufzunehmen. Auch ein Angebot von 10 Millionen Dollar für die Rückgabe der Ether blieb bisher unbeantwortet. Der Hacker scheint es nicht eilig zu haben, die Ether zu bewegen, sie liegen weiterhin zum allergrößten Teil auf seinem Account.

Zum „allergrößten Teil“, weil der Hacker sich prompt „Bored Yacht Apes“-Token (APE) gekauft hat. Die Bored Yacht Apes – gelangweilte Yacht-Affen – sind eine der beliebtesten NFT-Sammelkollektionen, die mittlerweile sogar teurer gehandelt werden als die CryptoPunks.

Ansonsten findet man auf dem Account noch eingehende Transaktionen von PulseChain, dem jüngsten Projekt von Richard Heart. Der Pulsechain-Account ist allerdings dafür bekannt, bekannte andere Accounts als Litfasäule zu missbrauchen, indem er Spam-Transaktionen an diese sendet. Daher sind die Transaktionen eher nichtssagend.

Falls es sich tatsächlich um einen Blackhat handelt, also einen bösen, feindlichen Hacker, dann geht es üblicherweise so weiter: Er wäscht die erbeuteten Ether, wofür er beispielsweise Tornado Cash verwenden könnte, ein Smart Contract auf Ethereum, der, je nach Wortwahl, hilft, die Privatsphäre zu erhöhen oder Geld zu waschen.

Bridges sind schwierig

Abschließend wollen wir noch einige Worte zur Relevanz des Hacks verlieren:

Erstens weist der Hack wie alle großen Exploits dorthin, wo die Musik spielt. Wäre Wormhole nicht wichtig, hätte es nicht so viel zu stehlen gegeben. Es scheint derzeit unvermeidlich, dass Smart Contracts ein dezentrales Ökosystem verschiedener Blockchains bevölkern. Bridges sind in diesem Ökosystem eine tragende Säule, und wenn sie sich dezentral auftstellen, ist das sehr begrüßenswert. Aber darin liegt auch eine große Herausforderung.

Zweitens bestätigt der Hack die Risiken, die mit blockchain-übergreifenden Anwendungen einhergehen. Erst vor etwa einem Monat hat Ethereums Vitalik Buterin auf Reddit über diese geschrieben, wenn auch im Zusammenhang mit 51-Prozent-Angriffen. Doch zum Teil trifft das, was Vitalik Buterin sagt, auch für Wormhole zu: Um sinnvoll zu funktionieren, muss eine Bridge mit vielen Blockchains interagieren. Und je größer die Anzahl an Blockchains, desto größer die Anzahl möglicher Bugs und Exploits. Es ist extrem schwierig und arbeitsintensiv, eine Bridge sicher zu halten.

Drittens wird der Hacker vermutlich viel Zeit brauchen, um die Ether zu waschen und zu verkaufen, falls er ein Blackhat ist. Er kann seine Spuren zwar über Mixer wie Tornado Cash verschleiern, doch deren Liquidität ist äußerst gering. Falls der Hacker sich nicht auf einen Deal mit Wormhole einlässt, werden die knapp 100.000 Ether dem Markt für eine lange Zeit entzogen und nur tröpfchenweise gewechselt. Daher könnte auch dieser Hack für den Preis von Ethereum mittelfristig bullisch sein.

Über Christoph Bergmann (2258 Artikel)
Das Bitcoinblog wird von Bitcoin.de gesponsort, ist inhaltlich aber unabhängig und gibt die Meinung des Redakteurs Christoph Bergmann wieder ---

3 Kommentare zu Hacker fälscht 120.000 Ether auf Solana und zieht fast 100.000 echte Ether ab

  1. Es muss doch rauszufinden sein, wem der Account gehört.

  2. Sehr anschauliche Erklärung. Guter Artikel.

  3. Sehr interessant, danke für den Artikel!

Kommentar verfassen

%d Bloggern gefällt das: