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

الترتيب مهم: المكوّن أولًا، والنشرة ثانيًا، والمعالجة ثالثًا.

التقرير يسمّي منفذًا لا برنامجًا

ابدأ من نقطة النهاية التي جرى تقييمها فعليًا. ففحص منفذ الإدارة HTTPS قاس خدمة الويب ومكدس TLS وأي وكيل يقف أمامها؛ ولم يعرف شيئًا عن مستمع OpenVPN أو WireGuard على منفذ آخر. والوكلاء العكوسون ووكلاء الإدارة يزيدون الأمر سوءًا، لأن الشهادة واللافتة قد تنتميان إلى الواجهة الأمامية بينما تقع المكتبة المصابة خلفها في عملية خلفية.

سجّل الوجهة والنقل والمنفذ واسم الخدمة مع النتيجة كي ينتقل النطاق مع النتيجة.

ما هو البناء قيد التشغيل في الواقع

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

systemctl status openvpn-server@server --no-pager
ps -o pid,lstart,args -C openvpn
ss -lntup | grep -E '1194|443'
dpkg -l | grep -i -E 'openvpn|libssl'
ldd "$(command -v openvpn)" | grep -i ssl

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

مطابقة البناء مع نطاق النشرة

تصف النشرات المنتجات والإصدارات وأحيانًا شروطًا مطلوبة، وهذه الحقول الثلاثة لا تتوافق دائمًا مع إصدار حزمة. ونشرة Heartbleed الصادرة في أبريل 2014 من OpenVPN مثال تاريخي مفيد، لأنها تفصل إصدارات Access Server المتأثرة عن خدمات الويب وخوادم VPN، التي كان تعرضها مختلفًا. والدرس هو قراءة أي مكوّن يغطيه النص بدلًا من مطابقة كلمة OpenSSL نمطيًا.

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

حلّ الخلاف ثم إغلاق التعرض

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

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

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

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