웹방화벽
웹방화벽(WAF, Web Application Firewall)은 일반적인 네트워크 방화벽(Firewall)과는 다르게 웹 애플리케이션 보안에 특화되어 개발된 제품이다. 웹방화벽의 기본 역할은 SQL Injection, Cross-Site Scripting(XSS)등과 같은 웹 공격을 탐지하고 차단하는 것인데, 직접적인 웹 공격 대응 이 외에도, 정보유출방지솔루션, 부정로그인방지솔루션, 웹사이트위변조방지솔루션 등으로 활용이 가능하다. 정보유출방지솔루션의 경우, 개인정보가 웹 게시판에 게시되거나 개인 정보가 포함된 파일 등이 웹을 통해 업로드 및 다운로드 되는 경우에 대해서 탐지하고 대응하는 것이 가능하다. 부정로그인방지솔루션의 경우, 추정 가능한 모든 경우의 수를 대입하여 웹사이트에 로그인을 시도하는 경우와 같은 비정상적인 접근에 대한 접근 제어 기능을 한다. 웹사이트위변조방지솔루션의 경우, 해커가 해킹을 한 후에 과시하는 것이 목적인 웹사이트 위변조가 발생했을 경우, 이에 대해 탐지하고 대응한다. 즉, 웹방화벽의 역할은 집(애플리케이션)을 지키는 울타리 역할이라고 볼 수 있다.[1]
개요
웹앱(Web Application)은 인터넷을 통해서 사용하는 홈페이지 대부분의 서비스를 의미한다. 웹 공격의 대부분은 웹앱을 구축할 때 생겨나는 취약점을 이용해서 웹 서버를 공격하거나 데이터베이스 내용을 악용하는 방법으로, 공격자는 HTTP 요청에 특정 공격 코드 또는 특정 웹앱만이 가지고 있는 취약점을 우회하는 코드를 삽입하여 웹앱에 전송하게 된다. 웹방화벽의 역할은 이러한 웹 서버 쪽으로 전송되는 모든 HTTP 요청 패킷을 검사하여 웹앱에 의도하지 않은 내용이 전송되지 못하게 막는 역할을 한다. 또, 웹 서버에서 통과하는 HTTP 응답 내용을 감시하여 특정 정보의 유출을 막는 역할도 한다.
패킷을 검사하는 원리는 프록시 서버의 원리에서 가져온 것이다. 프록시 서버의 역할은 클라이언트와 서버 간의 통신을 중계하고 응답하는 것이다. 웹방화벽의 원리는 웹 서버로 들어오고 나가는 모든 패킷을 프록시 서버의 원리를 적용하여 패킷의 내용을 검사하고 차단하는 것이다.[2]
역사
웹 방화벽이 등장하기 전에는 방화벽, 침입 탐지시스템(IDS, Intrusion Detection System), 침입 방지시스템(IPS, Intrusion Prevention system)이 네트워크 보안을 책임 지고 있었다. 방화벽은 네트워크 패킷 중 네트워크 프로토콜의 TCP/IP 레이어에서 IP와 포트 정보를 가지고 방어를 한다. 침입 탐지시스템, 침입 방지 시스템은 네트워크 프로토콜에서 어플리케이션 프로토콜의 패킷 내용을 문자열 비교에 의해 침입시도를 감시하고 차단하는 역할을 한다. 하지만 네트워크 보안제품의 한계로 각종 침해사고가 발생하여 웹 해킹을 전담으로 하는 웹방화벽이 화제가 되었고 초기의 웹방화벽은 이 세 개의 시스템에 영향을 받아 웹 트래픽을 공격 구문(시그니처)과 비교하여 검사하는 방식인 블랙리스트 기반 탐지 방식을 채택하였다. 이와 같은 동작 방식의 세분화를 통해 웹방화벽의 세대를 구분할 수 있다. 1세대 웹방화벽은 블랙리스트 방식과 안전한 접근엔 대한 허용 리스트인 화이트리스트를 병행하는 방식을 사용하였다. 자동으로 온라인 업데이트되는 블랙리스트와는 다르게 화이트리스트는 클라이언트의 환경에 따라 다르게 적용되기 때문에 관리자가 직접 생성 및 관리를 해야 해서 관리자에게 큰 부담이 되었고 다양한 공격에 대한 분석 없이 대응하여 다량의 오탐이 발생했다. 공격 유형의 다양화에 따른 등록된 시그니처 수 증가에 의한 성능 저하가 발생했다. 이러한 1세대 웹방화벽의 문제점을 극복하기 위해 2세대 웹방화벽에서는 자동으로 온라인 업데이트되는 블랙리스트와 몇 주간의 모니터링 결과를 기반으로 화이트리스트 생성을 자동으로 처리해주었다. 하지만 2세대 웹방화벽 또한 화이트리스트의 적용을 위한 검토 및 관리가 필요했기 때문에 관리자의 부담이 컸다. 1세대, 2세대의 웹방화벽 탐지 방식은 웹 보안 환경과 어울리지 않아 많은 성능 저하 및 오탐을 일으켰다. 그렇게 해서 등장하게 된 것이 3세대 지능형 웹방화벽이다.
3세대 웹방화벽은 웹 공격 유형별로 블랙리스트, 화이트리스트를 탐지, 웹 트래픽 컨텐츠 분석 등의 기법들을 결합하여 공격을 탐지하는 방식을 사용한다. 웹 공격 유형별 로직에 따라 웹 트래픽 컨텐츠를 검사하여 해당 종류의 공격인지 아닌지 진위 여부를 판단하기 때문에 1세대, 2세대 웹방화벽 대비 오탐률이 낮다. 또 특정 공격 유형의 새로운 변종 공격이 발생할 경우, 새로운 시그니처를 등록해야 하거나, 많은 관리 부담에도 불구하고 화이트리스트를 잘 설계해서 적용해야 했던 1세데, 2세대 웹방화벽과는 다르게 시그니처 기반 탐지가 아닌 공격 로직 분석을 통한 탐지를 수행하기 때문에 신종 변종 공격에 대해서도 즉각적 대응이 가능하다. 최소한의 신규 시그니처 추가만으로 변종 공격 방어가 가능해서 성능 저하 이슈 발생률도 줄어들었고 1세대, 2세대 공통적인 문제점이었던 관리자의 시그니처 관리 부담이 사라져 효율적인 보안 관리가 가능해졌다.[3]
기능
웹 방화벽은 HTTP의 요청/응답 메시지 내용을 분석, 포지티브 정책과 네거티브 정책을 혼용하여 탐지 기능을 수행한다. 요청 메시지의 가장 큰 특징은 URL 단위의 탐지 기능이다. 해당 사이트는 서비스를 제공할 URL을 포지티브 정책으로 설정하면, 등록된 URL 외의 다른 URL을 사용자가 요청할 경우 탐지하여 요청 거부 메시지를 보낸다. 이러한 경우 악의적인 사용자가 정상적인 URL 외의 다른 URL로 접근하는 것을 막을 수 있다. 네거티브 정책에서는 정상적인 URL에서 악의적인 공격 패턴 XSS,SQL Injection, OS Command Injection 등을 검출해 내는 문자열 비교 정책을 추가할 수 있다. 요청 메소드(GET, POST, OPTION)까지도 포지티브 정책에 설정할 수 있다. 특정 URL에서만 사용하는 쿠키/히든 필드나 파라미터 값들을 설정하여 정교한 탐지 기능을 제공한다. 파일 업로드 제어 기능과 파일 검사 기능을 지원한다. 사용자가 웹 서버로 업로드하는 파일에 대해 파일의 종류에 따라 업로드를 허용, 차단 여부를 지정할 수 있다. 업로드 파일의 내용을 검사하여 악의적인 공격 형태의 파일들은 파일 필터를 통해 업로드가 차단되어 웹 사이트를 악용하는 사용자로부터 안전하게 보호하는 역할을 한다.
응답 메시지의 대표적인 기능은 웹 서버의 에러 또는 오류 정보를 차단하여, 악의적인 사용자가 웹 서버에 대한 정보를 알 수 없게 하는 것이다. 요즘은 주요 정보를 차단하는데 많이 사용 되고 있다. 사용자의 주민등록번호, 휴대폰 번호, 집 주소, 이메일 주소, 카드번호 등의 개인 정보들이 다른 사용자들에게 노출 되는 것을 방지하는 것이다.부가적으로 웹 가속기능이나, SSL 가속기능, Cache 기능들을 지원한다. 웹 방화벽 탐지기술의 장점은 HTTP 프로토콜 속성값의 작은 단위까지도 정책설정이 가능하다. 웹 서비스 개발 시점에 신경쓰지 못했던 보안상의 문제점들을 보완할 수 있어 웹 서비스를 보다 안전하게 사용자들에게 제공할 수 있다. [2]
각주
- ↑ 웹방화벽 위키백과 - https://ko.wikipedia.org/wiki/%EC%9B%B9%EB%B0%A9%ED%99%94%EB%B2%BD
- ↑ 2.0 2.1 뉴딜코리아, 〈웹 방화벽의 개념과 원리〉, 《네이버 블로그》, 2016-05-29
- ↑ 김덕수 펜타시큐리티시스템 CTO, 〈제대로 알고 쓰는 웹 해킹 차단 시스템〉, 《지디넷코리아》, 2014-02-26
참고 자료
- 웹방화벽 위키백과 - https://ko.wikipedia.org/wiki/%EC%9B%B9%EB%B0%A9%ED%99%94%EB%B2%BD
- 김덕수 펜타시큐리티시스템 CTO, 〈제대로 알고 쓰는 웹 해킹 차단 시스템〉, 《지디넷코리아》, 2014-02-26
- 뉴딜코리아, 〈웹 방화벽의 개념과 원리〉, 《네이버 블로그》, 2016-05-29
같이 보기