Einführung
Ein Eclipse-Angriff ist ein relativ einfacher Angriff, den ein böswilliger Akteur einsetzen kann, um Knoten in einem Netzwerk zu stören. Wie der Name vermuten lässt, zielt der Angriff darauf ab, die Sicht eines Teilnehmers auf das Peer-to-Peer-Netzwerk zu verdecken, um allgemeine Störungen zu verursachen oder ausgefeiltere Angriffe vorzubereiten.
Eclipse-Angriffe mögen auf den ersten Blick ähnlich klingen wie Sybil-Angriffe. Obwohl sie gewisse Ähnlichkeiten aufweisen – der böswillige Akteur überflutet das Netzwerk mit gefälschten Peers – ist ihr Endziel letztlich unterschiedlich. Ein Eclipse-Angriff zielt auf einen einzelnen Knoten ab (aus Gründen, die in einem späteren Abschnitt erläutert werden), während ein Sybil-Angriff ein netzwerkweiter Angriff ist, der darauf abzielt, das Reputationssystem des Protokolls auszutricksen.
Das Konzept wird ausführlich in dem 2015 erschienenen Artikel „Eclipse Attacks on Bitcoin’s Peer-to-Peer Network“ erörtert. Forscher der Boston University und der Hebrew University berichten darin über ihre Erkenntnisse aus ihren Experimenten zur Durchführung von Eclipse-Angriffen sowie über mögliche Gegenmaßnahmen zu dieser Attacke.
So funktioniert ein Eclipse-Angriff
Bitcoin-Miner benötigen spezielle Ausrüstung, um neue Blöcke zu generieren, aber nicht-minierende (oder vollständige) Knoten lassen sich problemlos mit minimaler Rechenleistung betreiben. Dies unterstützt die Dezentralisierung von Bitcoin, da jeder einen Knoten auf einem Gerät mit geringer Spezifikation hochfahren kann. Die Software verwaltet eine Datenbank mit Transaktionen, die sie mit ihren unmittelbaren Peers synchronisiert, um im Gleichschritt mit dem Netzwerk zu bleiben.
Ein limitierender Faktor für viele Knoten ist die Bandbreite. Obwohl es eine enorme Anzahl von Geräten gibt, auf denen die Software läuft, kann das durchschnittliche Gerät aufgrund von Beschränkungen der Bitcoin-Software (die nur maximal 125 Verbindungen zulässt) keine direkte Verbindung zu vielen von ihnen herstellen.
Bei einem Eclipse-Angriff stellt der böswillige Akteur sicher, dass alle Verbindungen des Ziels zu vom Angreifer kontrollierten Knoten hergestellt werden. Die Entität überflutet das Ziel zunächst mit ihren eigenen IP-Adressen, mit denen sich das Opfer wahrscheinlich nach dem Neustart seiner Software verbindet. Ein Neustart kann entweder erzwungen werden (z. B. mit einem DDoS-Angriff auf das Ziel) oder der Angreifer kann einfach darauf warten, dass er erfolgt.
Sobald dies geschehen ist, ist das ahnungslose Opfer den bösartigen Knoten ausgeliefert. Ohne Einblick in das weitere Netzwerk können ihnen vom Angreifer falsche Daten zugeführt werden.
Folgen eines Eclipse-Angriffs
Wenn ein Angreifer Ressourcen aufwendet, um einen Peer vom Netzwerk zu trennen, hat er wahrscheinlich ein Motiv dafür. Es gibt eine Handvoll aufeinanderfolgender Angriffe, die einfacher gestartet werden können, wenn ein Knoten erst einmal blockiert ist.
0-Bestätigung Doppelausgaben
Wenn eine Person eine Transaktion ohne Bestätigungen akzeptiert, besteht das Risiko einer doppelten Ausgabe. Die Transaktion wurde möglicherweise gesendet, aber bis sie in einen Block aufgenommen (und somit in die Blockchain übertragen) wurde, kann der Absender problemlos eine neue Transaktion erstellen, bei der dieselben Mittel woanders ausgegeben werden. Wenn die neue Transaktion eine höhere Gebühr hat, wird ein Miner sie wahrscheinlich vor der ursprünglichen Transaktion aufnehmen und dadurch die frühere ungültig machen.
Einige Unternehmen und Privatpersonen akzeptieren diese 0-Bestätigungs-Transaktionen. Nehmen wir zum Beispiel den Händler Bob, der Luxusautos verkauft. Er weiß nicht, dass Alice seinen Knoten überholt hat, und ahnt nichts, als sie einen Luxussportwagen bestellt. Sie erstellt eine Transaktion, die Bob dann an das Netzwerk sendet. Zufrieden, dass die Zahlung unterwegs ist, übergibt er die Autoschlüssel und Alice braust davon.
Natürlich wurde die Transaktion nicht an das Netzwerk gesendet – Bob hat sie lediglich an Alices bösartige Knoten weitergeleitet, die sie nicht an ehrliche Knoten weiterleiten werden. Während diese Transaktion in der Schwebe hängt, gibt Alice die gleichen Mittel im (echten) Netzwerk aus, sei es an eine andere Partei oder an eine Adresse, die ihr gehört. Selbst wenn die ursprüngliche Transaktion an Bob schließlich gesehen wird, wird sie abgelehnt, da die Münzen bereits ausgegeben wurden.
N-Bestätigung Doppelausgaben
Die N-Bestätigungs-Doppelausgabe ähnelt der 0-Bestätigungs-Doppelausgabe, erfordert jedoch mehr Vorbereitung. Viele Unternehmen warten lieber auf eine bestimmte Anzahl von Bestätigungen, bevor sie eine Zahlung als gültig markieren. Um dies zu umgehen, muss der Angreifer sowohl die Miner als auch den Händler überlisten. Sobald der Angreifer die Bestellung beim Händler aufgegeben hat, sendet er eine Transaktion an die (überlisteten) Miner. Die Transaktion wird bestätigt und in die Blockchain aufgenommen – aber diese Blockchain ist nicht die Kette, die der Großteil des Netzwerks beobachtet, da der Miner abgeschnitten ist.
Von dort leitet der Angreifer diese Version der Blockchain an den Händler weiter, der die Waren im Glauben freigibt, die Transaktion sei bestätigt. Sobald die verdeckten Knoten wieder dem eigentlichen Netzwerk beitreten, wird die Blockchain, die sie fälschlicherweise für gültig halten, durch die ersetzt, an der der Rest des Netzwerks gearbeitet hat (dies weist gewisse Ähnlichkeiten mit einem 51%-Angriff auf).
Schwächung konkurrierender Miner
Ein verdeckter Knoten wird weiterhin in Betrieb sein, ohne zu wissen, dass er vom Netzwerk getrennt wurde. Miner werden weiterhin Blöcke im Rahmen der im Protokoll festgelegten Regeln schürfen, aber die hinzugefügten Blöcke werden verworfen, wenn sie mit ehrlichen Peers synchronisiert werden.
Theoretisch könnte ein groß angelegter Eclipse-Angriff auf große Miner genutzt werden, um einen 51%-Angriff zu ermöglichen. So wie es aussieht, sind die Kosten, die man aufbringen muss, um den Großteil der Hashing-Leistung von Bitcoin zu übernehmen, selbst für die einfallsreichsten Angreifer einfach zu hoch – bei ~80 TH/s bräuchte die Entität mehr als 40 TH/s, um ein solches Manöver zu versuchen.
In einem hypothetischen Szenario, in dem diese Hashing-Leistung auf 10 Parteien verteilt ist (so dass jede Partei 8 TH/s besitzt), kann der Angreifer die Anforderungen für einen 51%-Angriff erheblich senken, indem er diese Parteien vom Netzwerk abschneidet. Wenn fünf Parteien übertroffen werden, sind 40 TH/s aus dem Rennen um den nächsten Block entfernt, und der Angreifer muss jetzt nur noch etwas mehr als 20 TH/s erreichen, um die Kontrolle zu übernehmen.
Zu den weiteren Sabotageakten, die durch das Überlisten von Zielen erreicht werden können, gehören die Manipulation von Knotenpunkten zum Zwecke des egoistischen Minings oder die Inszenierung eines Wettlaufs zwischen Minern um die Suche nach dem nächsten Block.
Milderung
Mit genügend IP-Adressen kann ein Angreifer jeden Knoten überflügeln. Die einfachste Methode, dies zu verhindern, besteht darin, dass ein Betreiber eingehende Verbindungen blockiert und nur zu bestimmten Knoten (z. B. solchen, die von anderen Peers auf die Whitelist gesetzt wurden) ausgehende Verbindungen herstellt. Wie das Forschungspapier jedoch hervorhebt, ist dies kein Ansatz, der in großem Maßstab funktioniert – wenn alle Teilnehmer diese Maßnahmen ergreifen, können keine neuen Knoten dem Netzwerk beitreten.
Die Autoren schlagen eine Handvoll Verbesserungen an der Bitcoin-Software vor, von denen einige seit der Veröffentlichung des Papiers integriert wurden. Diese machen Eclipse-Angriffe durch geringfügige Änderungen am Code kostspieliger, wie etwa die zufällige Auswahl neuer Verbindungen und eine größere Kapazität zum Speichern von Adressen.
Abschließende Gedanken
Eclipse-Angriffe werden auf Peer-to-Peer-Netzwerkebene ausgeführt. Als eigenständiger Angriff können sie ziemlich lästig sein. Ihre wahre Wirksamkeit liegt darin, andere Angriffe zu verstärken, die sich finanziell auf die Ziele auswirken oder dem Angreifer einen Vorteil beim Mining verschaffen.
In der Praxis hat ein Eclipse-Angriff noch keine schwerwiegenden Folgen gehabt, aber die Bedrohung besteht trotz der im Netzwerk integrierten Gegenmaßnahmen weiterhin. Wie bei den meisten Angriffsmethoden, die es für Bitcoin und andere Kryptowährungen gibt, ist die stärkste Verteidigung diejenige, die es böswilligen Parteien finanziell unerschwinglich macht, sie auszuprobieren.

