
# Laboratoire Dockerisé pour l'entraînement sur la vulnérabilité de réécriture NGINX (CVE-2026-42945) avec des instances vulnérables et corrigées, des scripts de test bénins et des exercices d'audit de configuration.
Deux instances NGINX dockerisées : un extrait « risky rewrite » basé sur des motifs comparé à un extrait corrigé avec capture nommée, épinglées sur nginx:1.30.0-alpine / nginx:1.30.1-alpine. Les scripts exécutent des requêtes curl bénignes, extraient la sortie de nginx -T et archivent les preuves. Uniquement pour l’apprentissage de la revue de configuration — /health, /nginx_status, /legacy/ sont des points de terminaison de laboratoire ; restreignez l’exposition en dehors d’un VLAN de laboratoire.
Portée : hôtes autorisés uniquement. Les avis de sécurité des fournisseurs et votre propre politique interprètent la sortie [RISK] de scripts/check-nginx-rewrite-risk.sh (grep heuristique sur la configuration, pas un scanner formel).
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)
Arborescence du dépôt : docker-compose.yml, nginx-{vulnerable,patched}/default.conf, www/, scripts/, evidence/ (artefacts ignorés par Git, sauf .gitkeep), docs/.
Docker + docker compose, bash, curl. Au préalable : chmod +x scripts/*.sh. Linux (ou une VM) expose /proc/sys/kernel/randomize_va_space si vous vous intéressez à cette ligne du collecteur dans collect-evidence.sh ; Docker Desktop sur macOS l’omet souvent — le script en tient compte.
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
Modifiez les ports hôte si 18080/18081 entrent en collision (docker-compose.yml).
| Chemin | Rôle |
|---|---|
/health | Texte stable pour les sondes (vulnerable-nginx-alive / patched-nginx-alive) |
/nginx_status | stub_status (à restreindre en production) |
/legacy/ | Démonstration de réécriture |
| Fichier | Objet |
|---|---|
docs/LAB_GUIDE.md | Laboratoire pas à pas |
docs/WEBINAR_FLOW.md | Rythme du présentateur |
docs/PRTG_MONITORING_NOTES.md | Exemples de capteurs |
docs/REMEDIATION_SUMMARY_TEMPLATE.md | Modèle CAB/incident |
docs/NGINX_RIFT_DEFENSIVE_LAB_COMPLETE_GUIDE.md | Markdown consolidé |
docs/TR_KAPSAMLI_SAVUNMA_LAB_REHBERI.md | Manuel en turc |
docs/PDF_GENERATION_NOTES.txt | Génération PDF locale facultative (docs/*.pdf, ignoré par Git) |
Utilisez docker compose up -d avec un trait d’union. Les jokers du shell tels que *d peuvent correspondre à des noms de fichiers non souhaités.