Wat is een eclipse attack?
HomeArticles

Wat is een eclipse attack?

Geavanceerd
2mo ago
6m

Inhoud


Een eclipse attack is een relatief eenvoudige aanval die gebruikt kan worden tegen specifieke nodes in een netwerk. Zoals de naam al suggereert is deze aanval bedoeld om het zicht van een deelnemer op het peer-to-peer-netwerk te blokkeren. Zo kan het netwerk worden ontwricht of een meer geavanceerde aanval worden voorbereid.

Eclipse attacks lijken op het eerste gezicht dus op Sybil attacks. Hoewel beide aanvallen bepaalde overeenkomsten delen - de aanvaller overspoelt het netwerk met valse nodes - dienen ze uiteindelijk verschillende doelen. Een eclipse attack is gericht op een enkele node (dit wordt later in dit artikel uitgelegd), terwijl een Sybil attack een aanval op het hele netwerk is en is gericht op het uitspelen van het reputatiesysteem van het protocol.

Het concept wordt uitvoerig besproken in het in 2015 gepubliceerde paper Eclipse Attacks on Bitcoin's Peer-to-Peer Network, waarin onderzoekers van Boston University en Hebrew University hun bevindingen rapporteren over het uitvoeren van eclipse attacks en mogelijke tegenmaatregelen.


Hoe werkt een eclipse attack?

Bitcoinminers hebben gespecialiseerde hardware nodig om nieuwe blocks te genereren, maar full nodes die niet minen kunnen eenvoudig op minimale computerkracht draaien. Dit komt de decentralisatie van Bitcoin ten goede, omdat iedereen een node kan opzetten met beperkte middelen. De software houdt een database bij van transacties en synchroniseert deze met peers om bij te blijven met het netwerk.

Een beperkende factor voor veel nodes is bandbreedte. Hoewel een enorm aantal apparaten de software draait, is het gemiddelde apparaat niet in staat om direct met andere nodes verbinding te maken als gevolg van beperkingen van de Bitcoin-software (die maximaal 125 verbindingen toestaat).

