Preberite dnevnik VPN, preden ga pošljete: polje za poljem
Dnevniki podpore vsebujejo uporabniška imena, imena potrdil, notranje naslove in včasih ključ. Preglejte polja, poiščite skrivnosti in nato pošljite redigiran izvleček.
Odprete zahtevek za podporo, priložite diagnostični izvoz, ki ga je ustvaril odjemalec, in čakate. Datoteka verjetno ne vsebuje nobene zgodovine brskanja, in prav zato se zdi varna. Vseeno vsebuje, kdo ste, kateri stroj ste uporabili, katere notranje naslove ste dosegli in kdaj, ter včasih zasebni ključ, ki ga je kopiral odjemalec, ki beleži svojo konfiguracijo. Pregled datoteke pred pošiljanjem traja približno pet minut in prepreči trajno razkritje.
Odprite ga in preberite prvih štirideset vrstic
Začnite na vrhu, kjer odjemalci običajno izlijejo različico, platformo in konfiguracijo. Prve vrstice povedo, kako podrobna je datoteka, kar določa, koliko preostanka morate upoštevati. Privzeti dnevnik in dnevnik za odpravljanje napak sta različna artefakta z različno izpostavljenostjo.
head -n 40 vpn-support.log
sed -n '1,40p' vpn-support.log | grep -nE 'version|platform|config|option'
Pred branjem česar koli preverite tudi velikost in obliko datoteke. Besedilna datoteka z dvema megabajtoma in enim ponavljajočim se dogodkom se zlahka obreže. Binarni posnetek v isti mapi je povsem drugačen problem in zahteva drugačen pogovor s tistim, ki je zahteval izvoz.
V sistemu Windows so ustrezniki po en cmdlet, prvega pa je vredno zagnati na vsaki datoteki, ki je niste ustvarili sami:
Get-Content .\vpn-support.txt -TotalCount 40
Get-Item .\vpn-support.txt | Select-Object Length,LastWriteTime
Polja, ki identificirajo osebo
Uporabniška imena se pojavljajo na mestih, ki jih ljudje ne pričakujejo: račun, uporabljen za preverjanje pristnosti, subjekt potrdila, pot profila v domači mapi in ime stroja, ki pogosto kodira resnično ime. Dnevnik, ki redigira polje računa in pusti domačo pot nedotaknjeno, ni redigiral ničesar.
| 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 |
Doslednost je pomembnejša od popolnosti, ko mora podporni inženir slediti eni seji skozi datoteko. Vrednosti nadomestite s stabilnimi oznakami, namesto da jih izbrišete, da se vsaka pojavitev istega uporabnika še vedno bere kot isti uporabnik. Popolno brisanje polja prekine nit, ki jo inženir potrebuje, in datoteke ne naredi varnejše.
Časovni žig je v celoti tudi osebni podatek. Časi, ko se je račun povezal, vzeti za mesec dni, opisujejo delovni čas in potovanja. Če vprašanje ne potrebuje celotnega obsega, obrežite datoteko na okno okoli dogodka.
Polja, ki identificirajo omrežje
Naslovi končnih točk, notranje poti in potisnjene možnosti opisujejo obliko zasebnega omrežja. To je natanko informacija, ki bi jo napadalec rad imel, in običajno je prisotna veliko podrobneje, kot zahteva zahtevek.
Poiščite družino naslovov, ki se uporablja, ne le tiste, ki ste jo pričakovali. Odjemalec z dvojnim skladom lahko zabeleži končno točko IPv6 in niz poti IPv6, ki se jih nihče ni domislil redigirati, ker je pregled iskal le pikčaste četverice.
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
Edinstven seznam je bistvo. Pove, koliko različnih naslovov omenja datoteka, in običajno jih je veliko manj, kot se zdi med drsenjem. Daje vam tudi kontrolni seznam za redigiranje in način, kako dokazati, da ste zajeli vse. Deset naslovov je delo za pet minut, sto pa pove, da je izvoz širši od vprašanja.
Ohranite topologijo, če jo inženir potrebuje. Zamenjava drugega in tretjega okteta ob ohranjanju odnosov podomrežja odgovori na vprašanje, ne da bi objavila obseg. Isti trik deluje za predpone IPv6. Inženir potrebuje obliko okvare, in oblika preživi dosledno zamenjavo.
Skrivnosti se skrivajo v oblikah, ne v oznakah
Zasebni ključ ne potrebuje besede “password” v bližini. Pojavi se kot blok med označevalnimi vrsticami, kot dolg niz base64 ali kot vgrajen izpis konfiguracije. Žetoni se pojavljajo kot parametri poizvedbe, poverilnice pa v URL-jih, ki jih je odjemalec zabeležil dobesedno.
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 vzorec je tisti, ki ga ljudje pozabijo. URL v obliki shema, uporabnik, geslo, gostitelj je popolna poverilnica, in odjemalci beležijo takšne URL-je vedno, ko je proxy ali vir konfiguriran z vgrajeno avtentikacijo.
Nikoli ne pošljite izvirne datoteke kot dokaz, da je niste uredili. Če operater vztraja pri nespremenjenem izvozu, vprašajte, za kaj ga potrebuje, pošljite ga po njihovem preverjenem kanalu za podporo in nato izbrišite svojo lokalno kopijo. Ta zahteva je legitimna; javno lepljenje ni.
Zgradite redigirano kopijo in pošljite izvleček
Delajte na kopiji, izvirnik hranite na zaščitenem mestu in redigirajte s ponovljivim ukazom, ne ročno. En prehod čez vzorce naslovov ujame večino:
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
Končno število bi moralo biti nič. Če ni, je prehod redigiranja zgrešil obliko in pred pošiljanjem česar koli bi morali pogledati te vrstice. Preberite redigirano datoteko enkrat tudi z lastnimi očmi; skript ujame vzorce, ne konteksta.
Pošljite najmanjši izvleček, ki še vedno kaže okvaro. Deset vrstic okoli napake je običajno dovolj in veliko jih je lažje pregledati kot datoteko z dvema megabajtoma. Nato hranite preslikavo med svojimi oznakami in resničnimi vrednostmi na mestu, ki ga nadzorujete, ker jo bo naslednje vprašanje potrebovalo.
Dokumentacija OpenVPN o beleženju opisuje, kako stopnje podrobnosti spreminjajo, kaj se zabeleži, kar je koristen kontekst za odločitev, koliko datoteke težava v resnici zahteva.