TunnelCrack prieš TunnelVision: ką iš tikrųjų sulaužo kiekvienas
TunnelCrack ir TunnelVision piktnaudžiauja skirtingomis maršrutizavimo išimtimis: peržiūrėkite vietinio tinklo išimtį, serverio maršrutą ir DHCP 121 parinktį kiekvienai kliento versijai.
Du tyrimų pavadinimai vartojami pakaitomis bet kuriam VPN srautui, kuris išeina iš tunelio, tačiau jų slypintys mechanizmai nėra vienodi. TunnelCrack aprašo dvi maršrutizavimo išimčių šeimas; TunnelVision aprašo maršrutą, kurį DHCP pateikia galiniam įrenginiui. Nė vienas nelaužo šifravimo, ir nė vienas nepasako, ką šiandien daro konkreti kliento versija. Penki patikrinimai atskiria mechanizmus nuo antraštės.
Pirmas žingsnis: įvardykite mechanizmą, kurį tikrinate
2023 metų rugpjūčio TunnelCrack atskleidimas aprašo dvi atakų šeimas. Vietinio tinklo atveju srautas, kurį klientas laiko priklausančiu vietiniam tinklui, gauna vietinės prieigos išimtį ir išeina iš tunelio. Serverio adreso atveju maršrutas, kurio klientui reikia pasiekti pačiam VPN serveriui, yra už tunelio ribų, ir priešininkas, valdantis tą adresą, gali pasinaudoti išimtimi.
TunnelVision yra atskira ataskaita apie beklases statinius maršrutus, kuriuos pateikia DHCP. Kenkėjiškas DHCP serveris gali duoti galiniam įrenginiui maršrutus, keičiančius srauto kelią, įskaitant kelią link VPN serverio. Ataskaita pripažįsta ankstesnius darbus apie susijusius maršrutizavimo efektus, o tai primena, kad pagrindinis mechanizmas senesnis už pavadinimą.
| Case | Exception it abuses |
|---|---|
| TunnelCrack local network | Traffic classified as local bypasses the tunnel |
| TunnelCrack server address | The route to the VPN server sits outside the tunnel |
| TunnelVision | DHCP option 121 installs routes that redirect traffic |
Laikykite pavadinimus pririštus prie jų mechanizmų. Taikyti taisymą vienam todėl, kad kitas yra naujienose, yra būdas, kuriuo peržiūra sukuria judėjimą be aprėpties.
Antras žingsnis: pažiūrėkite į vietinės prieigos išimtį
Dauguma klientų išskiria vietinio tinklo srautą, kad spausdintuvai, ekrano transliavimas ir failų bendrinimas veiktų, kol tunelis įjungtas. Ta išimtis yra politikos sprendimas su saugumo kaina: priešininkas tame pačiame tinkle gali prisistatyti vietiniu hostu, o srautas, kuris jį pasiekia, niekada nebuvo patekęs į tunelį.
Paklauskite, ar diegiamam profiliui apskritai reikia išimties. Nuotolinė darbo jėga, kuri niekada nenaudoja vietinio aptikimo, dažnai gali ją išjungti, o likusias vietines paslaugas galima pasiekti dokumentuotu keliu. Kai išimtis būtina, nurodykite, kuriuos tikslus ji apima, o ne apibūdinkite ją kaip vietinį srautą.
Patikrinimas yra konfigūracijos klausimas, o ne paketų fiksavimas. Perskaitykite profilio nustatymą ir kliento dokumentaciją tai versijai, kurią diegiate, nes numatytoji reikšmė skiriasi tarp produktų ir tarp to paties produkto versijų. Užrašykite atsakymą šalia profilio, kad kitas tikrintojas neturėtų jo išvesti iš elgesio. Išimtis, kurios niekas nedokumentavo, yra išimtis, kurios niekas neperžiūri.
Trečias žingsnis: pažiūrėkite, kaip išmokstamas serverio adresas
Klientas turi pasiekti VPN serverį iki bet kokio tunelio atsiradimo, todėl tas tikslas pagal projektą maršrutizuojamas už tunelio. Jei adresas išmokstamas iš vardo, sprendimo žingsnis yra pasitikėjimo kelio dalis, ir priešininkas, galintis atsakyti į tą užklausą, gali nukreipti klientą į savo valdomą hostą.
Adreso prisegimas, patikrinto sertifikato su teisingu vardu naudojimas ir atsisakymas grįžti prie nepatikrinto serverio visi mažina poveikį. Nė vienas jų nepanaikina poreikio pasiekti serverį už tunelio; jie keičia, kas gali atsakyti už tą adresą.
resolvectl query vpn.lab.example
ip route get 198.51.100.24
ip rule show
Maršruto paieška parodo sąsają, kurią klientas naudotų serverio adresui, ir tai yra išimtis konkrečia forma. Jei ta paieška grąžina tunelio sąsają, klientas apskritai negali sukurti tunelio, todėl išorinis maršrutas yra tikėtinas, o klausimas tik kaip parenkamas jo tikslas.
Ketvirtas žingsnis: pažiūrėkite į DHCP pateiktus maršrutus
Beklasės statinės maršrutai leidžia DHCP serveriui platinti maršrutizavimo lentelės įrašus, ir galinis įrenginys paprastai juos priima nepaklausęs. Tinkle, kuriame priešininkas gali atsakyti į DHCP greičiau nei teisėtas serveris, tie įrašai gali peradresuoti srautą, kurį naudotojas mano esant tunelio viduje.
Palyginkite galinio įrenginio maršrutus su tais, kurių tikitės. Numatytaasis maršrutas ar platus prefiksas, rodantis į vietinį šliuzą, kol tunelis įjungtas, yra požymis, kurį verta tirti, ir jis matomas be jokio atakos srauto.
ip route show table all
ip route get 203.0.113.55
nmcli -g ipv4.ignore-auto-routes con show "Wired connection 1"
Paskutinis nustatymas yra valdymas galinio įrenginio pusėje, kurį daugelis klientų ir platformų pateikia kokia nors forma: ignoruoti tinklo pateiktus maršrutus. Automatinio maršrutų priėmimo išjungimas yra kompromisas, nes jis išjungia ir teisėtą skaidrų maršrutizavimą iš įmonės DHCP serverio, todėl spręskite pagal tinklo klasę, o ne globaliai.
Penktas žingsnis: atskirkite pranešimą nuo dabartinės versijos
Paskelbta ataka aprašo elgesį, stebėtą konkrečiose kliento versijose konkrečiu metu. Ji neįrodo, kad priešais esantis nešiojamas kompiuteris paveiktas, ir neįrodo, kad jis pataisytas. Abu teiginiai reikalauja tikrojo versijos numerio ir dabartinio tiekėjo pranešimo.
Užsirašykite kliento versiją, platformą, profilio nustatymus, valdančius aukščiau nurodytas išimtis, ir datą, kai tikrinote. Tas įrašas sensta sąžiningai, o užrašas, kad VPN buvo pataisytas dėl TunnelCrack, taip nesensta. Perskaitykite jį iš naujo kiekvieną kartą atnaujinus klientą, nes profilio numatytoji reikšmė gali pasikeisti po versija, kurios nelietėte.
Kai tikrai tikrinate, naudokite patvirtintą planą savo galiniam įrenginiui ir nekenksmingam tikslui. Atakos kartojimas prieš kitus naudotojus bendrame tinkle nėra testas, o partnerio patikros ar programos šifravimo išjungimas, kad stebėjimas būtų lengvesnis, pašalina apsaugą, kurią bandėte išmatuoti.
Galiausiai, laikykite programos lygio apsaugą vaizde. Maršrutizavimo išimtis gali atskleisti srautą, kurį tunelis būtų nešęs, ir programos TLS vis dar apsaugo tą srautą nuo galo iki galo. Du sluoksniai žlunga nepriklausomai, todėl prijungtas valdymo kanalas nėra įrodymas, kad kiekvienas srautas ėjo numatytu keliu.