تعامل مع ملف OVPN كمدخل لبرنامج، لا كشهادة بأن محتواه غير ضار. التحقق من عنوان الخادم يجيب فقط عن المكان الذي يريد الملف الشخصي الاتصال به، ولا شيء غير ذلك. يوجد داخل ذلك الملف قراران منفصلان للثقة: ما يجوز للعميل فعله على جهازك، والمشغّل الذي يستقبل حركة المرور. واسم بروتوكول مألوف لا يحسم أيًّا منهما.

قراران يختبئان في ملف واحد

القرار الأول محلي. الملف الشخصي لغة تهيئة، والعميل الذي يقرأه قد يدعم توجيهات تحمّل إضافة أو تشغّل نصًا برمجيًا أو تغيّر طريقة تطبيق التوجيه وDNS. القرار الثاني بعيد. وأيًا كان ما يحتويه الملف، فإن مشغّل المخرج يرى حركة المرور التي تصل إليه.

الخلط بين الاثنين ينتج نصيحة سيئة في الاتجاهين: ملف يبدو نظيفًا من مشغّل مجهول، أو ملف مشغّل معروف يحمل خطافًا لم يقرأه أحد. والملف الآمن محليًا قد يسلّم حركة مرورك إلى من لا تختاره.

اقرأ الملف الشخصي قبل أن يفعله أي عميل

اقرأ الملف كنص قبل أن يعالجه أي عميل. ابحث عن التوجيهات التي تشير إلى خارج الملف أو تستدعي برامج تنفيذية أو تغيّر الامتيازات، وقارن تلك القائمة بالدعم الموثّق للعميل. البحث القصير ليس مراجعة أمنية، لكنه يخبرك هل الملف قائمة خوادم أم شيء أكثر.

grep -nE '^(script-security|up|down|plugin|route-up|ipchange)' untrusted.ovpn

النتيجة الفارغة مطمئنة وليست قاطعة، لأن الخيارات قد تتفاعل أو يأتي بها ملف مُضمَّن. اعتبر القائمة المفلترة سببًا لمواصلة القراءة، لا حكمًا نهائيًا.

التعليمات التي تصل مع الملف الشخصي تستحق التدقيق نفسه الذي يستحقه الملف. أربعة مطالب يجب أن توقفك: تمكين النصوص البرمجية، أو تثبيت مساعد أو مكتبة، أو تشغيل العميل كمسؤول، أو إضعاف قيد استيراد. كل واحد منها يزيح حدود الثقة إلى الخارج، ولا شيء منها جزء عادي من استيراد قائمة خوادم.

اقرأ الملف كله مرة واحدة أيضًا، لأن سطرًا واحدًا غير مألوف أسهل في الحكم عليه داخل السياق منه في قائمة مفلترة. وإذا كان السطر غير مألوف، فابحث عنه في دليل عميلك بدلًا من التخمين.

ما سينفّذه العميل فعليًا

دليل 2.6 من Community OpenVPN يوثّق سلّم script-security: المستوى 1 هو الافتراضي ويمنع النصوص البرمجية التي يعرّفها المستخدم، بينما المستوى 2 يسمح بها. تحميل الإضافات مرفق منفصل له توجيهه الخاص. ولهذا قد يعني الملف نفسه أشياء مختلفة في عملاء مختلفين. وقد يقبل عملاء الهواتف والمورّدين مجموعة أضيق من التوجيهات، أو لا يقبلون أيًّا من الخطافات.

طريقة التشغيل لا تقل أهمية عن العميل. فالملف الذي يبدأه مساعد ذو امتيازات يمكنه فعل أكثر من ملف يبدأ في مساحة المستخدم، وهذا الفرق سبب لقراءة موجه الاستيراد بدلًا من تجاهله.

الإصدار مهم أيضًا، لأن هذه المستويات تُعرَّف لكل إصدار، وقد لا يطبّق عميل متأخر بعدة إصدارات السياسة نفسها. اقرأ الدليل المطابق للنسخة التي تشغّلها، لا أحدث نسخة تجدها. وإذا لم يُظهر العميل سلسلة إصدار في أي مكان، فهذا سبب كافٍ للتمهّل.

قارن المشغّل، لا العنوان وحده

قارن المشغّلين كما تقارن أي وسيط آخر. اسأل من يدير المخرج، وماذا يسجّلون، وكيف وصل إليك الملف. وصفحة تنزيل موثّقة وبصمة مطابقة تقولان أكثر من اسم مضيف مألوف. والخادم الذي يستجيب يثبت فقط أن شيئًا ما أجاب.

بيانات الاعتماد هي الجزء الذي يخطئ فيه الناس تحت الضغط. لا تكتب كلمة مرور حساب غير ذي صلة في ملف منزّل لأن اسم خادمه يبدو مألوفًا. وقد يحمل الملف مفتاحًا خاصًا مكشوفًا، فنشر الملف كله في موضوع مراجعة يسلّم ذلك المفتاح للموضوع.

جلسة HTTPS المُتحقَّق منها جيدًا ما زالت تخفي محتوى الصفحة عمّن يمرّر الحزم فقط، لذا لا يرى المخرج كل كلمة مرور تلقائيًا. لكنه يرى المواقع التي تصل إليها، وهذا الحد يستحق أن يُقال بدقة لا بمبالغة.

حين يبقى مصدر الملف غير واضح، أو يكون للامتياز الذي يطلبه تفسير لا يمكنك قبوله، استبدل الملف بملف من مصدر يمكن محاسبته. وعلى اتصال عمل مُدار، ينبغي للمسؤول أن يوافق على العميل والتهيئة كقرار واحد لا كقرارين. ولا شيء هنا يطلب منك إثبات سوء نية أولًا؛ ورفض الوصول إجابة مشروعة.

مقالات ذات صلة