| 소스코드 레벨 취약성 점검 툴 관심 높아져 | 2012.11.02 |
다양한 프로그램 언어·하이브리드 분석 지원 대규모 개발 환경에 적합한 툴 등이 주요 이슈 [보안뉴스=손장군 엔시큐어 부장] 기업 업무 및 공공 서비스 등이 웹 애플리케이션 서비스로 확대됨에 따라 웹 애플리케이션의 보안 취약성을 이용한 사고 사례가 빈번히 발생되고 있어 소스 코드 레벨에서의 취약성 점검 툴에 대한 관심이 높아지고 있다.
동적 분석을 기반으로 한 기존 웹 애플리케이션 취약성 점검 툴(웹 스캐너)은 점검 기법의 특성상 전체 소스코드를 기준으로 봤을 때 범위가 제한적이라는 단점을 갖고 있다. 소스 코드 레벨에서의 취약성 점검 툴은 제공된 모든 소스 코드와 라이브러리 등에 대한 전수 점검이 가능해 최근 개발 프로세스 상에 보안 점검 단계로 주목 받고 있다. 현재 출시된 소스코드 레벨 취약성 점검 툴의 현황을 살펴보면 소스 코드 점검 기법과 점검 정책(Rule)의 특성에 따라 각 점검 툴 별로 특징이 나뉘어 지고 있다. 대부분의 웹 애플리케이션은 다양한 프로그램 언어로 개발되고 구성되어 있으며 이러한 이기종 프로그램 언어는 서로 연계되어 동작되기 때문에 점검 툴이 정확한 점검을 수행하기 위해서는 가급적 많은 프로그램 언어를 이해할 수 있어야 하며 복잡한 로직이 처리되는 플로우를 쫓아 점검하는 기능을 제공해야 한다. 예를 들어 사용자 로그인 로직이 있을 경우, 일반적으로 Presentation layer는 jsp와 XML(설정 파일)로, Business Logic은 Java로, Database Logic은 PL/SQL로 구성되는데 이기종 프로그램 언어와 프레임웍, API와 상관 관계의 이해, 각 프로그램 언어별 로직이 처리되는 플로우 레이어를 쫓아서 점검해야만 정확한 결과를 얻을 수 있다. 현재 출시된 소스 코드 레벨 취약점 점검 툴들은 소스 코드를 라인 단위로 텍스트 파싱하여 점검하는 툴들과 소스 코드 컴파일 시 정보를 파싱하여 점검하는 툴들로 나뉘어져 있으며 소스 코드 컴파일 시 정보를 파싱하여 점검하는 툴들이 더 정확하고 많은 점검 결과를 제공하고 있어 더 우수한 점검 방법으로 인식되고 있다. 또한 소스 코드 컴파일 시 정보를 파싱하여 점검하는 툴 들 중에서도 점검할 수 있는 프로그램 언어가 많을수록 점검 엔진의 성능이 좋을수록 점검 결과에서 차이를 보이고 있다. 소스 코드에 대한 점검 기법만큼이나 중요한 것이 점검 시 사용하는 정책(Rule)이다. 현재 출시된 소스 코드 레벨 취약성점검 툴들의 점검 정책(Rule)은 크게 품질 관점과 보안 관점으로 종속된 특성을 보인다. 품질 관점으로 시작한 점검 툴들은 보안 관점으로 확장해 나가고 있는 상황이며 보안 관점으로 시작한 점검 툴들은 품질 관점으로 확장하지 않고 ‘보안 관점+애플리케이션 안정성 관련 품질 관점’으로 점검 정책을 견고히 하여 취약성 점검에 대해 더 우수한 결과를 제공하고 있다. 소스코드 레벨 취약성 점검 툴의 기술 트렌드는 ‘더 많은 프로그램 언어 점검’, ‘정적 점검과 동적 점검과의 통합, 하이브리드 분석’, ‘대규모 개발 환경에 적합한 소스 코드 취약성 점검 방안 지원’ 등으로 말할 수 있다. 애플리케이션은 서비스 환경에 따라 다양한 프로그램 언어로 개발될 수 있다. 최근 업무 및 서비스가 스마트 폰 환경으로 급속히 확장되면서 안드로이드 및 iOS 애플리케이션 또한 보안 위협에 노출되고 있어 일부 점검 툴들은 안드로이드 java와 Object-C에 대한 취약성 점검을 이미 지원하고 있다. 이러한 사례처럼 소스 코드 레벨 취약성 점검 툴들은 다양한 고객사 개발 환경을 만족시키기 위해 최신 및 기존 프로그램 언어에 대한 점검 범위를 꾸준히 확장시키고 있다. 정적 점검(소스코드 레벨 취약성 점검 툴)과 동적 점검(웹 스캐너)은 점검 방법과 결과는 다르지만 소스 코드를 대상으로 취약성을 제거해야 한다는 공통점을 갖고 있다. 최근 일부 소스코드 레벨 취약성 점검 툴들은 정적 점검과 동적 점검을 통합하는 ‘하이브리드 분석’ 이라는 기술을 지원하고 있다. 하이브리드 분석은 정적 점검과 동적 점검을 ‘런타임 점검’이라는 기술로 통합하고 소스코드 레벨 취약성 점검 결과와 웹 스캐너 점검 결과를 자동 연관 분석한다. 하이브리드 분석 결과는 취약성 실행 가능성의 따른 우선 순위 식별 정보와 취약한 URL, Stacktrace, 소스 코드 라인의 정확한 정보, 전체 소스 코드 대비 점검 범위 등의 정보를 제공해 이를 통해 애플리케이션 취약성 점검 방법을 개선 및 통합하고 취약성에 대한 보수 시간을 감소시켜 준다. 대규모 개발 환경에서는 다량의 애플리케이션에 대한 자동화된 소스 코드 레벨 취약성 점검 체계를 설계하는데 점검 툴의 구성 한계로 인해 여러 가지 제약 사항이 있었다. 최근 일부 소스코드 레벨 취약성 점검 툴들이 클라우드 구성을 지원하면서 대규모 개발 환경에 적합한 효율적인 점검체계의 구성이 가능해졌다. 소스코드 레벨 취약성 점검 툴은 소프트웨어이기 때문에 오탐지된 결과가 산출될 수 있으며 오탐지율은 각 점검 툴들의 성능에 따라 차이를 보인다. 대부분의 점검 툴들은 오탐지를 방지하거나 예외 처리하는 기능을 제공하고 있다. [글_엔시큐어 손장군 부장(sohn.jg@ensecure.co.kr)] <저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지> |
|
|
|