
Avaliação Centralizada do Wazuh SCA para CVE-2026-42945 em Servidores NGINX
Este repositório documenta um laboratório defensivo para CVE-2026-42945, que afeta o NGINX ngx_http_rewrite_module.
O objetivo deste projeto foi abordar a CVE de uma perspectiva de blue team, utilizando o Wazuh Security Configuration Assessment (SCA) para avaliar centralmente a exposição do NGINX.
O laboratório verifica duas condições de exposição:
O resultado final é uma política centralizada do Wazuh SCA que pode ser implantada em servidores NGINX monitorados através da configuração centralizada de agente do Wazuh.
O laboratório foi construído usando uma arquitetura de rede segmentada.
Internet / WAN
|
|
pfSense Firewall
|
|-----------------------------
| |
LAN DMZ
| |
Wazuh Manager Ubuntu NGINX Server
Wazuh Dashboard Wazuh Agent
NGINX
O objetivo era construir um fluxo de trabalho defensivo seguro e repetível:
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
Essa abordagem permite a avaliação da exposição à CVE sem executar código de exploração.
A política personalizada do Wazuh SCA realiza duas verificações.
A política verifica se o pacote NGINX do Ubuntu instalado corresponde à versão não corrigida observada no laboratório.
Versão vulnerável inicial do pacote:
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
Versão corrigida do pacote após remediação:
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
Arquivo de política:
sca-policy/nginx-cve-2026-42945.yml
A política também verifica um padrão de rewrite arriscado relacionado à CVE-2026-42945.
A configuração de teste arriscada está armazenada aqui:
nginx-config/vulnerable-example.conf
A configuração remediada está armazenada aqui:
nginx-config/remediated-example.conf
A condição arriscada testada no laboratório inclui:
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
O laboratório usou pfSense para separar o ambiente em:
LAN:
- Wazuh Manager
- Wazuh Dashboard
DMZ:
- Ubuntu NGINX server
- Wazuh Agent
O servidor NGINX Ubuntu foi colocado na DMZ.
O Wazuh Manager foi colocado na LAN.
Apenas a comunicação necessária do Wazuh foi permitida do servidor DMZ para o Wazuh Manager.
O servidor DMZ Ubuntu foi registrado como um agente Wazuh.
O agente foi verificado a partir do Wazuh Manager e confirmado como ativo.
Comandos de validação estão documentados em:
commands/01-agent-validation.md
Estado esperado:
Agent: ubuntu-dmz-nginx2
Status: Active
A versão do pacote NGINX instalada foi verificada no servidor DMZ Ubuntu.
Comandos de verificação de versão estão documentados em:
commands/02-nginx-version-check.md
Estado inicial:
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
Após a atualização do índice do pacote, a versão candidata corrigida ficou disponível:
1.28.3-2ubuntu1.1
Uma configuração de teste do NGINX foi criada para simular o padrão de rewrite arriscado.
O exemplo vulnerável está armazenado em:
nginx-config/vulnerable-example.conf
A versão remediada está armazenada em:
nginx-config/remediated-example.conf
O objetivo não era explorar o serviço, mas validar se o Wazuh SCA pode identificar exposição arriscada de configuração local.
Uma política SCA personalizada foi criada no Wazuh Manager.
Arquivo de política:
sca-policy/nginx-cve-2026-42945.yml
No laboratório, esta política foi implantada a partir do diretório compartilhado do Wazuh Manager:
/var/ossec/etc/shared/default/nginx-cve-2026-42945.yml
A política contém duas verificações:
| ID da Verificação | Propósito |
|---|---|
| 100449 | Detectar versão vulnerável/não corrigida do pacote NGINX Ubuntu |
| 100450 | Detectar padrão de configuração de rewrite arriscado do NGINX |
A política SCA personalizada foi implantada usando a configuração centralizada do agente Wazuh.
O arquivo de configuração centralizada está armazenado neste repositório como:
wazuh-config/agent.conf
No laboratório, foi implantado sob:
/var/ossec/etc/shared/default/agent.conf
O Wazuh Manager estava sendo executado em Docker:
single-node-wazuh.manager-1
Comandos de implantação estão documentados em:
commands/03-sca-policy-deployment.md
Após reiniciar o agente Wazuh, a política SCA personalizada foi recebida pelo servidor DMZ Ubuntu.
A política recebida apareceu em:
/var/ossec/etc/shared/nginx-cve-2026-42945.yml
Os logs do agente Wazuh confirmaram que a política foi carregada e avaliada.
Indicadores de log esperados:
Loaded policy
Starting evaluation of policy
Evaluation finished for policy
Com ambas as condições de exposição presentes, o Wazuh Dashboard mostrou:
Passed: 0
Failed: 2
Score: 0%
Isso significa que ambas as verificações falharam:
| Verificação | Resultado |
|---|---|
| Versão do pacote NGINX | Falhou |
| Configuração de rewrite arriscada | Falhou |
Captura de tela:
screenshots/03-sca-policy-failed.png
A configuração de rewrite arriscada do NGINX foi substituída por uma configuração mais segura.
Arquivo de referência:
nginx-config/remediated-example.conf
Após a configuração ser corrigida e a verificação do Wazuh SCA executar novamente, o resultado esperado foi:
Passed: 1
Failed: 1
Score: 50%
Nesta fase:
| Verificação | Resultado |
|---|---|
| Configuração de rewrite arriscada | Aprovado |
| Versão do pacote NGINX | Falhou |
Captura de tela:
screenshots/06-sca-partial-remediation.png
Os pacotes NGINX foram atualizados usando uma atualização direcionada de pacotes.
Comandos de remediação estão documentados em:
commands/04-remediation.md
Antes da atualização:
Installed: 1.28.3-2ubuntu1
Candidate: 1.28.3-2ubuntu1.1
Após a atualização:
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
Captura de tela:
screenshots/07-nginx-package-after.png
Após a conclusão de ambas as etapas de remediação, o resultado do Wazuh SCA mudou para:
Passed: 2
Failed: 0
Score: 100%
Isso confirmou que:
Captura de tela:
screenshots/08-sca-policy-passed.png
Capturas de tela recomendadas:
Para o laboratório, a política foi implantada através do grupo default do Wazuh.
Em produção, é melhor criar um grupo de agentes Wazuh dedicado, por exemplo:
nginx-servers
Apenas servidores executando NGINX devem ser atribuídos a esse grupo.
Implantação recomendada no estilo de produção:
Wazuh Manager
|
| Centralized SCA policy
v
nginx-servers agent group
|
| Applied only to NGINX systems
v
Wazuh Dashboard
Isso evita aplicar verificações específicas do NGINX a sistemas não relacionados.
Este projeto evita intencionalmente código de exploração.
O objetivo do laboratório era demonstrar engenharia de segurança defensiva, não exploração.
A avaliação foi baseada em:
package version exposure
configuration exposure
centralized Wazuh SCA validation
remediation verification
Este repositório é apenas para fins educacionais e de segurança defensiva.
Nenhum código de exploração está incluído.
As verificações são projetadas para um ambiente de laboratório controlado e devem ser revisadas antes do uso em produção.
| Componente | Função |
|---|
| pfSense | Firewall e segmentação LAN/DMZ |
| Servidor DMZ Ubuntu | Servidor NGINX monitorado pelo Wazuh |
| NGINX | Serviço alvo avaliado para exposição à CVE |
| Agente Wazuh | Instalado no servidor DMZ Ubuntu |
| Wazuh Manager | Servidor de monitoramento central executando em Docker |
| Wazuh Dashboard | Usado para revisar resultados do SCA |
| Estágio | Verificação do Pacote | Verificação da Config | Resultado Wazuh |
|---|
| Estado inicial | Falhou | Falhou | 0% |
| Após remediação da configuração | Falhou | Aprovado | 50% |
| Após atualização do pacote | Aprovado | Aprovado | 100% |
| Arquivo | Descrição |
|---|
01-lab-architecture.png | Arquitetura LAN/DMZ do pfSense |
02-agent-active.png | Estado ativo do agente Wazuh |
03-sca-policy-failed.png | Resultado inicial de SCA com falha |
04-nginx-package-before.png | Versão vulnerável do pacote NGINX |
05-risky-rewrite-config.png | Evidência da configuração de rewrite arriscada |
06-sca-partial-remediation.png | Resultado parcial de remediação |
07-nginx-package-after.png | Versão atualizada do pacote NGINX |
08-sca-policy-passed.png | Resultado final de SCA aprovado |