웹 애플리케이션 방화벽

**웹 애플리케이션 방화벽**(Web application firewall, **WAF**)은 애플리케이션 방화벽의 특정 형태로, 웹 서비스를 오가는 HTTP 트래픽을 필터링, 모니터링, 차단한다. HTTP 트래픽을 검사하여 SQL 삽입, 사이트 간 스크립팅(XSS), 파일 포함 취약점, 부적절한 시스템 구성과 같이 웹 애플리케이션의 알려진 취약점을 악용하는 공격을 방지할 수 있다. 대부분의 주요 금융 기관은 WAF를 활용하여 웹 애플리케이션의 "제로 데이" 취약점뿐만 아니라 사용자 지정 공격 시그니처 문자열을 통해 패치하기 어려운 버그나 취약점을 완화하는 데 도움을 받는다.

## 역사

전용 웹 애플리케이션 방화벽은 웹 서버 공격이 더욱 만연해지던 1990년대 후반에 시장에 진입했다.

카바도(Kavado)와 길리언(Gilian)은 기술의 초기 WAF 제품이 출시되어 1990년대 후반 웹 애플리케이션에 대한 증가하는 공격을 해결하려고 노력했다. 2002년, WAF 기술의 접근성을 높이기 위해 오픈 소스 프로젝트인 모드시큐리티가 설립되었다. 이들은 OASIS 웹 애플리케이션 보안 기술 위원회(WAS TC)의 취약점 연구를 기반으로 웹 애플리케이션 보호를 위한 핵심 규칙 세트를 완성했다. 2003년에는 오픈 웹 애플리케이션 보안 프로젝트(OWASP)의 웹 보안 취약점 연간 순위인 Top 10 목록을 통해 규칙을 확장하고 표준화했다. 이 목록은 웹 애플리케이션 보안 준수의 산업 표준이 되었다.

그 이후로 시장은 계속 성장하고 발전했으며, 특히 신용카드 사기 방지에 중점을 두었다. 카드 소지자 데이터에 대한 제어 표준화인 지불 카드 산업 데이터 보안 표준(PCI DSS)의 개발로 이 분야의 보안이 더욱 규제되었다. CISO Magazine에 따르면 WAF 시장은 2022년까지 54억 8천만 달러 규모로 성장할 것으로 예상되었다.

## 설명
웹 애플리케이션 방화벽은 웹 애플리케이션에 특별히 적용되는 특수한 유형의 애플리케이션 방화벽이다. 웹 애플리케이션 앞에 배포되어 양방향 웹 기반(HTTP) 트래픽을 분석하고 악성 콘텐츠를 감지하여 차단한다. OWASP는 WAF에 대해 "기술적 관점에서 애플리케이션 자체에 의존하지 않는 웹 애플리케이션 수준의 보안 솔루션"이라는 광범위한 기술적 정의를 제공한다. PCI DSS 요구사항 6.6의 정보 보충 자료에 따르면, WAF는 "웹 애플리케이션과 클라이언트 엔드포인트 사이에 위치한 보안 정책 시행 지점"으로 정의된다. 이 기능은 어플라이언스 장치 또는 일반적인 운영 체제를 실행하는 일반 서버에서 실행되는 소프트웨어 또는 하드웨어로 구현될 수 있다. 이는 독립형 장치이거나 다른 네트워크 구성 요소에 통합될 수 있다. 즉, WAF는 웹 애플리케이션의 취약점이 외부 위협에 의해 악용되는 것을 방지하는 가상 또는 물리적 어플라이언스가 될 수 있다. 이러한 취약점은 애플리케이션 자체가 레거시 유형이거나 설계상 코딩이 불충분했기 때문일 수 있다. WAF는 정책이라고도 하는 규칙 세트의 특별한 구성을 통해 이러한 코드의 단점을 해결한다.

