Hvad er et eclipse-angreb?
Hjem
Artikler
Hvad er et eclipse-angreb?

Hvad er et eclipse-angreb?

Avanceret
Offentliggjort Jan 19, 2020Opdateret Dec 11, 2023
6m

Introduktion

Et eclipse-angreb er et relativt simpelt angreb, som en ondsindet aktør kan bruge til at forstyrre noder på et netværk. Som navnet antyder, har angrebet til formål at skjule en deltagers visning af peer-to-peer-netværket for at forårsage generel forstyrrelse eller for at forberede mere sofistikerede angreb.

Eclipse-angreb kan på overfladen lyde som Sybil-angreb. Selvom de har visse ligheder – den ondsindede aktør vil oversvømme netværket med falske peers – er deres endelige mål i sidste ende forskelligt. Et eclipse-angreb er rettet mod en enkelt node (af grunde, der forklares i et senere afsnit), mens et Sybil-angreb er et angreb, der omfatter hele netværket, og som er designet til at spille på protokollens omdømmesystem.

Konceptet gennemgås udførligt i artiklen Eclipse Attacks on Bitcoin's Peer-to-Peer Network fra 2015, hvor forskere fra Boston University og Hebrew University rapporterer deres resultater fra deres eksperimenter med at lave eclipse-angreb samt mulige modforanstaltninger til at bekæmpe dem.


Sådan fungerer eclipse-angreb

Bitcoin-minere kræver specialudstyr for at kunne generere nye blokke, men ikke-minende (eller fulde) noder kan sagtens køre på minimal computerkraft. Det fremmer decentraliseringen af Bitcoin, da alle kan starte en node på en enhed med lav specifikation. Softwaren vedligeholder en database over transaktioner, som den synkroniserer med sine nærmeste peers, så den forbliver i takt med netværket.

En begrænsende faktor for mange noder er båndbredde. Selvom der er et enormt antal enheder, der kører softwaren, er den gennemsnitlige enhed ikke i stand til at oprette direkte forbindelse til mange af dem på grund af begrænsninger i Bitcoin-softwaren (som kun tillader maksimalt 125 forbindelser).

I et eclipse-angreb vil den ondsindede aktør sørge for, at alle målets forbindelser går til angriberkontrollerede noder. Enheden vil først oversvømme målet med sine egne IP-adresser, som offeret sandsynligvis vil oprette forbindelse til ved genstart af sin software. En genstart kan enten fremtvinges (f.eks. med et DDoS-angreb på målet), eller angriberen kan bare vente på, at det sker. 

Når dette er sket, er det intetanende offer prisgivet de ondsindede noder – uden overblik over det større netværk kan de blive fodret med forkerte data af angriberen.


Konsekvenser af et eclipse-angreb

Hvis en angriber bruger ressourcer på at støde en peer fra netværket, har denne sandsynligvis et motiv til at gøre det. Der er en række på hinanden følgende angreb, som lettere kan sættes i gang, når en node er blevet kvalt.


0-bekræftelse af dobbeltforbrug

Hvis en person accepterer en transaktion uden bekræftelser, risikerer denne et dobbeltforbrug. Transaktionen kan være blevet udsendt, men indtil den er blevet inkluderet i en blok (og dermed forpligtet til blockchainen), kan afsenderen nemt lave en ny transaktion, der bruger de samme midler et andet sted. Hvis den nye transaktion har et højere gebyr, vil en miner sandsynligvis inkludere den før den oprindelige og ugyldiggøre den tidligere. 

Nogle virksomheder og enkeltpersoner accepterer disse 0-bekræftelsestransaktioner. Tænk på en forhandler, Bob, som sælger eksklusive køretøjer. Han er ikke klar over, at Alice har angrebet hans node, og aner ikke uråd, da hun bestiller en luksussportsvogn. Hun opretter en transaktion, som Bob derefter sender ud til netværket. Tilfreds med, at betalingen er på vej, overrækker han nøglerne til bilen, og Alice kører af sted.

