보안 제품정보


당신의 Web은 공격에 안전합니까?(1) 2009.07.23

[특집] 웹 애플리케이션 취약점 해킹으로 개인정보유출 피해 증가 추세

첨단 정보화시대로 진화를 거듭할수록 웹 애플리케이션 취약점을 이용한 해킹으로 인해 개인정보가 유출되는 사고가 빈번하게 발생하고 있다. 특히 웹 애플리케이션 취약점을 이용한 해킹으로 인해 금융기관을 비롯한 기업과 공공기관 등에서 개인정보가 유출되는 사고가 증가하고 있어 이를 차단·방어하기 위해 웹 보안에 대한 관심이 높아지고 있다.


해킹의 75% 이상이 웹 애플리케이션 취약점을 공격한 해킹이라는 한 조사 결과가 있듯이 최근에도 웹 애플리케이션 취약점을 이용한 해킹, 정보유출 등의 보안 위협은 날로 증가하고 있다. 특히 몇 년 전부터 현재까지 중국발 해킹, 리니지 명의도용사태, 공공기관 홈페이지 개인정보유출, 금융기관 해킹 등, 끊이지 않는 웹 애플리케이션 취약점을 이용한 해킹 공격이 급증하고 있는 가운데 특히 웹 애플리케이션 방화벽의 필요성에 대한 인식이 확대되고 있다. 기존 네트워크 보안제품으로는 80포트, 443포트 차단이 어렵다는 점에 착안해 등장한 웹 애플리케이션 방화벽은 지난 2006년 하반기를 기점으로 공공기관 부문 주도로 본격 도입됐다. 

이 웹 애플리케이션 방화벽은 애플리케이션 계층 분석기술과 정규화 기술을 바탕으로 기존의 침입탐지시스템(IDS), 침입방지시스템(IPS)이 탐지할 수 없는 웹 관련 공격들을 분석과 필터링, 보안관리의 기능으로 방어와 차단이 가능하다. 암호화·인코딩된 트래픽을 처리 및 검사, 웹 애플리케이션 코드 자체의 취약점을 보호하는데 기존 네트워크 보안 시스템으로는 한계가 있기 때문이다.

최근 인터넷의 사용이 대중화 되면서 웹을 통한 다양한 서비스와 비즈니스 분야가 기업과 공공기관 등에서 다양한 서비스로 제공되고 있으며 특히 초기의 단순 자료 검색에서 전문화된 서비스와 애플리케이션 제공으로 그 분야의 다양화 및 부가가치가 날로 높아지고 있는 추세다. 그러나 이러한 발전과 더불어 IT 인프라와 관련된 보안사고와 취약점은 날로 증가하고 있으며 그 방법도 다양해졌다. 최근에는 웹 관련 보안 사고들이 급격한 증가세를 보이고 있다.

과거부터 IT보안에 대한 관심은 계속되어 왔으며 특히 최근의 보안 이슈가 개인정보보호와 정보유출방지 등을 포함한 애플리케이션 분야로 확대되고 있다. 그러나 아직도 대부분은 웹 애플리케이션 보안보다는 IT 인프라 보안에 대한 투자와 관심을 우선시 하는 경향이 높다. 하지만 점차 전문화된 영역과 깊이 있는 보안 수준을 추구하면서 안전한 웹 서비스와 같은 새로운 요구조건이 대두되면서 애플리케이션 보안에 대한 필요성이 증가하고 이에 대한 관심이 더욱 고조되어 공공기관과 금융기관 등에서 웹 애플리케이션 보안에 대한 투자도 확대되고 있다.

웹 방화벽은 공공기관에서 대기업, 금융기관, 교육기관 등으로 도입이 확대되고 있는 추세다. 공공기관에 비해 대기업과 금융기관은 성능, 서비스 가용성 등을 문제점으로 지적하고 도입을 미루어 왔지만 최근 웹 방화벽의 필요성의 확대와 대기업들의 핵심기술 유출, 금융기관들의 인터넷뱅킹 해킹사례 등으로 도입이 확대되고 있다. 특히 기업대상 웹 방화벽 시장은 대기업과 금융기관, 대형 포탈사 등을 중심으로 확대되고 있다. 이와 같이 기업 대상의 사업 규모가 커짐에 따라 웹 방화벽 업체들은 기업의 요구에 맞는 고성능 제품으로 업그레이드 시키고 있으며 융·복합 보안 기술을 접목한 신제품 개발에도 박차를 가하고 있다.


