Ανοίγετε ένα αίτημα υποστήριξης, επισυνάπτετε την εξαγωγή διαγνωστικών που παρήγαγε ο πελάτης και περιμένετε. Το αρχείο πιθανότατα δεν περιέχει καθόλου ιστορικό περιήγησης, και αυτό ακριβώς το κάνει να φαίνεται ασφαλές. Περιέχει ωστόσο ποιος είστε, ποιο μηχάνημα χρησιμοποιήσατε, ποιες εσωτερικές διευθύνσεις προσεγγίσατε και πότε, και περιστασιακά ένα ιδιωτικό κλειδί που αντιγράφτηκε από πελάτη που καταγράφει τη διαμόρφωσή του. Το πέρασμα του αρχείου πριν το στείλετε διαρκεί περίπου πέντε λεπτά και αποτρέπει μια μόνιμη αποκάλυψη.

Ανοίξτε το και διαβάστε τις πρώτες σαράντα γραμμές

Ξεκινήστε από την κορυφή, όπου οι πελάτες συνήθως αδειάζουν έκδοση, πλατφόρμα και διαμόρφωση. Οι πρώτες γραμμές σας λένε πόσο αναλυτικό είναι το αρχείο, και αυτό καθορίζει πόσο από τα υπόλοιπα πρέπει να σας απασχολήσουν. Ένα προεπιλεγμένο αρχείο καταγραφής και ένα αρχείο εντοπισμού σφαλμάτων είναι διαφορετικά τεκμήρια με διαφορετική έκθεση.

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

Ελέγξτε επίσης το μέγεθος και το σχήμα του αρχείου πριν διαβάσετε οτιδήποτε από αυτό. Ένα αρχείο κειμένου δύο μεγαμπάιτ με ένα επαναλαμβανόμενο συμβάν κόβεται εύκολα. Μια δυαδική καταγραφή στον ίδιο φάκελο είναι εντελώς άλλο πρόβλημα και χρειάζεται άλλη συζήτηση με όποιον ζήτησε την εξαγωγή.

Στα Windows τα αντίστοιχα είναι ένα cmdlet το καθένα, και το πρώτο αξίζει να το τρέξετε σε κάθε αρχείο που δεν δημιουργήσατε εσείς:

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

Τα πεδία που ταυτοποιούν ένα πρόσωπο

Τα ονόματα χρηστών εμφανίζονται σε σημεία που οι άνθρωποι δεν περιμένουν: ο λογαριασμός που χρησιμοποιείται για έλεγχο ταυτότητας, το θέμα του πιστοποιητικού, η διαδρομή προφίλ κάτω από έναν κατάλογο αρχικού χρήστη και το όνομα μηχανήματος που συχνά κωδικοποιεί ένα πραγματικό όνομα. Ένα αρχείο καταγραφής που επεξεργάζεται το πεδίο του λογαριασμού και αφήνει άθικτη τη διαδρομή αρχικού χρήστη δεν έχει επεξεργαστεί τίποτα.

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

Η συνέπεια μετράει περισσότερο από την πληρότητα όταν ένας μηχανικός υποστήριξης πρέπει να ακολουθήσει μία συνεδρία μέσα στο αρχείο. Αντικαταστήστε τις τιμές με σταθερές ετικέτες αντί να τις διαγράψετε, ώστε κάθε εμφάνιση του ίδιου χρήστη να διαβάζεται ακόμη ως ο ίδιος χρήστης. Η πλήρης διαγραφή του πεδίου σπάει το νήμα που χρειάζεται ο μηχανικός και δεν κάνει το αρχείο ασφαλέστερο.

Η χρονική σφραγίδα είναι επίσης προσωπικά δεδομένα στο σύνολό της. Οι ώρες κατά τις οποίες συνδέθηκε ένας λογαριασμός, λαμβανόμενες σε έναν μήνα, περιγράφουν ώρες εργασίας και ταξίδια. Αν η ερώτηση δεν χρειάζεται το πλήρες εύρος, κόψτε το αρχείο στο παράθυρο γύρω από το συμβάν.

Τα πεδία που ταυτοποιούν ένα δίκτυο

Οι διευθύνσεις ακραίων σημείων, οι εσωτερικές διαδρομές και οι επιλογές που ωθούνται περιγράφουν το σχήμα ενός ιδιωτικού δικτύου. Αυτή είναι ακριβώς η πληροφορία που θα ήθελε να έχει ένας επιτιθέμενος, και συνήθως υπάρχει με πολύ περισσότερη λεπτομέρεια απ’ όση χρειάζεται το αίτημα.