Selvfølgelig blev transaktionen ikke sendt til netværket – Bob har blot videresendt den til Alices ondsindede noder, som ikke vil videresende den til ærlige noder. Mens denne transaktion er i limbo, bruger Alice de samme midler på det (rigtige) netværk, enten til en anden part eller til en adresse, hun ejer. Selv hvis den oprindelige transaktion til Bob bliver set, vil den blive afvist, da coinsene allerede er blevet brugt.


N-bekræftelse af dobbeltforbrug

N-bekræftelse af dobbeltforbrug minder om 0-bekræftelsen, men involverer mere forberedelse. Mange virksomheder foretrækker at vente på et vist antal bekræftelser, før de markerer en betaling som gyldig. For at omgå dette skal angriberen angribe både minere og forhandleren. Når angriberen har oprettet ordren hos forhandleren, sender denne en transaktion til de (angrebne) minere. Transaktionen bekræftes og inkluderes i blockchainen – men denne blockchain er ikke den kæde, som størstedelen af netværket observerer, da mineren er afskåret.

Derfra videresender angriberen denne version af blockchainen til forhandleren, som frigiver varerne i den tro, at transaktionen er blevet bekræftet. Når de angrebne noder vender tilbage til det faktiske netværk, bliver den blockchain, de fejlagtigt tror er gyldig, gjort forældreløs af den, som resten af netværket har arbejdet på (dette har visse ligheder med et 51 %-angreb).


Svækkelse af konkurrerende minere

En angrebet node vil fortsætte med at fungere, uvidende om at den er blevet adskilt fra netværket. Minere vil fortsætte med at mine blokke inden for protokollens regler, men de tilføjede blokke vil blive kasseret, når de synkroniseres med ærlige peers. 

Teoretisk set kunne et storstilet eclipse-angreb på store minere bruges til at lette et 51 %-angreb. Som det ser ud nu, er omkostningerne ved at overtage størstedelen af Bitcoins hashkraft simpelthen for høje for selv de mest ressourcestærke angribere – ved ~80 TH/s ville enheden have brug for mere end 40 TH/s for at forsøge en sådan manøvre. 

I et hypotetisk scenarie, hvor denne hashkraft er fordelt mellem 10 parter (således at hver ejer 8 TH/s), kan angriberen sænke kravene til et 51 %-angreb betydeligt ved at afskære disse parter fra netværket. Hvis fem bliver angrebet, fjernes 40 TH/s fra kapløbet om at finde den næste blok, og angriberen behøver nu kun at opnå lidt over 20 TH/s for at overtage kontrollen.

Anden sabotage, der kan opnås ved at foretage eclipse-angreb, omfatter manipulation af noder til egoistisk mining eller planlægning af kapløb mellem minere for at finde den næste blok.


Afhjælpning

Med nok IP-adresser kan en angriber angribe enhver node. Den mest enkle metode til at forhindre dette er, at en operatør blokerer indgående forbindelser og kun opretter udgående forbindelser til bestemte noder (f.eks. dem, der er blevet angivet på positivlisten af andre peers). Som forskningsartiklen påpeger, er dette dog ikke en tilgang, der fungerer i stor skala – hvis alle deltagere implementerer disse foranstaltninger, vil nye noder ikke være i stand til at slutte sig til netværket.

Forfatterne foreslår en håndfuld justeringer af Bitcoin-softwaren, hvoraf nogle er blevet integreret siden udgivelsen af artiklen. Disse gør eclipse-angreb mere kostbare gennem mindre ændringer i koden, såsom tilfældig udvælgelse af nye forbindelser og større kapacitet til lagring af adresser.


Sammenfatning

Eclipse-angreb udføres på peer-to-peer-netværksniveau. De kan være noget af en pestilens, når de bruges som et enkeltstående angreb. Deres sande effektivitet ligger i at forstærke andre angreb, der påvirker målene økonomisk eller giver angriberen en fordel på miningfronten.

I praksis har der endnu ikke været alvorlige konsekvenser som følge af et eclipse-angreb, men truslen eksisterer stadig på trods af de modforanstaltninger, der er integreret i netværket. Som med de fleste af de angrebsvektorer, der findes for bitcoin og andre kryptovalutaer, vil det stærkeste forsvar være det, der gør det økonomisk uoverkommeligt for ondsindede parter at forsøge dem.