Bitcoin beter beschermd tegen grootschalige aanval: Erebus
Woensdag is de twintigste versie van Bitcoin Core uitgekomen. Een opvallende toevoeging aan de software draait om de verdediging tegen een potentiële grootschalige aanval op het netwerk: Erebus. Erewat? Lees mee!
Het is meer dan 11 jaar geleden dat Satoshi Nakamoto de eerste versie van Bitcoin Core lanceerde. Inmiddels zijn we bij de twintigste grote iteratie aangekomen, versie 0.20.0. Bitcoin Core is het meestgebruikte programma om een zogeheten Bitcoin-node mee te draaien. Zo wordt een computer onderdeel van het netwerk, bijvoorbeeld om transacties te controleren en bevestigen of om je eigen ‘bitcoinbankrekening’ mee te beheren.
In eerste instantie was de naam van deze Bitcoin-client gewoon Bitcoin. Maar dat leverde spraakverwarring op, want feitelijk bestaat Bitcoin uit twee delen: Bitcoin-het-netwerk en Bitcoin-de-software. Daarom volgde in 2014 een rebranding: Bitcoin Core was geboren. Sindsdien is Bitcoin de naam van het netwerk en Bitcoin Core de naam van de belangrijkste software om met het netwerk te verbinden.
De twintigste versie van Bitcoin Core komt met een opvallende toevoeging. In essentie is het een poging om de verdediging tegen een grootschalige aanval op het netwerk te verbeteren. We moeten een stap terug nemen voordat we daar dieper op in gaan.
Decentraal netwerk
Het Bitcoinnetwerk bestaat uit duizenden met elkaar verbonden computers, de nodes. Een zo’n node kan met maximaal 125 collega-nodes verbinden1, zijn peers. Een node wisselt berichten uit met zijn peers. Bijvoorbeeld dat hij online is of dat er een nieuwe transactie verstuurd moet worden. Hij kan naar maximaal 8 peers berichten versturen en de rest van de beschikbare verbindingen kan gebruikt worden om berichten te ontvangen.
Het is om deze reden dat Bitcoin vaak beschreven wordt als ‘autonoom netwerk’ of dat Bitcoin wordt omschreven als nieuwe levensvorm. Iedereen kan zijn computer met het netwerk verbinden. Al die computers praten met elkaar, houden elkaar aan de regels, nemen beslissingen en doen hun werk zonder dat er een mens aan te pas komt.
Voor de integriteit van het Bitcoinnetwerk is het essentieel dat de verbinding tussen nodes op willekeurige wijze tot stand komt. Zo ontstaat namelijk de gewenste netwerkarchitectuur, waarin de nadruk ligt op (geografische) verspreiding en diversiteit. Hieraan wordt onder andere gerefereerd als men spreekt over een ‘decentraal netwerk’ en ‘peer to peer’. Omdat iedere node z’n eigen unieke groep van peers heeft waarmee hij communiceert, kan er de facto niemand de baas zijn. Niemand kan eigenhandig beslissen welke berichten wel het netwerk over gaan en welke niet. Het ligt ten grondslag aan het open karakter van Bitcoin en maakt censuur nagenoeg onmogelijk.
Erebus
Erebus is de naam van een in 2019 voor het eerst beschreven aanval gericht op dat decentrale karakter van het Bitcoinnetwerk. Het centrale idee is dat een invloedrijke partij de verbindingen tussen nodes kan beïnvloeden, zodanig dat een specifieke node geïsoleerd wordt van de rest van het netwerk.
Aan de hand van bovenstaande afbeelding kunnen we de basiswerking van de aanval uitleggen. Een kwaadwillende speler (M) verandert bestaande verbindingen (blauwe pijlen) van zijn slachtoffer (V). De aangepaste verbindingen (rode pijlen) lijken uit te komen bij goedaardige nodes (C en D), maar het pad tussen het slachtoffer en zijn ‘nieuwe’ peers komt altijd langs de aanvaller. Zo lijkt het voor het slachtoffer dat hij op de juiste manier verbonden is met het Bitcoinnetwerk, terwijl hij in werkelijkheid met slechts één node communiceert: die van de aanvaller.
In deze korte beschrijving lijkt het alsof de aanvaller simpelweg een knop kan omzetten, maar dat is niet zo. Het is een proces van tientallen dagen waarin het slachtoffer beïnvloedt wordt om te verbinden met door de aanvaller uitgekozen IP-adressen. Langzaam maar zeker nadert het punt dat het slachtoffer enkel en alleen nog verbindt met IP-adressen die door de aanvaller ingefluisterd zijn. Vanaf dat moment heeft de aanvaller volledige controle over de onderlinge communicatie; hij is the man in the middle.
Die centralisatie zet de deur open voor diverse malafide handelingen. De onderzoekers die Erebus hebben beschreven, noemen “drie motivaties om het Bitcoinnetwerk op deze manier te partitioneren”:
- Een aanval op het consensusprotocol. Stel dat een groep miners op deze manier van het netwerk wordt geïsoleerd, kan een 51%-aanval worden uitgevoerd zonder dat de aanvaller meer dan de helft van de totale rekenkracht tot z’n beschikking heeft. Hij zou zelfs de rekenkracht van de geïsoleerde miners kunnen gebruiken voor eigen gewin.
- Een aanval op zogeheten off-chain protocols, zoals het Lightning Network. In die context kan de aanvaller bijvoorbeeld het sluiten van betalingskanalen in de weg zitten en ervandoor gaan met het geld van zijn slachtoffer.
- Een aanval op de beschikbaarheid van het netwerk. Een invloedrijke aanvaller kan in theorie een groot deel van het netwerk plat leggen door de communicatie tussen nodes uit te doven. Op kleinere schaal is er op deze manier censuur mogelijk van transacties van een specifieke slachtoffer.
Zo, dat klinkt heftig. Maar gelukkig is een aanval als Erebus niet eenvoudig uit te voeren. Niet alleen omdat het technisch ingewikkeld is, maar ook omdat de aanvaller speciale toegang nodig heeft. In de paper waarin de aanval wordt beschreven, spreekt men daarom over ‘autonome systemen’ en natiestaten als potentiële aanvallers. In de context van autonome systemen vallen grote internetproviders of andere dienstverleners die betrokken zijn bij wat techneuten padbepaling noemen, de manier waarop datapakketjes hun weg op het internet zoeken. Ongeschikt voor de eerste de beste whizzkid, dus.
Bescherming met asmap
Erebus is, voor zover bekend, nog nooit ten uitvoer gebracht. En als het wel is gebeurd, is de kans klein dat iemand anders dan de aanvaller ervanaf weet: het is lastig te herkennen en staat daarom bekend als stealth attack. Vermoedelijk is daarom de naam Erebus gekozen, een onopvallende nachtvlinder met grote allesziende ogen op de vleugels. Een zeldzame dodelijke cocktail die Bitcoinontwikkelaars aanspoort om de weerbaarheid van het netwerk ertegen te vergroten.
De onderzoekers noemen vier tegenmaatregelen, waarvan er nu één in de nieuwste Bitcoin Core-software is opgenomen om mee te kunnen testen. Die nieuwe feature heeft de naam ‘asmap’, een samenvoeging van autonome systemen (afgekort als as) en kaart (van het Engelse map).
Standaard worden IP-adressen door Bitcoin Core gegroepeerd opgeslagen. Die groepen zijn klein genoeg om genoeg peers te kunnen vinden en groot genoeg om te voorkomen dat een node met teveel peers verbindt in dezelfde IP-range. Toch blijkt er nog een onderliggend probleem: de groepen delen met enige regelmaat de infrastructuur van één autonoom systeem. Dat kan problematisch zijn omdat de uitbater van het autonome systeem daarom in theorie veel IP-adressen beschikbaar heeft om te misbruiken. De nieuwe optie van Bitcoin Core (-asmap
) verandert de manier waarop IP-adressen worden opgeslagen zodanig dat de spreiding gebaseerd is op het autonome systeem waar het onderdeel van is.
“Na deze aanpassing wordt het moeilijker om Erebus ten uitvoer te brengen”, schrijven de wetenschappers van de Nationale Universiteit van Singapore. Een belangrijke kanttekening, want beveiliging is niet altijd een zwart-wit domein, waarin je kan spreken van wel of niet veilig. In dit geval gaat het om het nemen van tegenmaatregelen die samen een voldoende hoge drempel opwerpen om de aanval te neutraliseren, bijvoorbeeld omdat het de aanvaller meer kost dan dat het oplevert.
Op dit moment moet bij het starten van Bitcoin Core nog expliciet worden opgegeven dat de nieuwe opslagmethode van IP-adressen moet worden gebruikt. En dat gebruik komt met een bijsluiter die we kennen van features die worden getest: “Deze nieuwe optie is experimenteel en kan in toekomstige versies zomaar worden verwijderd”, aldus Bitcoins Lead Maintainer Wladimir J. van der Laan. Waarvan akte!
Voetnoot 1: in een volledig decentraal netwerk is het aantal nodes waarmee verbonden kan worden in principe onbeperkt. Het getal 125 is een implementatiedetail van Bitcoin Core, de meestgebruikte applicatie voor het draaien van een node. In theorie is het mogelijk om een eigen applicatie te schrijven of Bitcoin Core aan te passen, zodat er met meer nodes verbonden kan worden.
Iedereen heeft een mening
Onder de noemer Opinie
schrijven we regelmatig over een spraakmakende podcast, video of tweetstorm.
We zijn het niet noodzakelijkerwijs eens met de spreker of schrijver, maar vinden het interessant genoeg om
te delen, duiden en ondertitelen.