Das TunnelVision-Angriffsverfahren wird der Öffentlichkeit vorgestellt. Es ermöglicht, dass, wenn Zugriff auf ein lokales Netzwerk oder Kontrolle über ein drahtloses Netzwerk besteht, der Datenverkehr des Opfers umgangen von einem VPN auf einen eigenen Host umgeleitet werden kann (anstatt über das VPN gesendet zu werden, wird der Datenverkehr unverschlüsselt und ohne Tunnelung an das System des Angreifers gesendet). Alle VPN-Clients, die keine isolierten Netzwerknamensräume (network namespace) bei der Weiterleitung des Datenverkehrs in den Tunnel verwenden oder keine Regeln für die Paketfilterung einrichten, die die Routen des VPN-Datenverkehrs über vorhandene physische Netzwerkschnittstellen verbieten, sind anfällig für dieses Problem.
Der Kern des Angriffs besteht darin, dass der Angreifer seinen eigenen DHCP-Server starten und diesen verwenden kann, um dem Client Informationen zur Änderung der Routing-Informationen zu übermitteln. Insbesondere kann der Angreifer die im DHCP-Protokoll bereitgestellte Option 121 (RFC-3442, 2002 angenommen) nutzen, die dazu gedacht ist, Informationen über statische Routen zu übermitteln, um Änderungen in der Routing-Tabelle des Opfers vorzunehmen und den Datenverkehr umzuleiten. VPNDie Umleitung erfolgt durch das Einrichten einer Reihe von Routen für Subnetze mit dem Präfix \/1, die eine höhere Priorität haben als die standardmäßig verwendete Route mit dem Präfix \/0 (0.0.0.0\/0). Entsprechend wird der Datenverkehr, anstatt über die für die VPN-Virtual-Network-Schnittstelle festgelegte Route, über die physische Netzwerkschnittstelle auf den Host des Angreifers im lokalen Netzwerk geleitet.
Der Angriff kann auf jedem Betriebssystem durchgeführt werden, das die DHCP-Option 121 unterstützt, einschließlich Linux, Windows, iOS und macOS, unabhängig vom verwendeten VPN-Protokoll (Wireguard, OpenVPN, IPsec) und Satz von Chiffren. Die Android-Plattform ist von diesem Angriff nicht betroffen, da sie die Option 121 im DHCP nicht verarbeitet. Dennoch ermöglicht der Angriff den Zugriff auf den Datenverkehr, bietet jedoch keine Möglichkeit, in Verbindungen einzudringen und den Inhalt zu identifizieren, der über geschützte Anwendungsprotokolle wie TLS und SSH übertragen wird, beispielsweise kann der Angreifer den Inhalt von HTTPS-Anfragen nicht ermitteln, aber verstehen, an welche Server sie gesendet werden.
Um sich gegen Angriffe zu schützen, kann man auf der Ebene der Paketfilter das Senden von Paketen, die an die VPN-Schnittstelle adressiert sind, über andere Netzwerkschnittstellen verbieten; DHCP-Pakete mit der Option 121 blockieren; VPN innerhalb einer separaten virtuellen Maschine (oder eines Containers) verwenden, die von einem externen Netzwerk isoliert ist, oder spezielle Tunnelkonfigurationsmodi nutzen, die Namensräume in Linux verwenden (Network Namespace). Ein Skriptset wurde veröffentlicht, um Experimente mit Angriffen durchzuführen.

Es ist erwähnenswert, dass die Idee der lokalen Routenänderung nicht neu ist und zuvor häufig in Angriffen verwendet wurde, die darauf abzielten, den DNS-Server zu ersetzen. Bei einem ähnlichen Angriff, TunnelCrack, bei dem der Datenverkehr durch Ersetzen des Standard-Gateways umgeleitet wurde, war das Problem für alle getesteten VPN-Clients für iOS relevant, für 87,5% der VPN-Clients für macOS, 66,7% für Windows, 35,7% für Linux und 21,4% für Android. Im Kontext von VPN und DHCP wurde diese Methode auch früher erwähnt, zum Beispiel war dies einem der Vorträge auf der letztjährigen Konferenz USENIX 2023 gewidmet (die Studie zeigte, dass 64,6% der 195 getesteten VPN-Clients anfällig für Angriffe sind).
Zur Einfügung von Routen wurde früher auch vorgeschlagen, einen speziell gestalteten USB-Stick zu verwenden, der die Funktionalität eines Netzwerkadapters simuliert und sich beim Anschluss an einen Computer über DHCP als Gateway ausgibt. Darüber hinaus wurde, wenn Kontrolle über das Gateway besteht (zum Beispiel wenn das Opfer mit einem vom Angreifer kontrollierten WLAN-Netzwerk verbunden ist), eine Technik zur Manipulation von Paketen im Tunnel entwickelt, die im Kontext der VPN-Netzwerkschnittstelle wahrgenommen werden.
Datenströme bei Verwendung von VPN:

Datenströme nach dem Angriff:

Quelle: opennet.ru
