
NGINX 재작성 취약점(CVE-2026-42945) 훈련을 위한 도커화된 실습 환경으로, 취약 인스턴스와 패치된 인스턴스, 정상 테스트 스크립트, 구성 감사 실습을 포함합니다.
두 개의 도커화된 NGINX 인스턴스: 패턴 기반 "위험한 재작성" 스니펫 vs 수정된 명명된 캡처 스니펫, nginx:1.30.0-alpine / nginx:1.30.1-alpine에 고정됨. 스크립트는 무해한 curl을 실행하고, nginx -T를 덤프하며, 증거를 아카이브합니다. 구성 검토 교육 전용입니다 — /health, /nginx_status, /legacy/는 실습실 엔드포인트입니다. 실습실 VLAN 외부 노출을 제한하십시오.
범위: 승인된 호스트만. 공급업체 권고사항 및 자체 정책에 따라 scripts/check-nginx-rewrite-risk.sh의 [RISK] 출력을 해석하십시오(구성에 대한 휴리스틱 grep, 공식 스캐너 아님).
Host 127.0.0.1:18080 -> nginx-rift-vulnerable (listens :8080 in container)
Host 127.0.0.1:18081 -> nginx-rift-patched
www/ -> RO -> /usr/share/nginx/html (both)
nginx-vulnerable/nginx-patched -> RO -> conf.d/default.conf
Network: nginx_rift_net (bridge)
저장소 트리: docker-compose.yml, nginx-{vulnerable,patched}/default.conf, www/, scripts/, evidence/ (.gitkeep 제외한 아티팩트는 gitignore됨), docs/.
Docker + docker compose, bash, curl. 한 번: chmod +x scripts/*.sh. Linux(또는 VM)는 collect-evidence.sh의 해당 수집기 라인을 신경 쓴다면 /proc/sys/kernel/randomize_va_space를 노출합니다. macOS Docker Desktop은 종종 이를 건너뜁니다 — 스크립트가 해당 사례를 기록합니다.
cd nginx-rift-defensive-lab
docker compose pull # optional
docker compose up -d
docker compose ps
./scripts/benign-request-test.sh
./scripts/check-nginx-rewrite-risk.sh
./scripts/check-nginx-rewrite-risk.sh nginx-rift-patched
./scripts/collect-evidence.sh
./scripts/cleanup-lab.sh
# ./scripts/cleanup-lab.sh --purge-evidence
18080/18081 포트가 충돌하는 경우 호스트 포트를 변경하십시오 (docker-compose.yml).
| 경로 | 역할 |
|---|---|
/health | 프로브를 위한 안정적인 텍스트 (vulnerable-nginx-alive / patched-nginx-alive) |
하이픈과 함께 docker compose up -d를 사용하십시오. *d와 같은 셸 글롭은 의도하지 않은 파일 이름으로 확장될 수 있습니다.
/nginx_status | stub_status (프로덕션에서는 제한) |
/legacy/ | 재작성 데모 |
| 파일 | 목적 |
|---|
docs/LAB_GUIDE.md | 단계별 실습 |
docs/WEBINAR_FLOW.md | 발표자 진행 속도 |
docs/PRTG_MONITORING_NOTES.md | 센서 예제 |
docs/REMEDIATION_SUMMARY_TEMPLATE.md | CAB/사고 템플릿 |
docs/NGINX_RIFT_DEFENSIVE_LAB_COMPLETE_GUIDE.md | 통합 마크다운 |
docs/TR_KAPSAMLI_SAVUNMA_LAB_REHBERI.md | 터키어 핸드북 |
docs/PDF_GENERATION_NOTES.txt | 선택적 로컬 PDF 빌드 (docs/*.pdf, gitignore됨) |