Introducere
Un atac de eclipsare este un atac relativ simplu pe care un actor malefic îl poate desfășura pentru a interveni în nodurile unei rețele. Așa cum sugerează numele, atacul vizează să obscureze viziunea unui participant asupra rețelei peer-to-peer, pentru a provoca o perturbare generală sau pentru a se pregăti pentru atacuri mai sofisticate.
Atacurile de eclipsare pot părea similare, la suprafață, cu atacurile Sybil. Deși ele împărtășesc anumite similitudini – actorul malefic va inunda rețeaua cu colegi falsi – scopul lor final este, în cele din urmă, diferit. Un atac de eclipsare vizează un singur nod (din motive explicate într-o secțiune ulterioară), în timp ce un atac Sybil este un atac la nivel de rețea destinat să manipuleze sistemul reputațional al protocolului.
Conceptul este discutat pe larg în lucrarea din 2015 Atacurile de eclipsare asupra rețelei peer-to-peer a Bitcoin, în care cercetători de la Universitatea Boston și Universitatea Hebraică își raportează descoperirile din experimentele lor de montare a atacurilor de eclipsare, precum și posibile măsuri de contracarare pentru a le combate.
Cum funcționează un atac de eclipsare
Minerii Bitcoin necesită echipamente specializate pentru a genera blocuri noi, dar nodurile non-mining (sau complete) pot fi rulate cu ușurință pe o putere computațională minimă. Acest lucru ajută la descentralizarea Bitcoin, deoarece oricine poate lansa un nod pe un dispozitiv cu specificații reduse. Software-ul menține o bază de date a tranzacțiilor pe care o sincronizează cu colegii săi imediați, pentru a rămâne în sincronizare cu rețeaua.
Un factor limitativ pentru multe noduri este lățimea de bandă. Deși există o cantitate uriașă de dispozitive care rulează software-ul, dispozitivul mediu nu poate să se conecteze direct la multe dintre ele din cauza limitărilor stabilite în software-ul Bitcoin (care permite doar un maxim de 125 de conexiuni).
Într-un atac de eclipsare, actorul malefic se va asigura că toate conexiunile țintei sunt realizate cu noduri controlate de atacator. Entitatea va inunda mai întâi ținta cu propriile sale adrese IP, la care victima se va conecta probabil la repornirea software-ului său. O repornire poate fi forțată (de exemplu, cu un atac DDoS asupra țintei), sau atacatorul poate aștepta pur și simplu să se întâmple.
Odată ce acest lucru s-a întâmplat, victima nevinovată se află la mila nodurilor malefice – fără o vedere a rețelei mai largi, pot fi hrăniți cu date incorecte de către atacator.
Consecințele unui atac de eclipsare
Dacă un atacator își cheltuie resursele pentru a alienta un coleg de la rețea, probabil că are un motiv pentru a face acest lucru. Există câteva atacuri succesive care pot fi lansate mai ușor odată ce un nod a fost sufocat.
Cheltuieli duble fără confirmare
Dacă o persoană acceptă o tranzacție fără confirmări, se află în pericol de a avea o cheltuială dublă. Tranzacția poate fi transmisă, dar până când nu a fost inclusă într-un bloc (și astfel angajată în blockchain), expeditorul poate crea cu ușurință o nouă tranzacție care cheltuie aceleași fonduri în altă parte. Dacă noua tranzacție are o taxă mai mare, un miner o va include probabil înaintea celei originale, invalidând-o pe aceasta din urmă.
Unele afaceri și indivizi acceptă aceste tranzacții fără confirmare. Să luăm în considerare un comerciant, Bob, care vinde vehicule de lux. El nu este conștient că Alice i-a eclipsat nodul și nu suspectează nimic în timp ce ea plasează o comandă pentru o mașină sport de lux. Ea creează o tranzacție, pe care Bob o transmite apoi rețelei. Satisfăcut că plata este pe drum, el îi înmânează cheile mașinii, iar Alice pleacă cu viteză.
Desigur, tranzacția nu a fost transmisă rețelei – Bob a transmis-o pur și simplu nodurilor malefice ale lui Alice, care nu o vor transmite nodurilor cinstite. În timp ce această tranzacție rămâne în așteptare, Alice cheltuie aceleași fonduri pe rețeaua (reală), fie către o altă parte, fie către o adresă pe care o deține. Chiar și în cazul în care tranzacția inițială către Bob este văzută, aceasta va fi respinsă deoarece monedele au fost deja cheltuite.
Cheltuieli duble cu N-confirmări
Cheltuiala dublă cu N-confirmări este similară cu cea fără confirmări, dar implică mai multă pregătire. Multe afaceri preferă să aștepte un anumit număr de confirmări înainte de a marca o plată ca fiind validă. Pentru a ocoli acest lucru, atacatorul trebuie să eclipseze atât minerii, cât și comerciantul. Odată ce atacatorul a stabilit comanda cu comerciantul, ei transmit o tranzacție minerilor (eclipsați). Tranzacția este confirmată și inclusă în blockchain – dar acest blockchain nu este lanțul pe care majoritatea rețelei îl observă, deoarece minerul este deconectat.
De acolo, atacatorul transmite această versiune a blockchain-ului comerciantului, care eliberează bunurile sub credința că tranzacția a fost confirmată. Odată ce nodurile eclipsate revin în rețeaua reală, blockchain-ul pe care îl consideră valid este orfan de cel pe care restul rețelei a lucrat (acest lucru prezintă unele similitudini cu un atac de 51%).
Slăbirea minerilor concurenți
Un nod eclipsat va continua să funcționeze, fără a fi conștient de faptul că a fost segregat de rețea. Minerii vor continua să mineze blocuri conform regulilor stabilite de protocol, dar blocurile adăugate vor fi respinse pe măsură ce se sincronizează cu colegii cinstiți.
Teoretic, un atac de eclipsare la scară mare asupra minerilor majori ar putea fi folosit pentru a facilita un atac de 51%. Așa cum stau lucrurile, costul pentru a prelua majoritatea puterii de hashing a Bitcoin este pur și simplu prea mare chiar și pentru cei mai ingenioși atacatori – la ~80TH/s, entitatea ar avea nevoie de mai mult de 40TH/s pentru a încerca o astfel de manevră.
Într-un scenariu ipotetic în care această putere de hashing este distribuită între 10 părți (astfel încât fiecare să dețină 8TH/s), atacatorul poate reduce semnificativ cerințele pentru un atac de 51% prin deconectarea acestor părți de la rețea. Dacă cinci sunt eclipsați, 40TH/s este eliminat din cursa de a găsi următorul bloc, iar atacatorul acum trebuie să obțină doar puțin peste 20TH/s pentru a prelua controlul.
Alte sabotaje care pot fi realizate prin eclipsarea țintelor includ manipularea nodurilor pentru mineritul egoist sau ingineria curselor între mineri pentru a găsi următorul bloc.
Atenuare
Cu suficiente adrese IP, un atacator poate eclipsa orice nod. Cea mai simplă metodă de a preveni acest lucru este ca un operator să blocheze conexiunile de intrare și să facă doar conexiuni de ieșire către noduri specifice (cum ar fi cele care au fost incluse pe lista albă de către alți colegi). Cu toate acestea, așa cum subliniază lucrarea de cercetare, aceasta nu este o abordare care funcționează la scară – dacă toți participanții adoptă aceste măsuri, nodurile noi nu vor putea să se alăture rețelei.
Autorii propun câteva ajustări la software-ul Bitcoin, dintre care unele au fost integrate de la publicarea lucrării. Acestea fac ca atacurile de eclipsare să fie mai costisitoare prin modificări minore ale codului, cum ar fi selecția aleatorie a noilor conexiuni și o capacitate mai mare pentru stocarea adreselor.
Gânduri finale
Atacurile de eclipsare sunt realizate la nivelul rețelei peer-to-peer. Deployed ca un atac independent, ele pot fi un oarecare inconvenient. Eficiența lor reală constă în potențarea altor atacuri care afectează țintele financiar sau oferă atacatorului un avantaj pe frontul mineritului.
În sălbăticie, nu au existat până acum consecințe grave rezultate dintr-un atac de eclipsare, dar amenințarea încă există în ciuda măsurilor de contracarare integrate în rețea. Ca și în cazul celor mai multe dintre vectorii de atac care există pentru Bitcoin și alte criptomonede, cea mai puternică apărare va fi aceea care face ca încercările malefice să fie prohibitive din punct de vedere financiar.

