ما الذي يجب تغييره بشكل ملموس في بيئات 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 بديل.
- توثيق وقت الاستعادة.
يجب أن يتضمن اختبار الخروج إعادة بناء حقيقية للقطع الأثرية.
النقطة العمياء للمعالجين الفرعيين
في حال عدم وجود رؤية للمعالجين الفرعيين:
- طلب القائمة الرسمية من المورد.
- توثيق التغييرات بشكل ربع سنوي.
- تعيين المعالجين الفرعيين الحرجين في بنية النظام.
- إضافة بند يتطلب الإشعار.