الأحدث الأكثر رواجاً استكشف الخطوط الزمنية التصنيفات
←كل الشروحات

شرح تقني

كيف تنتشر ثغرة المكتبة عبر تبعيات البرمجيات

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

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

أين يمكن أن تختبئ الشفرة الضعيفة؟

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

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

لماذا قد يضللنا رقم الإصدار؟

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

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

إمكان الوصول أهم من الوجود

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

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

كيف تساعد قائمة مكونات البرمجيات؟

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

تسلسل عملي للاستجابة

  1. تأكيد المكون والإصدارات وشروط الاستغلال من النشرات الأصلية.
  2. فحص أنظمة التشغيل وملفات الحزم والقفل وصور الحاويات والملفات التنفيذية.
  3. تحديد ما إذا كان المكون مشتركاً أو مضمناً أو مربوطاً ثابتاً.
  4. التحقق من إمكان وصول مدخلات غير موثوقة إلى الوظيفة الضعيفة.
  5. تطبيق التصحيح أو إعادة البناء أو تعطيل الميزة الخطرة مؤقتاً.
  6. إعادة النشر والتشغيل عند الحاجة، ثم التحقق من الملف العامل فعلياً.
  7. مراقبة مؤشرات الاستغلال وإزالة الصور والملفات القديمة.

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

ظهر أول مرة في

استغلال ثغرة Brotli يوسع حملة التحديثات إلى ما بعد Node.js

يتوفر إصدار جديد من نيو تقنية.