[웹 보안의 정석 3편] 모두에게 필요한 안전한 웹애플리케이션 보안

웹애플리케이션 보안
최근 인터넷 사이트 거래정보 조작 1만3000원을 44억으로 ‘뻥튀기’라는 기사를 읽었다. 내용을 요약하면 웹 취약점을 이용하여 불법적으로 이득을 취한 일당이 검거되었다는 소식이다. 언뜻 보면 굉장히 치밀한 수법을 이용한 해킹 같지만, 실제로는 가격과 관련된 파라미터(Parameter: 매개변수)를 수정하여 이득을 갈취한 파라미터 탬퍼링(Parameter Tampering)과 관련된 범죄이다.

이 공격은 웹 보안, 그 중에서도 애플리케이션 보안과 연관된 기초적인 공격이지만 아직도 이러한 웹 공격 취약성이 잔재하고 있고 이 때문에 피해를 입고 있다는 것이 안타까울 뿐이다.

앞서 작성한 ‘웹 애플리케이션 보안을 강조하는 이유’ 라는 글에서도 언급했듯 애플리케이션 보안은 웹 보안에서 가장 중요한 항목이다. 우리가 일반적으로 이용하는 웹은 모두 애플리케이션으로 구성되어 있다. 웹사이트, 모바일 앱 등은 모두 애플리케이션으로 구성되어 있고, 위의 기사와 같이 웹 공격은 애플리케이션과 관련된 공격이 대다수이다.

기업의 보안 관리자들은 다양한 웹 보안 솔루션을 도입하여 웹 공격에 대비하고있다. 하지만 자사에서 구입하고 관리하는 웹 보안 솔루션의 역할이 무엇이고 이중에서 애플리케이션 보안과 연관된 솔루션이 무엇인지 정확하게 구분할 수 있는 보안 관리자는 많지 않다.

다시 말해 기본적인 네트워크 보안 솔루션을 제외하고 애플리케이션 보안에 있어 적절한 웹 보안 솔루션을 적용하고 운영 중인 기업이 많지 않다는 얘기다. 이러한 애플리케이션 환경은 기업의 전반적인 보안 수준을 낮추게 되며 나아가 해커들의 잠재적인 공격 대상이 될 수 있다.

첫 번째 기고인 ‘사이버 공격, 웹 보안이 핵심’ 을 통해 살펴보았듯 웹 공격은 기업의 개인정보 유출과 같은 큰 피해를 초래한다.

이번 기고에서는 웹 애플리케이션 보안에 대해 살펴본다. 애플리케이션 보안 구축에서 실질적으로 필요한 중요한 웹 보안 솔루션의 역할과 기능에 초점을 맞췄다.

웹 애플리케이션 보안과 보안 솔루션

애플리케이션 구축은 집짓기와 비교하면 이해가 쉽다. 집을 어떻게 짓느냐에 따라 집이 안전할 수 있듯이 애플리케이션을 어떻게 구축하냐에 따라 애플리케이션의 안정성이 결정된다.

따라서 애플리케이션 보안은 구축 초기인 개발 단계부터 구축 이후의 유지보수에 이르기까지 모든 단계에 걸쳐 신경써야 한다. 하지만 이를 실천하기 힘든게 현실이다. 적절한 가이드라인의 부재도 있겠지만 웹 애플리케이션 보안을 쉽게 이해하기 어렵다는 점도 무시할 수 없다.
웹 스캐너(Web Scanner), 웹애플리케이션 방화벽(Web Application Firewall) 등 용어 자체의 뜻은 알 수 있지만 정확한 기능이나 동작 위치 등을 쉽게 이해하기가 어렵다. 하지만 웹 애플리케이션 보안과 각각의 솔루션이 동작하는 위치를 집을 짓는 것에 비유한다면 쉽게 이해할 수 있다.
웹애플리케이션 보안 솔루션 모식도. 웹애플리케이션은 크게 웹애플리케이션 서버와 DB로 구성된다.

시큐어 코딩

우선, 개발 단계는 집을 짓는 과정이라고 생각할 수 있다. 집을 지을 때는 단단한 지반에 튼튼하고 안전한 벽돌로 지어야 한다. 이를 애플리케이션으로 생각하면 취약성이 잔재할 수 있는 코드를 배제하고 안전한 소스와 프로그램을 사용한 시큐어코딩과 같다.