기존 보안 시스템과 웹 방화벽의 차이

웹 방화벽은 애플리케이션의 계층 분석 기술과 정규화 기술을 바탕으로 특화된 검사 엔진을 탑재해서 URL에 따른 접근 제어 기능과 SSL 트래픽을 자체적으로 복호화 검사하여 처리하기 때문에 기존의 보안 시스템과는 다른 차별성을 가지고 있다.

분석해야 할 자료를 어디에서 얻는지에 따라 네트워크 기반과 웹 서버 기반으로 나누는데 네트워크 기반의 방화벽은 HTTP/HTTPS 트래픽을 분석함으로 웹 서버의 종류와 상관없이 보호가 가능한데 비해 웹 서버 기반은 웹 서버가 제공하는 API 기반으로 구현되어 해당 웹 서버(IIS/아파치)의 플러그인 형식으로 탑재된다.

웹 애플리케이션의 모델은 포지티브 시큐리티 모델과 네거티브 시큐리티 모델로 구분하는데 포지티브 시큐리티 모델은 안전하다고 정의된 것만 허용하고 네거티브 시큐리티 모델은 위험하다는 것만 거부하고 나머지는 모두 허용하는 모델이다.

포지티브 시큐리티 모델이 먼저 URL 접근제어나 특정 방법의 수행 여부 허가 등, 접근 및 사용이 허가된 목록을 기준으로 필터링을 수행한다. 필터링이 수행되고 난 이후 네거티브 시큐리티 모델이 패턴 매칭, 입력 값에 대한 검증, 비정상 침입탐지 기능을 구현하여 애플리케이션 레벨에 대한 공격을 탐지한다.

웹 2.0은 대화형 웹 프로그램을 사용하여 자바스크립트(AJAX) 같은 기술의 사용이 급증하였기 때문에 보안상 문제점이 현재 많이 존재하고 있으며 악성코드를 침투시키거나 데이터 조작을 통해 기존의 서비스에 영향을 끼치는 여러 가지 공격이 가능하다. 이러한 보안상의 문제로 인해 국내의 싸이월드와 비슷한 미국의 마이스페이스닷컴은 웜바이러스에 공격당하고 야후닷컴에서는 야후배너가 각각 자바스크립트로 인한 허점으로 공격을 받기도 했다.

이러한 허점을 없애기 위해 기존의 모든 웹 코드를 수정하는 것에는 시간이 걸릴 뿐더러 기존의 방화벽으로는 이러한 공격에 대응하는 것이 부족하기에 웹 방화벽의 필요가 더욱 더 절실해지고 있다. 웹 방화벽은 웹 서버에서 보내는 정보에 대한 컨텐츠 필터링 기능이 있어서 그 컨텐츠의 내용을 해석하여 무단으로 정보가 노출되는 것을 막는 역할도 한다. 가령 웹서버에 연결된 데이터베이스에서 에러가 발생할 때 나오는 데이터베이스 고유 에러 메시지는 개발자 측면에서는 개발시에 필요한 중요한 정보를 담고 있는데 이 정보는 침입하려는 측에게도 중요하게 사용되기에 이러한 정보가 전송되는 것을 막는다.

또한 주민등록번호나 신용카드번호의 유출을 막는 기능도 하며 필터링 이후에는 쿠키에 대한 무결성 검사나 히든 필드의 변조를 막기 위한 암호화를 수행한다. 웹 방화벽은 기존의 소스코드 검사 도구와 달리 현재 운용중인 시스템에 기존 웹 애플리케이션의 수정 없이 구축할 수 있어 웹 애플케이션의 보안을 위한 가장 좋은 방어 대책으로 부상하고 있다.


기존 보안 시스템의 한계 극복

최근 기업이나 공공기관 애플리케이션 전산 환경은 하루가 다르게 웹 기반으로 바뀌고 있다. 이는 언제, 어디서나 내부망 접속이 가능하며 대 국민이나 고객대응에 대한 다양한 정보를 손쉽게 공유할 수 있는 편리함 때문이다. 그러나 이러한 환경은 웹 특성상 서비스를 위해 80포트(HTTP)나 443포트(HTTPS) 같은 통로를 열어놔야 하는 구조상 근본적인 취약점을 안고 있다. 이에 따라 이곳을 통해 웹 프로그램의 설정 오류나 개발 오류로 인한 웹 애플리케이션 자체의 취약점을 이용한 홈 페이지와 웹 서버 해킹이 시도될 수도 있는 것이다. 이러한 서비스 포트를 통한 침입 공격의 유형의 85% 이상이 웹 애플리케이션 서비스 포트를 통한 공격이다. 실제로 웹 고객 정보를 빼돌리거나 콘텐츠 변조, 서비스거부 공격(DoS), 홈페이지 위·변조, 내부 중요 시스템의 침입 등 해킹사고가 최근 들어 눈에 띄게 늘고 있다. 한 업계 자료에 따르면 국내에서 발생된 해킹 시도의 70% 가량이 웹 애플리케이션의 취약점을 이용한 것으로 추정되고 있다.

