Riesiger Raubüberfall aufgedeckt: Praktisches Tool wird tödlich, da Hacker 270 Millionen US-Dollar aus Drift auf der Solana-Blockchain erbeuten

Der Angriff auf das Drift-Protokoll war kein Hack im herkömmlichen Sinne.
Niemand hat einen Fehler gefunden oder einen privaten Schlüssel geknackt. Es gab auch keinen Flash-Loan-Exploit oder manipuliertes Orakel.
Stattdessen nutzte ein Angreifer eine legitime Solana-Funktion, „dauerhafte Nonces“, um den Sicherheitsrat von Drift dazu zu bringen, Transaktionen vorab zu genehmigen, die Wochen später ausgeführt würden, zu einem Zeitpunkt und in einem Kontext, den die Unterzeichner nie beabsichtigt hatten.
Das Ergebnis war ein Abfluss von mindestens 270 Millionen US-Dollar, dessen Ausführung weniger als eine Minute, die Einrichtung aber mehr als eine Woche dauerte.
Was dauerhafte Nonces sind und warum sie existieren
Auf Solana enthält jede Transaktion einen „aktuellen Blockhash“, im Wesentlichen einen Zeitstempel, der beweist, dass die Transaktion kürzlich erstellt wurde. Dieser Blockhash läuft nach etwa 60 bis 90 Sekunden ab. Wenn die Transaktion nicht innerhalb dieses Zeitfensters an das Netzwerk übermittelt wird, wird sie ungültig. Dies ist eine Sicherheitsfunktion und hilft zu verhindern, dass alte, veraltete Transaktionen später erneut abgespielt werden.
Dauerhafte Nonces setzen diese Sicherheitsfunktion außer Kraft. Sie ersetzen den ablaufenden Blockhash durch einen festen „Nonce“, einen einmaligen Code, der in einem speziellen On-Chain-Konto gespeichert wird und die Transaktion auf unbestimmte Zeit gültig hält, bis jemand sie übermittelt.
Die Funktion existiert aus legitimen Gründen. Hardware-Wallets, Offline-Signatur-Setups und institutionelle Verwahrungslösungen benötigen alle die Möglichkeit, Transaktionen vorzubereiten und zu genehmigen, ohne sie innerhalb von 90 Sekunden übermitteln zu müssen.
Aber unbegrenzt gültige Transaktionen stellen ein Problem dar. Wenn man heute jemanden dazu bringen kann, eine Transaktion zu unterzeichnen, kann sie gemäß den fest programmierten Regeln des Systems nächste Woche oder nächsten Monat ausgeführt werden. Der Unterzeichner hat keine Möglichkeit, seine einmal erteilte Genehmigung zu widerrufen, es sei denn, das Nonce-Konto wird manuell erweitert, was von den meisten Benutzern nicht überwacht wird.
Wie der Angreifer sie benutzte
Das Protokoll von Drift wurde durch ein „Security Council Multisig“ geregelt, ein System, bei dem mehrere Personen (in diesem Fall fünf) die Kontrolle teilen und jede Aktion die Zustimmung von mindestens zwei von ihnen erfordert. Multisigs sind eine Standard-Sicherheitspraxis in DeFi, wobei die Idee darin besteht, dass die Kompromittierung einer einzelnen Person nicht ausreicht, um Gelder zu stehlen.
Aber der Angreifer musste die Schlüssel von niemandem kompromittieren. Alles, was sie brauchten, waren zwei Unterschriften, und sie scheinen diese durch etwas erhalten zu haben, was Drift als „nicht autorisierte oder falsch dargestellte Transaktionsgenehmigungen“ beschreibt, was bedeutet, dass die Unterzeichner wahrscheinlich dachten, sie würden eine Routinetransaktion genehmigen.
Hier ist die Zeitleiste von Drift, die in einem Beitrag vom Donnerstag X veröffentlicht wurde.
Am 23. März wurden vier dauerhafte Nonce-Konten erstellt. Zwei davon standen im Zusammenhang mit legitimen Mitgliedern des Drift-Sicherheitsrates. Zwei wurden vom Angreifer kontrolliert. Dies bedeutet, dass der Angreifer bereits gültige Unterschriften von zwei der fünf Ratsmitglieder erhalten hatte, die an dauerhafte Nonce-Transaktionen gebunden waren, die nicht ablaufen würden.
Am 27. März führte Drift eine geplante Migration zum Sicherheitsrat durch, um ein Ratsmitglied auszutauschen. Der Angreifer passte sich an. Am 30. März erschien ein neues dauerhaftes Nonce-Konto, das mit einem Mitglied des aktualisierten Multisig verknüpft war, was darauf hindeutet, dass der Angreifer unter der neuen Konfiguration wieder die erforderliche Zwei-von-Fünf-Genehmigungsschwelle erhalten hatte.
Am 1. April wurde der Angreifer hingerichtet.
Zunächst führte Drift einen legitimen Probeabzug aus seiner Versicherungskasse durch. Ungefähr eine Minute später übermittelte der Angreifer die vorsignierten dauerhaften Nonce-Transaktionen. Zwei Transaktionen im Abstand von vier Slots auf der Solana-Blockchain reichten aus, um eine böswillige Admin-Übertragung zu erstellen und zu genehmigen, sie dann zu genehmigen und auszuführen.
Innerhalb weniger Minuten hatte der Angreifer die vollständige Kontrolle über die Berechtigungen auf Protokollebene von Drift. Sie nutzten diese Kontrolle, um einen betrügerischen Auszahlungsmechanismus einzuführen und die Tresore zu leeren.
Was wurde mitgenommen und wohin es ging
Onchain-Forscher verfolgten die Geldflüsse in Echtzeit. Die vom Sicherheitsforscher Vladimir S. zusammengestellte Aufschlüsselung der gestohlenen Vermögenswerte belief sich auf rund 270 Millionen US-Dollar, verteilt auf Dutzende von Token.
Die größte Einzelkategorie war 155,6 Millionen US-Dollar in JPL-Tokens, gefolgt von 60,4 Millionen US-Dollar in USDC, 11,3 Millionen US-Dollar in CBBTC (Coinbase Wrapped Bitcoin), 5,65 Millionen US-Dollar in USDT, 4,7 Millionen US-Dollar in Wrapped Ether, 4,5 Millionen US-Dollar in DSOL, 4,4 Millionen US-Dollar in WBTC, 4,1 Millionen US-Dollar in FARTCOIN und kleineren Beträgen in JUP, JITOSOL, MSOL, BSOL, EURC und andere.
Das primäre Drainer-Wallet wurde acht Tage vor dem Angriff über Absichten des NEAR-Protokolls finanziert, blieb aber bis zum Tag der Ausführung inaktiv. Gestohlene Gelder wurden auf zwischengeschaltete Wallets übertragen, die erst am Vortag über Backpack, eine dezentrale Krypto-Börse, die eine Identitätsprüfung erfordert, finanziert wurden, was den Ermittlern möglicherweise einen Hinweis geben könnte.
Von dort aus wurden die Gelder über Wormhole, eine kettenübergreifende Brücke, an Ethereum-Adressen weitergeleitet. Diese Ethereum-Adressen wurden mit Tornado Cash, dem sanktionierten Datenschutz-Mixer, vorfinanziert.
ZachXBT, ein bekannter On-Chain-Ermittler, stellte fest, dass über 230 Millionen US-Dollar in USDC über das CCTP (Cross-Chain Transfer Protocol) von Circle in mehr als 100 Transaktionen von Solana zu Ethereum übertragen wurden.
Er kritisierte Circle, den zentralisierten Emittenten von $USDC,