웹 애플리케이션 방화벽 (WAF)
ModSecurity와 OWASP CRS를 기반으로 강력한 웹 보호 기능을 제공합니다.
개요
Nginx Proxy Guard는 업계 표준의 ModSecurity v3 엔진과 OWASP Core Rule Set(CRS) v4.21을 통합하여 SQL 인젝션, XSS, 경로 탐색, 명령어 인젝션 등 다양한 웹 공격으로부터 애플리케이션을 보호합니다.
핵심 기능
ModSecurity v3.0.14
- 최신 버전의 오픈소스 WAF 엔진
- 높은 성능과 안정성
- Nginx와 완벽한 통합
OWASP CRS v4.21.0
- 최신 Core Rule Set 적용
- OWASP Top 10 취약점 방어
- 정기적인 규칙 업데이트
동작 모드
| 모드 | 설명 | 사용 시기 |
|---|---|---|
| 탐지 (Detection) | 공격을 로그에 기록만 함 | 초기 설정, 오탐 분석 시 |
| 차단 (Blocking) | 공격 탐지 시 즉시 차단 | 프로덕션 환경 |
호스트별로 독립적으로 모드를 설정할 수 있어, 새로운 서비스는 탐지 모드로 시작하고 안정화 후 차단 모드로 전환하는 것을 권장합니다.
Paranoia Level (1-4)
보안 강도를 4단계로 조절할 수 있습니다.
| 레벨 | 설명 | 오탐 가능성 |
|---|---|---|
| PL1 | 기본 보호 | 낮음 |
| PL2 | 향상된 보호 | 중간 |
| PL3 | 강화된 보호 | 높음 |
| PL4 | 최대 보호 | 매우 높음 |
일반적으로 PL1 또는 PL2로 시작하여 환경에 맞게 조정하는 것을 권장합니다.
WAF 규칙 관리
호스트별 예외 처리
특정 호스트에서 오탐을 발생시키는 규칙을 개별적으로 비활성화할 수 있습니다.
- 규칙 ID별 비활성화
- 변경 이력 추적
- 즉시 적용 (Nginx 재시작 불필요)
전역 예외 처리
모든 호스트에 공통적으로 적용되는 규칙 예외를 설정합니다.
- 전역 규칙 비활성화/활성화
- 전역 예외 목록 관리
- 정책 변경 이력 조회
정책 버전 관리
WAF 정책의 모든 변경 사항이 이력으로 기록됩니다.
- 호스트별 정책 변경 이력
- 전역 정책 변경 이력
- 변경 시점, 변경자, 변경 내용 추적
WAF 테스트 인터페이스
프로덕션 적용 전 WAF 규칙을 테스트할 수 있는 인터페이스를 제공합니다.
기능
- 단일 패턴 테스트: 특정 공격 패턴이 탐지되는지 확인
- 전체 패턴 테스트: 모든 테스트 패턴에 대해 일괄 테스트
- 결과 분석: 어떤 규칙이 트리거되었는지 확인
테스트 패턴 예시
| 공격 유형 | 테스트 패턴 예시 |
|---|---|
| SQL Injection | ' OR '1'='1 |
| XSS | <script>alert('xss')</script> |
| Path Traversal | ../../../etc/passwd |
| Command Injection | ; cat /etc/passwd |
자동 IP 차단
WAF 이벤트 기반 자동 차단 기능을 제공합니다.
설정 옵션
| 옵션 | 설명 | 기본값 |
|---|---|---|
| 임계값 | 차단 트리거 이벤트 수 | 10 |
| 시간 창 | 이벤트 집계 기간 (초) | 300 |
| 차단 기간 | IP 차단 유지 시간 (초) | 3600 |
동작 방식
- WAF가 공격 패턴을 탐지
- 설정된 시간 창 내에서 이벤트 수 집계
- 임계값 초과 시 자동으로 IP 차단
- 차단 기간 만료 후 자동 해제
WAF 로그 분석
로그 정보
- 탐지된 규칙 ID 및 설명
- 공격 유형 분류
- 요청 세부 정보 (URI, 메서드, 헤더)
- 클라이언트 IP 및 GeoIP 정보
필터링 옵션
- 호스트별 필터링
- 규칙 ID별 필터링
- 시간 범위 지정
- 공격 유형별 분류
모범 사례
초기 설정
- 탐지 모드로 시작: 먼저 탐지 모드로 트래픽을 모니터링
- 오탐 분석: 정상 트래픽이 차단되는 패턴 확인
- 규칙 예외 추가: 필요한 규칙만 예외 처리
- 차단 모드 전환: 안정화 후 차단 모드로 전환
Paranoia Level 조정
- PL1에서 시작하여 보안 요구사항에 따라 점진적으로 상향
- PL3 이상은 오탐 가능성이 높으므로 충분한 테스트 필요
- 특정 애플리케이션 요구사항에 맞게 조정
규칙 예외 관리
- 전역 예외는 최소화
- 호스트별 예외로 세분화된 관리
- 예외 추가 시 문서화 및 사유 기록
- 정기적인 예외 목록 검토
방어 가능한 공격 유형
| 카테고리 | 공격 유형 |
|---|---|
| 인젝션 | SQL Injection, NoSQL Injection, LDAP Injection, XPath Injection |
| XSS | Reflected XSS, Stored XSS, DOM-based XSS |
| 경로 탐색 | Directory Traversal, Local File Inclusion, Remote File Inclusion |
| 명령어 인젝션 | OS Command Injection, Shell Injection |
| 프로토콜 공격 | HTTP Request Smuggling, HTTP Response Splitting |
| 데이터 유출 | Credit Card Number Detection, SSN Detection |
| 스캐너 탐지 | 보안 스캐너, 취약점 스캐너 탐지 |