Myten är att fail-closed är den säkra inställningen och fail-open den slarviga. Båda beskriver vad som händer med trafiken när tunneln är borta, och ingen av dem ändrar hur bra den tunneln krypterar. En fail-closed-policy med lång undantagslista kan läcka mer än en fail-open-policy på en enhet som aldrig lämnar kontorsnätet. Välj det utfall du kan förklara för personen som äger trafiken.

Etiketten beskriver ett utfall, inte en styrka

Vokabulären kommer från styrsystem: fail-open tillåter drift när en komponent fallerar, fail-closed nekar den. Tillämpat på en VPN är komponenten som fallerar tunneln, och frågan är om trafiken får fortsätta via en annan väg. Val av chiffer, nyckellängd och protokoll är separata beslut.

Förvirringen består eftersom en kill switch låter som en säkerhetsfunktion, och leverantörer marknadsför den som en sådan. Mekaniskt är den en routing- och brandväggsregel som blockerar trafik som tunneln skulle bära, implementerad i klienten, i operativsystemet eller på gatewayen. Vilket lager som helst upprätthåller den definierar också dess täckning, och en regel i ett lager täcker inte ett annat. En gatewayregel kan inte skydda en bärbar dator som redan flyttat till ett annat nätverk.

Hur varje utfall ser ut

Samma policy kan bete sig mycket olika beroende på vilket fel du stöter på, så jämför händelserna snarare än etiketterna.

EventFail-open resultFail-closed result
Tunnel drops while a transfer runsTransfer continues on the direct pathTransfer stalls until the tunnel returns
Client exits or crashesRules disappear with the processRules persist only if the OS owns them
Device boots before sign-inNormal network accessBlocked until the VPN connects
Captive portal neededPortal loads normallyPortal unreachable without an exception
IPv6 not carried by the tunnelIPv6 traffic leaks directlyLeaks too, unless the block covers IPv6

Den sista raden är den som fångar dem som antar att en kill switch är en enda strömbrytare. En regel skriven för IPv4-routingtabellen lämnar IPv6-standardrutten orörd, och applikationen kan gärna använda den.

Omfattningen avgör om det läcker

Fråga vad policyn täcker innan du frågar vilket läge det är. En regel per applikation skyddar en app och inget annat, en regel för hela enheten skyddar allt utom undantagen, och en gatewayregel skyddar bara trafik som når den gatewayen. DNS behöver sitt eget beslut, eftersom en fråga som skickas till en lokal resolver kan avslöja namn även när nyttolasten är blockerad.

Undantag för lokalnätet finns för skrivare, casting och captive portals, och vart och ett är ett hål i blockeringen. Dokumentera dem bredvid policyn, för den som ärver konfigurationen kommer annars att läsa fail-closed som absolut.

Återanslutning och blockering är också separata kontroller. En klient kan återansluta automatiskt utan att någonsin blockera, eller blockera utan att återansluta, och kombinationen avgör vad en användare upplever under ett avbrott.

Bevisa det under en övergång

Att testa det stabila tillståndet bevisar ingenting. Ta ner tunneln medvetet och prova applikationen som ska vara skyddad, och kontrollera sedan om den nådde nätverket. Jämför klientens indikator med resultatet, för en indikator som fortfarande säger ansluten är precis det fall policyn finns för. Om den skyddade applikationen lyckas spelar lägets namn ingen roll; du har en läcka.

Upprepa från en kallstart före inloggning, vid byte från Wi-Fi till mobilnät och med den skyddade appen i bakgrunden. Om blockeringen upprätthålls av klientprocessen, testa också vad som händer när den processen dödas i stället för att stängas prydligt.

Kontrollera slutligen städvägen. Om en klient avinstalleras medan dess regler är aktiva, använd leverantörens dokumenterade borttagningsförfarande i stället för att stänga av operativsystemets brandvägg, som tar bort orelaterat skydd utan att svara på vem som äger den kvarvarande regeln.

Relaterade artiklar