web-threat-mitigation
OWASP ZAP, Burp Suite, ModSecurity WAF(OWASP CRS 포함)를 사용하여 웹 애플리케이션 위협을 탐지 및 완화하는 실습용 랩입니다. 사례 연구: Spring4Shell (CVE-2022-22965). 로컬 Docker 기반 구성.
Web Threat Mitigation Lab – OWASP ZAP, ModSecurity & CVE 익스플로잇
이 저장소는 일반적인 웹 애플리케이션 위협을 시뮬레이션, 분석 및 완화하는 실습을 문서화합니다. 취약한 타겟 설치, 스캐닝 도구, WAF(ModSecurity + OWASP CRS) 배포, 그리고 CVE-2022-22965(Spring4Shell)의 실제 익스플로잇이 포함됩니다.
실습 목표
- Docker를 사용하여 취약한 웹 애플리케이션(WebGoat) 배포
- OWASP ZAP 및 Burp Suite를 사용한 취약점 스캔 수행
- Nginx + ModSecurity + OWASP CRS 4.9.0을 사용한 리버스 프록시 설정
- WAF 구현 전후 결과 분석
- Spring4Shell 익스플로잇 및 WAF 효과 검증
사용 도구
- Docker + Docker Compose
- OWASP ZAP 및 Burp Suite
- ModSecurity (libnginx-mod-http-modsecurity 경유)
- OWASP Core Rule Set (CRS 4.9.0)
- Metasploit Framework가 포함된 Kali Linux
- CentOS 9 Stream 및 Debian 12
실습 워크플로우
- WebGoat 배포 - CentOS에서 Docker를 사용하여 포트 8080에 노출.



- 초기 스캔 - Kali Linux에서 OWASP ZAP 사용:
- 고위험 경고: SQL 인젝션, Spring4Shell
- 중간: CSP 누락, CSRF 토큰, 파라미터 변조
- 정보: 버전 노출, 잠재적 XSS, 세션 문제


- 리버스 프록시 배포 - Debian 12에서 nginx 사용.

- WAF 설정 - OWASP CRS와 다음 경로에서 로드된 규칙:
/etc/nginx/coreruleset-4.9.0/crs-setup.conf
/etc/nginx/coreruleset-4.9.0/rules/*.conf
ModSecurity 로그를 확인하여 규칙을 테스트하고 활성화했습니다.



- WAF 후 스캔 - OWASP ZAP 사용 결과:
- 경고 감소 (차단 또는 마스킹된 응답)
- WAF 보호 확인


- 익스플로잇 테스트 - Metasploit을 사용한 Spring4Shell 공격:
- WAF 미적용: RCE 성공 (리버스 셸 페이로드)
- WAF 적용: CRS 탐지로 인해 익스플로잇 차단


결론
이 실습은 계층형 보안의 중요성을 보여줍니다:
- 취약한 앱은 보호 없이 쉽게 노출될 수 있음
- ZAP/Burp는 취약점 식별 및 분류에 도움
- ModSecurity와 OWASP CRS는 공격 표면을 효과적으로 줄임
- WAF는 적절한 조정으로 Spring4Shell과 같은 실제 CVE를 차단할 수 있음
저자
Bruno Paolo Huamán Vela (리마, 페루)
사이버보안 학생 – Ural Federal University (UrFU)