이전에 알려지지 않은 취약점은 침투 테스트 또는 취약점 스캐너를 통해 발견될 수 있다. 웹 애플리케이션 보안 스캐너라고도 하는 웹 애플리케이션 취약점 스캐너는 SAMATE NIST 500-269에서 "잠재적인 보안 취약점을 검사하는 자동화된 프로그램"으로 정의된다. 이 도구는 웹 애플리케이션 특정 취약점을 찾는 것 외에도 소프트웨어 코딩 오류를 찾는다. 취약점 해결은 일반적으로 복원이라고 한다. 코드 수정은 애플리케이션에서 이루어질 수 있지만 일반적으로 더 신속한 대응이 필요하다. 이러한 상황에서는 고유한 웹 애플리케이션 취약점에 대한 사용자 지정 정책을 적용하여 임시적이지만 즉각적인 수정(가상 패치라고 함)을 제공해야 할 수 있다.

WAF는 궁극적인 보안 솔루션이 아니라 네트워크 방화벽 및 침입 방지 시스템과 같은 다른 네트워크 경계 보안 솔루션과 함께 사용하여 전체적인 방어 전략을 제공하기 위한 것이다.

WAF는 일반적으로 SANS 연구소에서 언급한 대로 긍정적 보안 모델, 부정적 보안 또는 이 둘의 조합을 따르다. WAF는 규칙 기반 논리, 구문 분석, 시그니처 조합을 사용하여 사이트 간 스크립팅 및 SQL 삽입과 같은 공격을 감지하고 방지한다. 일반적으로 브라우저 에뮬레이션, 난독화 및 가상화, IP 난독화와 같은 기능은 WAF를 우회하려고 시도하는 데 사용된다. OWASP는 상위 10가지 웹 애플리케이션 보안 결함 목록을 만든다. 모든 상업용 WAF 제품은 최소한 이 10가지 결함을 다룬다. 비상업적인 옵션도 있다. 앞서 언급했듯이 잘 알려진 오픈 소스 WAF 엔진인 모드시큐리티가 이러한 옵션 중 하나이다. WAF 엔진만으로는 적절한 보호를 제공하기에 불충분하므로 OWASP는 Trustwave의 Spiderlabs와 함께 깃허브를 통해 모드시큐리티 WAF 엔진과 함께 사용할 핵심 규칙 세트(Core-Rule Set)를 조직하고 유지 관리하는 데 도움을 준다.

## 배포 옵션
운영 모드 이름은 다를 수 있지만 WAF는 기본적으로 세 가지 방식으로 인라인으로 배포된다. NSS Labs에 따르면 배포 옵션은 투명 브리지, 투명 리버스 프록시, 리버스 프록시이다. "투명"은 HTTP 트래픽이 웹 애플리케이션으로 직접 전송되므로 WAF가 클라이언트와 서버 사이에 투명하게 존재한다는 사실을 의미한다. 이는 WAF가 프록시 역할을 하고 클라이언트의 트래픽이 WAF로 직접 전송되는 리버스 프록시와 대조된다. WAF는 그 다음 필터링된 트래픽을 웹 애플리케이션으로 별도로 보낸다. 이는 IP 마스킹과 같은 추가적인 이점을 제공할 수 있지만 성능 지연과 같은 단점을 초래할 수 있다.

## JA3 지문
2017년 세일즈포스에서 개발한 JA3는 SSL/TLS 핸드셰이크의 특정 필드(예: 클라이언트가 사용하는 버전, 암호화 스위트, 확장)를 기반으로 고유한 지문을 생성하는 기술이다. 이 지문은 암호화된 트래픽의 특성을 기반으로 클라이언트를 식별하고 추적할 수 있도록 한다. 분산 서비스 거부 공격(DDoS) 방어의 맥락에서 JA3 지문은 악성 트래픽(종종 공격 봇과 관련됨)을 합법적인 트래픽과 구별하여 잠재적 위협을 보다 정밀하게 필터링하는 데 사용된다. 2023년 9월, AWS WAF는 JA3 내장 지원을 발표하여 고객이 수신 요청의 JA3 지문을 검사할 수 있도록 했다. JA3는 2025년 5월에 JA4로 대체되어 사용 중단되었다.

## 같이 보기
* 애플리케이션 방화벽
* 지불 카드 산업 데이터 보안 표준 (PCI DSS)
* 웹 애플리케이션
* 서비스형 소프트웨어 (SaaS)
* 컴퓨터 보안
* 네트워크 보안
* 애플리케이션 보안
* 웹 애플리케이션 보안

## 각주

분류:방화벽 소프트웨어
분류:웹 애플리케이션