
مختبر معزز بالحاويات للتدريب على ثغرة إعادة كتابة NGINX (CVE-2026-42945) مع حالات ضعيفة ومصححة ونصوص اختبار غير ضارة وتمارين تدقيق التكوين.
مثيلان من NGINX داخل Docker: مقتطف «إعادة كتابة خطرة» قائم على الأنماط مقابل مقتطف الالتقاط المُسمّى المُعالَج، مثبَّتان على nginx:1.30.0-alpine / nginx:1.30.1-alpine. تشغّل النصوص البرمجية أوامر curl غير ضارة، وتُفرّغ مخرجات nginx -T، وتؤرشف الأدلة. للتدريب على مراجعة الإعدادات فقط — /health و /nginx_status و /legacy/ نقاط نهاية معملية؛ شدّد التعرض خارج شبكة VLAN معملية.
النطاق: المضيفون المصرّح لهم فقط. النشرات الاستشارية للمورّد وسياساتك الخاصة هي من يفسّر مخرجات [RISK] من scripts/check-nginx-rewrite-risk.sh (بحث grep استدلالي عبر الإعدادات، وليس ماسحًا رسميًا).
Host 127.0.0.1:18080 -> nginx-rift-vulnerable (listens :8080 in container)
Host 127.0.0.1:18081 -> nginx-rift-patched
www/ -> RO -> /usr/share/nginx/html (both)
nginx-vulnerable/nginx-patched -> RO -> conf.d/default.conf
Network: nginx_rift_net (bridge)
شجرة المستودع: docker-compose.yml, nginx-{vulnerable,patched}/default.conf, www/, scripts/, evidence/ (القطع الأثرية مستثناة من Git باستثناء .gitkeep)، docs/.
Docker + docker compose, bash, curl. مرة واحدة: chmod +x scripts/*.sh. يعرض Linux (أو جهاز افتراضي) /proc/sys/kernel/randomize_va_space إذا كنت مهتمًا بسطر التجميع ذلك في collect-evidence.sh؛ غالبًا ما يتخطاه macOS Docker Desktop — ويلاحظ النص البرمجي تلك الحالة.
cd nginx-rift-defensive-lab
docker compose pull # optional
docker compose up -d
docker compose ps
./scripts/benign-request-test.sh
./scripts/check-nginx-rewrite-risk.sh
./scripts/check-nginx-rewrite-risk.sh nginx-rift-patched
./scripts/collect-evidence.sh
./scripts/cleanup-lab.sh
# ./scripts/cleanup-lab.sh --purge-evidence
غيّر منافذ المضيف إذا تعارض 18080/18081 (docker-compose.yml).
| المسار | الدور |
|---|---|
/health | نص ثابت للفحوصات (vulnerable-nginx-alive / patched-nginx-alive) |
/nginx_status | stub_status (قيّده في الإنتاج) |
/legacy/ | عرض توضيحي لإعادة الكتابة |
| الملف | الغرض |
|---|---|
docs/LAB_GUIDE.md | دليل معملي خطوة بخطوة |
docs/WEBINAR_FLOW.md | إيقاع العرض للمقدّم |
docs/PRTG_MONITORING_NOTES.md | أمثلة على الحساسات |
docs/REMEDIATION_SUMMARY_TEMPLATE.md | هيكل CAB/حادث |
docs/NGINX_RIFT_DEFENSIVE_LAB_COMPLETE_GUIDE.md | Markdown موحّد |
docs/TR_KAPSAMLI_SAVUNMA_LAB_REHBERI.md | كتيب بالتركية |
docs/PDF_GENERATION_NOTES.txt | بناء PDF محلي اختياري (docs/*.pdf, مستثنى من Git) |
استخدم docker compose up -d بواصلة. يمكن أن تتوسّع أنماط Shell العامة مثل *d إلى أسماء ملفات غير مقصودة.