Vad Àr en förmörkelseattack?
Hem
Artiklar
Vad Àr en förmörkelseattack?

Vad Àr en förmörkelseattack?

MedelnivÄ
Publicerad Jan 19, 2020Uppdaterad Dec 11, 2023
6m

Introduktion

En förmörkelseattack Àr en relativt enkel attack som en skadlig aktör kan anvÀnda för att störa noder i ett nÀtverk. Som namnet antyder syftar attacken till att dölja en deltagares syn pÄ peer-to-peer-nÀtverket, för att orsaka allmÀn störning eller för att förbereda sig för mer sofistikerade attacker.

Förmörkelseattacker pĂ„minner pĂ„ ytan om Sybil-attacker. Men Ă€ven om de delar vissa likheter – till exempel att den skadliga aktören kommer att översvĂ€mma nĂ€tverket med falska peers – Ă€r deras slutmĂ„l annorlunda. En förmörkelseattack riktar sig mot en enda nod (av skĂ€l som förklaras i ett senare avsnitt), medan en Sybil-attack Ă€r en nĂ€tverksomfattande attack utformad för att spela protokollets anseendesystem.

Konceptet diskuteras ingÄende i avhandlingen frÄn 2015,  Eclipse Attacks on Bitcoins Peer-to-Peer Network, dÀr forskare frÄn Boston University och Hebrew University rapporterar sina resultat frÄn sina experiment i ökande förmörkelseattacker, samt möjliga motÄtgÀrder för att bekÀmpa dem.


SÄ hÀr fungerar en förmörkelseattack

Bitcoin-miners krÀver specialutrustning för att generera nya block, men icke-utvinning (eller fulla) noder körs enkelt med minimal berÀkningskraft. Detta hjÀlper decentraliseringen av Bitcoin, eftersom vem som helst kan snurra upp en nod pÄ en enhet med lÄg specifikation. Programvaran upprÀtthÄller en databas med transaktioner som den synkroniserar med sina omedelbara peers att förbli i lÄsning med nÀtverket.

En begrĂ€nsande faktor för mĂ„nga noder Ă€r bandbredd. Även om det finns en enorm mĂ€ngd enheter som kör programvaran, kan den genomsnittliga enheten inte ansluta direkt till mĂ„nga av dem pĂ„ grund av begrĂ€nsningar som anges i Bitcoin-programvaran (som endast tillĂ„ter maximalt 125 anslutningar).

I en förmörkelseattack kommer den skadliga aktören att se till att alla mÄlets anslutningar görs till angriparstyrda noder. Enheten kommer först att översvÀmma mÄlet med sina egna ip-adresser, som offret sannolikt kommer att ansluta till vid omstart av deras programvara. En omstart kan antingen tvingas (det vill sÀga med en DDoS-attack pÄ mÄlet), eller sÄ kan angriparen helt enkelt vÀnta pÄ att den ska intrÀffa. 

NĂ€r detta har intrĂ€ffat Ă€r det intet ont anande offret utlĂ€mnat till de skadliga noderna – utan utsikt över det bredare nĂ€tverket kan de matas felaktiga data av angriparen.


Konsekvenser av en förmörkelseattack

Om en angripare anvÀnder resurserna för att alienera en kamrat frÄn nÀtverket har de förmodligen ett motiv att göra det. Det finns en handfull av pÄ varandra följande attacker som lÀttare kan startas nÀr en nod har kvÀvts.


0-bekrÀftelse dubbla utgifter

Om en individ accepterar en transaktion utan bekrÀftelser riskerar de dubbla utgifter. Transaktionen kan ha sÀnts, men tills den har inkluderats i ett block (och dÀrmed bundit sig till blockkedjan) kan avsÀndaren enkelt skapa en ny transaktion som spenderar samma tillgÄngar nÄgon annanstans. Om den nya transaktionen har en högre avgift kommer en miner sannolikt att inkludera den före originalet, vilket ogiltigförklarar den tidigare. 

Vissa företag och privatpersoner accepterar dessa 0-bekrÀftelsetransaktioner. Vi tar köpmannen Bob som sÀljer avancerade fordon. Han Àr inte medveten om att Alice har förmörkat sin nod och misstÀnker ingenting nÀr hon bestÀller en lyxig sportbil. Hon skapar en transaktion, som Bob sedan sÀnder till nÀtverket. Nöjd med att betalningen Àr pÄ vÀg, överlÀmnar han nycklarna till bilen och Alice kör ivÀg.

