Über 50 Jahre nach der ersten vernetzten Nachricht bleiben Peer-to-Peer-Netzwerke seltene Tiere im Dschungel des Internets. Die Fähigkeit von Bitcoin, ein offenes Währungssystem bereitzustellen, hängt von seiner Peer-to-Peer-Architektur ab, und auf seiner Angriffsfläche ist die Netzwerkschicht – wie Peers einander entdecken und miteinander verbinden – am anfälligsten. Es gibt zwei Hauptorte, an denen Probleme auftreten können: das Peering-Protokoll von Bitcoin und die Internetprotokolle, von denen das Bitcoin-Protokoll abhängt. Vor diesem Hintergrund hat Core die doppelte Aufgabe, Denial-of-Service-Vektoren (DOS) zu verhindern, die zwischen Knoten missbraucht werden können, und den Knoten eine sichere Kommunikation in der breiteren gegnerischen Umgebung des Internets zu ermöglichen.
P2P
„Regierungen sind gut darin, zentral gesteuerten Netzwerken wie Napster die Köpfe abzuschneiden, aber reine P2P-Netzwerke wie Gnutella und Tor scheinen sich zu behaupten.“
– Satoshi, 7. November 2008 [1]
Das P2P-Protokoll umfasst, wie Knoten Nachrichten über Transaktionen, Blöcke und andere Peers austauschen. Dieser Informationsaustausch ist erforderlich, bevor eine Transaktion oder Konsensvalidierung stattfinden kann, und ist daher ein vorrangiges Anliegen.
Im Laufe der Jahre gab es in diesem Bereich mehrere Fehler. Im Jahr 2017 wurde beispielsweise eine bösartige Sicherheitslücke im SOCKS-Server behoben und offengelegt [2]. Diese „Pufferüberlauf“-Schwachstelle könnte theoretisch zu vielen verschiedenen Angriffen führen: zum Absturz des Knotens, zum Einschleusen bösartiger Nutzlasten oder zum Ändern von Daten auf dem Knoten. Im Jahr 2020 wurde eine Schwachstelle mit hohem Schweregrad gemeldet und behoben, bei der einem Remote-Peer Adressen gesperrt werden konnten, wodurch die Banlist quadratisch anwuchs und es sich daher um ein DOS auf dem Knoten handelte [3]. Die Schwachstelle wurde erst im Jahr 2024 bekannt gegeben. Dieser Fehler wird korrekt als „hoher Schweregrad“ gekennzeichnet, da der Angriff einfach auszuführen ist, seine Wirkung zu einem Funktionsverlust des Knotens führt und nur wenige Voraussetzungen erforderlich sind, damit er funktioniert. Dies sind die Art von Fehlern, die Core-Entwicklern schlaflose Nächte bereiten und weshalb es dringend empfohlen wird, Ihren Knoten auf eine noch gepflegte Version zu aktualisieren (ältere Versionen von Core werden nicht aktiv gewartet/aktualisiert).
Dieses verteilte Netzwerk, das wir Bitcoin nennen, bleibt relativ klein: Die Anzahl der Clearnet-Knoten liegt bei etwa 20.000 Knoten, und selbst wenn man von großzügigen 100.000 TOR-Knoten ausgeht, haben wir immer noch ein kleines, leicht zu überwachendes Netzwerk. Kürzlich waren Daniela Brozzoni und Naiyoma dabei [4] Wenn ein Knoten sowohl mit Clearnet als auch mit Tor läuft, ist es trivial, die IPv4- und Tor-Adressen eines Knotens zuzuordnen. Es ist sehr wahrscheinlich, dass dies bereits von Geheimdiensten und Kettenanalyseunternehmen durchgeführt wird. Dann lässt sich leicht erkennen, welche Knoten welche Transaktionen zuerst veröffentlichen, und daraus die ursprüngliche IP-Adresse und damit den Standort der Transaktion ableiten. Obwohl dies per se kein Fehler ist, da der Knoten nicht abstürzt oder sich schlecht verhält, kann es als Schwachstelle angesehen werden, da es eine Methode zum Verknüpfen einer bestimmten IP-Adresse mit einer Transaktion darstellt.
Wie dies effektiv verhindert werden kann, ist derzeit eine offene Frage.
Die Badlands des Webs
„Wir bauen unsere Computer, wie wir unsere Städte bauen. Im Laufe der Zeit, ohne Plan, auf Ruinen.“ – Ellen Ullman [5]
Bitcoin läuft im Internet und seine Fähigkeit, ein verteiltes und dezentrales System zu bleiben, hängt von den Eigenschaften des Internets selbst ab. Leider ist die Architektur des Internets, wie wir sie heute kennen, nach wie vor äußerst unsicher und bekannte Angriffe werden routinemäßig eingesetzt. Die meisten dieser Angriffe werden unentdeckt durchgeführt, bis ein Schaden entstanden ist, ganz zu schweigen von den Überwachungssystemen, die das Internet heute durchdringen.
Der bekannteste und praktischste Angriffsvektor, mit dem man sich befassen muss, ist ein sogenannter Eclipse-Angriff, bei dem alle Peers eines Opferknotens böswillig sind und dem Opferknoten eine bestimmte Sicht auf die Kette oder das Netzwerk liefern. Diese Angriffsklasse ist in verteilten Systemen von grundlegender Bedeutung. Wenn Sie die Peers eines Knotens kontrollieren, steuern Sie dessen Wahrnehmung des Netzwerks. Ethan Heilman und seine Mitarbeiter präsentierten auf der USENIX 2015 einen der ersten praktischen Eclipse-Angriffe auf Bitcoin [6]und im Erebus-Angriffspapier aus dem Jahr 2018 wurde ein „heimlicher“ Eclipse-Angriff über ein böswilliges autonomes System (AS) beschrieben. [7].
Diese Angriffe nutzen größtenteils Schwächen in der Art und Weise aus, wie die Netzwerke des Internets untereinander kommunizieren, etwa in der Routing-Topologie der AS oder über ein Protokoll namens Border Gateway Protocol (BGP). Zwar gibt es laufende Initiativen zur Sicherung des BGP-Protokolls – BGPsec, RPKI –, aber beide weisen wohlbekannte Einschränkungen auf und lassen die Verantwortlichen des Internets nach stärkeren Lösungen sehnen. Bis dahin wird das Internet der Wilde Westen bleiben.
Eine aktuelle Analyse von cedarctic bei Chaincode Labs ergab, dass Bitcoin-Knoten in nur 4551 ASs untergebracht sind, einem relativ kleinen Teilbereich der Netzwerke, aus denen das Internet besteht. Sie beschreiben eine Reihe von Angriffen, die zu Eclipse-Angriffen führen können, indem sie den Upstream-AS gefährden, in dem Knoten betrieben werden [8]. Die geringe Verteilung der Knoten unter den ASs und die spezifischen Beziehungen zwischen diesen ASs schaffen einen einzigartigen Angriffsvektor. Zwar gibt es Abhilfemaßnahmen, es ist jedoch unklar, ob dieser Angriffsvektor von Bitcoin-Benutzern oder ihren Gegnern zuvor gut verstanden wurde.
Jeder Angriff, der auf der Kompromittierung eines oder mehrerer ASs beruht, erfordert Ressourcen, Koordination und Fähigkeiten. Obwohl kein erfolgreicher Angriff dieser Art auf einen Bitcoin-Knoten gemeldet wurde, wurden solche Angriffe erfolgreich gegen Miner durchgeführt [9]Geldbörsen [10]Plattformen tauschen [11]und Brücken [12]. Wir werden das Internet zwar nicht reparieren, aber wir können Knoten mit den Werkzeugen ausrüsten, die sie in dieser kontroversen Umgebung benötigen.
Netzwerk-Waffenkammer
Im Folgenden sind einige Features und Funktionalitäten aufgeführt, die Bitcoin Core entwickelt oder deren Unterstützung integriert wurde, um Benutzer gegen Angriffe auf Netzwerkebene zu wappnen:
TOR (der Zwiebel-Router) ist das älteste datenschutzorientierte Overlay-Netzwerk, das in Bitcoin Core integriert ist. Es erstellt Sprünge zwischen einem zufälligen Netzwerk von Peers, um den Datenverkehr zu verschleiern.
v2-Transport [13] verschlüsselt Verbindungen zwischen Peers und verbirgt den Datenverkehr vor Schnüfflern und Zensoren. Ziel ist es, passive Netzwerkbeobachter daran zu hindern, den Inhalt Ihrer Kommunikation mit anderen Knoten auszuspionieren.
I2P (das unsichtbare Internetprojekt). [14]) ist eine optionale Funktion von Core, die eine zusätzliche, private, verschlüsselte Ebene für die eigenen Verbindungen ermöglicht. Es handelt sich um ein Tor-ähnliches Anonymitätsnetzwerk, das auf Peers angewiesen ist, um den Datenverkehr zwischen Clients und Servern zu verschleiern.
ASmap [15] ist eine weitere optionale Funktion von Core, die eine Abschwächung des Erebus-Angriffs implementiert, die die Autoren bereits in dem Dokument beschrieben haben, und die für alle AS-basierten Angriffe gilt. Indem der Peering-Mechanismus von Bitcoin den AS erkennt, von dem die Peers kommen, um die Diversität unter den Peers sicherzustellen, wird ein Eclipse exponentiell schwieriger, da ein Angreifer viele ASs kompromittieren müsste, was höchst unwahrscheinlich und nahezu unmöglich ist, ohne entdeckt zu werden. Bitcoin Core unterstützt seit Core 20.0 das Übertragen einer Karte von IP-Netzwerken auf seinen AS (eine AS-Karte), und das Kartograf-Projekt ermöglicht es jedem Benutzer, eine solche ASmap einfach zu erstellen.
Angesichts der Tatsache, dass das Internet weiterhin anfällig für viele Angriffe sein dürfte, können wir unter anderem das Verhalten unserer Kollegen beobachten, um zu versuchen, bösartiges Verhalten zu erkennen. Das ist der Antrieb dahinter Peer-Beobachter-Projekt von 0xb10c [16]. Es bietet ein vollständiges eBPF-Tracepoint-basiertes Protokollierungssystem (eine Möglichkeit, die kleinsten Aktionen in einem Programm zu beobachten, das auf einem Betriebssystem ausgeführt wird), um die Aktivität eines Knotens, einschließlich des Peer-Verhaltens, zu beobachten. Außerdem erhalten Sie alles, was Sie zum Aufbau Ihrer eigenen Protokollierungssysteme benötigen.
Bitcoin muss robust sein
Die Sicherung der Fähigkeit, sich mit Peers zu verbinden und Nachrichten auszutauschen, ist eine Schlüsselkomponente dessen, was Bitcoin ausmacht.
Bitcoin operiert in einem mehrdimensionalen, konfrontativen Umfeld, in dem viele der Bedrohungen durch Einschränkungen der Internetarchitektur selbst entstehen. Wenn Bitcoin überleben und gedeihen soll, müssen seine Entwickler und Benutzer lernen, sich in diesen seltsamen Gewässern zurechtzufinden.
Der Preis offener Netzwerke ist ewige Wachsamkeit.
Verpassen Sie nicht Ihre Chance, es zu besitzen Das Kernproblem – mit Artikeln, die von vielen Kernentwicklern geschrieben wurden und die Projekte erläutern, an denen sie selbst arbeiten!
Bei diesem Stück handelt es sich um den Brief des Herausgebers, der in der neuesten Ausgabe vorgestellt wird Drucken Ausgabe des Bitcoin Magazine, The Core Issue. Wir teilen es hier als ersten Einblick in die Ideen, die in der gesamten Ausgabe untersucht wurden.
[0] https://web.mit.edu/gtmarx/www/connect.html
[1] https://satoshi.nakamotoinstitute.org/emails/cryptography/4/
[2] https://bitcoincore.org/en/2019/11/08/CVE-2017-18350/
[3] https://bitcoincore.org/en/2024/07/03/disclose-unbounded-banlist/
[4] https://delvingbitcoin.org/t/fingerprinting-nodes-via-addr-requests/1786/
[5] https://en.wikiquote.org/wiki/Ellen_Ullman
[6] https://www.usenix.org/system/files/conference/usenixsecurity15/sec15-paper-heilman.pdf
[7] https://ihchoi12.github.io/assets/tran2020stealthier.pdf
[8] https://delvingbitcoin.org/t/eclipsing-bitcoin-nodes-with-bgp-interception-attacks/1965
[9] https://www.theregister.com/2014/08/07/bgp_bitcoin_mining_heist/
[10] https://www.theverge.com/2018/4/24/17275982/myetherwallet-hack-bgp-dns-hijacking-stolen-ethereum
[11] https://medium.com/s2wblog/post-mortem-of-klayswap-incident-through-bgp-hijacking-en-3ed7e33de600
[12] www.coinbase.com/blog/celer-bridge-incident-analysis
[13] https://bitcoinops.org/en/topics/v2-p2p-transport/
[14] https://geti2p.net/en/
[15] https://asmap.org
[16] https://peer.observer
[13] https://github.com/asmap/kartograf

