Du åpner en støttebillett, legger ved diagnostikkuttrekket klienten har laget, og venter. Filen inneholder sannsynligvis ingen nettleserhistorikk i det hele tatt, og det er nettopp derfor den føles trygg. Den inneholder likevel hvem du er, hvilken maskin du brukte, hvilke interne adresser du nådde og når, og iblant en privat nøkkel kopiert inn av en klient som logger konfigurasjonen sin. Å gå gjennom filen før du sender den tar omtrent fem minutter og forhindrer en permanent avsløring.

Åpne den og les de første førti linjene

Start øverst, der klientene vanligvis dumper versjon, plattform og konfigurasjon. De første linjene forteller hvor ordrik filen er, og det avgjør hvor mye av resten du må bry deg om. En standardlogg og en feilsøkingslogg er forskjellige artefakter med forskjellig eksponering.

head -n 40 vpn-support.log
sed -n '1,40p' vpn-support.log | grep -nE 'version|platform|config|option'

Sjekk også filens størrelse og form før du leser noe av den. En tekstfil på to megabyte med én hendelse som gjentas er lett å skjære ned. En binær opptak i samme mappe er et helt annet problem, og det krever en annen samtale med den som ba om uttrekket.

På Windows er ekvivalentene én cmdlet hver, og den første er verdt å kjøre på enhver fil du ikke har laget selv:

Get-Content .\vpn-support.txt -TotalCount 40
Get-Item .\vpn-support.txt | Select-Object Length,LastWriteTime

Feltene som identifiserer en person

Brukernavn dukker opp på steder folk ikke forventer: kontoen som brukes til autentisering, sertifikatets subjekt, profilbanen under en hjemmemappe og maskinnavnet som ofte koder et virkelig navn. En logg som redigerer kontofeltet og lar hjemmebanen være intakt, har ikke redigert noe.

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

Konsistens betyr mer enn fullstendighet når en støtteingeniør skal følge én økt gjennom filen. Erstatt verdier med stabile etiketter i stedet for å slette dem, slik at hver forekomst av samme bruker fortsatt leses som samme bruker. Å slette feltet helt bryter tråden ingeniøren trenger, og gjør ikke filen tryggere.

Et tidsstempel er også personopplysninger samlet. Tidspunktene en konto koblet til, tatt over en måned, beskriver arbeidstid og reiser. Hvis spørsmålet ikke trenger hele området, klipp filen til vinduet rundt hendelsen.

Feltene som identifiserer et nettverk

Endepunktadresser, interne ruter og push-konfigurerte valg beskriver formen til et privat nettverk. Det er nøyaktig informasjonen en angriper ville hatt, og den finnes vanligvis i langt større detalj enn billetten trenger.

Se etter adressefamilien som brukes, ikke bare den du forventet. En dual-stack-klient kan logge et IPv6-endepunkt og et sett med IPv6-ruter som ingen tenkte på å redigere, fordi gjennomgangen bare lette etter punktseparerte kvadrupler.

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

Den unike listen er poenget. Den forteller hvor mange ulike adresser filen nevner, og det er vanligvis langt færre enn det føles når man ruller. Den gir deg også en sjekkliste å redigere etter og en måte å bevise at du dekket dem alle. Ti adresser er et arbeid på fem minutter, og hundre forteller deg at uttrekket er bredere enn spørsmålet.

Behold topologien hvis ingeniøren trenger den. Å erstatte andre og tredje oktett mens subnettrelasjonene bevares besvarer spørsmålet uten å publisere området. Samme triks fungerer for IPv6-prefikser. Det ingeniøren trenger er feilens form, og formen overlever en konsistent erstatning.

Hemmeligheter gjemmer seg i former, ikke i etiketter

En privat nøkkel trenger ikke ordet “password” i nærheten. Den vises som en blokk mellom markørlinjer, som en lang base64-streng eller som en innebygd konfigurasjonsdump. Tokens vises som spørringsparametre, og legitimasjon vises inne i URL-er som en klient logget ordrett.

grep -nE 'BEGIN [A-Z ]*PRIVATE KEY|password|passwd|token|secret|psk|auth-user-pass' vpn-support.log
grep -nE 'https?://[^ ]*:[^ ]*@' vpn-support.log

Det andre mønsteret er det folk glemmer. En URL av formen skjema, bruker, passord, vert er en fullstendig legitimasjon, og klienter logger slike URL-er hver gang en proxy eller en feed er konfigurert med innebygd autentisering.

Send aldri den originale filen som bevis på at du ikke har redigert den. Hvis en operatør insisterer på et uendret uttrekk, spør hva de trenger det til, send det gjennom deres verifiserte støttekanal, og slett din lokale kopi etterpå. Den forespørselen er legitim; en offentlig kopiering er ikke.

Bygg den redigerte kopien og send utdraget

Arbeid på en kopi, oppbevar originalen på et beskyttet sted, og rediger med en kommando som kan gjentas i stedet for for hånd. Én gjennomgang av adressemønstrene fanger det meste av det:

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

Det endelige antallet skal være null. Hvis det ikke er det, har redigeringsgjennomgangen oversett en form, og du bør se på de linjene før du sender noe. Les også den redigerte filen én gang med egne øyne; et skript fanger mønstre, ikke kontekst.

Send det minste utdraget som fortsatt viser feilen. Ti linjer rundt feilen er vanligvis nok, og de er langt lettere å gjennomgå enn en fil på to megabyte. Oppbevar deretter koblingen mellom etikettene dine og de ekte verdiene på et sted du kontrollerer, fordi oppfølgingsspørsmålet vil trenge den.

OpenVPN-dokumentasjonen om logging beskriver hvordan detaljnivåer endrer hva som registreres, noe som er nyttig kontekst for å avgjøre hvor mye av filen problemet faktisk krever.

Relaterte artikler