시큐어코딩이란 개발과정에서 개발자의 지식부족이나 실수 또는 각 프로그래밍 언어의 고유한 약점 등 다양한 원인으로 발생할 수 있는 취약점을 최소화하기 위하여 설계 단계부터 보안을 고려하여 코드를 작성하는 제작방식을 의미한다.

애플리케이션 개발에 있어 빠른 구축기간도 고려해야 하지만 속도보다는 안전하고 체계적으로 개발하는 것이 더욱 중요하다. 안전하지 않은 개발 환경에 다른 웹 보안 솔루션을 도입하는 것은 아랫돌 빼어 윗 돌 괴는 것처럼 임시방편에 불과하다.

웹 스캐너

집이 완성된 이후에 벽돌에 금이 간 것은 아닌지 집이 기울어진 것은 아닌지 확인할 필요가 있다. 보안용어로 설명하자면 벽돌에 금이 가거나 집이 기울어 진 것을 체크하는 것과 같이 외부에서 애플리케이션을 점검하는 웹 스캐너를 주기적으로 실행할 필요가 있다.

웹 스캐너는 웹 취약점 점검 툴로 불리며 웹 애플리케이션 외부에서 통신을 통하여 잠재적인 취약점이나 설계상의 취약점을 분석하는 프로그램이다.

시중에는 많은 종류의 웹 스캐너가 판매되고 있으며 비상업적 용도로도 제공되는 다양한 웹 스캐너가 있다. 웹 스캐너의 성능은 다를 수 있지만, 핵심은 효과를 보기 위해서는 꾸준한 점검을 통하여 애플리케이션의 상태를 주기적, 지속적으로 확인해야 한다는 것이다.

웹서버 악성코드 탐지

자, 그 이후에 집안 내부에서도 비가 새는 것은 아닌지 개구멍이나 벌레가 숨어 들 수 있는 구멍은 없는지 체크할 필요가 있다. 애플리케이션 내부를 점검하는 솔루션에는 웹서버 악성코드탐지 솔루션이 있다.

일반적으로 웹서버 악성코드(Web-Based Malware)는 웹쉘(Web Shell) 이라고 불리며 애플리케이션 내부에서 동작하는 악성코드이다.

해커는 웹쉘을 통해 보안 시스템을 우회하여 별도 인증 없이 시스템에 접속하는 것이 가능하다. 이를 점검하기 위해서는 전문적으로 웹쉘만 탐지해주는 솔루션을 활용하여 서버 내부
에서 탐지하여야 한다. 웹 스캐너와 동일하게 웹서버 악성코드 탐지 솔루션도 주기적인 점검과 실행이 필수적이다.

웹해킹차단시스템(Web Application Firewall)

이제 애플리케이션이라는 집을 안전한 벽돌로 제작하고, 외부/내부적으로 점검하였다. 그렇다면 이것이 끝일까? 집을 짓고 나면 우리는 예상치 못한 외부의 접근으로부터 집을 지키고, 미처 발견하지 못한 내부의 위험 요소를 최종적으로 보완하고자 울타리나 담을 제작하게 된다. 애플리케이션 보안에서 이러한 울타리를 웹해킹차단시스템(Web Application Firewall) 이라고 부를 수 있다.

웹해킹차단시스템은 웹을 통한 외부의 침입이나 웹 공격을 탐지하고 대응하는 역할을 한다. 특히 시큐어코딩, 웹 스캐너가 담당하는 웹 보안 취약점을 외부에 노출되지 않도록 보안해 줄 뿐만 아니라 이 솔루션들에게 공격이 다다르기 전에 외부에서 차단하는 역할을 수행한다.

또한 웹서버 악성코드가 웹서버로 업로드되는 것 역시 막아준다. 이는 일반적인 방화벽(Firewall)과 다르게 웹해킹차단시스템이 웹 애플리케이션에 특화되어 개발되어 있기에 가능한 역할이다. 또한 다른 솔루션과 달리 서버에 구축/적용하는 비용이 들지 않고 외부에 편리하게 설치할 수 있다. 최신 웹해킹차단시스템의 경우 광범위하고 다양한 웹 공격을 실시간으로 차단하고 학습 모드를 통한 룰 적용이 가능한 특징이 있다.

