È stato recentemente rivelato che è stato scoperto un metodo che consente a un malintenzionato di forzare il traffico di un utente a uscire dal tunnel VPN sfruttando funzionalità integrate del protocollo DHCP.
Denominato "TunnelVision", questo nuovo metodo di attacco consente di reindirizzare il traffico della vittima attraverso l'host dell'attaccante (a condizione che quest'ultimo abbia accesso alla rete locale o controlli una rete wireless).
È importante notare che l'idea di modificare il routing locale non è nuova ed è stata comunemente utilizzata in attacchi progettati per falsificare i server DNS. Ad esempio, TunnelCrack, che reindirizzava il traffico attraverso un gateway predefinito sostitutivo, ha colpito tutti i client VPN iOS testati, così come le VPN per macOS, Windows, Linux e Android.
A proposito di TunnelVision
Si afferma che l'essenza di TunnelVision risiede nella possibilità per l'attaccante di avviare un proprio server DHCP e utilizzarlo per inviare informazioni al client al fine di modificarne il routing . Nello specifico, un attaccante può utilizzare l'opzione DHCP 121, progettata per trasmettere informazioni di routing statico , per modificare la tabella di routing sul computer della vittima e instradare il traffico senza passare attraverso la VPN.
Lo scopo di questa ricerca era testare questa tecnica rispetto ai moderni provider VPN per determinare la loro vulnerabilità e informare il pubblico in merito a questo problema. Questo è il motivo per cui abbiamo concordato con CISA di presentare un CVE quando lo riveleremo e abbiamo deciso di dare un nome alla vulnerabilità.
Il reindirizzamento si ottiene configurando una serie di route per le sottoreti con prefisso /1 , che hanno una priorità più alta rispetto alla route predefinita con prefisso /0. Di conseguenza, anziché utilizzare l'interfaccia di rete virtuale configurata per la VPN, il traffico verrà indirizzato attraverso l'interfaccia di rete fisica verso l'host dell'attaccante sulla rete locale.
Anziché passare attraverso la VPN, il traffico viene inviato in chiaro, senza tunnel, al sistema dell'attaccante. Questo problema riguarda qualsiasi client VPN che non utilizzi namespace di rete isolati per instradare il traffico verso il tunnel o che non imposti regole di filtraggio dei pacchetti che impediscano l'instradamento del traffico VPN attraverso le interfacce di rete fisiche esistenti.
TunnelVision può essere eseguito su qualsiasi sistema che supporti l'opzione DHCP 121 , inclusi Linux, Windows, iOS e macOS, a prescindere dal protocollo VPN utilizzato (Wireguard, OpenVPN, IPsec) e dalla suite di cifratura impiegata.
Si afferma che Android non sia vulnerabile a questo attacco perché non elabora l'opzione 121 nel DHCP . Sebbene l'attacco consenta l'accesso al traffico, non permette l'intercettazione delle connessioni o la determinazione del contenuto trasmesso tramite protocolli sicuri a livello applicativo, come TLS e SSH. Ad esempio, l'attaccante non può determinare il contenuto delle richieste inviate tramite HTTPS, ma può capire a quali server sono indirizzate.
Per proteggersi da un attacco, è possibile implementare diverse misure a livello di filtraggio dei pacchetti: impedire l'invio di pacchetti destinati all'interfaccia VPN attraverso altre interfacce di rete, bloccare i pacchetti DHCP con l'opzione 121, utilizzare una VPN all'interno di una macchina virtuale o di un container separato e isolato dalla rete esterna, oppure utilizzare modalità di configurazione del tunnel speciali che impiegano i namespace di rete di Linux.
Per falsificare le rotte , è stata sviluppata una chiavetta USB appositamente progettata che simula il funzionamento di una scheda di rete e, quando connessa a un computer tramite DHCP, si dichiara gateway. Inoltre, quando il gateway è sotto il controllo di un aggressore (ad esempio, quando una vittima si connette a una rete wireless controllata da un aggressore), è stata sviluppata una tecnica per iniettare nel tunnel pacchetti che vengono percepiti come provenienti dall'interfaccia di rete VPN. Sono stati inoltre pubblicati diversi script per sperimentare questi attacchi.
Infine, se siete interessati ad approfondire l'argomento , potete trovare maggiori dettagli al seguente link.