WAF(Web Application Firewall)는 OSI 모델의 7계층(애플리케이션 계층)에서 동작하는 보안 솔루션입니다. 전통적인 네트워크 방화벽이 IP/포트 기반으로 트래픽을 필터링하는 것과 달리, WAF는 HTTP 요청의 내용(URI, 헤더, 바디, 쿠키)을 분석하여 악의적인 패턴을 탐지합니다. 웹 서버 앞에 리버스 프록시 형태로 배치되어, 모든 인바운드 트래픽을 검사한 후 안전한 요청만 백엔드로 전달합니다.
WAF의 탐지 방식은 크게 시그니처 기반(Signature-based)과 이상 행위 기반(Anomaly-based)으로 나뉩니다. 시그니처 기반은 알려진 공격 패턴(예: ' OR 1=1 --, <script>alert)을 데이터베이스에 저장하고 매칭합니다. OWASP Core Rule Set(CRS)은 가장 널리 사용되는 오픈소스 시그니처 세트입니다. 이상 행위 기반은 정상 트래픽의 베이스라인을 학습하고, 이를 벗어나는 요청을 탐지합니다. 최신 WAF는 두 방식을 결합하고 머신러닝을 추가해 오탐(False Positive)을 줄이면서 탐지율을 높입니다.
WAF 배포 방식에는 온프레미스 어플라이언스, 클라우드 기반 서비스, 소프트웨어/컨테이너 배포가 있습니다. AWS WAF는 CloudFront, ALB, API Gateway와 통합되어 손쉽게 활성화할 수 있습니다. Cloudflare WAF는 CDN과 통합되어 DDoS 방어와 함께 제공됩니다. ModSecurity는 Apache, Nginx, IIS에서 사용 가능한 오픈소스 WAF 엔진이며, OWASP CRS와 함께 사용됩니다. Coraza는 Go로 작성된 현대적 오픈소스 WAF로, Envoy, Caddy 등과 통합됩니다.
WAF는 심층 방어(Defense in Depth)의 한 계층으로, 애플리케이션 자체의 보안 코딩을 대체하지 않습니다. SQL 인젝션에 대한 근본적인 방어는 파라미터화된 쿼리(Prepared Statement)이고, XSS는 출력 인코딩이 근본 대책입니다. WAF는 개발 팀이 취약점을 수정하기 전까지의 가상 패치(Virtual Patching), 알려지지 않은 취약점에 대한 추가 방어 계층, 공격 패턴 분석을 위한 로깅/모니터링 역할을 합니다. 최근에는 API 보호(API Gateway + WAF), 봇 탐지, 레이트 리미팅 기능도 통합되고 있습니다.