DeFi-protocollen hebben miljarden dollars verloren aan aanvallen op slimme contracten. Niet door marktdalingen of regelgeving, maar door code die niet zich gedroeg zoals de ontwikkelaars verwachtten toen iemand die opzettelijk uit koers probeerde te duwen. Begrijpen hoe deze aanvallen werken is niet alleen een academische oefening. Als je DeFi gebruikt, zit je geld in deze contracten opgeslagen.

Het Ethereum ETH$2,200ETH$2,20024h+0.46%7d+6.96%30d+8.02%1y+31.82%MCap: N/AVol: N/Avia Statility ecosysteem alleen al heeft sinds 2020 meer dan $5 miljard verloren aan exploits toen DeFi begon op te schalen. Sommige daarvan waren geavanceerde zero-day-aanvallen. Veel waren bekende kwetsbaarheidpatronen die auditors hebben gemist of die na de audit waren geïntroduceerd. Dit zijn de aanvalsvectoren die steeds opduiken.

ETH Price (365 days)$2,200 Analyze

Live data via Statility

De gebruikelijke verdachten

Reentrancy

Reentrancy is de oudste kwetsbaarheid in slimme contracten en werkt nog steeds. De aanval exploiteert een eenvoudige logicafout: een contract stuurt geld naar een extern adres voordat het zijn eigen interne saldo bijwerkt. Het contract van de aanvaller ontvangt de geldmiddelen en roept vervolgens onmiddellijk terug het oorspronkelijke contract aan om opnieuw in te trekken. Omdat het saldo nog niet is bijgewerkt, denkt het contract dat de aanvaller nog steeds geldmiddelen heeft en stuurt er meer.

De beroemdste reentrancy-aanval was The DAO hack in 2016, die ongeveer $60 miljoen in ETH afvoerde en uiteindelijk leidde tot de Ethereum hard fork die Ethereum Classic creëerde. Je zou kunnen aannemen dat de industrie uit haar fouten heeft geleerd. Dat was niet het geval.

In juli 2023 leidde een reentrancy-kwetsbaarheid in de Vyper compiler (niet in code van een bepaald protocol, maar in de programmeertaal zelf) tot exploits in meerdere Curve Finance pools, waarbij meer dan $60 miljoen werd afvoerd. De fout zat al jaren in Vyper-versies 0.2.15 tot en met 0.3.0. Dit is belangrijk omdat het aantoont dat reentrancy zich kan verschuilen in lagen van de stack waar protocolarontwikkelaars en auditors niet eens naar kijken.

Oracle-manipulatie

DeFi-protocollen hebben prijsgegevens nodig om te werken. Uitleenplatforms moeten onderpandwaarden kennen. DEXs hebben referentieprijzen nodig voor slippage-bescherming. Deze prijsgegevens zijn afkomstig van orakels, en het manipuleren van het orakel betekent het manipuleren van het protocol.

De Mango Markets exploit in oktober 2022 is een schoolboekgeval. Avraham Eisenberg gebruikte $5 miljoen om de prijs van MNGO tokens op Mango's eigen exchange kunstmatig op te pompen, wat de waarde van zijn onderpandpositie opblies. Hij leende toen $114 miljoen tegen dat opgeblazen onderpand en trok het af. Technisch gezien werkte het protocol precies zoals ontworpen. Het orakel meldde de prijs die het zag. De uitleenlogica volgde zijn regels. Maar het systeem veronderstelde dat de orakelprijs de werkelijke marktwaarde weerspiegelde, en deze veronderstelling was onjuist.

Protocollen die een enkele on-chain bron voor prijsgegevens gebruiken, vooral van het eigen handelspool van een token met lage liquiditeit, zijn inherent kwetsbaar hiervoor. Chainlink★★★★4.2Chainlinkbrand★★★★4.2/55 AI reviewsChainlink is the leading oracle platform powering DeFi and onchain capital markets, securing over $25 trillion in tra...via Rexiew Chainlink en andere gedecentraliseerde orakelnetwerken bestaan om dit te beperken door gegevens uit meerdere bronnen samen te voegen, maar niet elk protocol gebruikt ze, en zelfs samengevoegde feeds kunnen onder extreme omstandigheden worden gemanipuleerd.