In een eclipse attack zal de aanvaller ervoor zorgen dat een node alleen maar verbinding maakt nodes onder controle van de aanvaller. Eerst overspoelt de aanvaller het doelwit met zijn eigen IP-adressen, waarmee het slachtoffer waarschijnlijk verbinding zal maken na het herstarten van de software. Een herstart kan afgedwongen worden (bijvoorbeeld met een DDoS-aanval op het doelwit, maar de aanvaller kan ook simpelweg wachten tot deze plaatsvindt. 

Zodra dit is gebeurd, is het nietsvermoedende slachtoffer aan de genade van de nodes van de aanvaller overgeleverd. Er is geen zicht meer op de rest van het netwerk, waardoor de node van het slachtoffer onjuiste data verstrekt door de aanvaller kan accepteren.


Gevolgen van een eclipse attack

Als een aanvaller middelen inzet om een node te isoleren van het netwerk, is daar waarschijnlijk een motief voor. Wanneer een node eenmaal is verstikt, kunnen er verschillende meer geavanceerde aanvallen worden uitgevoerd.


0-confirmation dubbele uitgaven

Als een persoon een transactie zonder bevestigingen accepteert, loopt hij of zij het risico op een dubbele uitgave. De transactie kan naar het netwerk zijn verzonden, maar totdat deze in een block is opgenomen (en zo aan de blockchain wordt gebonden) kan de verzender eenvoudig een nieuwe transactie maken die hetzelfde bedrag ergens anders uitgeeft. Als de nieuwe transactie een hogere vergoeding heeft, zal een miner deze waarschijnlijk eerder bevestigen dan de oorspronkelijke transactie. Zo wordt de eerdere transactie ongedaan gemaakt. 

Sommige bedrijven en individuen accepteren deze 0-confirmation transacties. Neem bijvoorbeeld een verkoper, Bob, die handelt in luxe auto's. Hij weet niet dat Alice zijn node heeft verstikt en vermoedt niets terwijl ze een bestelling bij hem plaatst. Ze maakt een transactie aan die Bob vervolgens verstuurt naar het netwerk. Hij is blij dat de betaling onderweg is, geeft haar de sleutels van de auto en Alice gaat er vandoor.

Natuurlijk was de transactie niet verstuurd naar het netwerk. Bob heeft de transactie alleen maar naar de nodes van Alice verstuurd en Alice leidt deze transactie niet door naar de rest van het netwerk. Terwijl deze transactie in niemandsland verdwijnt, geeft Alice haar geld nog een keer uit op het echte netwerk - aan een andere partij of aan een adres dat zij zelf in beheer heeft. Zelfs als de oorspronkelijke transactie van Bob uiteindelijk wordt gezien, wordt deze afgekeurd omdat Alice haar geld al heeft uitgegeven.


N-confirmation dubbele uitgaven

Een N-confirmation dubbele uitgave is vergelijkbaar met een 0-confirmation dubbele uitgave, maar vereist meer voorbereiding. Veel bedrijven wachten liever op een antal bevestigingen voordat een betaling als geldig wordt gezien. Om dit te omzeilen, moet een aanvaller zowel de miners als de verkoper verstikken. Zodra de aanvaller een bestelling heeft geplaatst bij de verkoper, wordt er een transactie naar de (verstikte) miners verstuurd. De transactie wordt bevestigd en opgenomen in de blockchain. Dit is echter niet de blockchain die de meeste netwerkdeelnemers zien, omdat de miner is afgesloten van het netwerk.

Vanaf dat punt stuurt de aanvaller deze versie van de blockchain door naar de verkoper, die de goederen vrijgeeft in de veronderstelling dat de transactie is bevestigd. Wanneer de nodes uiteindelijk weer deelnemen aan het echte netwerk, wordt de blockchain die zij als geldig zien verweesd door de blockchain waarmee de rest van het netwerk werkt (in die zin lijkt het het op een 51%-aanval.


Verzwakken van concurrerende miners

Een verstikte node zal blijven werken zonder door te hebben dat de rest van het netwerk niet meer bereikbaar is. Miners gaan door met het minen van blocks volgens de regels van het protocol, maar de nieuw gegenereerde blocks worden verworpen zodra er wordt gesynchroniseerd met de rest van het netwerk.

In theorie kan een grootschalige eclipse attack op grote miners worden gebruikt om een 51%-aanval te faciliteren. Op dit moment zijn de kosten om meer dan de helft van de rekenkracht of hashing power in handen te krijgen simpelweg te hoog, zelfs voor de meest vindingrijke aanvallers. Uitgaande van ~80TH/s heeft een aanvaller meer dan ~40TH/s nodig om een dergelijke poging te wagen. 

In een hypothetisch scenario waarin deze rekenkracht is verdeeld tussen tien partijen (waarbij iedere partij 8TH/s bezit), kan de aanvaller de eisen voor een 51%-aanval aanzienlijk verlagen door deze partijen uit te sluiten van het netwerk. Als vijf van de partijen worden verstikt, wordt er 40TH/s van het netwerk gehaald en hoeft de aanvaller slechts iets meer dan 20TH/s te benutten om controle over het netwerk over te nemen.

Andere vormen van sabotage die kunnen plaatsvinden door het verstikken van doelwitten zijn bijvoorbeeld het manipuleren van nodes voor zelfzuchtig minen of het manipuleren van de manier waarop het volgende block wordt gevonden.


Mitigatie

Met genoeg IP-adressen kan een aanvaller iedere node verstikken. De meest eenvoudige manier om dit te voorkomen is door het blokkeren van inkomende verbindingen en alleen uitgaande verbindingen met specifieke nodes op te zetten (zoals nodes die zijn gewhitelist door andere netwerkgebruikers). Zoals echter ook wordt aangegeven in het eerder genoemde onderzoek, is dit alleen geen schaalbare oplossing. Als alle netwerkdeelnemers dit gaan doen, zullen nieuwe nodes namelijk niet toe kunnen treden tot het netwerk.

De auteurs stellen een aantal aanpassingen aan de Bitcoin-software voor, waarvan sommige al zijn geïntegreerd sinds de publicatie van het onderzoek. Dankzij kleine aanpassingen aan de code, bijvoorbeeld het willekeurig selecteren van nieuwe verbindingen en meer capaciteit voor het opslaan van adressen, wordt het uitvoeren van eclipse attacks namelijk veel duurder.


Tot slot

Eclipse attacks worden uitgevoerd op het niveau van het peer-to-peer-netwerk. Als afzonderlijke aanval zijn ze voornamelijk vervelend. De echte waarde zit in het mogelijk maken van andere aanvallen die tot flinke financiële schade kunnen leiden en in het bieden van oneerlijke voordelen op het gebied van mining.

In het wild zijn er nog geen serieuze gevolgen geweest van een eclipse attack, maar de dreiging bestaat nog steeds - ondanks de tegenmaatregelen die in het netwerk zijn geïntegreerd. Zoals bij de meeste aanvalsvectoren waaraan Bitcoin en andere cryptovaluta worden blootgesteld, is de sterkste verdediging er een die het financieel onmogelijk maakt voor malafide partijen om de aanval uit te voeren.