Metoda de atac TunnelVision este propusă publicului, permițând, în cazul în care există acces la rețeaua locală sau control asupra rețelei wireless, redirecționarea traficului victimei către propriul său gazdă, ocolind VPN-ul (în loc să fie trimis prin VPN, traficul va fi trimis în mod deschis, fără tunelare către sistemul atacatorului). Problema afectează orice clienți VPN care nu utilizează spații de nume izolate ale sub-sistemului de rețea (network namespace) atunci când redirecționează traficul în tunel sau care nu stabilesc reguli de filtrare a pachetelor care interzic rutarea traficului VPN prin interfețele de rețea fizice existente.
Sunt esența atacului faptul că atacatorul poate lansa propriul său server DHCP și îl poate folosi pentru a transmite clientului informații pentru a modifica rutarea. În special, atacatorul poate profita de opțiunea 121 furnizată în protocolul DHCP (RFC-3442, adoptat în 2002), destinat transmiterii informațiilor despre rutele statice, pentru a efectua modificări în tabela de rutare a mașinii victimei și a direcționa traficul ocolind VPN. Redirecționarea se realizează prin stabilirea unei serii de rute pentru subrețele cu prefixul /1, care au prioritate mai mare decât ruta implicită cu prefixul /0 (0.0.0.0/0); astfel, traficul, în loc să fie direcționat prin interfața de rețea virtuală pentru VPN, va fi direcționat prin interfața de rețea fizică către gazda atacatorului în rețeaua locală.
Atacul poate fi realizat pe orice sistem de operare care suportă opțiunea 121 a DHCP, inclusiv Linux, Windows, iOS și macOS, indiferent de protocolul VPN utilizat (Wireguard, OpenVPN, IPsec) și setul de criptare. Platforma Android nu este vulnerabilă la atac, deoarece nu prelucrează opțiunea 121 în DHCP. Totuși, atacul permite accesul la trafic, dar nu oferă posibilitatea de a interveni în conexiuni și de a determina conținutul transmis prin protocoale de aplicație securizate, cum ar fi TLS și SSH; de exemplu, atacatorul nu poate determina conținutul cererilor HTTPS, dar poate înțelege către ce servere sunt trimise.
Pentru a proteja împotriva atacurilor, este posibil să interzicem, la nivelul filtrului de pachete, trimiterea pachetelor adresate interfeței VPN prin alte interfețe de rețea; să blocăm pachetele DHCP cu opțiunea 121; să utilizăm VPN într-o mașină virtuală separată (sau container), izolată de rețeaua externă, sau să aplicăm moduri speciale de configurare a tunelurilor folosing spațiile de nume din Linux (network namespace). Pentru experimente privind atacurile, a fost publicat un set de scripturi.

Se poate observa că ideea de modificare locală a rutării nu este nouă și a fost utilizată anterior în atacuri menite să înlocuiească serverul DNS. Într-un atac similar, TunnelCrack, unde redirecționarea traficului se făcea prin înlocuirea gateway-ului implicit, problema afecta toate clienții VPN verificați pentru iOS, 87,5% din clienții VPN pentru macOS, 66,7% pentru Windows, 35,7% pentru Linux și 21,4% pentru Android. În contextul VPN și DHCP, metoda a fost menționată anterior, de exemplu, fiind dedicat unul dintre articolele de la conferința USENIX 2023 de anul trecut (cercetarea a arătat că 64,6% dintre cei 195 de clienți VPN testați erau vulnerabili la atac).
Pentru substituirea rutelor, anterior s-a propus utilizarea unui USB special conceput, care simulează funcționarea unui adaptor de rețea, care, la conectarea la un computer prin DHCP, se declară a fi gateway. În plus, în cazul în care există control asupra gateway-ului (de exemplu, prin conectarea victimei la o rețea wireless controlată de atacator), a fost dezvoltată o tehnică de substituire a pachetelor în tunel, percepute în contextul interfeței de rețea VPN.
Fluxurile de date atunci când se utilizează VPN:

Fluxurile de date după realizarea atacului:

Sursa: opennet.ro
