Kiekvienos programos kill switch ar viso įrenginio užraktas: kas keičiasi
Spręskite pagal saugomą aibę, o ne pagal etiketę: kas sustoja pašalintoms programoms, foniniams pagalbininkams ir naujiems ryšiams, ir kaip išbandyti kiekvieną atvejį.
Kiekvienos programos kill switch skamba kaip atsargus pasirinkimas: kai tunelis krenta, tinklą praranda tik darbo klientas, o visa kita veikia toliau. Tada kas nors pastebi, kad asmeninė naršyklė vis tiek įkėlė puslapį, sinchronizavimo pagalbininkas iš to paties paketo vis bandė dar kartą, o talpykloje saugomas vardas vis dar buvo sprendžiamas į adresą, kuris niekada nepalietė tunelio. Funkcijos etiketė ir ryšių aibė, kurią ji iš tikrųjų saugo, yra du skirtingi dalykai. Pirmiausia nustatykite saugomą aibę, nes būtent ji nusprendžia, ar sąžiningas aprašymas yra vykdymas pagal programą, ar viso įrenginio užraktas.
Pradėkite nuo aibės, o ne nuo etiketės
Kiekvienos programos politika saugo pasirinktas programas. Įrenginio užraktas nukreiptas į platesnę tinklo ribą, paprastai su dokumentuotomis išimtimis vietiniam spausdinimui, valdymo srautui ar captive portalams. Nė viena etiketė nėra išsami, kol negalite atsakyti į tris klausimus: kas nutinka pašalintoms programoms, kas nutinka pagalbininkams, kuriuos tos programos paleidžia, ir kas nutinka ryšiams, atidaromiems, kai apsauga nepasiekiama.
Užsirašykite šiuos atsakymus prieš liesdami bet kokį kliento nustatymą. Jei reikalavimas yra "šis darbo užmokesčio klientas niekada neturi kalbėtis su internetu už tunelio ribų, o mano naršyklė gali", aibė maža ir vykdymas pagal programą tinka. Jei reikalavimas yra "niekas šiame įrenginyje nepasiekia interneto be apsaugos, išskyrus atnaujinimo tarnybą", jokia kiekvienos programos politika to nesukurs, nes problemą sudaro programos, kurių nepavadinote.
Vykdymas pagal programą sutampa su identifikatoriais, o ne su programų pavadinimais
Android teikia kiekvienos programos VPN per paketus, o jo VpnService dokumentacija aprašo, kaip tai sąveikauja su nuolat įjungtu režimu ir blokavimu. iOS konfigūruoja kiekvienos programos VPN per valdymo profilį ir sutampa pagal programą arba domeną. Windows ir Linux visai neturi maršruto pagal procesą, todėl ta pati idėja aproksimuojama ugniasienės taisykle, apribota programa, arba taisykle, kuri atitinka savininką naudotoją.
Riba yra identifikatorius, o identifikatorius lengva apeiti. Programa, kuri perduoda URL sistemos naršyklei arba atidaro dokumentą peržiūros programoje, pereina į procesą, kurio jūsų politika niekada nepavadino. Nutraukimo kritimo metu parinktis taip pat nėra paketų filtras: ji užmuša jūsų sukonfigūruotą programą, o vaikinis procesas, eilės darbuotojas ar naršyklės skirtukas gali išlaikyti esamą lizdą gyvą.
Užraktas apima tai, ko kiekvienos programos politika negali matyti
Viso įrenginio užraktas atima pasirinkimą. Kiekvienas išeinantis paketas, nepriklausantis tuneliui, atmetamas, įskaitant srautą iš procesų, apie kuriuos jūsų programų politika niekada nežinojo. Android tai yra nuolat įjungtas VPN kartu su ryšių blokavimo nustatymu, o vykdymas vyksta sistemoje, o ne kliento lange. Darbalaukyje tai nuolatinė ugniasienės taisyklė arba numatytasis maršrutas į nepasiekiamus vartus.
Kaina ta, kad visa kita sustoja, todėl išimtys tampa dizaino dalimi, o ne vėlyvu apmąstymu. Vietiniai spausdintuvai, paslaugų aptikimas, prisijungimas prie captive portalų, valdymo agentai ir OS atnaujinimai kiekvienas reikalauja dokumentuotos skylės, nes kiekvienas yra kelias, kuris lieka atviras, kai tunelis neveikia. Užraktas yra tik tiek stiprus, kiek trumpiausias įrašas tame sąraše.
DNS, IPv6 ir foniniai pagalbininkai slepia nuotėkius
Tai, kad saugoma programa nesugeba išspręsti vardo, neįrodo, kad talpykloje saugomi atsakymai ar tiesioginis IP srautas yra blokuojami. Jei sprendiklis vis dar pasiekiamas už tunelio, vardas išsprendžiamas, o ryšys nepavyksta, kas atrodo kaip veikiantis kill switch ir nėra. Dar blogiau, talpykloje saugomas įrašas gali rodyti adresą, kurio tunelis neneša, todėl ryšys išeina tiesiogiai, o programa praneša apie VPN klaidą.
IPv6 reikia savo taisyklės kiekvienoje platformoje, kuri jį naudoja, nes v4 atmetimo taisyklė neapima v6 maršruto. Mobiliajame įrenginyje privataus DNS nustatymas gali perkelti sprendimą į šifruotą kanalą, kurio įrenginio politika netikrina. O foniniai pagalbininkai yra įprastas kaltininkas darbalaukyje: atnaujinimo ar sinchronizavimo procesas dėkle prasideda prieš VPN klientą ir palaiko savo ryšį, todėl niekada nemato pasikeitusio maršruto.
Išbandykite tris programas ir du perėjimus
| Test | What it proves |
|---|---|
| Included app, by name and by direct IP | the policy is applied, not just the resolver |
| Excluded app, same checks | the exclusion is intentional and documented |
| Helper or updater process | nothing inherited an older route |
| Tunnel drop, then Wi-Fi to cellular | the block survives the transition |
Kiekvieną eilutę paleiskite du kartus, vieną kartą su pagrindinio kompiuterio vardu ir vieną kartą su tiesioginiu adresu, ir dar kartą per IPv6, jei tinklas tai siūlo. Praėjimas reiškia, kad įtraukta programa sustojo, pašalinta elgėsi taip, kaip užrašėte, o pagalbininkas neišslinko. Užsirašykite tiesioginį elgesį, kurį nusprendėte priimtinu, kad kitas administratorius atskirtų tyčinę išimtį nuo gedimo.
Tada apibūdinkite rezultatą vienu sakiniu, kuris įvardija programas ir sąlygas, pavyzdžiui: darbo užmokesčio klientas neturi maršruto už tunelio ribų, naršyklė yra tiesioginė pagal dizainą, o visa kita sustoja, kai tunelis neveikia. Jei tą sakinį sunku parašyti, politika vis dar yra dvi tarpusavyje kovojančios politikos.