이러한 웹 애플리케이션을 통한 보안 사고는 PHP 취약점 및 제로보드·그누보드·코웹로그 등 웹 게시판 프로그램의 취약점을 이용한 해커그룹이 홈페이지를 무차별 변조하면서 발생한 현상으로 전 세계적으로 ‘주의경보’발령과 더불어 즉각적인 수정 및 패치 업그레이드를 권장하고 있다. 당시 구글 등 인터넷 검색엔진을 이용해 관련 취약점이 패치되지 않은 웹 서버들을 찾아 해킹한 것으로 판단되며 단시일 내에 700여 개 홈페이지가 변조되었고 이중 450개는 한 해커그룹에 의해 이뤄지기도 했다. 이는 하나의 취약성으로 인해 얼마나 많은 시스템이 피해를 입을 수 있는지를 보여준 사건이었다.

이와 같은 사건에 대한 웹 보안 강화방법으로 제일 먼저 고려할 수 있는 것은 개발자의 웹 프로그래밍시 코드상의 오류를 근본적으로 고치는 것이다. 하지만 대부분의 웹 애플리케이션 프로젝트에서는 서비스의 편의성 및 기능 구현을 중요시하는 풍조, 프로젝트 오픈 완료 일정에 따른 소스 보안검증의 부실함으로 인해 개발자 스스로도 취약성을 인지하면서도 보안성 강화를 무시하여 많은 취약성을 가진 웹 애플리케이션이 구축되는 경우가 많다. 그러나 시스템 오픈 후 취약성이 존재하는 소스를 일일이 찾아내어 고친다는 것은 많은 시간과 비용을 필요로 하며 보안성강화를 통한 프로세스의 변경 및 재개발, 성능 저하에 대한 우려를 이유로 대부분의 웹 사이트가 사고 발생 전까지 무방비상태로 놓이게 되며 큰 사고로 연결되기도 한다.

초기 보안시스템의 이슈는 방화벽으로부터 시작해 침입탐지시스템(IDS) 또는 침입방지시스템(IPS)을 웹 서버의 앞 단에 구축해 불법적인 침입을 막는 역할을 했다. 이러한 보안 시스템은 1세대 또는 2세대 보안시스템으로서 불특정한 침입자에 대한 보안을 하기 위한 것으로 네트워크 레벨에서 사용하지 않거나 인증되지 않은 포트를 차단하고 패킷에 대한 필터링을 통해서 비정상적인 침입자를 차단하기 위한 기능이 주였다.

그러나 여기에는 커다란 문제가 존재한다. 웹의 특성상 방화벽을 설치하더라도 사용되는 서비스 포트는 항상 개방해야 하기 때문에 웹 서비스 포트를 통한 공격에 대해서는 무방비 상태로 노출된다는 것이다. 최근 지원영역을 애플리케이션 단까지 확장한 DPI(Deep Packet Inspection) 방화벽이나 IPS가 출시되고 있으나 네트워크 레벨 기반의 보안 시스템에서 애플리케이션 레벨의 방어를 하는 데는 한계를 갖고 있을 수 밖에 없다.

이들은 주로 시그니처에 의존한 패턴 매칭기술을 기반으로 애플리케이션 영역의 ‘이미 알려진’공격만을 차단하기 때문에 패턴데이터에 저장되지 않은 웹 애플리케이션 공격을 탐지하거나 기업에서 자체적으로 개발한 웹 애플리케이션의 취약점을 이용한 시그니처를 제공하지 못하는 한계가 있다. 이에 따라 기존 보안 시스템의 한계를 극복하기 위해 등장한 보안 시스템이 웹 방화벽이다.

<글 : 김태형 기자(is21@boannews.com)>


[월간 정보보호21c 통권 제107호 (info@boannews.com)]

<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>