**웹방화벽**(Web Application Firewall, WAF) 은, 일반적인 네트워크 방화벽 (Firewall)과는 달리 웹 애플리케이션 보안에 특화되어 개발된 솔루션이다. 웹방화벽의 기본 역할은 그 이름에서도 알 수 있듯, SQL Injection, Cross-Site Scripting(XSS)등과 같은 웹 공격을 탐지하고 차단하는 것인데, 직접적인 웹 공격 대응 이 외에도, 정보유출방지솔루션, 부정로그인방지솔루션, 웹사이트위변조방지솔루션 등으로 활용이 가능하다.

* 정보유출방지솔루션으로 웹방화벽을 이용할 경우, 개인정보가 웹 게시판에 게시되거나 개인 정보가 포함된 파일 등이 웹을 통해 업로드 및 다운로드 되는 경우에 대해서 탐지하고 이에 대응하는 것이 가능하다.
* 부정로그인방지솔루션으로서는, 추정 가능한 모든 경우의 수를 대입하여 웹사이트에 로그인을 시도하는 경우와 같은 비정상적인 접근에 대한 접근 제어 기능을 한다.
* 웹사이트위변조방지솔루션은 주로 해커가 해킹을 한 후에 과시하는 것이 목적인 웹사이트 위변조가 발생했을 경우, 이에 대해 탐지하고 대응한다.

즉, 웹방화벽은 위에서 기술한 4 가지 웹 보안 기능을 제공하면서, 웹 애플리케이션이라는 [집]을 미처 예상하지 못했던 외부의 공격으로부터 지켜내고, 사전에 발견하지 못했던 내부의 위험 요소로부터 지켜내는 [울타리] 역할을 수행하는 존재라고 할 수 있다.

역사
--

### 1세대 웹방화벽

웹방화벽은 사용자의 필요와 요청에 의해 꾸준히 진화해 왔다. 1세대 웹방화벽은 블랙리스트 방식과 더불어 안전한 접근에 대한 허용 리스트인 화이트리스트(White List)를 병행하는 방식을 사용했다. 자동으로 온라인 업데이트 서비스를 제공하는 블랙리스트와는 달리 화이트리스트는 고객 환경에 따라 다르게 적용이 되기 때문에 관리자가 직접 생성 및 관리를 할 수 밖에 없었고, 블랙리스트 역시 결국 최종 적용을 위한 검토는 관리자에게 부담으로 작용했다. 또한 공격 유형이 다양해짐에 따라 등록된 시그니처의 수가 늘어날 수록 성능이 저하되는 문제마저 발생했다.

### 2세대 웹방화벽

2세대 웹방화벽은 보호 대상 웹 애플리케이션을 몇 주간의 모니터링을 통해 분석하여, 화이트리스트 생성을 자동으로 처리해주는 것이 특징이다. 하지만 이는 빠르게 변화하는 웹 환경에 적합하지 않았다. 또한, 생성된 화이트리스트 또한 적용을 위한 최종 검토 및 관리가 필요했기 때문에 관리자의 부담은 여전히 존재했으며, 웹 보안 환경에 존재하는 다양한 웹 공격 유형을 파악하지 못했기 때문에, 많은 성능 저하 및 오탐 이슈가 발생했다.

그래서 등장하게 된 것이 3세대 웹방화벽인 ‘지능형 웹방화벽’이다.

### 3세대 웹방화벽

3세대 웹방화벽은 웹 공격 유형 별로 블랙리스트 탐지, 화이트리스트 탐지 및 웹 트래픽 컨텐츠 분석 등의 기법들을 로지컬하게 결합하여 공격을 탐지하는 방식을 사용하였기 때문에, 1,2세대 웹방화벽 대비 오탐을 대폭 줄일 수 있었다. 또한 특정 공격 유형의 새로운 변종 공격이 발생할 경우, 로직 기반으로 판단하는 3세대 웹방화벽은 최소한의 시그니처의 추가 만으로 바로 변종 공격의 방어가 가능해졌다. 이로 써 1,2 세대의 지속적인 시그니처 등록으로 인한 성능 저하 문제를 해결할 수 있었다. 관리자가 리스트 관리 보다는 공격 유형 별 정책 관리에 집중할 수 있어, 훨씬 효율적인 관리가 가능해졌다.

형태에 따른 분류
---------

### 하드웨어형

