Czym jest atak typu Eclipse?
HomeArticles

Czym jest atak typu Eclipse?

Zaawansowany
2mo ago
6m

Spis treści


Atak Eclipse jest nieskomplikowanym złośliwym działaniem, które atakujący stosuje w celu zakłócenia funkcjonowania węzłów zdecentralizowanej sieci. Jak sugeruje nazwa, atak ma na celu "zaćmienie" widoku węzłów hostowanych przez uczestników sieci peer-to-peer, aby doprowadzić do ogólnego zakłócenia funkcjonowania systemu i stworzyć odpowiednie środowisko dla bardziej wyrafinowanych ataków.

Ataki Eclipse, na pierwszy rzut oka, mogą wyglądać podobnie do Ataków Sybil. Chociaż podzielają one pewne cechy – napastnik zalewa sieć fałszywymi użytkownikami – ich cele końcowe zupełnie się od siebie różnią. Podczas, gdy atak Sybil ma za zadanie uszkodzić całą sieć, atak Eclipse wymierzony jest w pojedynczy węzeł (z powodów wyjaśnionych w późniejszych sekcjach).

Koncepcja ataku Eclipse została szczegółowo omówiona w dokumencie z 2015r. Eclipse Attacks on Bitcoin’s Peer-to-Peer Network. Naukowcy z Uniwersytetu w Bostonie oraz Uniwersytetu Hebrajskiego przedstawili w nim wyniki swoich eksperymentów z nasilającymi się atakami typu eclipse, wraz z możliwymi środkami zaradczymi.


Jak działa Atak Eclipse

Górnicy Bitcoina potrzebują specjalistycznego sprzętu do generowania nowych bloków, lecz węzły niewydobywcze (lub pełne) mogą sprawnie funkcjonować przy wykorzystaniu niewielkiej mocy obliczeniowej. Właśnie ta cecha pomaga w decentralizacji Bitcoina, gdyż każdy jest w stanie ustawić własny węzeł i pomóc sieci. Oprogramowanie utrzymuje bazę danych zawierającą transakcje, którą następnie synchronizuje z innymi pobliskimi węzłami.

Ograniczeniem dla wielu węzłów jest przepustowość. Choć istnieje ogromna liczba urządzeń z aktywnym oprogramowaniem sieci Bitcoin, przeciętny komputer nie jest w stanie połączyć się bezpośrednio z wieloma z nich. Dzieje się tak z powodu ograniczeń określonych w oprogramowaniu Bitcoina (które pozwala na maksymalnie 125 połączeń).

