보안 제품정보


[특집-끝나지 않은 전쟁]현실적 웹 애플리케이션 취약점 관리 중요 2010.09.26

각 기업들은 보안사고 예방과 방지를 위해 해마다 많은 투자를 하고 있으나 보안사고는 점점 증가하고 있는 추세다. 대부분의 보안사고가 애플리케이션의 취약점을 이용한 것임에도 불구하고 기업들은 네트워크와 시스템 인프라의 보안 투자에 중점을 두고 있다. 하지만 최근에는 개발 단계에서의 보안을 고려해 개발자 스스로 보안 취약점의 사전 조치가 중요해지고 있다.  


웹 애플리케이션 기반의 업무가 늘어남에 따라 세계적으로 애플리케이션 해킹으로 인한 수많은 사고들이 발생했으며 최근 몇 년간의 해킹 경향을 보면 금전적인 이득을 위한 시도가 늘고 있고 이로 인한 기업의 피해 또한 과거의 것과는 비교할 수 없을 정도로 커지게 되었다. 지난 2000년대 초반부터 웹 보안 사고를 방지하기 위한 다양한 제품들이 출시되었는데 대표적인 제품군으로 Web Application Firewall과 Web Security Scanner를 들 수 있다. 최근에는 개발 단계에서 보안을 고려하여 코딩을 하도록 유도하여 개발자 스스로 보안취약점을 사전 조치하도록 하는 소스코드 분석 제품들이 출시되어 시장을 형성하고 있는 상황이다.


SDL단계별 웹 보안

웹 사이트가 개발되고 수명을 다하기 까지 필요에 의해 프로그램은 수시로 수정되고 개발되는 라이프 사이클을 가지게 되는데 각 단계별로 적용 가능한 기술을 살펴보면 다음과 같다.

 

● 설계 단계

  - 개발자 보안 교육

  - 보안 요구사항 설계

개발단계

  - 소스코드 분석을 통한 보안 표준 준수 여부 검사 및 수정

테스트 단계

  - 웹 스캐너, 바이너리 분석, 모의해킹 등을 통한 취약점 검사

운영 단계

  - 웹 방화벽, 모니터링 장비를 통한 공격 탐지 및 차단


애플리케이션 보안은 보안이라는 분야에 개발자가 개입되는 다른 보안 분야와는 다른 독특한 특성을 가지고 있다. 애플리케이션 보안취약점은 웹 방화벽과 같은 제품으로도 방어가 가능하지만 정책 설정의 어려움, 가용성 문제 등 여러 가지 한계가 존재하고 개발자가 소스코드를 수정해야 근본적으로 문제가 제거되는 특성 때문인데 개발 전문가가 아닌 보안팀 요원이 애플리케이션 보안을 다루는데 있어서 어려움이 있으며 반대로 보안 전문가가 아닌 개발자가 보안을 고려하여 프로그램을 작성하는 데는 현실적인 어려움이 있다. 이러한 특성으로 인해 웹 보안 제품을 도입하여 운영하는 기업의 보안 담당자들은 개발과 운영이라는 분야까지 신경을 써야 하는 어려움을 겪고 있다.

 

웹 스캐너와 모의해킹 등의 애플리케이션에 대한 보안 검사는 개발 완료 후에 사후 관점의 접근이기에 대규모 개발 프로젝트의 경우 보안 검사 결과 여러 취약점등의 오류가 발견되었다 하더라도 남은 개발기간과 비용의 문제, 더 나아가 이미 개발된 애플리케이션의 기술적인 문제로 인해 취약점을 제거하지 못할 가능성이 높은 것이 현실이다. 또한 개발 과정중에 보안이 고려되어있지 않았기 때문에 일반적으로 조치해야 할 중요한 보안 문제가 많이 발견된다.

 

이러한 문제를 해결하기 위한 방법으로 개발 프로세스상에 보안을 도입 하는 것을 검토하게 되었으며 이러한 방법은 설계시에 보안에 대한 고려사항을 반영하고 개발자가 애플리케이션 개발시에 코드상에 보안 문제점이 없는지 분석하여 보안문제를 사전에 제거하여 확산되지 않도록 함으로써 개발 완료 후에 조치해야 할 보안 취약점의 수를 급격하게 줄일 수 있는 프로세스로서의 보안 개발 방법이다.

 

