
CICD-Goat-Vapt-Writeup — Updated!
توثيق VAPT كامل لـ OWASP CICD-Goat — تم التقاط 9 أعلام CTFd، و4 نتائج حرجة + 5 نتائج عالية الخطورة (بما في ذلك CVE-2024-23897) مرتبطة بمخاطر OWASP Top 10 CI/CD Security Risks، مع PoCs والإصلاحات وملخصات جاهزة للمقابلات.
تقرير VAPT لـ CICD-Goat
تقييم واختبار اختراق كامل للثغرات الأمنية ضد OWASP CICD-Goat — بيئة CI/CD مصممة لتكون قابلة للاختراق عمدًا (Jenkins، Gitea، GitLab، CTFd) — ومُصنَّف من البداية إلى النهاية وفقًا لـ OWASP Top 10 CI/CD Security Risks.
🧭 كيف يتناسب هذا مع مستودعاتي الأخرى
| المستودع | ما يحتويه |
|---|---|
| CICD-Goat-Vapt-Writeup (هذا المستودع) | تقرير VAPT كامل ضد OWASP CICD-Goat — 16 نتيجة بما في ذلك CVE-2024-23897، مُصنَّفة وفقًا لـ OWASP Top 10 CI/CD Security Risks، مع إثباتات مفهوم (PoCs) وملخصات جاهزة للمقابلات |
| From-Dev-To-Attacker | سجلّي الميداني الرئيسي — 67 تقريرًا أصليًا حول أنماط الثغرات، مكتوبة من منظور المطوّر، مع تأطير تأثير النطاق المؤسسي عبر ضريبة الدخل، والخدمات المصرفية، والتجزئة، والتجارة الإلكترونية، والخدمات اللوجستية للشحن، والتعليم |
| From-Pentester-To-Red-Teamer | خارطة طريقي المنظمة لمدة 24 شهرًا للانتقال من اختبار اختراق الويب/API إلى الفريق الأحمر — المراحل، والمختبرات، والشهادات، والتقدم المُتابَع علنًا أثناء عملي عليها |
| AppSec-From-The-Trenches | مرجع أدوات ومنهجية اختبار الاختراق — كيف أستخدم فعليًا Burp Suite وNmap وMetasploit وHydra وHashcat وغيرها، بالإضافة إلى منهجية WAPT الخاصة بي |
| API-From-The-Trenches | سلسلة متعمقة حول أمان API — تغطية OWASP API Top 10، وBOLA، وهجمات JWT، واختبار GraphQL، والمنهجية الكاملة |
| Bug-Bounty-Hunting-Companion | تقارير مكافآت الثغرات الحقيقية والمُفصح عنها علنًا، مُقسَّمة إلى قوائم تحقق قابلة لإعادة الإنتاج |
| DarkWeb-From-The-Trenches | منهجية استخبارات التهديدات وOSINT على الويب المظلم — مراقبة تسريب بيانات الاعتماد، وتتبع برامج الفدية، واستخبارات التهديدات قبل الارتباط |
| .pcap-Arsenal | لقطات حزم مُنظَّمة حسب البروتوكول، لتحليل طبقة الويب/API/الشبكة والتعلّم |
| Pentest-Engagement-Playbook | قوالب تحديد النطاق وقواعد الارتباط (ROE) وتبرير الخطورة والتقارير التنفيذية بمستوى الاستشاريين — دليل العمليات التشغيلي المواجه للعميل وراء كل ارتباط |
لماذا يوجد هذا
معظم تقارير أمان CI/CD إما تبقى نظرية بحتة (شريحة تشرح "تنفيذ خط الأنابيب المسموم") أو مجرد مطاردة لأعلام CTF (سطر واحد "هذا هو العلم، التالي"). يحاول هذا المستودع ألا يفعل أيًّا منهما: كل نتيجة أدناه هي ثغرة مُتحقَّق منها بالكامل ومدعومة بإثبات مفهوم (PoC)، مُصنَّفة ضمن فئة مخاطر محددة من OWASP CI/CD-SEC، ومكتوبة بالطريقة التي تريدها فعليًا لشرحها في مقابلة أو تقرير عميل حقيقي — بما في ذلك الطرق المسدودة، والافتراضات الخاطئة، وكيف تم تصحيحها.
إذا كنت تستعد لمقابلة في مجال أمن التطبيقات/DevSecOps/أمن CI-CD، أو تحضّر لمهمة اختبار اختراق تتعلق بسلسلة أدوات CI/CD، أو تريد ببساطة جولة عملية ملموسة لما يبدو عليه فعليًا "تنفيذ خط أنابيب مسموم" (Poisoned Pipeline Execution) أو "نظافة بيانات الاعتماد غير الكافية" (Insufficient Credential Hygiene) على مستوى الشبكة — فهذا مكتوب من أجلك.
البيئة المستهدفة
| الحقل | القيمة |
|---|---|
| الهدف | OWASP CICD-Goat — نشر محلي عبر Docker Compose |
| نوع المهمة | مختبر تعلّم ذاتي مصرّح به (grey-box) |
| حزمة التقنيات | Jenkins 2.332.1، Gitea 1.16.5، GitLab 15.11.13-ee، CTFd، Docker Compose |
| النطاق | localhost:3000 (Gitea)، :8080/:50000 (Jenkins)، :4000 (GitLab)، :8000 (CTFd)، :8008 (prod-sim) |
| المنهجية | المراحل 0–3 (تحديد النطاق → البصمة → تحديد الثغرات → الاستغلال) |
قواعد الاشتباك الكاملة: docs/00-engagement-overview.md.
⚠️ جميع الاختبارات في هذا المستودع أُجريت ضد مختبر Docker Compose محلي خاص بالمختبر، قابل للتخلص منه، ومصمم عمدًا ليكون معرّضًا للثغرات. لم تُستخدم أي أنظمة إنتاج أو بنية تحتية مشتركة أو بيانات طرف ثالث. أنشئ نسختك الخاصة من CICD-Goat من المستودع الرسمي قبل تجربة أي من هذا بنفسك.
النتائج في لمحة
| المعرّف | العنوان | الخطورة | تعيين OWASP CI/CD | علم CTFd |
|---|---|---|---|---|
| F-010 | كشف الأسرار في سجلات وحدة تحكم بناء Jenkins → سرقة بيانات الاعتماد → كتابة غير مصرّح بها في المستودع | حرجة | CICD-SEC-6, -4, -2 | flag1, flag2 |
| F-013 | منطق الدمج التلقائي غير الآمن يتجاوز مراجعة الكود (استدلال فرق الكلمات على مستوى طلب السحب) | حرجة | CICD-SEC-1, -5 | flag10 |
| F-016 | CVE-2024-23897 — قراءة ملفات عشوائية عبر Jenkins CLI على المتحكم | حرجة | CICD-SEC-7 | flag8 |
| F-017 | رمز تسجيل runner مشترك في GitLab → سرقة أسرار CI/CD على مستوى المثيل بأكمله | حرجة | CICD-SEC-2, -6 | flag11 |
| F-019 | تنفيذ كود على عقدة المتحكم في Jenkins عبر تجاوز تسمية الوكيل | حرجة | CICD-SEC-5, -4 | flag5 |
| F-018 | مستودع خط أنابيب منفصل + تجاوز مرشّح استبعاد الفروع | عالية | CICD-SEC-4, -6 | flag3 |
| F-020 | نظام ملفات الوكيل المشترك يكشف بيانات اعتماد مهمة FreeStyle | عالية | CICD-SEC-6, -5 | flag6 |
| F-021 | تجاوز إعدادات Checkov SAST يتيح سوء تهيئة IaC دون اكتشاف | عالية | CICD-SEC-1, -8 | flag7 |
| F-014 | مفتاح جلسة Flask السري مشتق من متغير خط أنابيب CI/CD | عالية | CICD-SEC-6 | flag11 (عبر F-017) |
بالإضافة إلى 6 نتائج إعلامية / مساندة (ضوابط إيجابية، تأكيدات حدود RBAC، كشف معلومات بسيط) في findings/informational/.
كيف تتسلسل النتائج معًا
عدة نتائج ليست مستقلة — إحداها تُمكّن أو تُكمل الأخرى مباشرة. هذا هو الجزء الذي يميل إلى إحداث انطباع في المقابلة أكثر من أي نتيجة منفردة بمفردها: