Promijenite VPN lozinku bez zaključavanja svih uređaja
Promjena lozinke ne ažurira sačuvane kopije. Popišite svakog klijenta, zamijenite sačuvanu vrijednost kod njenog vlasnika i zaustavite ciklus ponovnih pokušaja.
Tri telefona, ruter i jedna provjera nadzora još drže staru lozinku, a jedan od njih se ponovo povezuje svakih devedeset sekundi. Lozinka računa promijenjena je prije deset minuta, pa svaki od tih klijenata sada šalje vrijednost koju server odbija. To je trenutak kada mit puca: promjena lozinke dira račun, a ne kopije stare vrijednosti na svakom uređaju. Ono što slijedi jest posao koji promjena nije obavila.
Mit: jedna promjena, svuda odjednom
Vjerovanje je da promjena lozinke odjavljuje sve i prisiljava čistu ponovnu prijavu. Nije tako, jer server prati samo koje je akreditive posljednje prihvatio, dok klijenti drže ono što su sačuvali. Uređaj sa sačuvanom lozinkom ponavlja je po svom rasporedu i tiho ne uspijeva dok neko 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 sačuvane 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 po svom rasporedu dok se brojač ne aktivira. Račun tada izgleda napadnut, a samo mu se nude akreditivi koje niko 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 povezuje, ruter konfigurisan prije dvije godine, laptop koji se budi samo ponedjeljkom i provjeru nadzora koja pokušava svake minute. Za svaki zapišite gdje je akreditiv pohranjen, može li se uređaj dosegnuti tokom promjene i koja ruta oporavka postoji ako se ne može ponovo povezati. Taj popis pretvara rizičnu promjenu u planiranu i mora postojati prije nego stara lozinka prestane raditi.
Offline uređaji su klasičan propust. Laptop u ladici vraća se tri sedmice 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 akreditiva, zatim same datoteke akreditiva, 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 niko ne prisvaja je uređaj koji niko neće ažurirati, a ujedno je i onaj koji će najvjerovatnije nastaviti s ponovnim pokušajima.
Koji sekret zapravo rotirate
Lozinka računa je samo jedan akreditiv u VPN rasporedu. Šifra ključa, identitet certifikata i opcionalni sekret 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 sačuvanom lozinkom. Imenujte sekret prije nego imenujete rješenje.
Ako je rotacija vođena sumnjom, a ne politikom, incidentni proces ima prednost nad planom pogodnosti. Opovrgnite ono što dokazi zahtijevaju i prihvatite dodatni rad na popisu uređaja. Ta odluka pripada vlasniku incidenta, a ne onome ko slučajno drži obrazac za reset lozinke.
Zamijenite sačuvanu vrijednost tamo gdje živi
Promijenite akreditiv kroz mehanizam koji usluga dokumentira, zatim ažurirajte sačuvanu kopiju ili pokrenite tok prijave na svakom uređaju koji namjeravate zadržati. Ne uređujte generisanu 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 koristite vlastito spremište akreditiva 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 sekret 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 akreditiva treći je slučaj. Zamijenite sadržaj te datoteke, držite njene dozvole zatvorenim i ponovo učitajte klijent umjesto uređivanja profila koji na nju upućuje. Profil se nije promijenio; promijenio se samo sekret koji čita.
Ponovo povežite 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 ponovo 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 ponovo povežite.
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 izdati tokeni nose vlastiti rok trajanja. Provjerite šta 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 akreditiva 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 akreditiv je novi incident koji čeka na dijeljenom disku. Zapišite datum, ažurirane uređaje i uređaje koji još nisu obavljeni.