Wstęp
Atak na zaćmienie to stosunkowo prosty atak, który złośliwy aktor może zastosować w celu ingerencji w węzły w sieci. Jak sama nazwa może sugerować, atak ma na celu zasłonięcie widoku sieci peer-to-peer w celu wywołania ogólnych zakłóceń lub przygotowania się do bardziej wyrafinowanych ataków.
Ataki Eclipse mogą na pozór wyglądać podobnie do ataków Sybil. Chociaż mają pewne podobieństwa – złośliwy aktor zaleje sieć fałszywymi urządzeniami równorzędnymi – ich ostateczny cel jest ostatecznie inny. Atak Eclipse ma na celu pojedynczy węzeł (z powodów wyjaśnionych w dalszej części), podczas gdy atak Sybil to atak obejmujący całą sieć, mający na celu oszukanie systemu reputacji protokołu.
Koncepcja ta została szczegółowo omówiona w dokumencie z 2015 r. pt. Ataki Eclipse na sieć peer-to-peer Bitcoin, w którym naukowcy z Uniwersytetu Bostońskiego i Uniwersytetu Hebrajskiego przedstawiają wyniki swoich eksperymentów dotyczących narastających ataków Eclipse, a także możliwe środki zaradcze służące ich zwalczaniu.
Jak działa atak Eclipse
Górnicy Bitcoinów potrzebują specjalistycznego sprzętu, aby generować nowe bloki, ale węzły niekopiujące (lub pełne) są łatwo uruchamiane przy minimalnej mocy obliczeniowej. Pomaga to w decentralizacji Bitcoinów, ponieważ każdy może uruchomić węzeł na urządzeniu o niskiej specyfikacji. Oprogramowanie utrzymuje bazę danych transakcji, którą synchronizuje z bezpośrednimi rówieśnikami, aby pozostać w zgodzie z siecią.
Czynnikiem ograniczającym dla wielu węzłów jest przepustowość. Chociaż istnieje ogromna liczba urządzeń obsługujących oprogramowanie, przeciętne urządzenie nie jest w stanie połączyć się bezpośrednio z wieloma z nich z powodu ograniczeń określonych w oprogramowaniu Bitcoin (które zezwala tylko na maksymalnie 125 połączeń).
W ataku Eclipse złośliwy aktor upewni się, że wszystkie połączenia celu zostaną wykonane do węzłów kontrolowanych przez atakującego. Podmiot najpierw zaleje cel swoimi własnymi adresami IP, z którymi ofiara prawdopodobnie połączy się po ponownym uruchomieniu swojego oprogramowania. Ponowne uruchomienie może zostać wymuszone (np. za pomocą ataku DDoS na cel) lub atakujący może po prostu poczekać, aż nastąpi.
Gdy już do tego dojdzie, niczego niepodejrzewająca ofiara jest zdana na łaskę złośliwych węzłów – nie mając wglądu w całą sieć, atakujący może jej podać nieprawidłowe dane.
Konsekwencje ataku zaćmienia
Jeśli atakujący wydaje zasoby, aby odizolować peera od sieci, prawdopodobnie ma ku temu motyw. Istnieje kilka kolejnych ataków, które można łatwiej uruchomić, gdy węzeł zostanie uduszony.
Podwójne wydatki bez potwierdzenia
Jeśli osoba zaakceptuje transakcję bez potwierdzeń, naraża się na ryzyko podwójnego wydania. Transakcja mogła zostać rozgłoszona, ale dopóki nie zostanie uwzględniona w bloku (a zatem zatwierdzona w blockchainie), nadawca może łatwo utworzyć nową transakcję, która wyda te same środki gdzie indziej. Jeśli nowa transakcja ma wyższą opłatę, górnik prawdopodobnie uwzględni ją przed oryginalną, unieważniając wcześniejszą.
Niektóre firmy i osoby akceptują te transakcje bez potwierdzeń. Rozważmy kupca, Boba, który sprzedaje luksusowe samochody. Nie wie, że Alice przyćmiła jego węzeł i niczego nie podejrzewa, składając zamówienie na luksusowy samochód sportowy. Tworzy transakcję, którą Bob następnie transmituje do sieci. Zadowolony, że płatność jest w drodze, wręcza kluczyki do samochodu, a Alice odjeżdża.
Oczywiście transakcja nie została rozgłoszona w sieci – Bob jedynie przekazał ją złośliwym węzłom Alicji, które nie przekażą jej uczciwym węzłom. Podczas gdy transakcja wisi w zawieszeniu, Alicja wydaje te same środki w (prawdziwej) sieci, czy to na rzecz innej osoby, czy na adres, który posiada. Nawet jeśli początkowa transakcja z Bobem zostanie ostatecznie zauważona, zostanie odrzucona, ponieważ monety zostały już wydane.
Podwójne wydatki z potwierdzeniem N
Podwójne wydatkowanie z N-potwierdzeniami jest podobne do podwójnego wydatkowania z 0-potwierdzeniami, ale wymaga więcej przygotowań. Wiele firm woli czekać na określoną liczbę potwierdzeń przed oznaczeniem płatności jako ważnej. Aby to obejść, atakujący musi zaćmić zarówno górników, jak i sprzedawcę. Gdy atakujący skonfiguruje zamówienie u sprzedawcy, transmituje transakcję do (zaćmionych) górników. Transakcja zostaje potwierdzona i uwzględniona w blockchainie – ale ten blockchain nie jest łańcuchem, który obserwuje większość sieci, ponieważ górnik jest odcięty.
Stamtąd atakujący przekazuje tę wersję blockchaina sprzedawcy, który uwalnia towary, wierząc, że transakcja została potwierdzona. Gdy zaćmione węzły ponownie dołączają do rzeczywistej sieci, blockchain, który błędnie uważają za ważny, zostaje odrzucony przez ten, nad którym pracowała reszta sieci (wykazuje to pewne podobieństwa do ataku 51%).
Osłabianie konkurencyjnych górników
Zaćmiony węzeł będzie nadal działał, nieświadomy faktu, że został oddzielony od sieci. Górnicy będą nadal wydobywać bloki zgodnie z zasadami określonymi w protokole, ale dodane bloki zostaną odrzucone, gdy zsynchronizują się z uczciwymi rówieśnikami.
Teoretycznie, atak Eclipse na dużą skalę na głównych górników mógłby zostać wykorzystany do ułatwienia ataku 51%. W obecnej sytuacji koszt przejęcia większości mocy haszującej Bitcoina jest po prostu zbyt wysoki nawet dla najbardziej pomysłowych atakujących – przy ~80TH/s, podmiot potrzebowałby więcej niż 40TH/s, aby spróbować takiego manewru.
W hipotetycznym scenariuszu, w którym ta moc haszująca jest rozdzielona między 10 stron (tak, że każda posiada 8TH/s), atakujący może znacznie obniżyć wymagania dla ataku 51%, odcinając te strony od sieci. Jeśli pięć zostanie przyćmionych, 40TH/s zostanie usunięte z wyścigu o znalezienie następnego bloku, a atakujący musi teraz uzyskać tylko nieco ponad 20TH/s, aby przejąć kontrolę.
Innym rodzajem sabotażu, jaki można osiągnąć poprzez przyćmienie celów, jest manipulacja węzłami w celu samolubnego wydobycia lub organizowanie wyścigów między górnikami w celu znalezienia kolejnego bloku.
Łagodzenie
Mając wystarczającą liczbę adresów IP, atakujący może przyćmić dowolny węzeł. Najprostszą metodą zapobiegania temu jest blokowanie przez operatora połączeń przychodzących i nawiązywanie 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 innych równorzędnych). Jak jednak wskazuje dokument badawczy, nie jest to podejście, które działa na dużą skalę – jeśli wszyscy uczestnicy przyjmą te środki, nowe węzły nie będą mogły dołączyć do sieci.
Autorzy proponują kilka poprawek do oprogramowania Bitcoin, z których część została zintegrowana od czasu wydania artykułu. Sprawiają one, że ataki Eclipse są bardziej kosztowne poprzez drobne modyfikacje kodu, takie jak losowy wybór nowych połączeń i większa pojemność przechowywania adresów.
Myśli końcowe
Ataki Eclipse są przeprowadzane na poziomie sieci peer-to-peer. Wdrożone jako samodzielny atak, mogą być czymś w rodzaju uciążliwości. Ich prawdziwa skuteczność polega na potencjalizowaniu innych ataków, które wpływają na cele finansowo lub zapewniają atakującemu przewagę na froncie wydobywczym.
W naturze nie było jeszcze poważnych konsekwencji wynikających z ataku Eclipse, ale zagrożenie nadal istnieje pomimo środków zaradczych zintegrowanych z siecią. Podobnie jak w przypadku większości wektorów ataków, które istnieją dla Bitcoina i innych kryptowalut, najsilniejszą obroną będzie ta, która uczyni je finansowo niemożliwymi do przeprowadzenia dla złośliwych stron.

