Eine Gruppe von Forschern aus kanadischen und amerikanischen Universitäten hat die Port Shadow-Angriffs-Technik entwickelt, die es durch Manipulation der Adressübersetzungstabellen auf der Seite des VPN-Servers ermöglicht, die Antwort auf eine Anfrage an einen anderen Benutzer zu senden, der mit demselben VPN-Server verbunden ist. Diese Methode kann für den Abfang oder die Umleitung von verschlüsseltem Datenverkehr, die Durchführung von Port-Scans und die De-anonymisierung von VPN-Nutzern verwendet werden. Ein Beispiel zeigt, wie man die Methode verwenden kann, um DNS-Anfragen von Nutzern, die über den VPN-Server arbeiten, auf einen Angreifer-Host umzuleiten, zu dem der Angreifer als Client eine Verbindung herstellen kann.
Für die Durchführung des Angriffs muss der Angreifer die Möglichkeit haben, sich mit demselben VPN-Server wie das Opfer zu verbinden, was beispielsweise beim Einsatz typischer VPN-Anbieter und öffentlicher VPN-Dienste, die allen Interessierten Zugang gewähren, möglich ist. Die Schwachstelle betrifft VPN-Server, die Adressübersetzung (NAT) verwenden, um den Zugriff von Clients auf externe Ressourcen zu organisieren, wobei dieselbe IP-Adresse für den Empfang von Datenverkehr von Clients und das Senden von Anfragen an externe Websites verwendet werden muss. Server Die Angriffsgrundlage besteht darin, dass der Angreifer, der mit demselben VPN-Server verbunden ist und dasselbe NAT verwendet, durch den Versand speziell formatierter Anfragen die Inhalte der Adressübersetzungstabellen verzerren kann, was dazu führen wird, dass Pakete, die an einen Benutzer adressiert sind, an einen anderen Benutzer gesendet werden. In den Adressübersetzungstabellen wird die Information darüber, mit welcher internen IP-Adresse die gesendete Anfrage verknüpft ist, basierend auf der Nummer des verwendeten Ausgangsnetzwerkports bestimmt. Der Angreifer kann durch den Versand bestimmter SYN- und ACK-Pakete und gleichzeitiger Manipulation sowohl seitens der Clientverbindung zum VPN-Server als auch seitens des von ihm kontrollierten externen Angreiferserver eine Kollision in der NAT-Tabelle herbeiführen und einen Eintrag mit derselben Ausgangsportnummer hinzufügen, der jedoch mit seiner lokalen Adresse verknüpft ist, was dazu führen wird, dass die Antworten auf fremde Anfragen an die Adresse des Angreifers zurückgeschickt werden.
Die Grundlage des Angriffs besteht darin, dass durch den Versand speziell gestalteter Anfragen der Angreifer, der mit demselben VPN-Server und demselben NAT verbunden ist, die Inhalte der Adressübersetzungstabellen manipulieren kann, was dazu führen kann, dass Pakete, die an einen Benutzer gerichtet sind, an einen anderen Benutzer gesendet werden. In den Adressübersetzungstabellen wird die Information, mit welcher internen IP-Adresse die gesendete Anfrage verknüpft ist, basierend auf der Nummer des verwendeten Ausgangsportes ermittelt. Der Angreifer kann durch das Senden bestimmter SYN- und ACK-Pakete und durch gleichzeitige Manipulation des Clientanschlusses zum VPN-Server sowie des von ihm kontrollierten externen Servers eine Kollision in der NAT-Tabelle bewirken und einen Eintrag mit derselben Ausgangsportnummer, jedoch verbunden mit seiner eigenen Lokaladresse, hinzufügen, was dazu führen kann, dass Antworten auf Anfragen anderer Nutzer an die Adresse des Angreifers zurückgeschickt werden.

