
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
Dopo che la configurazione è stata corretta e la scansione SCA Wazuh è stata eseguita nuovamente, il risultato atteso era:
Passed: 1
Failed: 1
Score: 50%
In questa fase:
| Controllo | Risultato |
|---|---|
| Configurazione rewrite rischiosa | Superato |
| Versione del pacchetto NGINX | Fallito |
Screenshot:
screenshots/06-sca-partial-remediation.png
I pacchetti NGINX sono stati aggiornati tramite un aggiornamento mirato dei pacchetti.
I comandi di remediation sono documentati in:
commands/04-remediation.md
Prima dell'aggiornamento:
Installed: 1.28.3-2ubuntu1
Candidate: 1.28.3-2ubuntu1.1
Dopo l'aggiornamento:
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
Screenshot:
screenshots/07-nginx-package-after.png
Dopo il completamento di entrambi i passaggi di remediation, il risultato SCA Wazuh è passato a:
Passed: 2
Failed: 0
Score: 100%
Ciò ha confermato che:
Screenshot:
screenshots/08-sca-policy-passed.png
| Fase | Controllo Pacchetto | Controllo Configurazione | Risultato Wazuh |
|---|---|---|---|
| Stato iniziale | Fallito | Fallito | 0% |
| Dopo la remediation della configurazione | Fallito | Superato | 50% |
| Dopo l'aggiornamento del pacchetto | Superato | Superato | 100% |
Screenshot consigliati:
| File | Descrizione |
|---|---|
01-lab-architecture.png | Architettura LAN/DMZ pfSense |
02-agent-active.png | Stato attivo dell'agente Wazuh |
03-sca-policy-failed.png | Risultato SCA iniziale fallito |
04-nginx-package-before.png | Versione vulnerabile del pacchetto NGINX |
05-risky-rewrite-config.png | Evidenza della configurazione rewrite rischiosa |
06-sca-partial-remediation.png | Risultato della remediation parziale |
07-nginx-package-after.png | Versione aggiornata del pacchetto NGINX |
08-sca-policy-passed.png | Risultato SCA finale superato |
Per il laboratorio, la policy è stata distribuita tramite il gruppo default di Wazuh.
In produzione, è meglio creare un gruppo di agenti Wazuh dedicato, ad esempio:
nginx-servers
Solo i server che eseguono NGINX dovrebbero essere assegnati a quel gruppo.
Distribuzione consigliata in stile produzione:
Wazuh Manager
|
| Centralized SCA policy
v
nginx-servers agent group
|
| Applied only to NGINX systems
v
Wazuh Dashboard
Ciò evita di applicare controlli specifici di NGINX a sistemi non correlati.
Questo progetto evita intenzionalmente il codice exploit.
Lo scopo del laboratorio era dimostrare l'ingegneria della sicurezza difensiva, non lo sfruttamento.
La valutazione si basava su:
package version exposure
configuration exposure
centralized Wazuh SCA validation
remediation verification
Questo repository è esclusivamente a scopo educativo e di sicurezza difensiva.
Non è incluso alcun codice exploit.
I controlli sono progettati per un ambiente di laboratorio controllato e dovrebbero essere revisionati prima dell'uso in produzione.