Anda membuka tiket sokongan, melampirkan eksport diagnostik yang dihasilkan klien, dan menunggu. Fail itu mungkin tidak mengandungi sejarah pelayaran langsung, dan itulah yang membuatkannya terasa selamat. Namun ia masih mengandungi siapa anda, mesin mana yang digunakan, alamat dalaman mana yang dicapai dan bila, dan kadangkala kunci peribadi yang disalin oleh klien yang merekodkan konfigurasinya. Menelusuri fail sebelum menghantarnya mengambil masa kira-kira lima minit dan menghalang pendedahan kekal.

Bukanya dan baca empat puluh baris pertama

Mulakan dari atas, tempat klien biasanya meluahkan versi, platform dan konfigurasi. Baris pertama memberitahu betapa terperincinya fail itu, yang menentukan berapa banyak daripada selebihnya yang perlu anda ambil peduli. Log lalai dan log nyahpepijat ialah artifak berbeza dengan pendedahan berbeza.

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

Periksa juga saiz dan bentuk fail sebelum membaca apa-apa daripadanya. Fail teks dua megabait dengan satu peristiwa berulang mudah dipangkas. Tangkapan binari dalam folder yang sama ialah masalah yang sama sekali berbeza, dan ia memerlukan perbualan lain dengan sesiapa yang meminta eksport itu.

Dalam Windows pasangannya ialah satu cmdlet setiap satu, dan yang pertama wajar dijalankan pada mana-mana fail yang bukan anda cipta sendiri:

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

Medan yang mengenal pasti seseorang

Nama pengguna muncul di tempat yang orang tidak jangkakan: akaun yang digunakan untuk pengesahan, subjek sijil, laluan profil di bawah direktori rumah, dan nama mesin yang sering mengekod nama sebenar. Log yang menyunting medan akaun tetapi membiarkan laluan rumah utuh tidak menyunting apa-apa.

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

Konsistensi lebih penting daripada kelengkapan apabila jurutera sokongan perlu menjejaki satu sesi merentasi fail. Gantikan nilai dengan label stabil dan bukan menghapuskannya, supaya setiap kemunculan pengguna yang sama masih terbaca sebagai pengguna yang sama. Menghapuskan medan sepenuhnya memutuskan benang yang diperlukan jurutera dan tidak menjadikan fail lebih selamat.

Cap masa juga data peribadi secara agregat. Waktu sesuatu akaun bersambung, jika diambil sepanjang sebulan, menggambarkan waktu kerja dan perjalanan. Jika soalan tidak memerlukan julat penuh, pangkas fail kepada tetingkap di sekitar peristiwa itu.

Medan yang mengenal pasti rangkaian

Alamat titik akhir, laluan dalaman dan pilihan yang ditolak menggambarkan bentuk rangkaian peribadi. Itulah maklumat yang penyerang mahu ada, dan ia biasanya hadir jauh lebih terperinci daripada yang diperlukan tiket.

Cari keluarga alamat yang digunakan, bukan hanya yang anda jangkakan. Klien dwi-tindanan boleh merekod titik akhir IPv6 dan satu set laluan IPv6 yang tiada siapa terfikir untuk menyunting kerana semakan hanya mencari kuadrup bertitik.

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

Senarai unik ialah intinya. Ia memberitahu berapa banyak alamat berbeza yang disebut fail, yang biasanya jauh lebih sedikit daripada yang terasa semasa menatal. Ia juga memberi anda senarai semak untuk menyunting dan cara membuktikan anda telah meliputi semuanya. Sepuluh alamat ialah kerja lima minit, dan seratus memberitahu eksport itu lebih luas daripada soalan.

Kekalkan topologi jika jurutera memerlukannya. Menggantikan oktet kedua dan ketiga sambil mengekalkan hubungan subnet menjawab soalan tanpa menerbitkan julat. Helah yang sama berfungsi untuk awalan IPv6. Apa yang jurutera perlukan ialah bentuk kegagalan, dan bentuk itu bertahan selepas penggantian yang konsisten.

Rahsia bersembunyi dalam bentuk, bukan label

Kunci peribadi tidak memerlukan perkataan “password” berdekatan. Ia muncul sebagai blok antara baris penanda, sebagai rentetan base64 yang panjang, atau sebagai longgokan konfigurasi sebaris. Token muncul sebagai parameter pertanyaan, dan kelayakan muncul di dalam URL yang direkodkan klien secara verbatim.

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

Corak kedua ialah yang orang lupakan. URL berbentuk skema, pengguna, kata laluan, hos ialah kelayakan lengkap, dan klien merekodkan URL sedemikian setiap kali proksi atau suapan dikonfigurasikan dengan pengesahan sebaris.

Jangan sekali-kali menghantar fail asal sebagai bukti bahawa anda tidak menyuntingnya. Jika pengendali berkeras mahukan eksport tanpa ubah, tanyakan untuk apa ia diperlukan, hantarkannya melalui saluran sokongan mereka yang disahkan, dan kemudian padamkan salinan tempatan anda. Permintaan itu sah; tampalan awam tidak.

Bina salinan yang disunting dan hantar petikan

Bekerja pada salinan, simpan asal di tempat terlindung, dan sunting dengan arahan yang boleh diulang dan bukan dengan tangan. Satu laluan pada corak alamat menangkap sebahagian besarnya:

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

Kiraan akhir sepatutnya sifar. Jika tidak, laluan penyuntingan terlepas satu bentuk dan anda patut melihat baris itu sebelum menghantar apa-apa. Baca juga fail yang disunting sekali dengan mata anda sendiri; skrip menangkap corak, bukan konteks.

Hantar petikan terkecil yang masih menunjukkan kegagalan. Sepuluh baris di sekitar ralat biasanya cukup, dan ia jauh lebih mudah disemak daripada fail dua megabait. Kemudian simpan pemetaan antara label anda dan nilai sebenar di tempat yang anda kawal, kerana soalan susulan akan memerlukannya.

Dokumentasi pengelogan OpenVPN menerangkan bagaimana tahap verbositi mengubah apa yang direkodkan, yang merupakan konteks berguna untuk memutuskan berapa banyak fail yang benar-benar diperlukan oleh masalah itu.

Artikel berkaitan