Promijenite VPN lozinku bez zaključavanja svih uređaja
Promjena lozinke ne ažurira spremljene kopije. Popišite svakog klijenta, zamijenite spremljenu vrijednost kod vlasnika i zaustavite petlju ponovnih pokušaja.
Tri telefona, usmjerivač i jedna provjera nadzora još uvijek drže staru lozinku, a jedan od njih ponovno se spaja svakih devedeset sekundi. Lozinka računa promijenjena je prije deset minuta, pa svaki od tih klijenata sada šalje vrijednost koju poslužitelj odbija. To je trenutak kada mit puca: promjena lozinke dotiče račun, a ne kopije stare vrijednosti na svakom uređaju. Ono što slijedi jest posao koji promjena nije obavila.
Mit: jedna promjena, svugdje odjednom
Uvjerenje je da promjena lozinke odjavljuje sve i prisiljava čistu ponovnu prijavu. Nije tako, jer poslužitelj prati samo koje je vjerodajnice posljednje prihvatio, dok klijenti drže ono što su spremili. Uređaj sa spremljenom lozinkom ponavlja je prema vlastitom rasporedu i tiho ne uspijeva dok netko ne primijeti da je račun zaključan. Kada prihvatite da kopije žive izvan računa, rotacija prestaje izgledati kao jedna radnja.
Ništa od toga nije argument protiv rotacije. To je argument da se spremljene kopije tretiraju kao dio promjene, a ne kao naknadna misao. Zaključavanje obično dolazi od paralelnih ponovnih pokušaja: svaki uređaj nastavlja slati staru vrijednost prema vlastitom rasporedu dok se brojač ne aktivira. Račun tada izgleda napadnut, a samo mu se nude vjerodajnice koje nitko nije zamijenio. Ta razlika je važna, jer rješenje je popis uređaja, a ne stroža politika zaključavanja.
Popišite kopije prije rotacije
Napišite popis prije nego otvorite obrazac za lozinku. Navedite svakog klijenta, skriptu, automatizaciju i upravljani profil koji se autentificira kao ovaj račun: telefon koji se sam spaja, usmjerivač konfiguriran prije dvije godine, prijenosnik koji se budi samo ponedjeljkom i provjeru nadzora koja pokušava svake minute. Za svaki zapišite gdje je vjerodajnica spremljena, može li se uređaj dosegnuti tijekom promjene i koja putanja oporavka postoji ako se ne može ponovno spojiti. Taj popis pretvara rizičnu promjenu u planiranu i mora postojati prije nego stara lozinka prestane raditi.
Offline uređaji su klasičan propust. Prijenosnik u ladici vraća se tri tjedna kasnije i predstavlja zastarjelu vrijednost u najgorem trenutku. Zapišite i njegovu lokaciju i raspored, jer ćete ga morati loviti umjesto čekati.
Na Linux floti pretraga je mehanička, a ne pametna. Tražite profile koji upućuju na datoteku vjerodajnica, zatim same datoteke vjerodajnica, jer drugi popis je onaj koji se mora prepisati. Ponovite vježbu za desktop klijente i telefone, gdje je spremište profil ili unos u privjesku ključeva, a ne putanja. Cilj je popis po kojem možete raditi, a ne skeniranje koje tvrdi da pronalazi svaku kopiju.
grep -rl auth-user-pass /etc/openvpn /etc/NetworkManager
grep -rl auth-user-pass ~/.config 2>/dev/null
Odmjerite kopije prema ljudima koji ih posjeduju. Uređaj koji nitko ne polaže pravo je uređaj koji nitko neće ažurirati, a ujedno je i onaj koji će najvjerojatnije nastaviti s ponovnim pokušajima.
Koju tajnu zapravo rotirate
Lozinka računa samo je jedna vjerodajnica u VPN postavi. Šifra ključa, identitet certifikata i neobavezni tajni ključ partnera imaju vlastitu putanju zamjene i vlastitog vlasnika. Promjena lozinke računa ne čini ništa za uređaj koji se autentificira certifikatom, a ponovno izdavanje certifikata ne čini ništa za klijenta sa spremljenom lozinkom. Imenujte tajnu prije nego imenujete rješenje.
Ako je rotacija vođena sumnjom, a ne politikom, incidentni proces ima prednost pred planom pogodnosti. Opozovite ono što dokazi zahtijevaju i prihvatite dodatni rad na popisu uređaja. Ta odluka pripada vlasniku incidenta, a ne onome tko slučajno drži obrazac za poništavanje lozinke.
Zamijenite spremljenu vrijednost tamo gdje živi
Promijenite vjerodajnicu kroz mehanizam koji usluga dokumentira, zatim ažurirajte spremljenu kopiju ili pokrenite tijek prijave na svakom uređaju koji namjeravate zadržati. Ne uređujte generiranu konfiguraciju iza upravitelja koji je prepisuje, jer upravitelj vraća stariju vrijednost pri sljedećem pokretanju i izmjena postaje odgođeni kvar. Ažurirajte izvor koji upravitelj čita ili upotrijebite vlastito spremište vjerodajnica klijenta. U svakom slučaju, uređaj mora završiti s novom vrijednošću na mjestu koje klijent stvarno čita.
Klijent koji pohranjuje datoteku lozinke treba prepisanu datoteku, dok klijent koji pita treba dovršenu prijavu. NetworkManager drži tajnu unutar profila veze, pa promjena ide kroz nmcli, a ne kroz tekstualni uređivač:
nmcli connection modify work vpn.secrets "password=NEW"
nmcli connection up work
Profil koji čita datoteku vjerodajnica treći je slučaj. Zamijenite sadržaj te datoteke, držite njezine dozvole zatvorenima i ponovno učitajte klijent umjesto uređivanja profila koji na nju upućuje. Profil se nije promijenio; promijenila se samo tajna koju čita.
Ponovno spojite svaki predviđeni uređaj jednom, namjerno, i gledajte koji ne uspijeva. Ako uređaj stalno ne uspijeva, pogledajte račun na koji upućuje i spremište koje čita prije nego ponovno promijenite lozinku, jer druga promjena umnožava kopije koje treba ažurirati. Uređaj koji ne uspijeva dvaput obično upućuje na pogrešan račun ili čita spremište koje još niste pronašli. Popravite to, pa se ponovno spojite.
Sesije i tokeni nadživljavaju lozinku
Promjena lozinke ne dokazuje da su postojeće sesije ili odvojeni certifikati opozvani. Neke usluge drže sesiju živom dok ne istekne ili se izričito prekine, a izdani tokeni nose vlastiti rok trajanja. Provjerite što usluga zaista radi umjesto da pretpostavljate da je promjena bila globalna. Ako je promjena vođena sumnjom, izričito prekinite sesije i potvrdite rezultat.
Smjernice o životnom ciklusu vjerodajnica u NIST SP 800-63B drže autentifikatore i sesije u odvojenim kategorijama, zato su promjena lozinke i globalna odjava različite operacije. Tretirajte ih kao dva zadatka s dva kriterija završetka. Prvi je završen kada nova vrijednost radi, a drugi kada starih sesija nema.
Zabilježite završetak bez upisivanja nove lozinke u zapis. Dnevnik rotacije koji sadrži vjerodajnicu novi je incident koji čeka na dijeljenom disku. Zapišite datum, ažurirane uređaje i uređaje koji još nisu obavljeni.