
CVE-2026-42945에 대한 NGINX 서버의 중앙 집중식 Wazuh SCA 평가
이 저장소는 NGINX ngx_http_rewrite_module에 영향을 미치는 CVE-2026-42945에 대한 방어 실습을 문서화합니다.
이 프로젝트의 목표는 블루팀 관점에서 CVE에 접근하여 **Wazuh 보안 구성 평가(SCA)**를 사용하여 NGINX 노출을 중앙에서 평가하는 것입니다.
이 실습은 두 가지 노출 조건을 확인합니다:
최종 결과는 Wazuh 중앙 에이전트 구성을 통해 모니터링되는 NGINX 서버에 배포할 수 있는 중앙 집중식 Wazuh SCA 정책입니다.
이 실습은 분할 네트워크 아키텍처를 사용하여 구축되었습니다.
인터넷 / WAN
|
|
pfSense 방화벽
|
|-----------------------------
| |
LAN DMZ
| |
Wazuh 매니저 Ubuntu NGINX 서버
Wazuh 대시보드 Wazuh 에이전트
NGINX
| 구성 요소 | 역할 |
|---|---|
| pfSense | 방화벽 및 LAN/DMZ 분할 |
| Ubuntu DMZ 서버 | Wazuh가 모니터링하는 NGINX 서버 |
| NGINX | CVE 노출 평가 대상 서비스 |
| Wazuh 에이전트 | Ubuntu DMZ 서버에 설치 |
| Wazuh 매니저 | Docker에서 실행되는 중앙 모니터링 서버 |
| Wazuh 대시보드 | SCA 결과 검토에 사용 |
목표는 안전하고 반복 가능한 방어 워크플로를 구축하는 것이었습니다:
Wazuh 매니저
|
| 중앙 집중식 SCA 정책
v
DMZ NGINX 서버의 Wazuh 에이전트
|
| 패키지 버전 및 NGINX 설정 확인
v
Wazuh 대시보드
|
| 통과/실패 확인 표시
v
수정 검증
이 접근 방식은 익스플로잇 코드를 실행하지 않고 CVE 노출을 평가할 수 있습니다.
사용자 정의 Wazuh SCA 정책은 두 가지 검사를 수행합니다.
정책은 설치된 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 지시어
$1과 같은 이름 없는 캡처
?를 포함하는 대체
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 매니저
- Wazuh 대시보드
DMZ:
- Ubuntu NGINX 서버
- Wazuh 에이전트
Ubuntu NGINX 서버는 DMZ에 배치되었습니다. Wazuh 매니저는 LAN에 배치되었습니다.
DMZ 서버에서 Wazuh 매니저로의 필수 Wazuh 통신만 허용되었습니다.
Ubuntu DMZ 서버가 Wazuh 에이전트로 등록되었습니다.
Wazuh 매니저에서 에이전트를 확인하고 활성 상태임을 확인했습니다.
검증 명령은 다음에 문서화되어 있습니다:
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 매니저에 사용자 정의 SCA 정책을 생성했습니다.
정책 파일:
sca-policy/nginx-cve-2026-42945.yml
실습에서는 이 정책이 Wazuh 매니저 공유 디렉토리에서 배포되었습니다:
/var/ossec/etc/shared/default/nginx-cve-2026-42945.yml
정책에는 두 가지 검사가 포함됩니다:
| 검사 ID | 목적 |
|---|---|
| 100449 | 취약/패치되지 않은 NGINX Ubuntu 패키지 버전 탐지 |
| 100450 | 위험한 NGINX rewrite 설정 패턴 탐지 |
사용자 정의 SCA 정책은 Wazuh 중앙 에이전트 구성을 사용하여 배포되었습니다.
중앙 구성 파일은 이 저장소에 다음으로 저장됩니다:
wazuh-config/agent.conf
실습에서는 다음 위치에 배포되었습니다:
/var/ossec/etc/shared/default/agent.conf
Wazuh 매니저는 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 대시보드는 다음을 표시했습니다:
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 매니저
|
| 중앙 집중식 SCA 정책
v
nginx-servers 에이전트 그룹
|
| NGINX 시스템에만 적용
v
Wazuh 대시보드
이렇게 하면 관련 없는 시스템에 NGINX 특정 검사가 적용되는 것을 방지할 수 있습니다.
이 프로젝트는 의도적으로 익스플로잇 코드를 피합니다.
실습의 목적은 공격적 보안 엔지니어링이 아닌 방어적 보안 엔지니어링을 시연하는 것이었습니다.
평가는 다음을 기반으로 했습니다:
패키지 버전 노출
설정 노출
중앙 집중식 Wazuh SCA 검증
수정 검증
이 저장소는 교육 및 방어적 보안 목적으로만 제공됩니다.
익스플로잇 코드는 포함되어 있지 않습니다.
검사는 통제된 실습 환경을 위해 설계되었으며 프로덕션에서 사용하기 전에 검토해야 합니다.
| 패키지 검사 |
|---|
| 설정 검사 |
|---|
| 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 결과 |