soksofos/wazuh-nginx-cve-2026-42945-sca-lab
GitHub: soksofos/wazuh-nginx-cve-2026-42945-sca-lab
基于 Wazuh SCA 针对 CVE-2026-42945 构建的集中式 NGINX 暴露评估与修复验证实验环境。
Stars: 0 | Forks: 0
# CVE-2026-42945 — NGINX Wazuh SCA 防御实验
## 概述
本仓库记录了一个针对 **CVE-2026-42945**(影响 **NGINX ngx_http_rewrite_module**)的防御实验。
本项目的目标是采用 **蓝队视角**,利用 **Wazuh 安全配置评估 (SCA)** 来集中评估 NGINX 的暴露情况。
该实验检查了两种暴露条件:
1. 未打补丁的 Ubuntu NGINX 软件包版本
2. 与 CVE-2026-42945 相关的高危 NGINX rewrite 配置模式
最终成果是一个集中式的 Wazuh SCA 策略,可以通过 Wazuh 集中式代理配置部署到受监控的 NGINX 服务器上。
## 实验架构
该实验采用了网络分段架构构建。
```
Internet / WAN
|
|
pfSense Firewall
|
|-----------------------------
| |
LAN DMZ
| |
Wazuh Manager Ubuntu NGINX Server
Wazuh Dashboard Wazuh Agent
NGINX
```
### 组件
| 组件 | 角色 |
|---|---|
| pfSense | 防火墙及 LAN/DMZ 分段 |
| Ubuntu DMZ 服务器 | 由 Wazuh 监控的 NGINX 服务器 |
| NGINX | 针对 CVE 暴露情况进行评估的目标服务 |
| Wazuh Agent | 安装在 Ubuntu DMZ 服务器上 |
| Wazuh Manager | 在 Docker 中运行的中央监控服务器 |
| Wazuh Dashboard | 用于查看 SCA 结果 |
## 目标
目标是构建一个安全且可重复的防御工作流:
```
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
```
这种方法允许在不运行漏洞利用代码的情况下评估 CVE 暴露情况。
## 检测策略
自定义的 Wazuh SCA 策略执行两项检查。
### 检查 1 — NGINX 软件包版本
该策略检查已安装的 Ubuntu NGINX 软件包是否与实验中观察到的未打补丁版本相匹配。
初始存在漏洞的软件包版本:
```
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
```
修复后的软件包版本:
```
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
```
策略文件:
```
sca-policy/nginx-cve-2026-42945.yml
```
### 检查 2 — 高危 NGINX Rewrite 配置
该策略还会检查与 CVE-2026-42945 相关的高危 rewrite 模式。
高危测试配置存储在:
```
nginx-config/vulnerable-example.conf
```
修复后的配置存储在:
```
nginx-config/remediated-example.conf
```
实验中测试的高危条件包括:
```
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
```
# 实验构建过程
## 步骤 1 — 网络分段
实验使用 pfSense 将环境划分为:
```
LAN:
- Wazuh Manager
- Wazuh Dashboard
DMZ:
- Ubuntu NGINX server
- Wazuh Agent
```
Ubuntu NGINX 服务器被放置在 DMZ 中。
Wazuh Manager 被放置在 LAN 中。
仅允许从 DMZ 服务器到 Wazuh Manager 的必要 Wazuh 通信。
## 步骤 2 — Wazuh Agent 部署
Ubuntu DMZ 服务器被注册为 Wazuh agent。
该代理已从 Wazuh Manager 端验证并确认为活跃状态。
验证命令记录在:
```
commands/01-agent-validation.md
```
预期状态:
```
Agent: ubuntu-dmz-nginx2
Status: Active
```
## 步骤 3 — NGINX 版本评估
在 Ubuntu DMZ 服务器上检查了已安装的 NGINX 软件包版本。
版本检查命令记录在:
```
commands/02-nginx-version-check.md
```
初始状态:
```
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
```
更新软件包索引后,可用的修复候选版本如下:
```
1.28.3-2ubuntu1.1
```
## 步骤 4 — 高危 NGINX 配置
创建了一个测试 NGINX 配置以模拟高危 rewrite 模式。
存在漏洞的示例存储在:
```
nginx-config/vulnerable-example.conf
```
修复后的版本存储在:
```
nginx-config/remediated-example.conf
```
目的不是利用该服务,而是验证 Wazuh SCA 是否能识别出高危的本地配置暴露。
## 步骤 5 — 自定义 Wazuh SCA 策略
在 Wazuh Manager 上创建了自定义 SCA 策略。
策略文件:
```
sca-policy/nginx-cve-2026-42945.yml
```
在实验中,此策略是从 Wazuh Manager 共享目录部署的:
```
/var/ossec/etc/shared/default/nginx-cve-2026-42945.yml
```
该策略包含两项检查:
| 检查 ID | 目的 |
|---|---|
| 100449 | 检测存在漏洞/未打补丁的 NGINX Ubuntu 软件包版本 |
| 100450 | 检测高危的 NGINX rewrite 配置模式 |
## 步骤 6 — 集中式代理配置
使用 Wazuh 集中式代理配置部署了自定义 SCA 策略。
集中式配置文件作为以下文件存储在此仓库中:
```
wazuh-config/agent.conf
```
在实验中,它被部署在:
```
/var/ossec/etc/shared/default/agent.conf
```
Wazuh Manager 正在 Docker 中运行:
```
single-node-wazuh.manager-1
```
部署命令记录在:
```
commands/03-sca-policy-deployment.md
```
## 步骤 7 — 代理上的策略验证
重启 Wazuh agent 后,Ubuntu DMZ 服务器接收到了自定义 SCA 策略。
接收到的策略出现在:
```
/var/ossec/etc/shared/nginx-cve-2026-42945.yml
```
Wazuh agent 日志确认策略已加载并评估。
预期日志指标:
```
Loaded policy
Starting evaluation of policy
Evaluation finished for policy
```
# 初始结果
在同时存在两种暴露条件时,Wazuh Dashboard 显示:
```
Passed: 0
Failed: 2
Score: 0%
```
这意味着两项检查均未通过:
| 检查项 | 结果 |
|---|---|
| NGINX 软件包版本 | 未通过 |
| 高危 rewrite 配置 | 未通过 |
截图:
```
screenshots/03-sca-policy-failed.png
```
# 修复
## 修复步骤 1 — 修复高危 Rewrite 配置
高危的 NGINX rewrite 配置已被替换为更安全的配置。
参考文件:
```
nginx-config/remediated-example.conf
```
修复配置并再次运行 Wazuh SCA 扫描后,预期结果为:
```
Passed: 1
Failed: 1
Score: 50%
```
在此阶段:
| 检查项 | 结果 |
|---|---|
| 高危 rewrite 配置 | 通过 |
| NGINX 软件包版本 | 未通过 |
截图:
```
screenshots/06-sca-partial-remediation.png
```
## 修复步骤 2 — 升级 NGINX 软件包
使用定向软件包升级方式对 NGINX 软件包进行了升级。
修复命令记录在:
```
commands/04-remediation.md
```
升级前:
```
Installed: 1.28.3-2ubuntu1
Candidate: 1.28.3-2ubuntu1.1
```
升级后:
```
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
```
截图:
```
screenshots/07-nginx-package-after.png
```
# 最终结果
完成两项修复步骤后,Wazuh SCA 结果变为:
```
Passed: 2
Failed: 0
Score: 100%
```
这证实了:
1. 高危 rewrite 配置已修复
2. NGINX 软件包已升级至修复后的版本
截图:
```
screenshots/08-sca-policy-passed.png
```
# 结果摘要
| 阶段 | 软件包检查 | 配置检查 | Wazuh 结果 |
|---|---|---|---|
| 初始状态 | 未通过 | 未通过 | 0% |
| 配置修复后 | 未通过 | 通过 | 50% |
| 软件包升级后 | 通过 | 通过 | 100% |
# 截图
推荐的截图:
| 文件 | 描述 |
|---|---|
| `01-lab-architecture.png` | pfSense LAN/DMZ 架构 |
| `02-agent-active.png` | Wazuh agent 活跃状态 |
| `03-sca-policy-failed.png` | 初始未通过的 SCA 结果 |
| `04-nginx-package-before.png` | 存在漏洞的 NGINX 软件包版本 |
| `05-risky-rewrite-config.png` | 高危 rewrite 配置证据 |
| `06-sca-partial-remediation.png` | 部分修复结果 |
| `07-nginx-package-after.png` | 升级后的 NGINX 软件包版本 |
| `08-sca-policy-passed.png` | 最终通过的 SCA 结果 |
# 生产环境注意事项
在实验中,策略是通过 Wazuh `default` 组部署的。
在生产环境中,最好创建一个专用的 Wazuh agent 组,例如:
```
nginx-servers
```
只有运行 NGINX 的服务器才应被分配到该组。
推荐的生产环境风格部署:
```
Wazuh Manager
|
| Centralized SCA policy
v
nginx-servers agent group
|
| Applied only to NGINX systems
v
Wazuh Dashboard
```
这可以避免将 NGINX 特定的检查应用到不相关的系统上。
# 为什么没有使用漏洞利用代码
本项目刻意避免了漏洞利用代码。
该实验的目的是演示防御性安全工程,而不是漏洞利用。
评估基于:
```
package version exposure
configuration exposure
centralized Wazuh SCA validation
remediation verification
```
# 核心要点
- Wazuh SCA 可用于集中评估 CVE 暴露情况。
- CVE 验证并不总是需要执行漏洞利用。
- pfSense DMZ 分段使实验更贴近真实场景。
- 自定义 SCA 策略可以同时检查软件包版本和高危配置。
- 应使用可衡量的修复前后结果来验证修复效果。
- 生产环境部署应使用专用的 Wazuh agent 组。
# 免责声明
本仓库仅用于教育和防御性安全目的。
不包含任何漏洞利用代码。
各项检查专为受控实验环境设计,在生产环境中使用前应进行审查。
标签:CISA项目, CVE-2026-42945, DMZ架构, Docker, GPT, NGINX, ngx_http_rewrite_module, pfSense, Wazuh, Web报告查看器, Web服务器安全, 关系图谱, 基线检查, 安全合规, 安全运营, 安全配置评估, 安全防御评估, 扫描框架, 无线安全, 漏洞管理, 网络代理, 网络安全审计, 网络隔离, 蓝军演练, 请求拦截, 负责任AI, 防火墙, 集中式配置检查