| 웹 방화벽, 차별화된 탐지기술로 ‘디테일’한 보안 제공한다 | 2009.07.02 |
웹 보안 & 웹 방화벽이란?
웹 방화벽 도입으로 웹사이트 보안 강화, 안전한 서비스 제공
웹은 끊임없이 발전하며 새로운 변화를 만들어내고 있고 우리에게 다양한 편리성과 유용성을 제공하고 있다. 그러나 이러한 편리성의 이면에는 각종 정보보호 관련 사고들이 도사리고 있다. 특히 최근 국내에서 급증하는 대량의 개인정보 유출사건, 개인 홈페이지 해킹사건, 금융권의 인터넷뱅킹 해킹사건은 개인 및 기업, 공공기관의 정보 유출을 넘어 직접적인 금전적 피해를 끼치게 되면서 웹 보안에 대해 사람들의 관심이 증가하게 되었다. 현대 사회를 정보화 사회라고 말한다. 이러한 정보화 사회를 이끌어 온 주역은 웹(인터넷)이다. 수많은 정보가 웹(인터넷)을 통해 제공되면서 누구나 손쉽고 편리하게 다양한 정보들을 접할 수 있게 되었다. 인터넷이 연결되는 곳이라면 어디에서나 클릭 몇 번만으로 생활에 필요한 다양한 물건을 구매하기도 하고 메신저나 싸이월드, 블로그 등을 통해 친구나 지인들의 안부를 확인하기도 한다. 직접 은행에 가는 것보다 인터넷뱅킹 이용이 더 익숙한 시대에 살고 있다. 웹은 끊임없이 발전하며 새로운 변화를 만들어내고 있고 우리에게 다양한 편리성과 유용성을 제공하고 있다. 그러나 이러한 편리성의 이면에는 각종 정보보호 관련 사고들이 도사리고 있다. 최근 국내에서 급증하는 대량의 개인정보 유출사건, 개인 홈페이지 해킹사건, 금융권의 인터넷뱅킹 해킹사건은 개인 및 기업, 공공기관의 정보 유출을 넘어 직접적인 금전적 피해를 끼치게 되면서 웹 보안에 대해 사람들의 관심이 증가하게 되었다. 기업의 정보보호관련 침해사건은 기업의 신뢰도 하락으로 기업 이미지에 악역향을 끼치는 건 물론, 집단소송으로 이어져 기업의 존폐위기까지 치닫는 등 정보보안의 중요성은 그 어느 때보다 중요하게 인식되었다. 그렇다면 각종 보안 위협으로부터 개인 및 기업이 안정적인 웹 보안환경 마련을 위해 할 수 있는 방법이 무엇일까? 개인 사용자가 웹 보안에 가장 신경 써야 할 부분은 자신이 사용하는 개인 PC를 깨끗한 상태로 유지 하는 것이다. 인터넷 사용자의 해킹유형을 살펴보면 PC에 설치된 악성 프로그램이 PC 내부에 있는 사용자의 개인정보(주민번호, 계정, 아이디/패스워드, 공인 인증키 등)를 해커에게 전송하게 되고 해커의 의해 다른 PC를 공격하는데 이용되기도 한다. 이러한 부분을 방지하기 위해서는 개인 PC용 백신 프로그램을 설치하고 항상 최신버전을 유지하면서 시스템을 감시할 수 있게 해야 한다. 또한 인터넷 서핑 중 신뢰할 수 없는 사이트에서는 ActiveX 프로그램을 다운로드 받지 않는 것도 중요하다. 웹사이트를 운영하는 기업에서는 사용자들이 안전하게 서비스를 이용할 수 있도록 제공하여야 한다. 이를 위해서는 안전한 웹서비스를 구축하는 것이 중요하다. 안전한 웹서비스 구축을 위해서는 설계 단계에서부터 보안을 고려하여 설계하고 개발 단계에서는 소스검증 도구를 이용하여 지속적인 개발소스 검증이 필요하다. 서비스 개발이 완료되면 오픈하기 전에 반드시 보안 전문가의 컨설팅을 통해 서비스 취약점을 점검하고 보완하여야 한다. 하지만 대부분의 기업들은 운영중인 웹사이트를 놔두고 보안을 고려하여 처음부터 다시 웹사이트를 개발하기에는 분명 어려움이 있다. 이러한 경우 웹 방화벽(Web Application Firewall)을 도입하여 웹사이트를 보호하고 고객들에게 안전한 서비스를 제공하는 방법이 있다.
웹 방화벽의 개념과 원리 웹 방화벽(Web Application Firewall)을 알기 위해서는 먼저 Web Application에 대해 알아야 한다. Web Application은 우리 생활에서 늘 접하는 것이라고 할 수 있다. 인터넷을 통해서 우리들이 사용하는 홈페이지나 대부분의 서비스들이 Web Application이라고 생각하면 된다. 사용자들이 사용하는 웹사이트의 구조는 보통 그림 1과 같다.
웹 공격의 대부분은 웹 애플리케이션(Web Application)을 구축할 때 생겨나는 취약점을 이용해서 Web Server를 공격하거나 DB 내용을 악용하는 방법이 대부분이다. 공격자는 HTTP Request에 특정 공격코드 또는 특정 웹 애플리케이션만이 가지고 있는 취약점을 우회는 코드를 삽입하여 웹 서버(Web Server)에 전송하게 된다. 결국 웹 애플리케이션은 의도하지 않은 동작을 하게 되고 그 결과를 HTTP Reply를 통해 공격자게 다양한 정보들을 전송하게 되는 것이다. 웹 방화벽에서 웹 서버 쪽으로 전송되는 모든 HTTP Request Packet을 검사하여 웹 애플리케이션에게 의도하지 않은 내용들은 전송되지 못하도록 하는 역할을 한다. 또한 웹 서버에서 통과하는 HTTP Reply Packet 내용을 감시하여 특정 정보의 유출을 막는 역할도 하게 된다. 웹 방화벽에서 웹 서버쪽으로 HTTP Request/Reply Packet을 검사한다고 했는데 이것이 어떤 방법으로 가능한지 살펴보겠다. 중간에서 Packet을 검사하는 원리는 Proxy Server의 원리에서 가지고 온 것이다. Proxy Server는 Client와 Server간의 통신을 중계하고 Relay 하는 역할을 한다. 웹 방화벽의 원리란 웹 서버로 들어오고 나가는 모든 Packet을 Proxy 원리를 적용하여 Packet의 내용을 검사하고 차단하는 것이다. 웹 방화벽(Web Application Firewall)이 대두되기 전에는 F/W(Fire Wall), IDS(Intrusion Detection System), IPS(Intrusion Prevention system)가 네트워크 보안을 책임지고 있었다. 그러나 네트워크 보안제품의 한계로 인한 각종 침해사고가 발생하면서 웹 해킹을 전담으로 차단하는 웹 방화벽에 대해 이슈화되기 시작했다. 그렇다면 웹 방화벽은 기존의 네트워크 보안 제품(F/W, IDS, IPS)들과 어떠한 차이점이 있는지 알아보자.
HTTP의 내용만을 문자열 비교에 의해 침입시도를 감시하고 차단하는 역할을 한다. 얼핏 보면 IDS, IPS, 웹 방화벽은 그다지 큰 차이점을 찾아보기 힘들다. 다른 점이라면 문자열을 비교할 때 비교하는 DATA의 종류가 다르다는 것이 가장 큰 차이점이다. IDS, IPS에서 검사하는 문자열은 Application Protocols에 쌓여 있는(encapsulation) 상태의 DATA이고 웹 방화벽에서는 애플리케이션에서 직접 사용하게 되는 풀려진(Demultiplexing) 상태의 DATA 문자열 비교를 하게 되는 것이다. 이러한 차이는 Application Protocols에서 암호화된 DATA를 IDS, IPS에서는 기존의 문자열 비교를 통해서는 침입패턴들을 검출해 낼 수 없다. 하지만 웹 방화벽에서는 이미 하위 Layer에서 복호화를 마친 DATA로 문자열 비교를 하기 때문에 침입패턴을 검출해 낼 수 있게 되는 것이다. 또한 웹 방화벽은 HTTP 프로토콜만을 감시하기 때문에 단순한 문자열 비교만을 이용한 침입패턴 탐지가 아닌 HTTP의 프로토콜 속성값들을 통해서 효율적인 방어를 할 수 있다.
웹 방화벽의 주요 기능 웹 방화벽은 HTTP의 Request/Response 메시지 내용을 분석, Positive 정책과 Negative 정책을 혼용하여 탐지 기능을 수행하게 된다. 먼저 Request 메시지를 이용한 탐지 기능을 알아보자. 가장 큰 특징이라고 할 수 있는 것은 URL 단위의 탐지 기능이다. 해당 사이트는 서비스를 제공할 URL을 Positive 정책으로 설정하면 등록된 URL 외의 다른 URL을 사용자가 요청할 경우 탐지하여 요청거부 메시지를 보내는 것이다. 이러한 경우에는 악의적인 사용자가 정상적인 URL 외의 다른 URL로 접근하는 것을 원천적으로 봉쇄할 수 있다. Negative 정책에서는 정상적인 URL에서 악의적인 공격 패턴(XSS, SQL Injection, OS Command Injection 등)을 검출해 내는 문자열 비교정책을 추가할 수 있다. Request Method(GET, POST, OPTION)까지도 Positive 정책에 설정할 수 있다. 특정 URL에서만 사용하는 Cookie/Hidden 필드나 Parameter값들을 설정하여 보다 정교한 탐지 기능을 제공하게 된다. 파일 업로드 제어기능과 파일 검사기능을 지원한다. 사용자들이 웹 서버로 업로드하는 파일에 대해 파일의 종류에 따라 업로드를 허용 또는 차단 여부를 지정할 수 있다. 업로드 파일의 내용을 검사하여 악의적인 공격 형태의 파일들은 파일 필터를 통해 업로드가 차단된다. 이러한 기능은 웹사이트를 악용하려는 사용자로부터 안전하게 보호하는 역할을 한다. 지금까지 언급한 탐지 기능이 Request 메시지를 이용한 것이라면 이번에는 Response 메시지를 이용한 탐지 기능을 알아보겠다. 가장 대표적인 기능은 바로 웹 서버의 에러 또는 오류 정보를 차단하여 악의적인 사용자가 웹 서버에 대한 정보를 알 수 없게 하는 것이다. 그러나 요즘은 주요정보를 차단하는데 더 많이 이용되고 있다. 사용자의 주민번호, 핸드폰번호, 집 주소, E-mail 주소, 카드번호 등의 개인 정보들이 다른 사용자들에게 노출 되는 것을 방지하는 것이다. 부가적으로 웹 가속기능이나, SSL 가속기능, Cache 기능들을 지원한다. 웹 방화벽 탐지기술의 장점은 HTTP 프로토콜 속성 값의 작은 단위까지도 디테일한 정책설정이 가능하다는 점이다. 웹서비스 개발 시점에 미처 신경 쓰지 못했던 보안상의 문제점들을 보완 할 수 있어 웹서비스를 보다 안전하게 사용자들에게 제공할 수 있다는 점이다. <글 : 문찬곤 트리니티소프트 보안컨설팅팀 과장(moon21c@trinitysoft.co.kr)> [월간 정보보호21c 통권 제106호 (info@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|