Baca log VPN Anda sebelum mengirimnya: bidang demi bidang
Log dukungan memuat nama pengguna, nama sertifikat, alamat internal, dan kadang kunci. Telusuri bidangnya, cari rahasia, lalu kirim kutipan yang disunting.
Anda membuka tiket dukungan, melampirkan ekspor diagnostik yang dibuat klien, lalu menunggu. Berkas itu kemungkinan besar tidak memuat riwayat penjelajahan sama sekali, dan itulah yang membuatnya terasa aman. Namun berkas itu tetap memuat siapa Anda, mesin mana yang dipakai, alamat internal mana yang dijangkau dan kapan, serta kadang kunci privat yang disalin oleh klien yang mencatat konfigurasinya. Menelusuri berkas sebelum mengirimnya memakan waktu sekitar lima menit dan mencegah pengungkapan permanen.
Buka dan baca empat puluh baris pertama
Mulai dari atas, tempat klien biasanya mencurahkan versi, platform, dan konfigurasi. Baris pertama memberi tahu seberapa detail berkas itu, yang menentukan seberapa banyak sisanya perlu Anda perhatikan. Log bawaan dan log debug adalah artefak berbeda dengan paparan berbeda.
head -n 40 vpn-support.log
sed -n '1,40p' vpn-support.log | grep -nE 'version|platform|config|option'
Periksa juga ukuran dan bentuk berkas sebelum membaca apa pun darinya. Berkas teks dua megabita dengan satu peristiwa berulang mudah dipangkas. Tangkapan biner di folder yang sama adalah masalah yang sama sekali berbeda, dan perlu percakapan lain dengan pihak yang meminta ekspor itu.
Di Windows padanannya masing-masing satu cmdlet, dan yang pertama layak dijalankan pada berkas apa pun yang tidak Anda buat sendiri:
Get-Content .\vpn-support.txt -TotalCount 40
Get-Item .\vpn-support.txt | Select-Object Length,LastWriteTime
Bidang yang mengidentifikasi seseorang
Nama pengguna muncul di tempat yang tidak diduga orang: akun yang dipakai untuk autentikasi, subjek sertifikat, jalur profil di bawah direktori beranda, dan nama mesin yang sering menyandikan nama asli. Log yang menyunting bidang akun tetapi membiarkan jalur beranda utuh tidak menyunting apa pun.
| Field | What it identifies | Practical treatment |
|---|---|---|
| Account or username | A person, and often an employer | Replace consistently, keep the mapping |
| Certificate subject and CN | Device or user identity | Keep the structure, replace the value |
| Home directory path | A login name, sometimes a full name | Replace the segment, not the whole path |
| Machine or hostname | A person or a physical location | Replace with a stable pseudonym |
Konsistensi lebih penting daripada kelengkapan ketika insinyur dukungan harus mengikuti satu sesi di seluruh berkas. Ganti nilai dengan label stabil alih-alih menghapusnya, agar setiap kemunculan pengguna yang sama tetap terbaca sebagai pengguna yang sama. Menghapus bidang sepenuhnya memutus benang yang dibutuhkan insinyur dan tidak membuat berkas lebih aman.
Stempel waktu juga data pribadi secara agregat. Waktu-waktu sebuah akun terhubung, jika diambil selama sebulan, menggambarkan jam kerja dan perjalanan. Jika pertanyaannya tidak membutuhkan rentang penuh, pangkas berkas ke jendela di sekitar peristiwa.
Bidang yang mengidentifikasi jaringan
Alamat titik akhir, rute internal, dan opsi yang didorong menggambarkan bentuk jaringan privat. Itulah tepatnya informasi yang ingin dimiliki penyerang, dan biasanya hadir jauh lebih rinci daripada yang dibutuhkan tiket.
Cari keluarga alamat yang dipakai, bukan hanya yang Anda perkirakan. Klien tumpukan ganda dapat mencatat titik akhir IPv6 dan sekumpulan rute IPv6 yang tidak terpikir untuk disunting karena tinjauan 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
Daftar unik adalah intinya. Itu memberi tahu berapa banyak alamat berbeda yang disebut berkas, yang biasanya jauh lebih sedikit daripada yang terasa saat menggulir. Itu juga memberi Anda daftar periksa untuk menyunting dan cara membuktikan bahwa Anda mencakup semuanya. Sepuluh alamat adalah pekerjaan lima menit, dan seratus memberi tahu bahwa ekspornya lebih luas daripada pertanyaannya.
Pertahankan topologi jika insinyur membutuhkannya. Mengganti oktet kedua dan ketiga sambil mempertahankan hubungan subnet menjawab pertanyaan tanpa menerbitkan rentangnya. Trik yang sama berlaku untuk prefiks IPv6. Yang dibutuhkan insinyur adalah bentuk kegagalannya, dan bentuk itu bertahan setelah substitusi yang konsisten.
Rahasia bersembunyi dalam bentuk, bukan label
Kunci privat tidak perlu kata “password” di dekatnya. Kunci itu muncul sebagai blok di antara baris penanda, sebagai untai base64 panjang, atau sebagai curahan konfigurasi sebaris. Token muncul sebagai parameter kueri, dan kredensial muncul di dalam URL yang dicatat klien kata per kata.
grep -nE 'BEGIN [A-Z ]*PRIVATE KEY|password|passwd|token|secret|psk|auth-user-pass' vpn-support.log
grep -nE 'https?://[^ ]*:[^ ]*@' vpn-support.log
Pola kedua adalah yang dilupakan orang. URL berbentuk skema, pengguna, kata sandi, host adalah kredensial lengkap, dan klien mencatat URL semacam itu setiap kali proxy atau feed dikonfigurasi dengan autentikasi sebaris.
Jangan pernah mengirim berkas asli sebagai cara membuktikan Anda tidak menyuntingnya. Jika operator bersikeras pada ekspor tanpa perubahan, tanyakan untuk apa ia membutuhkannya, kirim melalui kanal dukungan mereka yang terverifikasi, lalu hapus salinan lokal Anda. Permintaan itu sah; tempelan publik tidak.
Buat salinan yang disunting dan kirim kutipannya
Bekerjalah pada salinan, simpan aslinya di tempat terlindungi, dan sunting dengan perintah yang dapat diulang alih-alih dengan tangan. Satu lintasan pada pola alamat menangkap sebagian 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
Hitungan akhirnya seharusnya nol. Jika tidak, lintasan penyuntingan melewatkan satu bentuk dan Anda harus melihat baris-baris itu sebelum mengirim apa pun. Baca juga berkas hasil suntingan sekali dengan mata Anda sendiri; skrip menangkap pola, bukan konteks.
Kirim kutipan terkecil yang masih memperlihatkan kegagalan. Sepuluh baris di sekitar galat biasanya cukup, dan jauh lebih mudah ditinjau daripada berkas dua megabita. Lalu simpan pemetaan antara label Anda dan nilai sebenarnya di tempat yang Anda kendalikan, karena pertanyaan lanjutan akan membutuhkannya.
Dokumentasi pencatatan OpenVPN menjelaskan bagaimana tingkat verbositas mengubah apa yang dicatat, yang merupakan konteks berguna untuk memutuskan seberapa banyak berkas yang benar-benar dibutuhkan masalah itu.