Flash Loan aanvallen

Flash loans zijn onzekerde leningen die binnen één transactie moeten worden geleend en terugbetaald. Als de terugbetaling niet gebeurt, wordt de gehele transactie teruggedraaid alsof deze nooit heeft plaatsgevonden. Dit is een echt nieuw financieel primitief dat geen equivalent in traditionele financiering heeft.

Het is ook het gereedschap dat veel exploits economisch haalbaar maakt. Voordat flash loans bestonden, had een aanvaller die een pool van $50 miljoen wilde manipuleren $50 miljoen nodig. Met flash loans hebben ze alleen genoeg ETH nodig om gaskosten en de flash loan premie te dekken, vaak slechts een paar honderd dollar.

Het patroon herhaalt zich in tientallen exploits: borrow een enorm bedrag via flash loan, gebruik het om een prijsorakel te manipuleren of een kwetsbare pool af te voeren, betaal het lening terug, hou de winst. De bZx-aanvallen in 2020 waren onder de eerste die dit patroon demonstreerden. Pancake Bunny verloor in 2021 $45 miljoen aan een flash-loan-aangedreven prijsmanipulatie. De lijst blijft groeien.

Flash loans creëren niet de kwetsbaarheid. Ze versterken deze. Elk protocol dat kwetsbaar is voor grote kapitaalbewegingen was al kapot. Flash loans maakten het gewoon mogelijk voor iedereen om dat grote kapitaal te zijn, gratis.

Wat audits daadwerkelijk doen (en niet doen)

Een audit van een slim contract is een regel-voor-regel codebeoordeling, meestal uitgevoerd door een gespecialiseerd beveiligingsbedrijf, dat zoekt naar bekende kwetsbaarheidpatronen, logicafouten en afwijkingen van de specificatie. Goede auditors testen ook randgevallen, simuleren aanvalscenario's en beoordelen de economische incentiefstructuur.

Dit is wat audits niet zijn: een garantie. Geauditeerde protocollen worden regelmatig gehackt. Er zijn verschillende redenen hiervoor.

Ten eerste, de code die werd geauditeerd is mogelijk niet de code die wordt geïmplementeerd. Protocollen brengen vaak wijzigingen aan na een audit, soms aanzienlijke, en implementeren zonder opnieuw te auditeren. Ten tweede onderzoeken audits een contract in isolatie of binnen een beperkt bereik. DeFi-protocollen zijn samenstellend, wat betekent dat ze met andere protocollen op manieren interageren die emergente gedragingen creëren die geen enkele audit kan voorspellen. Een uitleenprotocol kan op zichzelf veilig zijn, maar kwetsbaar worden wanneer iemand een nieuw pool creëert dat ermee op een onverwachte manier interageert.

Ten derde zijn veel exploits economisch in plaats van technisch. De code doet wat ze is geschreven om te doen, maar de economische incentiefstructuur heeft een fout die een aanvaller kan exploiteren. Auditors met een pure technische achtergrond kunnen deze misschien niet opvangen. Dit is waarom sommige beveiligingsbedrijven nu economisten en mechanismeontwerpers in hun auditteams hebben opgenomen.

Wat audits vangen versus wat ze missen

Audits vangen meestalAudits missen vaak
Reentrancy patronenCode wijzigingen na audit
Integer overflow/underflowCross-protocol composability risico's
ToegangscontrolfoutenEconomische of incentiefontwerp fouten
Bekende kwetsbaarheidpatronenNieuwe aanvalsvectoren
GasoptimalisatieproblemenGovernance aanvalsvlakken
Standaard naleving (ERC-20, enz.)Infrastructuur-laag bugs (compiler, EVM)

Post-mortem patronen

Na genoeg exploit post-mortems komen patronen naar voren. De meeste exploits zijn niet nieuw. Ze zijn variaties op bekende thema's die worden toegepast op protocollen die blinde vlekken hadden.

