
Évaluation SCA Wazuh centralisée pour CVE-2026-42945 sur les serveurs NGINX
Ce dépôt documente un laboratoire défensif pour CVE-2026-42945, affectant le module ngx_http_rewrite_module de NGINX.
L'objectif de ce projet était d'aborder la CVE d'un point de vue blue team en utilisant Wazuh Security Configuration Assessment (SCA) pour évaluer centralement l'exposition de NGINX.
Le laboratoire vérifie deux conditions d'exposition :
Le résultat final est une politique Wazuh SCA centralisée qui peut être déployée sur les serveurs NGINX surveillés via la configuration centralisée des agents Wazuh.
Le laboratoire a été construit avec une architecture réseau segmentée.
Internet / WAN
|
|
pfSense Firewall
|
|-----------------------------
| |
LAN DMZ
| |
Wazuh Manager Ubuntu NGINX Server
Wazuh Dashboard Wazuh Agent
NGINX
L'objectif était de construire un flux de travail défensif sûr et reproductible :
Wazuh Manager
|
| Centralized SCA policy
v
Wazuh Agent on DMZ NGINX Server
|
| Checks package version and NGINX configuration
v
Wazuh Dashboard
|
| Shows passed / failed checks
v
Remediation validation
Cette approche permet d'évaluer l'exposition à la CVE sans exécuter de code d'exploitation.
La politique Wazuh SCA personnalisée effectue deux vérifications.
La politique vérifie si le paquet NGINX Ubuntu installé correspond à la version non corrigée observée dans le laboratoire.
Version initiale du paquet vulnérable :
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
Version corrigée du paquet après remédiation :
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
Fichier de politique :
sca-policy/nginx-cve-2026-42945.yml
La politique vérifie également un motif rewrite risqué lié à CVE-2026-42945.
La configuration de test risquée est stockée ici :
nginx-config/vulnerable-example.conf
La configuration corrigée est stockée ici :
nginx-config/remediated-example.conf
La condition risquée testée dans le laboratoire inclut :
rewrite directive
unnamed capture such as $1
replacement containing ?
follow-up directive such as set
wazuh-nginx-cve-2026-42945-sca-lab/
├── README.md
├── sca-policy/
│ └── nginx-cve-2026-42945.yml
├── wazuh-config/
│ └── agent.conf
├── nginx-config/
│ ├── vulnerable-example.conf
│ └── remediated-example.conf
├── commands/
│ ├── 01-agent-validation.md
│ ├── 02-nginx-version-check.md
│ ├── 03-sca-policy-deployment.md
│ └── 04-remediation.md
├── screenshots/
│ ├── 01-lab-architecture.png
│ ├── 02-agent-active.png
│ ├── 03-sca-policy-failed.png
│ ├── 04-nginx-package-before.png
│ ├── 05-risky-rewrite-config.png
│ ├── 06-sca-partial-remediation.png
│ ├── 07-nginx-package-after.png
│ └── 08-sca-policy-passed.png
└── docs/
└── lab-notes.md
Le laboratoire a utilisé pfSense pour séparer l'environnement en :
LAN:
- Wazuh Manager
- Wazuh Dashboard
DMZ:
- Ubuntu NGINX server
- Wazuh Agent
Le serveur NGINX Ubuntu a été placé dans la DMZ.
Le Wazuh Manager a été placé dans le LAN.
Seule la communication Wazuh requise était autorisée du serveur DMZ vers le Wazuh Manager.
Le serveur DMZ Ubuntu a été enregistré comme agent Wazuh.
L'agent a été vérifié depuis le Wazuh Manager et confirmé comme actif.
Les commandes de validation sont documentées dans :
commands/01-agent-validation.md
État attendu :
Agent: ubuntu-dmz-nginx2
Status: Active
La version du paquet NGINX installé a été vérifiée sur le serveur DMZ Ubuntu.
Les commandes de vérification de version sont documentées dans :
commands/02-nginx-version-check.md
État initial :
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
Après la mise à jour de l'index des paquets, la version candidate corrigée est devenue disponible :
1.28.3-2ubuntu1.1
Une configuration NGINX de test a été créée pour simuler le motif rewrite risqué.
L'exemple vulnérable est stocké dans :
nginx-config/vulnerable-example.conf
La version corrigée est stockée dans :
nginx-config/remediated-example.conf
L'objectif n'était pas d'exploiter le service, mais de valider si Wazuh SCA peut identifier une exposition locale à une configuration risquée.
Une politique SCA personnalisée a été créée sur le Wazuh Manager.
Fichier de politique :
sca-policy/nginx-cve-2026-42945.yml
Dans le laboratoire, cette politique a été déployée depuis le répertoire partagé du Wazuh Manager :
/var/ossec/etc/shared/default/nginx-cve-2026-42945.yml
La politique contient deux vérifications :
| ID de vérification | Objectif |
|---|---|
| 100449 | Détecter la version vulnérable/non corrigée du paquet NGINX Ubuntu |
| 100450 | Détecter le motif de configuration NGINX rewrite risqué |
La politique SCA personnalisée a été déployée en utilisant la configuration centralisée des agents Wazuh.
Le fichier de configuration centralisée est stocké dans ce dépôt sous :
wazuh-config/agent.conf
Dans le laboratoire, il a été déployé sous :
/var/ossec/etc/shared/default/agent.conf
Le Wazuh Manager était exécuté dans Docker :
single-node-wazuh.manager-1
Les commandes de déploiement sont documentées dans :
commands/03-sca-policy-deployment.md
Après le redémarrage de l'agent Wazuh, la politique SCA personnalisée a été reçue par le serveur DMZ Ubuntu.
La politique reçue est apparue sous :
/var/ossec/etc/shared/nginx-cve-2026-42945.yml
Les journaux de l'agent Wazuh ont confirmé que la politique a été chargée et évaluée.
Indicateurs de journal attendus :
Loaded policy
Starting evaluation of policy
Evaluation finished for policy
Avec les deux conditions d'exposition présentes, le Wazuh Dashboard affichait :
Passed: 0
Failed: 2
Score: 0%
Cela signifie que les deux vérifications ont échoué :
| Vérification | Résultat |
|---|---|
| Version du paquet NGINX | Échec |
| Configuration rewrite risquée | Échec |
Capture d'écran :
screenshots/03-sca-policy-failed.png
La configuration NGINX rewrite risquée a été remplacée par une configuration plus sûre.
Fichier de référence :
nginx-config/remediated-example.conf
Après correction de la configuration et une nouvelle analyse Wazuh SCA, le résultat attendu était :
Passed: 1
Failed: 1
Score: 50%
À ce stade :
| Vérification | Résultat |
|---|---|
| Configuration rewrite risquée | Réussi |
| Version du paquet NGINX | Échec |
Capture d'écran :
screenshots/06-sca-partial-remediation.png
Les paquets NGINX ont été mis à niveau au moyen d'une mise à niveau ciblée des paquets.
Les commandes de remédiation sont documentées dans :
commands/04-remediation.md
Avant la mise à niveau :
Installed: 1.28.3-2ubuntu1
Candidate: 1.28.3-2ubuntu1.1
Après la mise à niveau :
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
Capture d'écran :
screenshots/07-nginx-package-after.png
Après la réalisation des deux étapes de remédiation, le résultat Wazuh SCA est passé à :
Passed: 2
Failed: 0
Score: 100%
Cela a confirmé que :
Capture d'écran :
screenshots/08-sca-policy-passed.png
Captures d'écran recommandées :
Pour le laboratoire, la politique a été déployée via le groupe default de Wazuh.
En production, il est préférable de créer un groupe d'agents Wazuh dédié, par exemple :
nginx-servers
Seuls les serveurs exécutant NGINX doivent être affectés à ce groupe.
Déploiement recommandé de type production :
Wazuh Manager
|
| Centralized SCA policy
v
nginx-servers agent group
|
| Applied only to NGINX systems
v
Wazuh Dashboard
Cela évite d'appliquer des vérifications spécifiques à NGINX à des systèmes sans rapport.
Ce projet évite intentionnellement tout code d'exploitation.
Le but du laboratoire était de démontrer une ingénierie de sécurité défensive, et non l'exploitation.
L'évaluation était basée sur :
package version exposure
configuration exposure
centralized Wazuh SCA validation
remediation verification
Ce dépôt est destiné uniquement à des fins éducatives et de sécurité défensive.
Aucun code d'exploitation n'est inclus.
Les vérifications sont conçues pour un environnement de laboratoire contrôlé et doivent être examinées avant toute utilisation en production.
| Composant | Rôle |
|---|
| pfSense | Pare-feu et segmentation LAN/DMZ |
| Serveur DMZ Ubuntu | Serveur NGINX surveillé par Wazuh |
| NGINX | Service cible évalué pour l'exposition à la CVE |
| Agent Wazuh | Installé sur le serveur DMZ Ubuntu |
| Wazuh Manager | Serveur de surveillance central exécuté dans Docker |
| Wazuh Dashboard | Utilisé pour consulter les résultats SCA |
| Étape | Vérification du paquet | Vérification de la config | Résultat Wazuh |
|---|
| État initial | Échec | Échec | 0% |
| Après remédiation de la config | Échec | Réussi | 50% |
| Après mise à niveau des paquets | Réussi | Réussi | 100% |
| Fichier | Description |
|---|
01-lab-architecture.png | Architecture pfSense LAN/DMZ |
02-agent-active.png | État actif de l'agent Wazuh |
03-sca-policy-failed.png | Résultat SCA initial en échec |
04-nginx-package-before.png | Version vulnérable du paquet NGINX |
05-risky-rewrite-config.png | Preuve de la configuration rewrite risquée |
06-sca-partial-remediation.png | Résultat de remédiation partielle |
07-nginx-package-after.png | Version mise à niveau du paquet NGINX |
08-sca-policy-passed.png | Résultat SCA final réussi |