Pročitajte VPN zapis prije nego što ga pošaljete: polje po polje
Zapisi podrške sadrže korisnička imena, nazive certifikata, interne adrese i ponekad ključ. Prođite kroz polja, potražite tajne, a zatim pošaljite redigirani izvadak.
Otvorite zahtjev za podršku, priložite dijagnostički izvoz koji je klijent napravio i čekate. Datoteka vjerojatno ne sadrži nikakvu historiju pregledavanja, i upravo to je čini sigurnom. Ipak sadrži ko ste, koje ste računalo koristili, koje ste interne adrese dosegnuli i kada, a povremeno i privatni ključ koji je kopirao klijent koji bilježi svoju konfiguraciju. Pregled datoteke prije slanja traje oko pet minuta i sprječava trajno otkrivanje.
Otvorite ga i pročitajte prvih četrdeset redova
Počnite od vrha, gdje klijenti obično izbacuju verziju, platformu i konfiguraciju. Prvi redovi govore koliko je datoteka opširna, što određuje koliko se morate brinuti o ostatku. Zadani zapis i zapis za otklanjanje grešaka različiti su artefakti s različitom izloženošću.
head -n 40 vpn-support.log
sed -n '1,40p' vpn-support.log | grep -nE 'version|platform|config|option'
Također provjerite veličinu i oblik datoteke prije nego što bilo što pročitate. Tekstualna datoteka od dva megabajta s jednim događajem koji se ponavlja lako se skraćuje. Binarni snimak u istoj mapi posve je drugi problem i zahtijeva drugačiji razgovor s onim ko je zatražio izvoz.
Na Windowsu su ekvivalenti po jedna cmdlet naredba, a prvu vrijedi pokrenuti na svakoj datoteci koju niste sami napravili:
Get-Content .\vpn-support.txt -TotalCount 40
Get-Item .\vpn-support.txt | Select-Object Length,LastWriteTime
Polja koja identificiraju osobu
Korisnička imena pojavljuju se na mjestima koja ljudi ne očekuju: račun koji se koristi za autentifikaciju, subjekt certifikata, putanja profila ispod matične mape i naziv računala koji često kodira pravo ime. Zapis koji redigira polje računa, a ostavlja putanju do matične mape netaknutom, nije redigirao ništa.
| Field | What it identifies | Practical treatment |
|---|---|---|
| Account or username | A person, and often an employer | Replace consistently, keep the mapping |
| Certificate subject and CN | Device or user identity | Keep the structure, replace the value |
| Home directory path | A login name, sometimes a full name | Replace the segment, not the whole path |
| Machine or hostname | A person or a physical location | Replace with a stable pseudonym |
Dosljednost je važnija od potpunosti kada inženjer podrške mora pratiti jednu sesiju kroz datoteku. Zamijenite vrijednosti stabilnim oznakama umjesto da ih brišete, tako da se svako pojavljivanje istog korisnika i dalje čita kao isti korisnik. Potpuno brisanje polja prekida nit koja inženjeru treba i ne čini datoteku sigurnijom.
Vremenska oznaka je također osobni podatak u zbiru. Vremena kada se račun povezivao, uzeta kroz mjesec dana, opisuju radno vrijeme i putovanja. Ako pitanje ne treba cijeli raspon, skratite datoteku na prozor oko događaja.
Polja koja identificiraju mrežu
Adrese krajnjih točaka, interni smjerovi i gurnute opcije opisuju oblik privatne mreže. To je upravo informacija koju bi napadač želio imati i obično je prisutna mnogo detaljnije nego što zahtjev treba.
Tražite porodicu adresa koja se koristi, ne samo onu koju ste očekivali. Klijent s dvostrukim stekom može zabilježiti IPv6 krajnju točku i skup IPv6 smjerova koje nitko nije pomislio redigirati jer je pregled tražio samo točkaste četvorke.
grep -nEo '([0-9]{1,3}\.){3}[0-9]{1,3}' vpn-support.log | sort -u | head -n 40
grep -nEo '([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4}' vpn-support.log | sort -u | head -n 20
Jedinstveni popis je poanta. Govori koliko različitih adresa datoteka spominje, a to je obično mnogo manje nego što se čini dok listate. Također vam daje kontrolni popis za redigiranje i način da dokažete da ste pokrili sve. Deset adresa je posao od pet minuta, a stotinu vam kaže da je izvoz širi od pitanja.
Zadržite topologiju ako je inženjeru treba. Zamjena drugog i trećeg okteta uz čuvanje odnosa podmreže odgovara na pitanje bez objavljivanja raspona. Isti trik radi za IPv6 prefikse. Inženjeru treba oblik kvara, a oblik preživljava dosljednu zamjenu.
Tajne se skrivaju u oblicima, ne u oznakama
Privatnom ključu ne treba riječ “password” u blizini. Pojavljuje se kao blok između označenih redova, kao dugi niz base64 ili kao ugrađeni ispis konfiguracije. Tokeni se pojavljuju kao parametri upita, a akreditivi unutar URL-ova koje je klijent zabilježio doslovno.
grep -nE 'BEGIN [A-Z ]*PRIVATE KEY|password|passwd|token|secret|psk|auth-user-pass' vpn-support.log
grep -nE 'https?://[^ ]*:[^ ]*@' vpn-support.log
Drugi uzorak je onaj koji ljudi zaboravljaju. URL oblika shema, korisnik, lozinka, host potpuni je akreditiv, a klijenti bilježe takve URL-ove kad god je proxy ili feed konfiguriran s ugrađenom autentifikacijom.
Nikada ne šaljite originalnu datoteku kao dokaz da je niste mijenjali. Ako operater insistira na nepromijenjenom izvozu, pitajte zašto mu treba, pošaljite ga kroz njihov provjereni kanal podrške i zatim izbrišite svoju lokalnu kopiju. Taj zahtjev je legitiman; javno lijepljenje nije.
Napravite redigiranu kopiju i pošaljite izvadak
Radite na kopiji, čuvajte original na zaštićenom mjestu i redigirajte ponovljivom naredbom, a ne ručno. Jedan prolaz kroz uzorke adresa hvata većinu toga:
cp vpn-support.log vpn-support.original.log
sed -E 's/([0-9]{1,3}\.){3}[0-9]{1,3}/ADDR/g; s/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+/USER@DOMAIN/g' \
vpn-support.original.log > vpn-support.redacted.log
grep -cE 'PRIVATE KEY|password|token' vpn-support.redacted.log
Konačni broj treba biti nula. Ako nije, prolaz redigiranja je propustio oblik i trebate pogledati te redove prije nego što bilo što pošaljete. Pročitajte redigiranu datoteku i jednom vlastitim očima; skripta hvata uzorke, ne kontekst.
Pošaljite najmanji izvadak koji još pokazuje kvar. Deset redova oko greške obično je dovoljno i mnogo ih je lakše pregledati od datoteke od dva megabajta. Zatim čuvajte mapiranje između svojih oznaka i stvarnih vrijednosti na mjestu koje kontrolirate, jer će ga sljedeće pitanje trebati.
OpenVPN dokumentacija o zapisivanju opisuje kako razine opširnosti mijenjaju ono što se bilježi, što je koristan kontekst za odluku koliko datoteke problem zapravo zahtijeva.