حزمة خارجية ملوّثة أدخلت سلوكًا خبيثًا إلى تطبيقات الإنتاج

مكوّن طرف ثالث ملوّث

مقدمة

تعتمد فرق التطوير الحديثة على مكونات خارجية (Libraries/Packages) لتسريع البناء وتقليل زمن التسليم. لكن هذا الاعتماد قد يتحول إلى قناة تسلل إذا تعرضت سلسلة التوريد للاختراق أو حُقنت إحدى الحزم بسلوك خبيث دون علم الفريق.

كيف بدأ كل شيء؟

اعتمد فريق المنصة على حزمة خارجية لمعالجة السجلات. تلقى الفريق تحديثًا ثانويًا 1.2.9 → 1.2.10 بدا بريئًا، فأُدرج تلقائيًا عبر مدير الحزم أثناء عملية البناء. بعد ساعات من إطلاق النسخة، ظهرت اتصالات HTTP نحو نطاق لم يُسجَّل مسبقًا في خرائط الاتصالات، تتزامن مع تشغيل مهام مجدولة.

نقطة التلوث

مؤشرات الاكتشاف

كيف تلوّثت الحزمة؟

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

الاستجابة واحتواء الضرر

  1. تعطيل الإصدار الملوث: تثبيت نسخة آمنة محددة (Pin Version) وإلغاء التحديثات التلقائية.
  2. فحص سلاسل الاستدعاء: مراجعة lockfile، والتحقق من جميع التبعيات المتأثرة.
  3. حظر النطاقات المشبوهة: عبر الـ WAF وقواعد الـ egress في الجدار الناري.
  4. مراجعة الأسرار: تدوير مفاتيح الوصول والرموز التي ربما تسربت.
  5. إعادة بناء نظيفة: من صور موثوقة وتشفير الأ artefacts مع تحقق تجزئة صارم.

تحسينات وقائية لسلسلة التوريد

الدروس المستفادة