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.

FieldWhat it identifiesPractical treatment
Account or usernameA person, and often an employerReplace consistently, keep the mapping
Certificate subject and CNDevice or user identityKeep the structure, replace the value
Home directory pathA login name, sometimes a full nameReplace the segment, not the whole path
Machine or hostnameA person or a physical locationReplace 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.

Sorodni članki