Im Rahmen der Untersuchung wurden die Adressübersetzungssysteme Linux und FreeBSD in Kombination mit den VPNs OpenVPN, OpenConnect und WireGuard getestet. Die Plattform FreeBSD war nicht anfällig für Angriffsverfahren zur Umleitung von Anfragen, die von anderen Benutzern ausgehen, die mit demselben VPN verbunden sind. Die Substitution in den NAT-Tabellen konnte nur während des ATIP-Angriffs (Adjacent-to-In-Path) durchgeführt werden, bei dem der Angreifer in den Datenverkehr zwischen dem Benutzer und dem VPN-Server eingreifen kann (beispielsweise wenn der Benutzer sich mit einem vom Angreifer kontrollierten WLAN-Netz verbindet) oder zwischen dem VPN-Server und der Zielwebseite. Dabei war auch NAT von FreeBSD betroffen, was es ermöglichte, den Fakt der Verbindung des Benutzers zu einer bestimmten Webseite zu bestimmen (Connection Inference).
Was Linux betrifft, so war das Netfilter-Subsystem anfällig für Angriffe, die eine Substitution von Einträgen in der Adressübersetzungstabelle ermöglichen, um eingehende Pakete an einen anderen Benutzer umzuleiten, die Übertragung von Paketen außerhalb des verschlüsselten VPN-Kanals (Decapsulation) zu erreichen oder die offenen Netzwerkports auf der Clientseite zu identifizieren.

Um Angriffe zu blockieren, wird VPN-Anbietern empfohlen, angemessene Methoden zur Randomisierung der Quellportnummern in NAT zu verwenden, die Anzahl der zulässigen gleichzeitigen Verbindungen zum VPN-Server von einem Benutzer zu begrenzen und auch die Möglichkeit zu blockieren, dass der Client den Netzwerkport auswählt, der die Anfragen auf der Seite des VPN-Servers entgegennimmt.
Laut einem Vertreter der Proton AG betrifft der Angriff keine VPN-Dienste, bei denen separate IP-Adressen für eingehende und ausgehende Anfragen verwendet werden. Außerdem gibt es Zweifel an der Möglichkeit, den Angriff gegen echte VPN-Dienste anzuwenden, da ein erfolgreicher Angriff bisher nur in Labortests demonstriert wurde und bestimmte Bedingungen auf der Seite des VPN-Servers und des angegriffenen Clients erforderlich sind. Zudem könnte der Angriff nur für Manipulationen mit unverschlüsselten Anfragen, wie dem Zugriff auf DNS, nützlich sein, während die Verwendung von TLS und HTTPS auf Anwendungsebene die Umleitung des Datenverkehrs nutzlos macht.
Manipulation von Adressübersetzungstabellen für Angriffe ist nicht nur auf VPNs anwendbar, sondern auch auf drahtlose Netzwerke, in denen zur Verbindung von Benutzern mit externen Ressourcen am Access Point NAT eingesetzt wird. Im vergangenen Monat wurden die Ergebnisse einer Studie veröffentlicht, die die Möglichkeit ähnlicher Angriffe zum Abfangen von TCP-Verbindungen anderer Benutzer in drahtlosen Netzwerken untersuchten. Die Angriffsmethode erwies sich als anwendbar auf 24 von 33 getesteten drahtlosen Access Points.

Der für Wi-Fi vorgeschlagene Angriff stellte sich als deutlich einfacher heraus als die zuvor erwähnte Methode für VPNs, da viele Access Points aufgrund von Optimierungen die Korrektheit der Sequenznummern in TCP-Paketen nicht überprüfen. Letztendlich war es für den Angriff ausreichend, ein gefälschtes RST-Paket zu senden, um den Eintrag in der Adressübersetzungstabelle zu löschen, und dann eine Antwort an den Host des Angreifers zu lenken, um die erforderlichen Sequenz- (SEQ) und Bestätigungsnummern (ACK) für das Abfangen der TCP-Verbindung zu bestimmen.


Quelle: opennet.ru
