
Valutazione SCA centralizzata di Wazuh per CVE-2026-42945 su server NGINX
Questo repository documenta un laboratorio difensivo per CVE-2026-42945, che interessa il modulo NGINX ngx_http_rewrite_module.
L'obiettivo di questo progetto era affrontare la CVE da una prospettiva blue team utilizzando Wazuh Security Configuration Assessment (SCA) per valutare centralmente l'esposizione di NGINX.
Il laboratorio verifica due condizioni di esposizione:
Il risultato finale è una policy SCA Wazuh centralizzata che può essere distribuita ai server NGINX monitorati tramite la configurazione centralizzata dell'agente Wazuh.
Il laboratorio è stato realizzato utilizzando un'architettura di rete segmentata.
Internet / WAN
|
|
pfSense Firewall
|
|-----------------------------
| |
LAN DMZ
| |
Wazuh Manager Ubuntu NGINX Server
Wazuh Dashboard Wazuh Agent
NGINX
| Componente | Ruolo |
|---|---|
| pfSense | Firewall e segmentazione LAN/DMZ |
| Server DMZ Ubuntu | Server NGINX monitorato da Wazuh |
| NGINX | Servizio target valutato per l'esposizione alla CVE |
| Agente Wazuh | Installato sul server DMZ Ubuntu |
| Wazuh Manager | Server di monitoraggio centrale in esecuzione su Docker |
| Wazuh Dashboard | Utilizzato per rivedere i risultati SCA |
L'obiettivo era costruire un flusso di lavoro difensivo sicuro e ripetibile:
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
Questo approccio consente la valutazione dell'esposizione alla CVE senza eseguire codice exploit.
La policy SCA Wazuh personalizzata esegue due controlli.
La policy verifica se il pacchetto NGINX Ubuntu installato corrisponde alla versione non aggiornata osservata nel laboratorio.
Versione iniziale vulnerabile del pacchetto:
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
Versione corretta del pacchetto dopo la remediation:
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
File della policy:
sca-policy/nginx-cve-2026-42945.yml
La policy verifica anche un pattern rewrite rischioso correlato a CVE-2026-42945.
La configurazione di test rischiosa è archiviata qui:
nginx-config/vulnerable-example.conf
La configurazione remediata è archiviata qui:
nginx-config/remediated-example.conf
La condizione rischiosa testata nel laboratorio include:
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
Il laboratorio ha utilizzato pfSense per separare l'ambiente in:
LAN:
- Wazuh Manager
- Wazuh Dashboard
DMZ:
- Ubuntu NGINX server
- Wazuh Agent
Il server NGINX Ubuntu è stato posizionato nella DMZ.
Il Wazuh Manager è stato posizionato nella LAN.
È stata consentita solo la comunicazione Wazuh necessaria dal server DMZ al Wazuh Manager.
Il server DMZ Ubuntu è stato registrato come agente Wazuh.
L'agente è stato verificato dal Wazuh Manager e confermato come attivo.
I comandi di validazione sono documentati in:
commands/01-agent-validation.md
Stato atteso:
Agent: ubuntu-dmz-nginx2
Status: Active
La versione del pacchetto NGINX installato è stata verificata sul server DMZ Ubuntu.
I comandi per la verifica della versione sono documentati in:
commands/02-nginx-version-check.md
Stato iniziale:
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
Dopo l'aggiornamento dell'indice dei pacchetti, la versione candidata corretta è diventata disponibile:
1.28.3-2ubuntu1.1
È stata creata una configurazione NGINX di test per simulare il pattern rewrite rischioso.
L'esempio vulnerabile è archiviato in:
nginx-config/vulnerable-example.conf
La versione remediata è archiviata in:
nginx-config/remediated-example.conf
Lo scopo non era sfruttare il servizio, ma validare se Wazuh SCA è in grado di identificare l'esposizione a configurazioni locali rischiose.
È stata creata una policy SCA personalizzata sul Wazuh Manager.
File della policy:
sca-policy/nginx-cve-2026-42945.yml
Nel laboratorio, questa policy è stata distribuita dalla directory condivisa del Wazuh Manager:
/var/ossec/etc/shared/default/nginx-cve-2026-42945.yml
La policy contiene due controlli:
| ID Controllo | Scopo |
|---|---|
| 100449 | Rilevare la versione vulnerabile/non aggiornata del pacchetto NGINX Ubuntu |
| 100450 | Rilevare il pattern di configurazione rewrite NGINX rischioso |
La policy SCA personalizzata è stata distribuita utilizzando la configurazione centralizzata dell'agente Wazuh.
Il file di configurazione centralizzata è archiviato in questo repository come:
wazuh-config/agent.conf
Nel laboratorio, è stato distribuito in:
/var/ossec/etc/shared/default/agent.conf
Il Wazuh Manager era in esecuzione su Docker:
single-node-wazuh.manager-1
I comandi di distribuzione sono documentati in:
commands/03-sca-policy-deployment.md
Dopo il riavvio dell'agente Wazuh, la policy SCA personalizzata è stata ricevuta dal server DMZ Ubuntu.
La policy ricevuta è apparsa in:
/var/ossec/etc/shared/nginx-cve-2026-42945.yml
I log dell'agente Wazuh hanno confermato che la policy è stata caricata e valutata.
Indicatori di log attesi:
Loaded policy
Starting evaluation of policy
Evaluation finished for policy
Con entrambe le condizioni di esposizione presenti, il Wazuh Dashboard mostrava:
Passed: 0
Failed: 2
Score: 0%
Ciò significa che entrambi i controlli sono falliti:
| Controllo | Risultato |
|---|---|
| Versione del pacchetto NGINX | Fallito |
| Configurazione rewrite rischiosa | Fallito |
Screenshot:
screenshots/03-sca-policy-failed.png
La configurazione rewrite NGINX rischiosa è stata sostituita con una configurazione più sicura.
File di riferimento:
nginx-config/remediated-example.conf