دليل المهندس لمعالجة ضوابط موردي CI/CD

ما الذي يجب تغييره بشكل ملموس في بيئات CI/CD الحقيقية

🔐 تقوية الوصول والهوية

في حال فشل ضوابط SSO/MFA:

  • فرض SAML SSO لمؤسسة GitHub/GitLab.
  • تعطيل تسجيل الدخول بكلمة المرور للمسؤولين.
  • فرض MFA المستند إلى الأجهزة للأدوار ذات الصلاحيات العالية.
  • إزالة رموز الوصول الشخصية التي ليس لها تاريخ انتهاء.
  • تكوين التدوير التلقائي للرموز.

🧱 عزل Runner

في حال استخدام runners مشتركة في pipelines منظمة:

  • الانتقال إلى runners مستضافة ذاتياً ومعزولة.
  • استخدام مجموعة runner واحدة لكل مستوى حساسية.
  • تقييد تنفيذ runner لمشاريع محددة.
  • تعطيل runners “العامة/المشتركة” للمستودعات المنظمة.

🚫 بوابات السياسة لا تحظر

في حال كانت نتائج SAST/SCA/DAST استشارية فقط:

  • تحويل عتبات الخطورة الحرجة إلى حظر.
  • طلب موافقة أمنية للتجاوز.
  • تسجيل كل تجاوز مع مرجع التذكرة.
  • إضافة تاريخ انتهاء لموافقات الاستثناء.

📦 سلامة القطع الأثرية

في حال عدم وجود توقيع للقطع الأثرية:

  • تنفيذ توقيع الحاويات/الصور (Cosign / Notary).
  • فرض التحقق من التوقيع عند النشر.
  • حظر القطع الأثرية غير الموقعة في مرحلة الإصدار.
  • تخزين سجلات التحقق من التوقيع.

مركزية الأدلة

في حال وجود السجلات فقط في واجهة المورد:

  • بث سجلات CI/CD إلى SIEM.
  • تصدير تقارير الفحص إلى مخزن أدلة مركزي.
  • التقاط أحداث الموافقة.
  • أرشفة تعريفات pipeline لكل إصدار.

🔁 ضعف استراتيجية الخروج

في حال وجود خطة خروج ولكنها غير مختبرة:

  • تصدير المستودع الكامل + الفروع.
  • تصدير ملفات YAML الخاصة بـ pipeline.
  • تصدير صور الحاويات.
  • محاكاة إعادة البناء في نظام CI بديل.
  • توثيق وقت الاستعادة.

يجب أن يتضمن اختبار الخروج إعادة بناء حقيقية للقطع الأثرية.

النقطة العمياء للمعالجين الفرعيين

في حال عدم وجود رؤية للمعالجين الفرعيين:

  • طلب القائمة الرسمية من المورد.
  • توثيق التغييرات بشكل ربع سنوي.
  • تعيين المعالجين الفرعيين الحرجين في بنية النظام.
  • إضافة بند يتطلب الإشعار.