현재 보편적인 형태인 하드웨어형 웹방화벽은 웹 및 애플리케이션 서버와 가까운 LAN(Local Area Network)\* 내에 설치된다.​ 하드웨어형 WAF의 대표적인 장점은 빠른 속도와 성능이다. 물리적으로 서버와 가깝기 때문에 웹사이트를 오가는 데이터 패킷을 빠르게 추적하고 필터링할 수 있다. 그만큼 애플리케이션 영역을 보호하는 데 유리하지만 하드웨어를 구입하고 설치, 유지보수 등에 필요한 비용은 다소 높은 편이다.

### 소프트웨어형

소프트웨어형 웹방화벽은 하드웨어 기기 없이 가상 머신(Virtual Machine, VM)\* 위에 설치된다. 모든 구성요소는 기본적으로 하드웨어형 웹방화벽과 동일하지만, 사용자가 가상머신을 실행하기 위해 Hypervisor가 필요하다는 차이점이 있다. 소프트웨어형 웹방화벽의 장점은 유연성이다. 사내 시스템에 활용할 수 있을 뿐만 아니라, 가상 머신을 클라우드 기반 웹 및 애플리케이션 서버에도 연결할 수 있다. 또한 하드웨어형 웹방화벽보다 저렴한 비용으로 도입할 수 있다. 하지만 가상 머신 위에서 실행되기 때문에 모니터링 및 필터링 과정에서 하드웨어형 웹방화벽보다 속도가 느릴 수 있다는 것이 단점이다.

### 클라우드형

클라우드형 웹방화벽은 서비스 제공업체가 SaaS(Software-as-a-Service) 형태로 직접 제공, 관리하는 웹방화벽 형태이다. 소프트웨어형 웹방화벽은 구성요소가 클라우드에 위치하고 있어 사용자가 로컬이나 가상 머신에 그 어떤 것도 설치하지 않아도 된다. 클라우드형 웹방화벽의 가장 큰 장점은 간편함이다. 앞서 말했듯이 사용자는 물리적으로 소프트웨어를 설치할 필요가 없어 단순히 서비스에 가입하는 것만으로도 웹방화벽 사용 준비가 끝난다. 서비스 제공자는 사용자가 웹방화벽을 직접 관리할 필요가 업도록 모든 최적화 및 업데이트 요소를 제공하지만, 서비스 제공기업이 주체가 되어 관리하므로 기업 환경에 맞춰 세부적인 세팅은 어려울 수 있다.

#### 클라우드 웹방화벽

**클라우드 웹방화벽은 총 3개의 상황으로 나눠 볼 수 있다.**  

1. 기존의 IT 시스템을 클라우드로 이동 

기존의 IT 시스템을 클라우드 환경으로 이동하는 경우는 다시 프라이빗 클라우드(Private Cloud)와 퍼블릭 클라우드(Public Cloud)의 경우로 나눌 수 있다. 프라이빗 클라우드로 이동하는 경우 기존의 운영중인 보안 시스템도 클라우드 환경으로 이동이 필요하다. 대신 운영 중인 하이퍼바이저(Hypervisor)에 맞는 버추얼 어플라이언스(Virtual Appliance)를 요청해야 한다. 

퍼블릭 클라우드로 이동하는 경우는 클라우드 서비스 제공 기업이 기본적인 네트워크, 시스템 보안을 갖추고 있는 경우도 있다. 다만 스스로 설정 및 관리를 해야하는 기본적인 유틸리티 수준으로 제공되기 때문에 별도의 웹방화벽을 선택해야 한다.

  

2. 클라우드 환경을 보유하고 있고, 외부로부터 보호하고 싶은 경우 

클라우드 환경을 보유하고 있다면, 하이퍼바이저에 맞는 버추얼 어플라이언스를 요청해야 한다. 

  

3. 클라우드 환경을 보유하고 있고, 보안 서비스를 제공하고 싶은 경우

보유하고 있는 클라우드 환경을 이용하여 WAF 서비스를 제공하고 싶다면, 내부 사용자에게는 버추얼머신(Virtual Machine)을 활용한 웹방화벽을 구성하는 것이 좋다. 외부의 웹서버를 갖고 있는 사용자에게 웹방화벽

서비스를 제공하고자 할 경우에는 SECaaS 형태의 솔루션을 구축하는 것이 좋다.