Niet-geverifieerde aannames zijn de meest voorkomende basisoorzaak. De ontwikkelaar veronderstelde dat de orakelprijs nauwkeurig zou zijn. Ze veronderstelden dat alleen de beoogde contracten een bepaalde functie zouden aanroepen. Ze veronderstelden dat niemand genoeg kapitaal zou hebben om een markt in één blok met 40% te verplaatsen. Elke aanname is een mogelijk aanvalsvlak.

Upgradeable contracten en admin-sleutels zijn een ander terugkerend thema. Veel protocollen gebruiken proxy-patronen die het team toestaan om contractlogica na implementatie bij te werken. Dit is bedoeld als beveiligingsmechanisme, waarmee ontwikkelaars bugs snel kunnen oplossen. Maar het betekent ook dat een gecompromitteerde admin-sleutel kan worden gebruikt om een werkend contract te vervangen door een kwaadaardig contract. De Ronin Bridge hack in 2022, die $625 miljoen verliest, was uiteindelijk een admin-sleutel compromis in plaats van een logicafout in een slim contract.

Opvallende DeFi exploits

ProtocolJaarVerlies bedragAanvalstype
The DAO2016$60MReentrancy
Ronin Bridge2022$625MValidator sleutel compromis
Wormhole2022$320MHandtekeningverificatie omzeiling
Mango Markets2022$114MOracle / prijsmanipulatie
Curve (Vyper)2023$60MCompiler-level reentrancy
Euler Finance2023$197MLiquidatielogica fout

Jezelf beschermen

Je kunt slimme contracten niet zelf auditeren tenzij je een Solidity developer bent, en zelfs dan zou je waarschijnlijk dingen missen. Maar je kunt het risico duidelijker beoordelen door de juiste vragen te stellen.

Controleer of een protocol is geauditeerd, door wie, en hoe recent. Een audit van twee jaar geleden op een codebase die vijftig keer is bijgewerkt, geeft niet veel zekerheid. Meerdere audits van onafhankelijke bedrijven zijn beter dan één. Bug bounty-programma's zijn een goed teken omdat ze voortdurende prikkel creëren voor white-hat onderzoekers om problemen te vinden voordat aanvallers dat doen.

Begrijp wie de admin-sleutels bezit. Als een multisig met drie ondertekenaars controle heeft over de mogelijkheid om de contracten bij te werken, is dat een zinvol centralisatierisico. Als die sleutels achter een timelock zitten die gebruikers 48 uur geeft om uit te treden voordat wijzigingen van kracht worden, is dat een beter ontwerp.

Wees voorzichtig met forks. Wanneer een team de code van een ander protocol kopieert en een nieuwe versie lanceert, wijzigen zij vaak onderdelen zonder de beveiligingsimplicaties volledig te begrijpen. Enkele van de ergste exploits hebben slecht uitgevoerde forks van anderszins beveiligde protocollen geraakt.

Diversificeer over protocollen. Dezelfde logica die van toepassing is op het niet houden van alle fiat in één bank, is hier van toepassing. Als een protocol dat je gebruikt, wordt uitgebuit, is blootstelling beperkt tot een fractie van je portefeuille een overlevend verlies. Concentratie niet.

DeFi-beveiliging verbetert. Formele verificatietools, meer geavanceerde auditpraktijken, en battle-tested codebases zoals Uniswap★★★★★4.6Uniswapbrand★★★★★4.6/54 AI reviewsUniswap App (app.uniswap.org) is the web interface to Uniswap"the leading decentralized exchange (DEX) on Ethereum an...via Rexiew Uniswap en Aave★★★★★4.6Aavebrand★★★★★4.6/55 AI reviewsAave serves as a decentralized, non-custodial liquidity protocol in DeFi, allowing users to supply assets for interes...via Rexiew Aave hebben aangetoond dat goed gebouwde contracten miljarden dollars kunnen beveiligen gedurende jaren zonder incident. Maar de grens is altijd rommelig, en nieuwe code draagt nieuw risico met zich mee. De protocollen die de hoogste rendementen bieden, zijn vaak de minst getest door tijd en tegenstrijd. Dat is geen toeval.

Op zoek naar cryptoplatforms, exchanges en DeFi apps? Blader door onze gecureerde directory: