Avalikkusele pakutakse rünnakumeetodit TunnelVision, mis võimaldab, kui on juurdepääs kohalikule võrgule või kontroll nende traadita võrkude üle, suunata sihtmärgi liiklus ründaja hosti, vältides VPN-i (liiklus saadetakse avatud kujul, mitte tunneli kaudu ründaja süsteemi). Probleem on seotud kõigi VPN-klientidega, mis ei kasuta võrgu alamruumide isoleeritud nimesid (network namespace) liikluse tunnelisse suunamisel või ei määra tunnelit seadistades paketifiltreerimise reegleid, mis keelavad VPN-liikluse suunamise olemasolevate füüsiliste võrguliideste kaudu.
Rünnaku sisuks on see, et ründaja saab käivitada oma DHCP-serveri ja kasutada seda teabe edastamiseks kliendile, et muuta marsruutimist. Eriti võib ründaja kasutada DHCP protokollis esitatud valikut 121 (RFC-3442, vastu võetud 2002. aastal), mis on mõeldud staatiliste marsruutide teabe edastamiseks, et teha muudatusi sihtmärgi masina marsruuditabelis ja suunata liiklust mööda. VPN. Suunamine toimub alamvõrkudele esitatud marsruutide seeriaga, millel on prefiks /1, mis omavad kõrgemat prioriteeti kui vaikimisi kasutatav marsruut prefiksiga /0 (0.0.0.0/0), seega liiklus suunatakse VPN-i virtuaalse võrguliidese asemel füüsilise võrguliidese kaudu ründaja hosti kohalikus võrgus.
Rünnakut saab teostada kõikides operatsioonisüsteemides, mis toetavad DHCP valikut 121, sealhulgas Linux, Windows, iOS ja macOS, sõltumata kasutatavast VPN-protokollist (Wireguard, OpenVPN, IPsec) ja krüptimise komplektist. Androidi platvorm ei ole rünnakule vastuvõtlik, kuna see ei töötle DHCP valikut 121. Sellegipoolest võimaldab rünnak pääseda ligi liiklusele, kuid ei võimalda sekkuda ühendustesse ja määrata sisu, mis edastatakse kaitstud rakendusprotokollide, nagu TLS ja SSH, kaudu; näiteks ei saa ründaja määrata HTTPS-päringute sisu, kuid ta suudab mõista, millistele serveritele need saadetakse.
Rünnaku eest kaitsmiseks saab keelata paketifiltri tasandil VPN-liidesele adresseeritud paketid kaudu teiste võrguliideste saatmise; blokeerida DHCP-paketid valikuga 121; kasutada VPN-i eraldi virtuaalmasinas (või konteineris), mis on isoleeritud välistest võrkudest, või rakendada spetsiaalseid tunneli seadistamise režiime, mis kasutavad Linuxi nimesid (network namespace). Rünnaku katsetamiseks on avaldatud komplekt skripte.

On märkimisväärne, et ideed lokaalsete marsruutide muutmiseks ei ole uus ja seda on varem tavaliselt kasutatud rünnakutes, mis on suunatud DNS-serveri täiendamisele. Sarnases rünnakus TunnelCrack, kus liikluse suunamine toimus vaikimisi marsruudi vahetamise kaudu, oli probleem seotud kõigi testitud VPN-klientidega iOS-i jaoks, 87,5% VPN-klientidest macOS-i jaoks, 66,7% Windowsi jaoks, 35,7% Linuxi jaoks ja 21,4% Androidi jaoks. VPN-i ja DHCP kontekstis on meetodit mainitud ka varem, näiteks oli sellele pühendatud üks ettekandeid möödunud aasta USENIX 2023 konverentsil (uurimus näitas, et 64,6% 195 testitud VPN-klientidest on rünnakule vastuvõtlikud).
Marsruutide asendamiseks on varem pakutud ka spetsiaalselt kujundatud USB-mälupulka, mis simuleerib võrgukaardi tööd, teavitades end DHCP kaudu kui marsruudi andjat, kui see on arvutiga ühendatud. Lisaks, kui on kontroll marsruudi üle (näiteks kui sihtmärk on ühendatud ründaja kontrollitava traadita võrguga), on välja töötatud pakettide asendamise tehnika tunnelisest, mis on vastu võetud VPN-i võrguliideste kontekstis.
Andmevood VPN-i kasutamisel:

Andmevood pärast rünnaku sooritamist:

Allikas: opennet.ru
