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, 防火墙, 集中式配置检查