اقرأ سجل VPN قبل أن ترسله: حقلًا بحقل
تحتوي سجلات الدعم على أسماء المستخدمين وأسماء الشهادات والعناوين الداخلية وأحيانًا مفتاح. تنقّل في الحقول، وابحث عن الأسرار، ثم أرسل مقتطفًا منقّحًا.
تفتح تذكرة دعم، وترفق تصدير التشخيص الذي أنشأه العميل، ثم تنتظر. على الأرجح لا يحتوي الملف على أي سجل تصفح على الإطلاق، وهذا ما يجعله يبدو آمنًا. لكنه ما زال يحتوي على من أنت، وعلى الجهاز الذي استخدمته، وعلى العناوين الداخلية التي وصلت إليها ومتى، وأحيانًا مفتاح خاص نسخه عميل يسجل إعداداته. مراجعة الملف قبل إرساله تستغرق نحو خمس دقائق وتمنع كشفًا دائمًا.
افتحه واقرأ الأسطر الأربعين الأولى
ابدأ من الأعلى، حيث تُفرغ العملاء عادةً الإصدار والمنصة والإعدادات. تخبرك الأسطر الأولى بمدى إسهاب الملف، وهو ما يحدد كم من بقيته عليك أن تهتم به. السجل الافتراضي وسجل التصحيح أثران مختلفان بتعرّض مختلف.
head -n 40 vpn-support.log
sed -n '1,40p' vpn-support.log | grep -nE 'version|platform|config|option'
تحقق أيضًا من حجم الملف وشكله قبل قراءة أي شيء منه. ملف نصي بحجم ميغابايتين يتكرر فيه حدث واحد سهل التقليم. أما لقطة ثنائية في المجلد نفسه فهي مشكلة مختلفة تمامًا، وتحتاج إلى محادثة مختلفة مع من طلب التصدير.
على Windows، المكافئان أمر واحد لكل منهما، والأول يستحق التشغيل على أي ملف لم تنشئه بنفسك:
Get-Content .\vpn-support.txt -TotalCount 40
Get-Item .\vpn-support.txt | Select-Object Length,LastWriteTime
الحقول التي تحدد هوية الشخص
تظهر أسماء المستخدمين في مواضع لا يتوقعها الناس: الحساب المستخدم للمصادقة، وموضوع الشهادة، ومسار الملف الشخصي تحت المجلد الرئيسي، واسم الجهاز الذي غالبًا ما يشفّر اسمًا حقيقيًا. سجل ينقّح حقل الحساب ويترك مسار المجلد الرئيسي سليمًا لم ينقّح شيئًا.
| 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 |
الاتساق أهم من الاكتمال عندما يتعين على مهندس دعم تتبع جلسة واحدة عبر الملف. استبدل القيم بتسميات ثابتة بدلًا من حذفها، حتى يبقى كل ظهور للمستخدم نفسه مقروءًا على أنه المستخدم نفسه. حذف الحقل بالكامل يقطع الخيط الذي يحتاجه المهندس ولا يجعل الملف أكثر أمانًا.
الطابع الزمني هو أيضًا بيانات شخصية بمعناها المجموع. أوقات اتصال حساب ما، عبر شهر كامل، تصف ساعات العمل والسفر. إن لم يكن السؤال يحتاج النطاق الكامل، فاقتطع الملف إلى النافذة المحيطة بالحدث.
الحقول التي تحدد هوية الشبكة
تصف عناوين نقاط النهاية والمسارات الداخلية والخيارات المدفوعة شكل الشبكة الخاصة. هذه تحديدًا هي المعلومات التي يرغب المهاجم في الحصول عليها، وهي عادة موجودة بتفصيل أكبر بكثير مما تحتاجه التذكرة.
ابحث عن عائلة العناوين المستخدمة، لا عن تلك التي توقعتها فقط. يمكن لعميل ثنائي المكدس أن يسجل نقطة نهاية 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 طويلة، أو إفراغ إعدادات مضمّن. تظهر الرموز كمعاملات استعلام، وتظهر بيانات الاعتماد داخل عناوين 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 بالصيغة: المخطط، المستخدم، كلمة المرور، المضيف هو بيانات اعتماد كاملة، والعملاء يسجلون مثل هذه العناوين كلما كان وكيل أو مصدر مُعدّ بمصادقة مضمّنة.
لا ترسل الملف الأصلي أبدًا كوسيلة لإثبات أنك لم تعدله. إذا أصر مشغل على تصدير غير معدل، فاسأل عمّ يحتاجه، وأرسله عبر قناته المدعومة الموثقة، ثم احذف نسختك المحلية بعد ذلك. هذا الطلب مشروع؛ أما اللصق العلني فليس كذلك.
أنشئ النسخة المنقّحة وأرسل المقتطف
اعمل على نسخة، واحفظ الأصل في مكان محمي، ونقّح بأمر قابل للتكرار بدلًا من اليد. تمريرة واحدة على أنماط العناوين تلتقط معظمه:
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 كيف تغيّر مستويات الإسهاب ما يتم تسجيله، وهي سياق مفيد لتحديد مقدار الملف الذي تتطلبه المشكلة فعليًا.