문제는 ‘보안 개발 프로세스를 구축 하더라도 개발자 스스로 어떻게 보안 취약점을 찾아낼 수 있는가’이다.  개발자는 주어진 개발 기간에 목표된 기능을 구현하는 것이 주된 업무이며 보안전문가가 아니기 때문에 보안이 고려된 코딩에 대한 전문 지식이 없는 것이 현실이다.

개발자에게 보안 코딩 능력을 손쉽게 부여할 수 있는 대표적인 방법은 소스코드 보안 분석 툴을 개발자에게 배포하여 사용하도록 하는 것이며 소스코드 보안 분석 툴의 전문 보안 지식을 통해 개발자는 손쉽게 보안코딩 여부를 검사하고 문제점을 어떻게 개선할 것인가를 가이드 받게 된다.

 

개발자로 하여금 스스로 보안취약점을 검사하고 조치까지 할 수 있는 능력을 부여하는 소스코드 분석 제품이 최근에 보안 담당자들에게 주목 받는 이유로는 개발프로젝트를 진행하고 보안에 대한 최종 검수를 진행해야 하는 보안담당자의 고민은 개발된 애플리케이션이 보안 지침대로 적절하게 개발되었는지에 대한 검증을 어떻게 할 것인가에 대한 고민을 하게 되는데 소스코드 분석 기법을 통해 모든 보안 취약점을 검사 할 수는 없겠지만 개발된 애플리케이션에 대한 소스코드를 기반으로 전수 분석을 수행함으로써 보안 개발 여부에 대한 현실적인 검증을 수행 할 수 있는 것이다. 이러한 특성 때문에 실제로 국내에 소스코드 분석 제품을 도입한 많은 보안 담당자들은 프로젝트 검수 시에 사용한다고 한다.


보안 검사를 넘어 보안 개발 라이프 사이클 통합관리로 진화

기업의 업무 담당자들은 분산되어 있는 솔루션들의 통합된 관리를 원하고 있고 관리대상 애플리케이션의 보안 현황을 한눈에 관리하기를 원하고 있다. 이러한 시장의 요구를 반영한 제품이 최근에 출시되고 있다. 이러한 제품은 각 개발 단개별로 운용되어온 정적분석, 동적분석, 운영 모니터링 및 방어 기능을 통합 관리하여 중앙 시스템에서 모니터링과 관리를 동시에 수행함으로써 효율적인 애플리케이션 보안 관리를 할 수 있도록 한다.

 

또한 개발 프로젝트를 시스템적으로 관리하여 애플리케이션 특성을 반영한 내부 정책을 비롯하여 컴플라이언스 준수까지 개발프로세스와 통합하는 제품이 출시되기 시작하고 있으며 이를 통해 현존하는 기술기반인 소스분석, 바이너리 분석, 웹 스캐닝의 결과를 프로젝트 진행에 반영하고 각 공정별 필수 사항과 산출물을 확인하고 반영하도록 하는 거버넌스 형태로 발전해 나가고 있다.

 

이는 애플리케이션 영역의 보안이 단순히 취약점을 발견하고 방어 하는데 그치지 않고 애플리케이션의 라이프사이클을 관리함으로써 보다 효율적인 애플리케이션 보안을 이루겠다는 요구의 반영이라는 특징을 가지고 있다.

 

애플리케이션 보안은 지금까지 취약점 분석, 방어 제품이 시장을 형성 하고 있었지만 근본적인 문제 개선을 위한 개발 프로세스 개선 및 관리 체계속의 취약점 분석 및 방어 기술로 발전하고 있으며 또한 정적 분석기법을 사용하는 소스코드 분석기와 동적 분석기법을 사용하는 바이너리 분석기와 웹 스캐너를 복합적으로 사용하여 분석결과를 통합함으로 취약점 분석 성능을 획기적으로 높인 제품도 최근 포티파이를 중심으로 출시 준비를 하고 있어 보다 현실적인 취약점 관리를 원하는 시장의 요구를 충족시킬 수 있을 것으로 예측해 본다.

<글 : 손장군 한국포티파이소프트웨어 부장(sohn.jg@fortify.co.kr)>


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

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