このリポジトリは、NGINX ngx_http_rewrite_module に影響する CVE-2026-42945 を対象とした防御ラボのドキュメントです。
このプロジェクトの目的は、Wazuh セキュリティ構成評価 (SCA) を使用して NGINX の露出を一元的に評価することで、ブルーチームの視点から CVE に取り組むことでした。
このラボでは、次の2つの露出条件をチェックします。
最終成果物は、Wazuh の集中エージェント設定を通じて監視対象の NGINX サーバーに展開できる、一元化された Wazuh SCA ポリシーです。
このラボは、セグメント化されたネットワークアーキテクチャを使用して構築されました。
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 ポリシーは、2つのチェックを実行します。
このポリシーは、インストールされている 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
このポリシーは、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
ラボでは pfSense を使用して環境を次のように分離しました:
LAN:
- Wazuh Manager
- Wazuh Dashboard
DMZ:
- Ubuntu NGINX server
- Wazuh Agent
Ubuntu NGINX サーバーは DMZ に配置されました。
Wazuh Manager は LAN に配置されました。
DMZ サーバーから Wazuh Manager への必要な Wazuh 通信のみが許可されました。
Ubuntu DMZ サーバーは Wazuh エージェントとして登録されました。
エージェントは Wazuh Manager から検証され、アクティブ状態であることが確認されました。
検証コマンドは次の場所に文書化されています:
commands/01-agent-validation.md
期待される状態:
Agent: ubuntu-dmz-nginx2
Status: Active
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
リスクのある rewrite パターンをシミュレートするためのテスト用 NGINX 設定が作成されました。
脆弱なサンプルは次の場所に保存されています:
nginx-config/vulnerable-example.conf
修復済みバージョンは次の場所に保存されています:
nginx-config/remediated-example.conf
目的はサービスを悪用することではなく、Wazuh SCA がリスクのあるローカル設定の露出を識別できるかどうかを検証することでした。
Wazuh Manager 上にカスタム SCA ポリシーが作成されました。
ポリシーファイル:
sca-policy/nginx-cve-2026-42945.yml
ラボでは、このポリシーは Wazuh Manager の共有ディレクトリから展開されました:
/var/ossec/etc/shared/default/nginx-cve-2026-42945.yml
このポリシーには2つのチェックが含まれています:
| チェック ID | 目的 |
|---|---|
| 100449 | 脆弱/パッチ未適用の NGINX Ubuntu パッケージバージョンを検出 |
| 100450 | リスクのある NGINX rewrite 設定パターンを検出 |
カスタム SCA ポリシーは、Wazuh の集中エージェント設定を使用して展開されました。
集中設定ファイルは、このリポジトリに次の場所に保存されています:
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
Wazuh エージェントを再起動した後、カスタム SCA ポリシーが Ubuntu DMZ サーバーで受信されました。
受信したポリシーは次の場所に表示されました:
/var/ossec/etc/shared/nginx-cve-2026-42945.yml
Wazuh エージェントのログにより、ポリシーが読み込まれ評価されたことが確認されました。
期待されるログの表示:
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
リスクのある NGINX rewrite 設定は、より安全な設定に置き換えられました。
参照ファイル:
nginx-config/remediated-example.conf
設定が修正され、Wazuh SCA スキャンが再度実行された後、期待される結果は次のとおりでした:
Passed: 1
Failed: 1
Score: 50%
この時点では:
| チェック | 結果 |
|---|---|
| リスクのある rewrite 設定 | 合格 |
| NGINX パッケージバージョン | 失敗 |
スクリーンショット:
screenshots/06-sca-partial-remediation.png
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%
これにより、次のことが確認されました:
スクリーンショット:
screenshots/08-sca-policy-passed.png
推奨スクリーンショット:
ラボでは、ポリシーは Wazuh の default グループを通じて展開されました。
本番環境では、専用の Wazuh エージェントグループを作成することをお勧めします。例:
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 結果 |
|---|
| 初期状態 | 失敗 | 失敗 | 0% |
| 設定修復後 | 失敗 | 合格 | 50% |
| パッケージアップグレード後 | 合格 | 合格 | 100% |
| ファイル | 説明 |
|---|
01-lab-architecture.png | pfSense LAN/DMZ アーキテクチャ |
02-agent-active.png | Wazuh エージェントのアクティブ状態 |
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 結果 |