Sissejuhatus
Varjurünnak on suhteliselt lihtne rünnak, mille pahatahtlik tegutseja võib võrgu sõlmede segamiseks kasutusele võtta. Nagu nimigi võib vihjata, on rünnaku eesmärk varjata osaleja vaadet võrdõigusvõrgule, et tekitada üldisi häireid või valmistuda keerukamateks rünnakuteks.
Varjurünnakud võivad pealtnäha kõlada sarnaselt Sybili rünnakutega. Kuigi neil on teatud sarnasusi – pahatahtlik tegutseja ujutab võrgu üle võltskaaslastega –, on nende lõppeesmärk lõppkokkuvõttes erinev. Varjurünnak on suunatud ühe sõlme vastu (seda selgitatakse hiljem), samal ajal kui Sybil-rünnak on kogu võrku hõlmav rünnak, mille eesmärk on mängida protokolli mainesüsteemiga.
Seda kontseptsiooni käsitletakse pikalt 2015. aasta dokumendis Eclipse Attacks on Bitcoin's Peer-to-Peer Network, milles Bostoni ülikooli ja Heebrea ülikooli teadlased teatavad oma katsetest saadud tulemustest varjurünnakute suurendamisel, samuti võimalikest vastumeetmetest nende vastu võitlemiseks.
Kuidas varjurünnak toimib
Bitcoini kaevandajad vajavad uute plokkide genereerimiseks spetsiaalseid seadmeid, kuid mitte-kaevandavad (või täissõlmed) on hõlpsasti käivitatavad minimaalse arvutusvõimsusega. See aitab kaasa Bitcoini detsentraliseerimisele, sest igaüks võib luua sõlme madala spetsifikatsiooniga seadmes. Tarkvara säilitab tehingute andmebaasi, mida ta sünkroniseerib oma otseste kolleegidega, et pidada võrguga sammu.
Paljude sõlmede jaoks on piiravaks teguriks ribalaius. Kuigi tarkvaraga töötab tohutult palju seadmeid, ei saa keskmine seade Bitcoini tarkvaras sätestatud piirangute tõttu (mis lubab ainult maksimaalselt 125 ühendust) paljudega neist otseühendust luua.
Varjurünnaku puhul tagab pahatahtlik tegutseja, et kõik sihtmärgi ühendused luuakse ründaja kontrollitavate sõlmedega. Kõigepealt ujutab üksus sihtmärgi üle oma IP-aadressidega, millega ohver tõenäoliselt oma tarkvara taaskäivitamisel ühendust võtab. Taaskäivitamist saab kas sundida (st DDoS-i rünnakuga sihtmärgile) või võib ründaja lihtsalt oodata, kuni see toimub.
Kui see on juhtunud, on pahaaimamatu ohver pahatahtlike sõlmede meelevallas. Kuna neil puudub ülevaade laiemast võrgust, võib ründaja neile sisestada ebaõigeid andmeid.
Varjurünnaku tagajärjed
Kui ründaja kulutab ressursse selleks, et võõrandada võrgukasutajat võrgust, on tal tõenäoliselt selleks motiiv. Kui sõlm on üleujutatud, on hõlpsam käivitada käputäis järjestikusi rünnakuid.
0-kinnituse topeltkulutamine
Kui üksikisik võtab tehingu vastu ilma kinnitusteta, ähvardab teda topeltkulutamine. Tehing võib olla edastatud, kuid seni, kuni see pole plokki kaasatud (ja seega plokiahelasse pühendunud), saab saatja hõlpsasti koostada uue tehingu, mis kulutab sama raha kusagil mujal. Kui uuel tehingul on kõrgem teenustasu, lisab kaevandaja selle tõenäoliselt enne algset tehingut, muutes varasema tehingu kehtetuks.
Mõned ettevõtted ja eraisikud aktsepteerivad neid 0-kinnitusega tehinguid. Võtame näiteks kaupmehe Bobi, kes müüb kõrgekvaliteedilisi sõidukeid. Ta ei tea, et Alice on tema sõlme varjutanud, ja ei kahtlusta midagi, kui naine tellib luksusliku sportauto. Ta loob tehingu, mille Bob seejärel võrku edastab. Olles rahul, et makse on teel, annab ta autovõtmed üle ja Alice sõidab minema.
Loomulikult ei edastatud tehingut võrku – Bob on selle lihtsalt edastanud Alice'i pahatahtlikele sõlmedele, mis ei edasta seda ausatele sõlmedele. Samal ajal, kui see tehing jääb seisma, kulutab Alice samu vahendeid (reaalses) võrgus, kas teisele osapoolele või talle kuuluvale aadressile. Isegi kui esialgset tehingut Bobiga lõpuks märgatakse, lükatakse see tagasi, kuna mündid on juba kulutatud.
N-kinnituse topeltkulutamine
N-kinnituse topeltkulutamine on sarnane 0-kinnituse omaga, kuid eeldab rohkem ettevalmistusi. Paljud ettevõtted eelistavad oodata teatud arvu kinnitusi enne makse kehtivaks märkimist. Selle vältimiseks peab ründaja varjutama nii kaevandajad kui ka kaupmehe. Kui ründaja on kaupmehega tellimuse vormistanud, edastab ta tehingu (varjutatud) kaevandajatele. Tehing kinnitatakse ja lisatakse plokiahelasse – kuid see plokiahel ei ole see ahel, mida enamik võrgust jälgib, sest kaevandaja on ära lõigatud.
Sealt edasi edastab ründaja selle plokiahela versiooni kaupmehele, kes vabastab kauba selles veendumuses, et tehing on kinnitatud. Kui varjutatud sõlmed liituvad uuesti tegeliku võrguga, jääb plokiahel, mida nad ekslikult peavad kehtivaks, orvuks selle plokiahela suhtes, mille kallal ülejäänud võrk on töötanud (sellel on mõningaid sarnasusi 51% rünnakuga).
Konkureerivate kaevandajate nõrgendamine
Varjutatud sõlm jätkab tööd, teadmata, et ta on võrgust eraldatud. Kaevandajad jätkavad plokkide kaevandamist protokollis sätestatud reeglite kohaselt, kuid lisatud plokid jäetakse kõrvale, kuna need sünkroonivad ausate kaaslastega.
Teoreetiliselt võiks suuremahulist varjurünnakut suuremate kaevandajate vastu kasutada 51% rünnaku hõlbustamiseks. Praegusel hetkel on suurema osa Bitcoini räsivõimsuse ülevõtmise kulud isegi kõige leidlikuma ründaja jaoks lihtsalt liiga kõrged – ~80TH/s vajaks asutus sellise manöövri katsetamiseks rohkem kui 40TH/s.
Hüpoteetilise stsenaariumi korral, kus see räsivõimsus on jaotatud 10 osapoole vahel (nii et igaühele kuulub 8TH/s), saab ründaja oluliselt vähendada 51% rünnaku nõudeid, lõigates need osapooled võrgust välja. Kui viis on ära varjutatud, eemaldatakse 40TH/s järgmise ploki leidmise võistlusest ja ründaja peab nüüd kontrolli ülevõtmiseks omandama vaid veidi üle 20TH/s.
Teised sabotaažid, mida on võimalik saavutada sihtmärkide varjutamisega, hõlmavad sõlmedega manipuleerimist omakasupüüdlikuks kaevandamiseks või kaevandajate vaheliste võistluse kavandamist järgmise ploki leidmiseks.
Leevendus
Piisava hulga IP-aadresside olemasolul võib ründaja varjutada mis tahes sõlme. Kõige lihtsam meetod selle vältimiseks on see, et operaator blokeerib sissetulevad ühendused ja teeb väljaminevaid ühendusi ainult konkreetsete sõlmedega (näiteks nendega, mis on teiste partnerite poolt valges nimekirjas). Nagu uurimuses märgitakse, ei ole see lähenemisviis siiski mastaapne – kui kõik osalejad võtavad need meetmed kasutusele, ei saa uued sõlmed võrguga liituda.
Autorid pakuvad Bitcoini tarkvarale käputäie muudatusi, millest mõned on integreeritud alates raamatu avaldamisest. Need muudavad varjurünnakud kulukamaks, tehes koodis väiksemaid muudatusi, näiteks uute ühenduste juhusliku valiku ja aadresside suurema salvestusmahu abil.
Lõppmärkused
Varjurünnakud toimuvad võrkudevahelisel tasandil. Iseseisva rünnakuna rakendatuna võivad nad olla omamoodi hädaohtlikud. Nende tegelik tõhusus seisneb teiste rünnakute võimendamises, mis mõjutavad sihtmärke rahaliselt või annavad ründajale eelise kaevandamisrindel.
Tegelikkuses ei ole varjurünnakul veel tõsiseid tagajärgi olnud, kuid oht on vaatamata võrku integreeritud vastumeetmetele endiselt olemas. Nagu enamiku Bitcoini ja teiste krüptovaluutade jaoks olemasolevate ründevektorite puhul, on tugevaim kaitse see, mis muudab pahatahtlike osapoolte jaoks rahaliselt ebasoodsaks, et neid proovida.