Pogrešan VPN pokušaj: koja klasa akreditiva je prešla granicu?
Neuspjeli pokušaj možda nije poslao ništa, ili je predao lozinku onome ko je odgovorio. Razvrstajte artefakt prije nego odlučite šta opozvati.
Povezali ste se na pogrešan VPN i klijent je prijavio grešku. Da li je to bilo važno zavisi od toga šta je prešlo žicom prije greške, a sama riječ vam to ne kaže. Neka rukovanja uopšte ne nose tajnu, dok druga predaju lozinku svakome ko je odgovorio na adresu. Utvrdite koji se od ta dva slučaja dogodio prije nego bilo šta opozovete.
Zaustavite se i sačuvajte dokaze
Sačuvajte klijentski dnevnik, odabrani profil, adresu koju ste upisali i približno vrijeme. Zapišite ih negdje izvan klijenta, jer izmjena profila ili ponovna instalacija uništava zapis koji će vam trebati. Zaustavite svaki dalji pokušaj dok se odredište ne potvrdi putem koji kontrolišete.
Nikada ne objavljujte neuređeni profil ili dnevnik na javnom forumu dok pitate je li pokušaj bio siguran. Ti dokumenti često sadrže putanju privatnog ključa, interno ime hosta ili token, pa prvo redigujte i podijelite s administratorom koji posjeduje odredište.
Šta može prijeći granicu
Većina zabune dolazi od toga da se svaka greška tretira kao jedna vrsta događaja. Četiri različite stvari mogu doći na drugu stranu: javni certifikat, potpis koji dokazuje da je ključ korišten, lozinka ili jednokratni kod, i datoteka koju ste sami odabrali. Svaka ima svoju posljedicu i svoj popravak. Razvrstavanje artefakta je korak koji odlučuje o svemu poslije.
Slučaj s certifikatom je najblaži, jer je ono što putuje javno po dizajnu i njegova identifikacijska polja već su vidljiva svakome ko se poveže. Potpis nad izazovom kaže da je ključ korišten, a ne da je poslan. Lozinka je obrnut slučaj: ko je primi može je isprobati drugdje, a servis napravljen za provjeru lozinki je namjeravani primalac upravo te vrijednosti.
Dokaz ključa nije prijenos ključa
Savremeni TLS namjerno razdvaja te dvije ideje. RFC 8446 opisuje poruku CertificateVerify, u kojoj klijent potpisuje izazov privatnim ključem koji odgovara njegovom certifikatu. Potpis dokazuje posjedovanje bez prenošenja ključa, zato pokušaj s certifikatnom autentifikacijom nije automatski kompromitacija ključa.
To uvjeravanje ima granicu koju valja navesti. Dokaz pokazuje da je ključ učestvovao u toj razmjeni i ne govori ništa o tome šta je lokalni program na mašini možda već pročitao. Takođe ne govori ništa o tome dokle je nepoznati pokušaj stvarno stigao, zato je dnevnik i dalje važniji od teorije.
Lozinke slijede sasvim drugi model povjerenja. Koncentrator konfigurisan s vanjskim verifikatorom može proslijediti predanu vrijednost, pa je njeno primanje namjeravana funkcija, a pogrešno odredište stvarna izloženost, a ne teorijska.
Rekonstruišite pokušaj iz dnevnika
Četiri činjenice rekonstruišu pokušaj: adresa s kojom je zaista uspostavljen kontakt, je li identitet servera potvrđen, koji je metod autentifikacije odabran i gdje se proces zaustavio. Svaka se pojavljuje u klijentskom dnevniku i svaka isključuje drugu priču. Greška o rutama ili dodijeljenoj adresi ne govori ništa o tome šta je već bilo na žici, jer je autentifikacija mogla biti završena prije nego što je postavljanje tunela propalo.
Izvucite te činjenice iz klijentovog vlastitog dnevnika, a ne iz sjećanja. Uski filter drži izlaz dovoljno kratkim za redigovanje i dijeljenje:
grep -n -i -E 'verify|authentication|certificate|error|timeout' client.log | tail -30
Ne zamjenjujte ime hosta ni za jednu od ovih stvari. Poznato ime, trenutni DNS odgovor i upozorenje o certifikatu koje softver prikazuje opisuju sadašnjost, a ne raniju vezu. Ni upit za lozinku nije dokaz da je bilo šta poslano, jer je klijent mogao propasti prije nego što ju je predao.
Odlučite, pa postupite
Odluka proizlazi iz artefakta, a ne iz toga koliko je greška izgledala alarmantno. Pročitajte četiri reda prema činjenicama koje ste rekonstruisali:
| Decision | Evidence that puts you here | Evidence that rules it out |
|---|---|---|
| Change the password now | A password was submitted and a server reply arrived | The log stops before any submission |
| Review active sessions | A one-time code was accepted by the wrong endpoint | The code was never sent, or was rejected before use |
| Revoke and reissue | The file you selected contained key material, not just settings | The upload was a profile with no embedded key |
| No further action | The attempt ended before any authentication value was offered | You later find an earlier attempt you had forgotten |
Ako je lozinka stigla do nenamjeravanog servisa, promijenite je kroz kanal za upravljanje računom i provjerite gdje je još korištena. Istekao jednokratni kod zatvara taj put, ali sesija stvorena s njim ne, zato zamolite administratora identiteta da pregleda sesije. Ako je datoteka ključa zaista prenesena, slijedite proces opoziva organizacije koja ga je izdala, umjesto da čekate dokaz o zloupotrebi.
Zatim zapišite ograničen rezultat: šta je poslano, šta ostaje nepoznato i koji akreditiv zahtijeva djelovanje. Taj zapis će tražiti kasniji pregled i korisniji je od bilo kojeg od dva utješna zaključka.