De aanval op Drift Protocol was niet een hack in de traditionele zin. Er was geen ontdekking van een bug of het kraken van een privé-sleutel. Ook was er geen flash loan-exploit of gemanipuleerde oracle betrokken. In plaats daarvan heeft een aanvaller gebruikgemaakt van een legitieme functie binnen Solana, ‘durable nonces’, om de beveiligingsraad van Drift te misleiden tot het vooraf goedkeuren van transacties die weken later zouden worden uitgevoerd, op een moment en in een context die de ondertekenaars nooit hadden bedoeld. Het resultaat was een verduistering van ten minste $270 miljoen die binnen een minuut werd uitgevoerd, maar meer dan een week in de maak was.
In Solana bevat elke transactie een ‘recent blockhash’, wat in wezen een tijdstempel is dat bewijst dat de transactie recent is aangemaakt. Dit blockhash verloopt na ongeveer 60 tot 90 seconden. Als de transactie binnen dat tijdsbestek niet naar het netwerk wordt verzonden, wordt deze ongeldig. Dit is een veiligheidsfunctie die helpt voorkomen dat oude, verouderde transacties later opnieuw worden afgespeeld.
Durable nonces omzeilen deze veiligheidsfunctie. Ze vervangen het vervallende blockhash door een vaste ‘nonce’, een eenmalige code die is opgeslagen in een speciaal on-chain account, waardoor de transactie geldig blijft totdat iemand ervoor kiest deze in te dienen. Deze functie is ontstaan uit legitieme noodzaak. Hardware wallets, offline ondertekeningssystemen en institutionele custody-oplossingen hebben allemaal de mogelijkheid nodig om transacties voor te bereiden en goed te keuren, zonder gedwongen te worden ze binnen 90 seconden in te dienen.
Echter, oneindig geldige transacties vormen een probleem. Wanneer iemand vandaag een transactie laat ondertekenen, kan deze volgende week of volgende maand worden uitgevoerd, volgens de hardcoded regels van het systeem. De ondertekenaar heeft geen mogelijkheid om goedkeuring in te trekken zodra deze is gegeven, tenzij het nonce-account handmatig wordt geavanceerd, iets wat de meeste gebruikers niet monitoren.
Het protocol van Drift werd bestuurd door een ‘Security Council multisig’, een systeem waarbij meerdere mensen (in dit geval vijf) de controle delen, en waarbij ten minste twee goedkeuringen vereist zijn voor elke actie. Multisigs zijn een standaard beveiligingspraktijk binnen DeFi, waarbij het idee is dat het compromitteren van een enkele persoon niet genoeg is om fondsen te stelen.
Echter, de aanvaller hoefde niemand’s sleutels te compromitteren. Wat men nodig had, waren slechts twee handtekeningen en deze zijn verkregen via wat Drift omschrijft als “niet-geautoriseerde of misrepresentatieve goedkeuringen van transacties”, wat betekent dat de ondertekenaars vermoedelijk dachten dat ze een routinematige transactie goedkeurden.
De tijdlijn die Drift openbaar maakte via een post op X, onthult dat op 23 maart vier durable nonce-accounts werden aangemaakt. Twee waren gekoppeld aan legitieme leden van de Drift Security Council, terwijl de andere twee door de aanvaller werden gecontroleerd. Dat betekent dat de aanvaller al geldige handtekeningen van twee van de vijf raadsleden had verkregen, vastgelegd in durable nonce-transacties die niet zouden verlopen.
Op 27 maart voerde Drift een geplande migratie van de Security Council uit om een raadslid te vervangen. De aanvaller paste zich aan. Tegen 30 maart verscheen er een nieuw durable nonce-account, gekoppeld aan een lid van de vernieuwde multisig, wat aangeeft dat de aanvaller opnieuw de vereiste twee-van-vijf goedkeuringsdrempel had behaald binnen de nieuwe configuratie.
Op 1 april voerde de aanvaller de uitvoering uit. Eerst voerde Drift een legitieme testopname uit vanuit het verzekeringsfonds. Ongeveer een minuut later diende de aanvaller de vooraf ondertekende durable nonce-transacties in. Twee transacties, vier slots van elkaar verwijderd op de Solana-blockchain, waren voldoende om een kwaadaardige admin-overdracht te creëren en goed te keuren, en deze uit te voeren.
Binnen enkele minuten had de aanvaller volledige controle over de protocollen voor Drift. Deze controle werd gebruikt om een frauduleuze opname-mechanisme in te voeren en de kluizen te leeghalen.
On-chain onderzoekers volgden de geldstromen in real-time. De breakdown van de gestolen activa, samengesteld door beveiligingsonderzoeker Vladimir S., bedroeg ongeveer $270 miljoen over tientallen tokens. De grootste categorie was $155,6 miljoen in JPL-tokens, gevolgd door $60,4 miljoen in USDC, $11,3 miljoen in CBBTC (Coinbase gewrapt bitcoin), $5,65 miljoen in USDT, $4,7 miljoen in gewrapte ether, $4,5 miljoen in DSOL, $4,4 miljoen in WBTC, $4,1 miljoen in FARTCOIN en kleinere bedragen in JUP, JITOSOL, MSOL, BSOL, EURC en anderen.
De primaire drainer wallet werd acht dagen voor de aanval gefinancierd via NEAR Protocol intenties, maar bleef inactief tot de dag van uitvoering. Gestolen fondsen werden overgedragen naar tussenwallets die slechts een dag daarvoor gefinancierd waren via Backpack, een gedecentraliseerde crypto-exchange die identiteitsverificatie vereist, wat blijkbaar een leidraad kan bieden voor onderzoekers. Van daaruit werden de fondsen overgedragen naar Ethereum-adressen via Wormhole, een cross-chain brug. Die Ethereum-adressen waren vooraf gefinancierd met behulp van Tornado Cash, de gesanctioneerde privacy mixer.
ZachXBT, een prominente on-chain onderzoeker, merkte op dat meer dan $230 miljoen in USDC vanuit Solana naar Ethereum werd overgebracht via Circle’s CCTP (Cross-Chain Transfer Protocol) in meer dan 100 transacties. Hij bekritiseerde Circle, de gecentraliseerde uitgever van USDC, omdat deze de gestolen fondsen niet had bevroren binnen een tijdsbestek van zes uur na het begin van de aanval rond het middaguur Eastern Time.
De aanval deed ook denken aan recente pogingen tot social engineering, waarbij tactieken werden gebruikt die eerder waren gezien, volgens een post op sociale media van een gebruiker die zichzelf ‘Temmy’ noemt. “We hebben dit eerder gezien. Dit hebben we zo vaak gezien,” zei de gebruiker.
“Bybit. $1,4 miljard. De aanvaller heeft de ondertekeninfrastructuur gecompromitteerd en ondertekenaars misleid om kwaadaardige transacties te autoriseren. Zelfde concept. Social engineering. Niet codering. Ronin bridge. $625 miljoen. Gecompromitteerde validator-sleutels. Zelfde verhaal. Cetus Protocol. $223 miljoen. Andere methode, maar hetzelfde resultaat. Honderden miljoenen weg.” aldus de post.
Wat faalde was de menselijke laag rondom de multisig. Durable nonces stelden de aanvaller in staat om het moment van goedkeuring te scheiden van het moment van uitvoering met meer dan een week, wat een kloof creëerde waarin de context van het ondertekende document niet meer overeenkwam met de context waarin het werd gebruikt.
Alle stortingen in Drift’s leen- en uitleenproducten, kluizendeposito’s en handelsfondsen zijn getroffen. DSOL-tokens die niet zijn gestort in Drift, inclusief activa die zijn gestaked naar de Drift-validator, zijn niet getroffen. De activa van het verzekeringsfonds worden opgenomen en veiliggesteld. Het protocol is bevroren en de gecompromitteerde wallet is uit de multisig verwijderd.
Hierdoor is dit de derde grote exploit in de afgelopen maanden die niet gepaard ging met een codekwetsbaarheid. Social engineering en operationele beveiligingsfouten, in plaats van bugs in slimme contracten, lijken steeds vaker de manieren waarop geld DeFi-protocollen verlaat.
De durable nonce-vector is bijzonder gevaarlijk omdat deze een functie aanvalt die om goede redenen bestaat en lastig te verdedigen is zonder fundamenteel te veranderen hoe multisig goedkeuringen werken op Solana.
De open vraag, die Drift’s komende gedetailleerde post-mortem zal moeten beantwoorden, is hoe twee verschillende multisig-leden transacties hebben goedgekeurd die ze niet begrepen, en of eventuele tools of interfacewijzigingen duurzame nonce-transacties als vereisend extra scrutinie hadden kunnen markeren.
Wat zijn de belangrijkste lessen die uit deze aanval kunnen worden getrokken?
De aanval benadrukt de noodzaak voor een betere beveiliging en waakzaamheid rondom multisig-structuren, vooral met functies zoals durable nonces die potentieel misbruikt kunnen worden. Daarnaast roept het op tot meer transparantie en educatie over de risico’s verbonden aan goedkeuringsprocessen in DeFi.
Hoe beïnvloedt deze aanval het vertrouwen van investeerders in DeFi?
Het effect van deze aanval op het vertrouwen van investeerders kan significant zijn. Herhaalde exploits zonder codekwetsbaarheden laten zien dat menselijke fouten en social engineering een serieuze dreiging vormen, wat kan leiden tot terughoudendheid bij investeerders.
Welke stappen kunnen protocollen nemen om soortgelijke aanvallen in de toekomst te voorkomen?
Protocollen kunnen gebruikmaken van strengere controlemechanismen, zoals meldingen bij het ondertekenen van afwijkende transacties, en de implementatie van multi-factor-authenticatie voor belangrijke transacties kan ook helpen de kans op succesvolle social engineering-aanvallen te verkleinen.