Αναζητήστε την οικογένεια διευθύνσεων που χρησιμοποιείται, όχι μόνο αυτή που περιμένατε. Ένας πελάτης διπλού στοίβας μπορεί να καταγράψει ένα ακραίο σημείο IPv6 και ένα σύνολο διαδρομών IPv6 που κανείς δεν σκέφτηκε να επεξεργαστεί, επειδή η ανασκόπηση έψαχνε μόνο τετράδες με τελείες.

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

Η μοναδική λίστα είναι το νόημα. Σας λέει πόσες διαφορετικές διευθύνσεις αναφέρει το αρχείο, που συνήθως είναι πολύ λιγότερες απ’ ό,τι φαίνεται όσο κάνετε κύλιση. Σας δίνει επίσης μια λίστα ελέγχου για επεξεργασία και έναν τρόπο να αποδείξετε ότι τις καλύψατε όλες. Δέκα διευθύνσεις είναι δουλειά πέντε λεπτών, και εκατό σας λένε ότι η εξαγωγή είναι ευρύτερη από την ερώτηση.

Κρατήστε την τοπολογία αν τη χρειάζεται ο μηχανικός. Η αντικατάσταση του δεύτερου και του τρίτου οκτέτου διατηρώντας τις σχέσεις υποδικτύου απαντά στην ερώτηση χωρίς να δημοσιεύει το εύρος. Το ίδιο κόλπο δουλεύει για προθέματα IPv6. Αυτό που χρειάζεται ο μηχανικός είναι το σχήμα της βλάβης, και το σχήμα επιβιώνει μιας συνεπούς αντικατάστασης.

Τα μυστικά κρύβονται σε σχήματα, όχι σε ετικέτες

Ένα ιδιωτικό κλειδί δεν χρειάζεται τη λέξη “password” κοντά του. Εμφανίζεται ως μπλοκ ανάμεσα σε γραμμές δεικτών, ως μακρύ αλφαριθμητικό base64 ή ως ενσωματωμένη απόρριψη διαμόρφωσης. Τα token εμφανίζονται ως παράμετροι ερωτήματος, και τα διαπιστευτήρια εμφανίζονται μέσα σε URL που κατέγραψε ένας πελάτης αυτολεξεί.

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

Το δεύτερο μοτίβο είναι αυτό που ξεχνούν οι άνθρωποι. Ένα URL της μορφής σχήμα, χρήστης, κωδικός, κεντρικός υπολογιστής είναι πλήρες διαπιστευτήριο, και οι πελάτες καταγράφουν τέτοια URL όποτε ένας διακομιστής μεσολάβησης ή μια ροή διαμορφώνεται με ενσωματωμένο έλεγχο ταυτότητας.

Μην στέλνετε ποτέ το αρχικό αρχείο ως απόδειξη ότι δεν το επεξεργαστήκατε. Αν κάποιος χειριστής επιμένει σε μη τροποποιημένη εξαγωγή, ρωτήστε για τι τη χρειάζεται, στείλτε την μέσω του επαληθευμένου καναλιού υποστήριξής τους και διαγράψτε μετά το τοπικό σας αντίγραφο. Αυτό το αίτημα είναι νόμιμο· μια δημόσια επικόλληση δεν είναι.

Φτιάξτε το επεξεργασμένο αντίγραφο και στείλτε το απόσπασμα

Δουλέψτε σε ένα αντίγραφο, κρατήστε το πρωτότυπο σε προστατευμένο μέρος και επεξεργαστείτε με επαναλήψιμη εντολή αντί με το χέρι. Ένα μόνο πέρασμα στα μοτίβα διευθύνσεων πιάνει το μεγαλύτερο μέρος:

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

Ο τελικός αριθμός πρέπει να είναι μηδέν. Αν δεν είναι, το πέρασμα επεξεργασίας έχασε ένα σχήμα και θα πρέπει να δείτε αυτές τις γραμμές πριν στείλετε οτιδήποτε. Διαβάστε το επεξεργασμένο αρχείο μία φορά και με τα δικά σας μάτια· ένα σενάριο πιάνει μοτίβα, όχι πλαίσιο.

Στείλτε το μικρότερο απόσπασμα που δείχνει ακόμη τη βλάβη. Δέκα γραμμές γύρω από το σφάλμα είναι συνήθως αρκετές, και είναι πολύ ευκολότερο να ελεγχθούν από ένα αρχείο δύο μεγαμπάιτ. Μετά κρατήστε την αντιστοίχιση μεταξύ των ετικετών σας και των πραγματικών τιμών σε μέρος που ελέγχετε, γιατί η επόμενη ερώτηση θα τη χρειαστεί.

Η τεκμηρίωση καταγραφής του OpenVPN περιγράφει πώς τα επίπεδα λεπτομέρειας αλλάζουν το τι καταγράφεται, που είναι χρήσιμο πλαίσιο για να αποφασίσετε πόσο από το αρχείο απαιτεί πραγματικά το πρόβλημα.

Σχετικά άρθρα