Wat is USDC

Eén verkeerd walletadres kost bedrijf $2 miljoen aan crypto

Altcoin Nieuws23 aug , 14:24
Een transactie van amper 0,0002 USDC was genoeg om een val van $2 miljoen klaar te zetten. Een wallet die door blockchainonderzoekers aan Bofur Capital wordt gekoppeld, kopieerde later het verkeerde ontvangstadres en stuurde de miljoenen rechtstreeks naar de aanvaller.
Geen gestolen seed phrase. Geen gekraakt DeFi-protocol.
De gebruiker ondertekende de fatale transactie zelf.

Aanvaller plant adres in transactiegeschiedenis

Blockchainbeveiliger PeckShield meldde het incident op 22 augustus.
De aanval gebruikte een techniek die bekendstaat als address poisoning. Een fraudeur stuurt daarbij een kleine transactie vanaf een adres dat sterk lijkt op een adres waarmee het doelwit normaal zaken doet.
In dit geval ging het om slechts 0,0002 USDC.
Daarmee verscheen het misleidende adres in de transactiegeschiedenis van de wallet.
Dat klinkt onschuldig. Het gevaar zit in wat daarna gebeurt.
Een Ethereum-adres bestaat uit 42 tekens. Walletsoftware toont daarvan vaak alleen het begin en einde.
Een aanvaller kan grote aantallen adressen genereren totdat er één ontstaat dat visueel sterk genoeg op het echte adres lijkt.
Wie daarna alleen 0xf0e6...21af controleert, kan een compleet ander adres voor zich hebben.

$2 miljoen verdwijnt na Compound-opname

De grote fout kwam nadat de betreffende wallet geld uit Compound had gehaald.
Compound ondersteunt via zijn officiële protocoldocumentatie opnames waarbij crypto vanuit een positie naar een extern adres wordt gestuurd.
Kort na zo'n opname werd ongeveer $2 miljoen aan USDC naar het nagemaakte adres overgemaakt.
De blockchain deed vervolgens exact wat hij moest doen.
De handtekening was geldig. Het ontvangstadres bestond. De transactie voldeed aan de regels.
Dat het verkeerde adres was ingevoerd, kan Ethereum niet weten.
Daarmee is dit fundamenteel anders dan een exploit waarbij iemand een fout in een smart contract misbruikt.
De blockchain werd niet gekraakt. De aanvaller manipuleerde de informatie waarop de gebruiker vertrouwde voordat hij zelf de transactie ondertekende.
Juist daarom is deze aanval lastig op protocolniveau te stoppen.

Gestolen USDC wordt naar DAI omgezet

Na ontvangst bleef de aanvaller niet in USDC zitten.
Volgens PeckShield werd het geld omgezet in ongeveer 2 miljoen DAI. De fondsen werden daarna gevolgd naar een adres dat eindigt op 1816a.
Dat wisselen van stablecoin is niet zomaar een cosmetische stap.
USDC wordt uitgegeven door Circle en kent mogelijkheden om bepaalde adressen op contractniveau te blokkeren.
DAI werkt anders.
De officiële Dai-documentatie bevat geen vergelijkbare algemene blacklistfunctie waarmee willekeurige adressen simpelweg kunnen worden bevroren. Daarmee is het na de swap niet vanzelfsprekend dat de uitgever de gestolen tokens rechtstreeks stil kan zetten.
De stablecoin blijft wel zichtbaar op Ethereum.
Als het geld later naar een gecentraliseerde exchange of andere partij met identiteitscontroles beweegt, kunnen er opnieuw aanknopingspunten ontstaan voor onderzoek of beslag.
Traceerbaar betekent alleen nog niet automatisch terughaalbaar.

Het probleem zat niet bij Compound

Ook de timing na de Compound-opname kan verwarrend zijn.
Voor zover nu uit de analyse blijkt, werd het DeFi-protocol zelf niet gehackt.
De wallet kreeg eerst de beschikking over het geld. Daarna ging het mis bij de daaropvolgende transfer.
Dat onderscheid is belangrijk voor DeFi.
Een protocol kan technisch correct werken terwijl een gebruiker alsnog geld verliest doordat het bestemmingsadres buiten het protocol verkeerd wordt gekozen.
De zwakke plek was hier dus niet de uitleencode.
Het was het adresboek in het hoofd van de gebruiker.

Alleen eerste en laatste tekens controleren is precies de val

Address poisoning bestaat omdat mensen lange cryptografische adressen niet graag volledig lezen.
Dat weten aanvallers.
Ze hoeven niet exact hetzelfde adres te genereren. Dat kan praktisch niet.
Ze hoeven alleen genoeg zichtbare tekens te laten overeenkomen om de verkorte weergave in een wallet overtuigend te maken.
Een transactiegeschiedenis is daardoor geen betrouwbaar adresboek.
Dat geldt ook wanneer er al maanden betalingen naar dezelfde tegenpartij worden gedaan.
Een aanvaller hoeft maar één overtuigende vermelding tussen die transacties te krijgen.

Een testtransactie alleen beschermt niet

Vaak wordt bij grote cryptotransacties geadviseerd eerst een klein bedrag te sturen.
Dat helpt, maar alleen wanneer de controle goed wordt uitgevoerd.
Wie het vergiftigde adres uit zijn geschiedenis kopieert, daar €10 naartoe stuurt en vervolgens opnieuw precies datzelfde adres gebruikt voor $2 miljoen, heeft alleen twee verkeerde transacties uitgevoerd.
Een testbetaling wordt pas nuttig wanneer de ontvanger onafhankelijk bevestigt dat het geld op het juiste adres is aangekomen.
Voor bedrijven die miljoenen verplaatsen zijn sterkere controles logischer:
  • Gebruik vooraf goedgekeurde adressen uit een eigen adresboek in plaats van de transactiegeschiedenis.
  • Laat een tweede persoon het volledige bestemmingsadres onafhankelijk controleren bij grote transfers.
  • Bevestig een testtransactie via een afzonderlijk communicatiekanaal voordat het resterende bedrag vertrekt.
Dat kost minuten.
Deze fout kostte ongeveer $2 miljoen.

Een professionele wallet is niet immuun voor een simpele truc

Het opvallendste aan de aanval is uiteindelijk hoe weinig technische toegang de fraudeur nodig had.
Geen private key.
Geen malware die aantoonbaar een wallet overnam.
Geen lek bij Compound.
Voor zover de huidige analyse laat zien, hoefde de aanvaller vooral te voorspellen dat iemand een eerder gebruikt adres uit zijn transactiegeschiedenis zou kopiëren.
Daarmee verschuift ook de veiligheidsles.
Wie miljoenen aan crypto beheert, kan zijn wallet technisch uitstekend beveiligen en alsnog verliezen op het moment dat één verkeerd adres als betrouwbaar wordt aangezien.
De transactie van $2 miljoen was cryptografisch volledig geldig.
Alleen de bestemming klopte niet.

Stop met te veel betalen voor je crypto. Bij de Amsterdamse exchange Finst handel je tegen de laagste tarieven van Nederland, zonder verborgen kosten.

👀 Bekijk Finst nu

Let op: Beleggen in crypto brengt risico’s met zich mee. Handel alleen met geld dat u kunt missen.

Ga verder met lezen
loading
Dit vind je misschien ook leuk
Laat mensen jouw mening weten

Loading