Naturligtvis sĂ€ndes inte transaktionen till nĂ€tverket – Bob har bara vidarebefordrat den till Alices skadliga noder, som inte kommer att vidarebefordra den till Ă€rliga noder. Medan denna transaktion hĂ€nger i luften spenderar Alice samma tillgĂ„ngar pĂ„ det (riktiga) nĂ€tverket, oavsett om det Ă€r till en annan part eller till en adress hon Ă€ger. Även om den första transaktionen till Bob sĂ„ smĂ„ningom visas, kommer den att avvisas eftersom coin redan har anvĂ€nts.


N-bekrÀftelse dubbla utgifter

N-bekrĂ€ftelsensdubbla utgifter liknar 0-bekrĂ€ftelsen, men innebĂ€r fler förberedelser. MĂ„nga företag föredrar att vĂ€nta pĂ„ ett visst antal bekrĂ€ftelser innan de markerar en betalning som giltig. För att komma runt detta mĂ„ste angriparen förmörka bĂ„de miner och handlare. NĂ€r angriparen har stĂ€llt in ordern med handlaren sĂ€nder de en transaktion till (förmörkade) miners. Transaktionen bekrĂ€ftas och ingĂ„r i blockkedjan – men denna blockkedja Ă€r inte den kedja som majoriteten av nĂ€tverket observerar, eftersom miner Ă€r avskuren.

DÀrifrÄn vidarebefordrar angriparen denna version av blockkedjan till handlaren, som frislÀpper varorna i tron att transaktionen har bekrÀftats. NÀr de förmörkade noderna Äterförenas med det faktiska nÀtverket Àr blockkedjan som de felaktigt tror Àr giltig förÀldralös av den som resten av nÀtverket har arbetat med (detta har vissa likheter med en 51 %-attack).


Försvagning av konkurrerande miners

En förmörkad nod kommer att fortsÀtta att fungera, omedveten om att de har separerats frÄn nÀtverket. Miners kommer att fortsÀtta att bryta block inom de regler som anges i protokollet, men blocken som lÀggs till kommer att kasseras nÀr de synkroniseras med Àrliga peers. 

Teoretiskt sett kan en storskalig förmörkelseattack mot stora miners anvĂ€ndas för att underlĂ€tta en 51 %-attack. Som det ser ut Ă€r kostnaden för att ta över majoriteten av Bitcoins hashkraft helt enkelt för hög för Ă€ven de mest resursstarka angriparna – vid ~ 80TH/s skulle enheten behöva mer Ă€n 40TH/s för att försöka en sĂ„dan manöver. 

I ett hypotetiskt scenario dÀr denna hashkraft fördelas mellan 10 parter (sÄ att var och en Àger 8TH/s) kan angriparen avsevÀrt sÀnka kraven för en 51 %-attack genom att stÀnga av dessa parter frÄn nÀtverket. Om fem Àr förmörkade tas 40TH/s bort frÄn loppet för att hitta nÀsta block och angriparen behöver nu bara förvÀrva nÄgot över 20TH/s för att ta kontrollen.

Annan sabotage som kan uppnÄs genom att förmörka mÄl inkluderar manipulation av noder för sjÀlvisk utvinning, eller skapande av lopp mellan miners för att hitta nÀsta block.


Minskning

Med tillrĂ€ckligt med ip-adresser kan en angripare förmörka vilken nod som helst. Den enklaste metoden för att förhindra att detta hĂ€nder Ă€r att en operatör blockerar inkommande anslutningar och bara gör utgĂ„ende anslutningar till specifika noder (som de som har vitlistats av andra peers). Som forskningsavhandlingen pĂ„pekar Ă€r detta dock inte ett tillvĂ€gagĂ„ngssĂ€tt som fungerar i stor skala – om alla deltagare antar dessa Ă„tgĂ€rder kommer nya noder inte att kunna gĂ„ med i nĂ€tverket.

Författarna föreslÄr en handfull justeringar av Bitcoin-programvaran, av vilka nÄgra har integrerats sedan publiceringen slÀpptes. Dessa gör förmörkelseattacker dyrare genom mindre Àndringar av koden, till exempel slumpmÀssigt urval av nya anslutningar och större kapacitet för lagring av adresser.


Sammanfattningsvis

Förmörkelseattack utförs pÄ peer-to-peer-nÀtverksnivÄ. De utplaceras som en fristÄende attack och kan vara nÄgot av en olÀgenhet. Deras verkliga effektivitet Àr att förstÀrka andra attacker som pÄverkar mÄl ekonomiskt, eller ge angriparen en fördel pÄ utvinningsfronten.

I naturen har det Ànnu inte uppstÄtt allvarliga konsekvenser till följd av en förmörkelseattack, men hotet finns fortfarande trots de motÄtgÀrder som Àr integrerade i nÀtverket. Som med de flesta attackvektorer som finns för Bitcoin och andra kryptovalutor kommer det starkaste försvaret att vara det som gör det ekonomiskt oöverkomligt för skadliga parter att försöka sig pÄ dem.