데이터 보안(Data Security)

마지막으로 집안에 가장 중요한 현금, 통장과 같은 재산을 어떻게 보관할지 중요하다. 애플리케이션에서 이러한 재산을 개인정보나 카드정보, 계좌정보와 같은 중요 데이터(Data)로 볼 수 있다. 일반적인 웹 애플리케이션 환경에서는 데이터베이스(DB)를 구축하여 데이터를 보관하고 관리한다.

데이터를 안전하게 관리하기 위해서는 데이터 보안과 연관된 웹 보안 솔루션을 도입하여 안전하게 데이터를 관리하여야 한다. 일반적으로 데이터를 암호화함으로써 해커가 최종적으로 노리는 데이터를 알아볼 수 없게 만드는 데이터 암호화 솔루션을 많이 도입하고 있다.

하지만 암호화로 끝나는 것이 아니라 누가 접근할 수 있고, 언제 접근하였는지를 확인하는 접근제어와 감사 로그에 많은 주의를 기울어야 한다. 데이터 암호화에 있어서는 암호화된 데이터를 열어 볼 수 있는 키(Key) 관리가 매우 중요하기에 키 관리에도 각별히 주의하여야 한다.

웹 보안의 정석

바야흐로 웹 보안의 시대이다. 수많은 웹 공격이 존재하고 지금 이 순간에도 웹 공격은 생산되고, 시도되고 있다. 지금까지 3번의 기고를 통하여 웹 보안의 중요성에 대하여 살펴보고, 웹 보안을 3계층으로 나눔으로써 좀 더 쉽게 웹 보안에 대해 얘기했다.

웹보안 3계층과 계층별 보안 솔루션

웹 보안은 시스템 구조에 맞게 네트워크, 시스템, 애플리케이션 3계층으로 살펴보면 쉽게 이해할 수 있고, 지금까지 언급한 웹 보안 솔루션을 각각의 계층에 맞게 정리하면 위와 같이 한 장의 그림으로 그릴 수 있다.

각각의 보안 계층별 특징을 이해하고 웹 보안 솔루션을 적재적소에 도입하여 안전한 웹 보안에 신경써야 한다. 웹 보안에 있어서 애플리케이션 보안이 가장 큰 비중을 차지하고 있지만 기본적으로 네트워크와 시스템 보안의 안정성이 바탕이 되어야 안전한 웹 보안을 확보할 수 있다.

“An organization’s overall Security is only as strong as its weakest Link.” 라는 말이 있다. 여러 보안 요소 중 가장 약한 부분이 그 회사 전체의 보안 수준을 결정한다는 말이다. 한쪽으로 치우쳐져 있는 불균형한 보안은 특별한 경우를 제외하고는 불필요한 처사다. 각 보안 계층에는 각기 나름대로 풀어야 할 보안 문제들이 있고 보안 문제들 마다 적합한 솔루션들이 존재한다는 것을 되새길 필요가 있다.

웹 보안 솔루션 시장은 매년 증가하고 있다. 프로스트 앤 설리번이 2012년에 발표한 보고서에 따르면 아시아태평양지역 콘텐츠 보안 관리 시장은 2017년경, 15억7천만 달러(약 1조 7천억원) 규모에 달하고, 시장의 연간 성장률은 약 17.9%에 육박할 것으로 전망된다. 일반적인 IT 산업 성장률인 7~9%에 비하면 이는 엄청난 성장률이다.

수많은 웹 보안 솔루션이 나오는 현재 그리고 미래에 각각의 웹 보안 솔루션에 대하여 기능과 동작 위치 등을 현명하게 판단하고, 적재적소에 웹 보안 솔루션을 배치하여 안전한 웹 보안을 구축할 수 있기를 바란다.

세번의 기고를 통해 웹 보안에 관련된 전반적인 가이드를 살펴보았다. 마지막이 될 다음 컬럼에서는 자사(펜타시큐리티시스템)에서 제공하는 웹해킹차단시스템에 대해 좀 더 집중탐구의 시간을 가져보고자 한다.