Apri un ticket di supporto, alleghi l’esportazione diagnostica prodotta dal client e aspetti. Il file probabilmente non contiene alcuna cronologia di navigazione, ed è proprio questo a farlo sembrare sicuro. Contiene comunque chi sei, quale macchina hai usato, quali indirizzi interni hai raggiunto e quando, e talvolta una chiave privata copiata da un client che registra la propria configurazione. Scorrere il file prima di inviarlo richiede circa cinque minuti e impedisce una divulgazione permanente.

Aprilo e leggi le prime quaranta righe

Inizia dall’alto, dove i client di solito riversano versione, piattaforma e configurazione. Le prime righe ti dicono quanto è dettagliato il file, e questo determina quanto del resto ti deve interessare. Un registro predefinito e un registro di debug sono artefatti diversi con esposizioni diverse.

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

Controlla anche dimensioni e forma del file prima di leggerne qualsiasi parte. Un file di testo da due megabyte con un evento ripetuto è facile da tagliare. Una cattura binaria nella stessa cartella è un problema del tutto diverso, e richiede un’altra conversazione con chi ha chiesto l’esportazione.

Su Windows gli equivalenti sono un cmdlet ciascuno, e vale la pena eseguire il primo su qualsiasi file che non hai creato tu:

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

I campi che identificano una persona

I nomi utente compaiono in luoghi che le persone non si aspettano: l’account usato per autenticarsi, il soggetto del certificato, il percorso del profilo sotto una directory home e il nome della macchina che spesso codifica un nome reale. Un registro che redige il campo dell’account e lascia intatto il percorso home non ha redatto nulla.

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

La coerenza conta più della completezza quando un ingegnere del supporto deve seguire una sessione attraverso il file. Sostituisci i valori con etichette stabili invece di eliminarli, così che ogni occorrenza dello stesso utente si legga ancora come lo stesso utente. Eliminare del tutto il campo spezza il filo che serve all’ingegnere e non rende il file più sicuro.

Anche un timestamp è un dato personale nel suo insieme. Gli orari in cui un account si è connesso, presi su un mese, descrivono orari di lavoro e viaggi. Se la domanda non ha bisogno dell’intero intervallo, taglia il file alla finestra intorno all’evento.

I campi che identificano una rete

Gli indirizzi degli endpoint, le rotte interne e le opzioni spinte descrivono la forma di una rete privata. È esattamente l’informazione che un attaccante vorrebbe avere, ed è di solito presente con molti più dettagli di quanti ne servano al ticket.

Cerca la famiglia di indirizzi in uso, non solo quella che ti aspettavi. Un client dual-stack può registrare un endpoint IPv6 e un insieme di rotte IPv6 a cui nessuno ha pensato di redigere perché la revisione cercava solo quadruple puntate.

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

L’elenco unico è il punto. Ti dice quanti indirizzi distinti menziona il file, che di solito sono molti meno di quanto sembri scorrendo. Ti dà anche una lista di controllo per la redazione e un modo per dimostrare di averli coperti tutti. Dieci indirizzi sono un lavoro di cinque minuti, e cento ti dicono che l’esportazione è più ampia della domanda.

Conserva la topologia se serve all’ingegnere. Sostituire il secondo e il terzo ottetto preservando le relazioni di sottorete risponde alla domanda senza pubblicare l’intervallo. Lo stesso trucco funziona per i prefissi IPv6. Ciò di cui l’ingegnere ha bisogno è la forma del guasto, e la forma sopravvive a una sostituzione coerente.

I segreti si nascondono nelle forme, non nelle etichette

Una chiave privata non ha bisogno della parola “password” vicino. Appare come un blocco tra righe marcatrici, come una lunga stringa base64 o come un dump di configurazione inline. I token appaiono come parametri di query, e le credenziali appaiono dentro URL che un client ha registrato alla lettera.

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

Il secondo schema è quello che le persone dimenticano. Un URL nella forma schema, utente, password, host è una credenziale completa, e i client registrano tali URL ogni volta che un proxy o un feed è configurato con autenticazione inline.

Non inviare mai il file originale come prova che non lo hai modificato. Se un operatore insiste su un’esportazione non modificata, chiedi a cosa gli serve, inviala attraverso il suo canale di supporto verificato e poi cancella la tua copia locale. Quella richiesta è legittima; un incollaggio pubblico no.

Crea la copia redatta e invia l’estratto

Lavora su una copia, tieni l’originale in un luogo protetto e redigi con un comando ripetibile invece che a mano. Una sola passata sui pattern degli indirizzi cattura la maggior parte:

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

Il conteggio finale dovrebbe essere zero. Se non lo è, la passata di redazione ha mancato una forma e dovresti guardare quelle righe prima di inviare qualsiasi cosa. Leggi anche il file redatto una volta con i tuoi occhi; uno script cattura i pattern, non il contesto.

Invia l’estratto più piccolo che mostra ancora il guasto. Dieci righe intorno all’errore di solito bastano, e sono molto più facili da rivedere di un file da due megabyte. Poi conserva la corrispondenza tra le tue etichette e i valori reali in un luogo che controlli, perché la domanda successiva ne avrà bisogno.

La documentazione di OpenVPN sulla registrazione descrive come i livelli di verbosità cambiano ciò che viene registrato, il che è un contesto utile per decidere quanto del file richieda davvero il problema.

Articoli correlati