Non è mai bene fidarsi ciecamente di uno strumento informatico, e questo vale anche per le VPN, quei servizi che vengono pubblicizzati per rendere la nostra navigazione Internet privata e sicura (sapete cosa sia e a cosa serva una VPN?).
È quanto emerge da una ricerca, che ha scoperto come un malintenzionato potrebbe eventualmente "leggere" il nostro traffico Internet instradato in una VPN violando il cosiddetto "tunnel" creato per proteggerlo.
Come funziona l'attacco
Le VPN funzionano instradando il nostro traffico Internet, in entrata e in uscita verso un server tramite un tunnel crittografato. Il traffico poi uscirà da quel server e arriverà sul sito che vogliamo raggiungere, proteggendo la nostra identità, i dati in esso contenuti e il nostro indirizzo IP.
Le applicazioni sono diverse: dalla protezione quando si utilizza una rete non sicura (il Wi-Fi di un aeroporto o di un bar), alla necessità di proteggersi da enti governativi che spiano le nostre comunicazioni, alla volontà di superare certe restrizioni locali.
I ricercatori di sicurezza di Leviathan hanno però scoperto che tramite la tecnica TunnelVision un malintenzionato può instradare il traffico, leggendolo e modificandolo, senza intaccare la connessione sia alla VPN che a Internet. In pratica la vittima non si accorgerebbe di niente.
Potete leggere i dettagli nell'articolo pubblicato dai ricercatori, ma TunnelVision si basa su un'impostazione nota come Option 121 e funziona manipolando il server DHCP che alloca gli indirizzi IP ai dispositivi che tentano di connettersi alla rete locale.
L'opzione 121 consente al server DHCP di ignorare le regole di routing predefinite che inviano traffico VPN attraverso un indirizzo IP locale che avvia il tunnel crittografato. Utilizzando l'opzione 121 per instradare il traffico VPN attraverso il server DHCP, l'attacco devia i dati al server DHCP stesso.
In pratica, non viene rotto il protocollo protetto crittograficamente della VPN, e la VPN è ancora pienamente funzionale. Un utente malintenzionato sta invece costringendo un utente bersaglio a non usare il suo tunnel VPN.
La tecnica, che potete vedere in esecuzione nel video qui sotto, non sfrutta una vera e propria vulnerabilità. In pratica i ricercatori insistono sul fatto che si tratta di una funzionalità del DHCP spiegata poco chiaramente, che consente loro di instradare il traffico - non crittografato - verso un server DHCP a scelta. Non solo, ma anche l'indirizzo IP dell'utente sarà visibile.
L'attacco può essere effettuato in modo più efficace da una persona che ha il controllo amministrativo sulla rete a cui si sta connettendo il bersaglio. In questo scenario, l'attaccante configura il server DHCP per utilizzare l'opzione 121. Ma anche le persone che si connettono alla rete come utenti non privilegiati possono eseguire l'attacco configurando il proprio server DHCP.
Tutte le VPN sono virtualmente vulnerabili
Stando a quanto riportato, questa tecnica è teoricamente possibile già dal 2002 e potrebbe essere già stata scoperta e potenzialmente utilizzata.
Nei test, i ricercatori hanno scoperto che le VPN che si basano esclusivamente su regole di routing per proteggere il traffico dell'host sono vulnerabili. Anche chi ospita i propri server VPN (ad esempio, gli amministratori di sistema) e non stanno rafforzando le loro configurazioni client VPN sarà probabilmente vulnerabile.
I ricercatori hanno osservato una mitigazione del problema da parte di alcuni provider VPN che riducono il traffico verso interfacce non VPN tramite regole firewall. È possibile che ci siano altri metodi che i ricercatori non hanno incontrato durante i test per mitigare o risolvere questo problema.
Inoltre la forza dell'algoritmo di crittografia utilizzato da una VPN non fa alcuna differenza. L'effetto di TunnelVision è indipendente dal protocollo VPN sottostante (ad esempio, WireGuard, OpenVPN o IPsec) perché riconfigura lo stack di rete del sistema operativo su cui si basa la VPN.
Come proteggersi
Purtroppo non è facile proteggersi. Il problema è stato riscontrato su qualsiasi sistema operativo che implementa un client DHCP secondo le sue specifiche RFC e presenta il supporto per l'opzione 121. Questo include Windows, Linux, iOS e macOS.
Curiosamente, non affligge Android, in quanto è l'unico sistema operativo che non implementa l'opzione 121.
Su Linux, le app utilizzano un'impostazione che riduce al minimo gli effetti, ma anche allora TunnelVision può essere utilizzato per sfruttare un canale laterale che può essere utilizzato per de-anonimizzare il traffico di destinazione ed eseguire attacchi denial-of-service mirati.
Anche i firewall di rete possono essere configurati per negare il traffico in entrata e in uscita da e verso l'interfaccia fisica, ma questo rimedio è inefficace in quanto un utente VPN che si connette a una rete non attendibile non ha la capacità di controllare il firewall e apre lo stesso canale laterale presente con la mitigazione di Linux.
Le correzioni più efficaci sono eseguire la VPN all'interno di una macchina virtuale la cui scheda di rete non è in modalità bridge o collegare la VPN a Internet attraverso la rete Wi-Fi di un dispositivo cellulare. Richiedendo una password, un utente malintenzionato non dovrebbe avere accesso infatti alla rete locale.
TunnelVision non è una vulnerabilità: è cosi che VPN e DHCP funzionano
I ricercatori insistono sul fatto che TunnelVision non si basa su una vulnerabilità, ma, dal loro punto di vista, è il modo in cui DHCP, le tabelle di routing e le VPN sono state pensate.
Il problema è che TunnelVision diventa una vulnerabilità quando un fornitore VPN assicura che il proprio prodotto protegge un cliente da un utente malintenzionato su una rete non attendibile.
Secondo gli autori della ricerca, le VPN non sono state progettate per mitigare gli attacchi LAN sulla rete fisica.