Kill switch pre jednotlivé aplikácie znie ako opatrná voľba: keď tunel padne, sieť stratí len pracovný klient a všetko ostatné beží ďalej. Potom si niekto všimne, že osobný prehliadač napriek tomu načítal stránku, pomocník synchronizácie z toho istého balíka skúšal ďalej a kešované meno sa stále prekladalo na adresu, ktorá sa tunela nikdy nedotkla. Štítok na funkcii a množina pripojení, ktorú skutočne chráni, sú dve rôzne veci. Najprv určite chránenú množinu, pretože práve ona rozhoduje o tom, či je poctivým opisom vynucovanie pre jednotlivé aplikácie, alebo zámok celého zariadenia.

Začnite množinou, nie štítkom

Zásada pre jednotlivé aplikácie chráni vybrané aplikácie. Zámok zariadenia mieri na širšiu sieťovú hranicu, zvyčajne s dokumentovanými výnimkami pre miestnu tlač, správnu prevádzku alebo captive portály. Ani jeden štítok nie je úplný, kým neodpoviete na tri otázky: čo sa stane s vylúčenými aplikáciami, čo sa stane s pomocníkmi, ktoré tieto aplikácie spúšťajú, a čo sa stane so spojeniami otvorenými, kým ochrana nie je dostupná.

Napíšte tieto odpovede, skôr než sa dotknete akéhokoľvek nastavenia klienta. Ak je požiadavka "tento mzdový klient nesmie nikdy hovoriť s internetom mimo tunela a môj prehliadač smie", množina je malá a vynucovanie pre jednotlivé aplikácie sedí. Ak je požiadavka "nič na tomto zariadení sa nedostane na internet bez ochrany okrem aktualizačnej služby", žiadna zásada pre jednotlivé aplikácie to nevytvorí, pretože problémom sú aplikácie, ktoré ste nemenovali.

Vynucovanie pre jednotlivé aplikácie páruje identifikátory, nie názvy programov

Android sprístupňuje VPN pre jednotlivé aplikácie pomocou balíkov a jeho dokumentácia VpnService opisuje, ako to súvisí s režimom trvalého zapnutia a blokovaním. iOS nastavuje VPN pre jednotlivé aplikácie pomocou profilu správy a páruje podľa aplikácie alebo podľa domény. Windows a Linux nemajú trasu pre jednotlivý proces vôbec, takže rovnaká myšlienka sa približuje pravidlom firewallu obmedzeným na program alebo pravidlom, ktoré zodpovedá vlastníkovi používateľovi.

Hranicou je identifikátor a identifikátory sa dajú ľahko obísť. Aplikácia, ktorá odovzdá URL systémovému prehliadaču alebo otvorí dokument v prehliadači súborov, prejde do procesu, ktorý vaša zásada nikdy nemenovala. Voľba ukončenia pri páde tiež nie je paketový filter: zabije aplikáciu, ktorú ste nastavili, zatiaľ čo podriadený proces, pracovník frontu alebo karta prehliadača môžu udržať existujúci socket nažive.

Zámok pokrýva to, čo zásada pre jednotlivé aplikácie nevidí

Zámok celého zariadenia odstraňuje voľbu. Každý odchádzajúci paket, ktorý nepatrí tunelu, sa zahodí, vrátane prevádzky z procesov, o ktorých vaša zásada aplikácií nikdy nevedela. V Androide je to VPN s trvalým zapnutím v kombinácii s nastavením blokovania pripojení a vynucovanie prebieha v systéme, nie v okne klienta. Na počítači je to trvalé pravidlo firewallu alebo predvolená trasa smerujúca k nedostupnej bráne.

Cenou je, že všetko ostatné sa zastaví, takže výnimky sa stávajú súčasťou návrhu, nie dodatočným nápadom. Miestne tlačiarne, zisťovanie služieb, prihlasovanie na captive portály, správni agenti a aktualizácie OS potrebujú každý dokumentovanú dieru, pretože každý je cestou, ktorá zostáva otvorená, keď tunel nebeží. Zámok je len taký silný ako najkratšia položka v tom zozname.

DNS, IPv6 a pomocníci na pozadí skrývajú úniky

To, že chránená aplikácia nevie preložiť meno, nedokazuje, že kešované odpovede alebo priama IP prevádzka sú blokované. Ak je prekladač stále dostupný mimo tunela, meno sa preloží a spojenie zlyhá, čo vyzerá ako fungujúci kill switch a nie je. Horšie, kešovaný záznam môže ukazovať na adresu, ktorú tunel nenesie, takže spojenie vyjde priamo, zatiaľ čo aplikácia hlási chybu VPN.

IPv6 potrebuje vlastné pravidlo na každej platforme, ktorá ho prevádzkuje, pretože pravidlo zahadzovania pre v4 nepokrýva trasu v6. Na mobile môže nastavenie súkromného DNS presunúť preklad do šifrovaného kanála, ktorý zásada zariadenia nekontroluje. A pomocníci na pozadí sú obvyklý vinník na počítači: proces aktualizácií alebo synchronizácie v oznamovacej oblasti sa spustí skôr ako klient VPN a drží si vlastné spojenie, takže nikdy nevidí zmenenú trasu.

Otestujte tri aplikácie a dva prechody

TestWhat it proves
Included app, by name and by direct IPthe policy is applied, not just the resolver
Excluded app, same checksthe exclusion is intentional and documented
Helper or updater processnothing inherited an older route
Tunnel drop, then Wi-Fi to cellularthe block survives the transition

Spustite každý riadok dvakrát, raz s názvom hostiteľa a raz s doslovnou adresou, a ešte raz cez IPv6, ak to sieť ponúka. Úspech znamená, že zahrnutá aplikácia sa zastavila, vylúčená sa správala tak, ako ste zapísali, a pomocník nepreskĺzol. Zapíšte priame správanie, ktoré ste označili za prijateľné, aby ďalší správca rozoznal úmyselnú výnimku od poruchy.

Potom výsledok opíšte jednou vetou, ktorá pomenuje aplikácie a podmienky, napríklad: mzdový klient nemá trasu mimo tunela, prehliadač je priamo kvôli návrhu a všetko ostatné sa zastaví, keď tunel nebeží. Ak sa tá veta píše ťažko, zásada sú stále dve zásady, ktoré proti sebe bojujú.

Súvisiace články