Sie öffnen ein Support-Ticket, hängen den Diagnoseexport an, den der Client erzeugt hat, und warten. Die Datei enthält wahrscheinlich überhaupt keinen Browserverlauf, und genau das lässt sie sicher wirken. Sie enthält dennoch, wer Sie sind, welchen Rechner Sie benutzt haben, welche internen Adressen Sie wann erreicht haben und gelegentlich einen privaten Schlüssel, den ein Client kopiert hat, der seine Konfiguration protokolliert. Die Datei vor dem Versand durchzugehen dauert etwa fünf Minuten und verhindert eine dauerhafte Offenlegung.

Öffnen Sie es und lesen Sie die ersten vierzig Zeilen

Beginnen Sie oben, wo Clients üblicherweise Version, Plattform und Konfiguration ausgeben. Die ersten Zeilen sagen Ihnen, wie ausführlich die Datei ist, was bestimmt, um wie viel des Rests Sie sich kümmern müssen. Ein Standardprotokoll und ein Debug-Protokoll sind unterschiedliche Artefakte mit unterschiedlicher Exposition.

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

Prüfen Sie auch Größe und Form der Datei, bevor Sie irgendetwas daraus lesen. Eine zwei Megabyte große Textdatei mit einem wiederholten Ereignis lässt sich leicht kürzen. Eine binäre Aufzeichnung im selben Ordner ist ein ganz anderes Problem und erfordert ein anderes Gespräch mit demjenigen, der den Export angefordert hat.

Unter Windows sind die Entsprechungen je ein Cmdlet, und das erste lohnt sich bei jeder Datei, die Sie nicht selbst erstellt haben:

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

Die Felder, die eine Person identifizieren

Benutzernamen tauchen an Stellen auf, die Menschen nicht erwarten: das Konto, das zur Authentifizierung dient, der Zertifikatsbetreff, der Profilpfad unter einem Home-Verzeichnis und der Rechnername, der oft einen echten Namen kodiert. Ein Protokoll, das das Kontofeld redigiert und den Home-Pfad unversehrt lässt, hat nichts redigiert.

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

Konsistenz ist wichtiger als Vollständigkeit, wenn ein Support-Ingenieur eine Sitzung durch die Datei verfolgen muss. Ersetzen Sie Werte durch stabile Bezeichnungen, statt sie zu löschen, damit jedes Vorkommen desselben Benutzers weiterhin als derselbe Benutzer lesbar ist. Das Feld ganz zu löschen bricht den Faden, den der Ingenieur braucht, und macht die Datei nicht sicherer.

Ein Zeitstempel ist in der Summe ebenfalls personenbezogen. Die Zeiten, zu denen ein Konto verbunden war, über einen Monat betrachtet, beschreiben Arbeitszeiten und Reisen. Wenn die Frage nicht den vollen Zeitraum braucht, schneiden Sie die Datei auf das Fenster um das Ereignis zu.

Die Felder, die ein Netzwerk identifizieren

Endpunktadressen, interne Routen und per Push gesetzte Optionen beschreiben die Form eines privaten Netzwerks. Genau diese Information möchte ein Angreifer haben, und sie ist meist weit detaillierter vorhanden, als das Ticket benötigt.

Achten Sie auf die verwendete Adressfamilie, nicht nur auf die erwartete. Ein Dual-Stack-Client kann einen IPv6-Endpunkt und eine Reihe von IPv6-Routen protokollieren, an deren Redaktion niemand dachte, weil die Prüfung nur nach punktierten Quadrupeln suchte.

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

Die eindeutige Liste ist der Punkt. Sie sagt Ihnen, wie viele verschiedene Adressen die Datei nennt, und das ist meist weit weniger, als es sich beim Scrollen anfühlt. Sie gibt Ihnen außerdem eine Checkliste zum Redigieren und einen Weg zu beweisen, dass Sie alle erfasst haben. Zehn Adressen sind eine Sache von fünf Minuten, und hundert sagen Ihnen, dass der Export breiter ist als die Frage.

Behalten Sie die Topologie, wenn der Ingenieur sie braucht. Das zweite und dritte Oktett zu ersetzen und dabei die Subnetzbeziehungen zu bewahren, beantwortet die Frage, ohne den Bereich zu veröffentlichen. Derselbe Trick funktioniert für IPv6-Präfixe. Was der Ingenieur braucht, ist die Form des Fehlers, und die Form überlebt eine konsistente Ersetzung.

Geheimnisse verstecken sich in Formen, nicht in Bezeichnungen

Ein privater Schlüssel braucht das Wort “password” nicht in der Nähe. Er erscheint als Block zwischen Markierungszeilen, als lange Base64-Zeichenkette oder als eingebetteter Konfigurationsauszug. Token erscheinen als Abfrageparameter, und Anmeldedaten erscheinen in URLs, die ein Client wörtlich protokolliert hat.

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

Das zweite Muster ist das, das Menschen vergessen. Eine URL der Form Schema, Benutzer, Passwort, Host ist ein vollständiger Anmeldedatensatz, und Clients protokollieren solche URLs, wann immer ein Proxy oder ein Feed mit eingebetteter Authentifizierung konfiguriert ist.

Senden Sie niemals die Originaldatei als Beweis dafür, dass Sie sie nicht bearbeitet haben. Wenn ein Betreiber auf einem unveränderten Export besteht, fragen Sie, wofür er ihn braucht, senden Sie ihn über den verifizierten Supportkanal und löschen Sie danach Ihre lokale Kopie. Diese Anfrage ist legitim; ein öffentliches Einfügen ist es nicht.

Erstellen Sie die redigierte Kopie und senden Sie den Auszug

Arbeiten Sie auf einer Kopie, bewahren Sie das Original an einem geschützten Ort auf und redigieren Sie mit einem wiederholbaren Befehl statt von Hand. Ein einziger Durchlauf über die Adressmuster erfasst das meiste davon:

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

Die endgültige Zahl sollte null sein. Ist sie es nicht, hat der Redaktionsdurchlauf eine Form übersehen, und Sie sollten sich diese Zeilen ansehen, bevor Sie etwas senden. Lesen Sie die redigierte Datei außerdem einmal mit eigenen Augen; ein Skript erfasst Muster, nicht Kontext.

Senden Sie den kleinsten Auszug, der den Fehler noch zeigt. Zehn Zeilen um den Fehler sind meist genug, und sie sind weit leichter zu prüfen als eine zwei Megabyte große Datei. Bewahren Sie dann die Zuordnung zwischen Ihren Bezeichnungen und den echten Werten an einem Ort auf, den Sie kontrollieren, denn die Rückfrage wird sie brauchen.

Die OpenVPN-Dokumentation zur Protokollierung beschreibt, wie Ausführlichkeitsstufen ändern, was aufgezeichnet wird, was nützlicher Kontext ist, um zu entscheiden, wie viel der Datei das Problem tatsächlich benötigt.

Ähnliche Artikel