정보유출ㆍ해킹 막는 '보안 검문소'
 





 
최근 웹사이트의 해킹이나 금전적인 이득을 목표로 한 정보유출 시도 등 웹에 대한 공격이 급증하면서 웹 애플리케이션 보안의 중요성이 점차 증가되고 있습니다.

일반적으로 `웹 방화벽'이라 부르는 웹 애플리케이션 방화벽은 애플리케이션 계층 분석 기술과 정규화 기술을 바탕으로 보다 특화된 검사 엔진을 탑재해 침입탐지시스템(IDS)이나 침입방지시스템(IPS)이 탐지할 수 없는 웹 관련 공격들을 방어할 수 있습니다. 또한 URL에 따른 접근제어 기능과 암호화된 SSL 트래픽을 자체적으로 복호화, 검사하는 기능은 기존 보안 시스템과 다른 차별성을 보여 줍니다.

웹 애플리케이션 방화벽은 분석해야 할 자료를 어디에서 얻는 지 여부에 따라 네트워크 기반과 웹서버 기반으로 나눌 수 있습니다. 네트워크 기반은 네트워크를 지나는 HTTP/HTTPS 트래픽을 분석하므로 웹 서버의 종류와 상관없이 보호가 가능하다는 장점이 있는 반면, 웹 서버 기반은 웹 서버가 제공하는 API를 기반으로 구현돼 IIS(Internet Information Server)나 아파치 웹 서버의 플러그인 형식으로 탑재되는 형식이 많습니다.

일반적으로 웹 애플리케이션 방화벽은 포지티브 시큐리티 모델(Positive Security Model)과 네거티브 시큐리티 모델(Negative Security Model)을 혼합해 구현됩니다. 다시 말해서, 포지티브 시큐리티 모델은 안전하다고 정의된 것만 허용하고 나머지는 모두 금지하는 보안 모델입니다. 반면에 네거티브 시큐리티 모델은 위험하다고 정의된 것만 거부하고 나머지는 모두 허용하는 보안 모델입니다.

먼저 포지티브 시큐리티 모델기반의 필터링 모듈이 전방에 위치합니다. 이 모듈에서는 등록된 URL에 대한 접근제어, 특정 방법의 수행 여부 허가 등 접근 및 사용이 허가된 목록을 기준으로 필터링을 수행합니다. 웹사이트의 규모가 클수록 URL을 일일이 등록하기 어려운 면이 있어 자동학습 기능을 탑재해 해당 사이트의 URL을 자동으로 수집, 등록하도록 구현되기도 합니다.

그 뒤에는 네거티브 시큐리티 모델 기반의 탐지 모듈이 위치하게 됩니다. 포지티브 시큐리티 모델을 통과한 접속을 대상으로 검사함으로써 부하를 크게 줄일 수 있습니다. 이 모듈에서는 일반적인 패턴 매칭뿐만 아니라 입력 값에 대한 검증, 비정상 침입탐지 기능 등을 함께 구현해 애플리케이션 레벨에 대한 공격을 탐지합니다. 공격으로 탐지된 HTTP 요청은 바로 차단하거나 다른 URL로 보낼 수 있습니다.

정상적인 요청에 대한 웹 서버의 응답이 나갈 때에도 웹 애플리케이션 방화벽을 거치면서 몇몇 보안 과정을 밟습니다. 먼저 나가는 트래픽에 대한 콘텐츠 필터링 과정을 거칩니다. 웹 서버나 이에 연결된 데이터베이스(DB)의 에러 메시지는 공격자에게 상당한 정보를 제공하게 되므로 이러한 정보가 노출되지 않도록 구현됩니다. 주민등록번호나 신용카드번호 등의 유출을 막을 수 있는 것도 이 단계에서 이뤄집니다. 콘텐츠 필터링 이후에는 쿠키(Cookie)에 대한 무결성 검사를 위한 해쉬 값을 삽입하거나 히든 필드(Hidden Field) 변조를 막기 위한 암호화를 수행합니다.

이러한 웹 보안기능을 수행하기 위해 웹 애플리케이션 방화벽은 웹 서버와 웹 브라우저 사이에 인라인(In-line) 방식 혹은 역 프록시(Reverse proxy mode) 방식으로 구성됩니다. 인라인 방식 구성은 일반적인 방화벽과 같이 라인 중간에 웹 애플리케이션 방화벽이 들어가는 형식(In-line)으로 구축되며, 사용자가 웹 애플리케이션 방화벽의 존재를 인식하지 않게 되는 네트워크 투명성을 제공하며 별도로 네트워크 구성을 변경할 필요가 없다는 장점이 있습니다.

역 프록시 방식에서는 DNS에서 웹 서버의 IP 주소를 웹 애플리케이션 방화벽의 주소로 변경해 주어야 하며 이렇게 되면 사용자가 프록시로 설정된 웹 애플리케이션 방화벽에 웹 서버로의 접속을 요청하고, 웹 애플리케이션 방화벽은 그 내용을 다시 웹 서버에게로 보내주게 됩니다. 만약 웹 애플리케이션 방화벽을 L4 스위치와 직접 연결할 수 있고 해당 L4 스위치의 캐시 서버 로드 밸런싱(CSLB;Cache Server Load Balancing) 기능을 이용할 수 있다면, DNS의 설정 변경은 필요하지 않습니다. L4 스위치에서 외부망으로부터 들어오는 HTTP 요청을 웹 애플리케이션 방화벽으로 전송하고, 웹 방화벽을 통과한 HTTP 요청을 웹 서버로 전송할 수 있기 때문입니다. 이러한 구성 방식은 각 웹사이트의 구성과 보안정책에 따라 적용할 수 있습니다.

웹 애플리케이션 방화벽 이외에도 웹 취약성 스캐너나 애플리케이션 소스코드 검사 도구 등과 같은 웹 애플리케이션 보안을 위한 여러 가지 보안 시스템이 있습니다. 이러한 보안 시스템은 진단 및 감사 기능에 강점을 갖고 있으나 웹사이트의 지속적 개편 및 수정 시에도 항상 적용해야 하는 불편함과 운용 중인 시스템에 적용하기에는 힘든 단점을 가지고 있습니다. 그러나 웹 애플리케이션 방화벽은 기존 웹 애플리케이션의 수정 없이 구축할 수 있어 웹 애플리케이션 보안을 위해 가장 좋은 방어 대책으로 각광 받고 있습니다.

웹 어플리케이션 방화벽

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다