W trakcie ataku Eclipse, haker dokona wszelkich starań, aby wszystkie połączenia ofiary ataku były podłączone do węzłów kontrolowanych przez atakującego. Napastnik wpierw zaleje cel własnymi adresami IP, maksymalizując prawdopodobieństwo, że ofiara, po ponownym uruchomieniu oprogramowania, połączy się ze złośliwymi węzłami. Restart można wymusić (zwykłym DDos'em) albo atakujący może zwyczajnie poczekać na jego wystąpienie. 

Kiedy to już się stanie, niczego nie podejrzewająca ofiara znajdzie się na łasce złośliwych węzłów – stanie się ślepa, a bez widoku na szerzą sieć może być "karmiona" nieprawidłowymi danymi przez napastnika.


Konsekwencje ataku eclipse

Jeżeli atakujący zużywa zasoby do wyobcowania węzła od reszty sieci, najpewniej ma on do tego konkretną motywację. Po takim działaniu, istnieje kilka groźnych ataków, które haker może przeprowadzić na odizolowanym węźle.


Podwójne wydatkowanie przy 0-potwierdzeniach

Jeżeli osoba akceptuje transakcje typu 0-potwierdzeń (kiedy to nie czeka na potwierdzenie transakcji w następnych blokach), po skutecznym ataku Eclipse, może być narażona na podwójne wydatkowanie kryptowalut. Transakcja mogła zostać rozgłoszona, ale dopóki nie zostanie uwzględniona w bloku (a tym samym przekazana do głównego łańcucha bloków), nadawca może z łatwością utworzyć nową transakcję, wydając te same środki w innym miejscu. Jeśli w nowej transakcji dodatkowo zawrze wyższą opłatę, górnik prawdopodobnie uwzględni ją przed oryginałem, unieważniając tą wcześniejszą. 

Niektóre firmy i osoby prywatne akceptują transakcje 0-potwierdzeń. Jako przykład pomyśl o Bobie, sprzedającym wysokiej klasy samochody. Nie zdaje sobie sprawy, że Alice przyćmiła jego węzeł i niczego nie podejrzewając, pozwala Alice zamówić luksusowy samochód sportowy. Tworzy transakcję i przesyła pieniądze, a Bob transmituje płatność do sieci. Zadowolony, że zbliża się zapłata, wręcza kluczyki do samochodu i zanim się obejrzy, Alice i samochodu już nie ma. Pieniędzy również.

Oczywiście transakcja nie została nadana do sieci. Bob jedynie przekazał ją do złośliwych węzłów Alicji, które nie oczywiście nie puszczą jej dalej. Podczas gdy ta transakcja jest zawieszona, Alicja wydaje te same środki w (rzeczywistej) sieci, przesyłając je innej osobie lub zwyczajnie wysyłając na swój kolejny adres. Nawet jeśli początkowa transakcja z Bobem zostanie ostatecznie zauważona, doczeka się odrzucenia, ponieważ monety zostały już wydane gdzie indziej.


Podwójne wydatkowanie przy N-potwierdzeniach

Podwójne wydatkowanie przy N-potwierdzeniach jest podobne do podwójnego wydatkowania przy 0-potwierdzeniach, ale wymaga większego przygotowania. Wiele firm woli czekać na określoną liczbę potwierdzeń przed oznaczeniem płatności jako ważnej. Aby obejść ten problem, atakujący musi "zaćmić" zarówno górników, jak i handlarza. Gdy haker skonfiguruje zamówienie u sprzedawcy, transmituje transakcję do (zaćmionych) górników. Transakcja zostaje potwierdzona i włączona do łańcucha bloków, ale blockchain ten nie jest łańcuchem obserwowanym przez większość sieci, ponieważ górnik również został odseparowany.

Od tego momentu, atakujący pokazuje tę wersję blockchiana sprzedawcy, który oddaje towar, wierząc, że transakcja została zatwierdzona przez sieć. Gdy zaćmione węzły ponownie dołączą do rzeczywistej sieci, blockchain uważany za prawidłowy, zostaje osierocony przez ten, nad którym pracowała reszta sieci (wykazuje to pewne podobieństwo do ataku 51%).


Osłabianie konkurujących górników

Przyćmiony węzeł będzie nadal funkcjonować, nieświadomy faktu, że został on oddzielone od reszty sieci. Górnicy nie przestaną wydobywać bloków i będą je produkować zgodnie z zasadami określonymi w protokole, ale wszystkie one zostaną odrzucone, chwilę po tym jak zaczną synchronizować się z niezainfekowanymi węzłami. 

Teoretycznie, wielkoskalowy atak na główne przedsiębiorstwa górnictwa Bitcoina, może być wykorzystany do przeprowadzenia ataku 51%. W obecnej sytuacji, koszt przejęcia większości mocy hashującej Bitcoina jest zwyczajnie zbyt wysoki, nawet dla najbardziej zaradnych napastników – przy ~80TH/s, haker potrzebowałby ponad 40TH/s, w celu dokonania skutecznego ataku 51%. 

W hipotetycznym scenariuszu, w którym ta moc hashująca jest rozłożona między 10 stron (tak, że każda z nich posiada 8TH/s), osoba atakująca może znacznie obniżyć wymagania dotyczące 51% ataku, odcinając te organizacje od sieci. Jeśli pięć z nich zostanie przyćmionych, a 40TH/s zostanie usuniętych z wyścigu o znalezienie następnego bloku, sam atakujący będzie potrzebował 20TH/s do przejęcia kontroli, czyli o połowę mniej.

Innym złośliwym skutkiem, możliwym do osiągnięcia poprzez zaćmienie ofiar, jest manipulowanie węzłami w celu  samolubnego wydobycia  lub inżynieria wyścigów o znalezienie kolejnych bloków, między górnikami kryptowalut.


Łagodzenie skutków

Mając wystarczającą liczbę adresów IP, atakujący może przyćmić dowolny węzeł. Najprostszą metodą zapobiegania temu zachowaniu jest blokowanie połączeń przychodzących i wykonywanie połączeń wychodzących tylko do określonych węzłów (takich jak te, które zostały umieszczone na białej liście przez inne uczciwe węzły). Jak wskazuje dokument badawczy, nie jest to jednak skuteczne podejście, które działałoby na większą skalę - jeżeli wszyscy uczestnicy zastosują te same środki, nowe węzły nie będą nigdy w stanie dołączyć do sieci.

Autorzy dokumentu proponują kilka ulepszeń w oprogramowaniu Bitcoina, z których część już została wprowadzona, od czasu pojawienia się analizy. Dzięki drobnym modyfikacjom kodu, takim jak losowy wybór nowych połączeń i zwiększona pojemność przechowywania adresów, ataki eclipse stały się znacznie bardziej kosztowne.


Wnioski końcowe

Ataki Eclipse przeprowadzane są na poziomie sieci peer-to-peer. Wdrożone jako samodzielny atak, mogą być czymś uciążliwym, aczkolwiek nieszkodliwym na dłużą metę. Ich prawdziwa skuteczność objawia się w wzmacnianiu innych form ataków, wpływających finansowo na cele lub zapewniających atakującemu przewagę na froncie górnictwa kryptowalut.

Konsekwencje ataków eclipse w rzeczywistym świecie, a nie tylko na papierze, dopiero przyjdzie nam zobaczyć. Nie oznacza to jednak, że zagrożenie można zbagatelizować. Ono istnieje, pomimo wprowadzenia do sieci licznych środków zaradczych. Podobnie jak w przypadku innych ataków, możliwych do przeprowadzanie na Bitcoinie oraz innych kryptowalutach, najlepszą ochroną jest sprawienie, aby koszty potencjalnego ataku były astronomiczne.