| 웹 보안, 이제는 소스레벨 보안으로 출발! | 2010.11.16 |
소스레벨 보안의 중요성과 필요성
웹 해킹은 한 사람이 여러가지 기술을 모두 깊이 있게 알기 어렵다는 점을 이용, 보안담당자나 개발자가 이러한 문제를 쉽게 놓치는 부분을 노리고 있다. 이에 인터넷상의 웹 애플리케이션들은 여전히 많은 취약점을 안고 서비스되고 있기 때문에 웹 보안은 이제 소스레벨에서의 보안으로 인식전환이 되어야 한다. IT 환경의 변화와 비즈니스 모델의 변화는 정보보호에도 많은 변화를 요구하고 있다. 특히 ‘웹’을 통한 다양한 서비스와 비즈니스가 기업과 공공기관 등에서 제공되고 있으며 앞으로 언제 어디서나 정보를 주거나 받음으로써 시공간의 제약이 사라짐을 의미하는 유비쿼터스 환경에 조금씩 녹아들어 가고 있다. “편리하면 할수록 위험도도 같이 상승한다”는 이 말은 정보보안 분야는 물론 많은 다른 분야에도 통하는 일반론이며 정보보안에 관해 생각할 때는 절대로 잊어서는 안되는 것이기도 하다. 2000년 이후 지속적으로 웹을 기반으로 한 서비스를 대상으로 침해사고가 꾸준히 증가하고 있으며 이로 인해 점점 더 웹 기반 서비스에 문제가 집중화되고 있는 상황이다. 인터넷 웹 애플리케이션 취약점 많아 최근 많은 기업과 공공기관이 웹 보안에 대한 관심을 보이며 웹 방화벽과 같은 솔루션을 도입하여 이에 대한 보안을 강화하고 있지만 애플리케이션 소스에서 가지고 있는 취약점을 제거하는 근본적인 대책보다는 일시적으로 차단하는 장비에 의존한 보안으로는 웹 기반 서비스의 취약점에 대한 대책으로 될 수 없으며 웹 보안에 있어 장밋빛 미래는 없다고 할 수 있다.
웹 보안이란 애플리케이션 레벨 공격에 대한 방어, 애플리케이션 보안 테스트 및 사전 조치방안을 마련하는 것인데 웹 애플리케이션에 대한 보안을 단지 하나의 이슈일 뿐이라는 인식을 가지는 경우가 많고 웹 애플리케이션이 안전하다고 적혀있는 거의 모든 사이트는 SSL을 적용했다는 문구로 보아도 될 정도로 아직은 기존 네트워크 보안에 대한 이해 기반으로 안이하게 보안대책을 수립하고 있으며 웹 방화벽을 설치함으로서 웹 사이트는 안전하다고 생각하는 담당자나 관리자도 많이 있어 이에 대한 오해가 빨리 풀려야할 것으로 보고 있다.
웹 해킹을 유발하는 취약점의 발생은 웹 프로그램의 설정오류나 개발오류로 인해 발생한다. 또한 웹 애플리케이션은 한 가지 기술이 아니라 자바스크립트, HTML, CSS, PHP, JSP, ASP, Dotnet 등 여러 가지 기술이 함께 사용되기 때문에 이들 기술을 동시에 알아야 한다는 어려움이 있다.
웹 해킹은 한 사람이 이런 기술을 모두 깊이 있게 알기 어렵다는 점을 이용하며 보안담당자나 개발자가 이러한 문제를 쉽게 놓치는 부분을 노리고 있다. 이러한 이유로 인터넷상의 웹 애플리케이션들은 여전히 많은 취약점을 안고 서비스되고 있는 형편에 놓여 있다. 웹 보안은 이제 소스레벨에서의 보안으로 인식전환이 되어야 하며 소스레벨에서의 보안이란 애플리케이션 소스가 가지고 있는 문제를 확인하고 이로 인한 취약점 제거는 물론 소스레벨에서의 로깅관리(이벤트관리)를 통한 실시간 모니터링 및 소스관리를 구체화시켜야 된다는 것이다. 소스레벨 보안, 꼼꼼히 따져보고 도입해야 현재 소스레벨에서의 보안방법론으로 애플리케이션 계획단계에서 운영단계까지 전체 개발프로세스(SDLC)에 대한 단계별 보안 적용 방안이다. 발견된 취약점에 대한 대응 방안을 일반적 기능명세로 권고하여 개발자가 이를 토대로 애플리케이션의 보안 취약점을 해결하는 것이 가능해야 한다. 개발자들이 해커의 공격 기법에 대한 지식이 부재하여 효율적인 대책을 수립하지 못하고 기존의 잘못된 구현 기법을 재사용하는 경우가 많아 개발자들에게 해커의 공격 기법 및 소스 레벨의 대처 방안에 대해 교육하여 프로젝트를 안전하게 개발해야 한다.
이러한 방법은 비용과 프로젝트 개발기간이 충분히 확보되어야 소정의 목적을 달성할 수 있으며 규모가 작은 중소기업이나 많은 사이트를 관리하고 생성되는 공공기관 및 서비스 중심의 조직에서는 수행하기 힘든 방법이 될 것이다. 또한 기 운영 중인 사이트는 시도조차 할 수 없는 문제점이 있다.
다른 소스레벨 보안 강화방법으로 웹 취약점별로 방어할 수 있는 Library 형태의 모듈을 활용한 소스레벨의 보안방법이다. 이 방법은 먼저 취약성 점검툴(자동화된 툴)을 활용하여 사이트의 취약점을 찾은 후 모의해킹을 통하여 점검 툴에서 찾기 힘든 취약점을 철저히 찾아내는 것이 가장 중요하다. 이후 개발자나 유지보수팀은 취약성 점검 보고서를 기준으로 소스레벨에서 취약점 제거를 위해 모듈을 활용한 보안코딩을 수행함으로써 보안을 강화하는 방법이다.
이 방법의 특징은 “기존 운영중인 사이트도 빠른 시간 안에 소스레벨의 보안을 이룰 수 있다”는 장점이 있다. 또한 취약점의 제거에 있어 모듈화된 라이브러리를 사용함으로 인하여 일관된 보안 프로세스를 확립할 수 있으며 웹 해킹의 방법을 몰라도 간단한 교육만으로 보안코딩이 가능할 수 있다. 최근에 한국인터넷진흥원(KISA)에서 제공되는 무료 웹 보안모듈과 상용모듈 및 솔루션이 개발되어 적은 비용과 기간으로 소스레벨에서의 보안이 충분히 가능할 수 있다.
아직 소스레벨의 보안이라고 하면 관리자나 운영자는 굉장히 힘든 작업으로 인식하고 있어 꺼리는 경향이 있으나 차츰 소스레벨 보안 솔루션이 개발됨으로 관심만 가지면 근본적인 대책으로 소스레벨의 보안을 이룰 수 있다. 소스레벨의 보안은 솔루션을 활용하던 강화된 SDLC방법으로 개발을 하던 관리자나 운영자가 보안 강화 후 지속적인 관리와 관심이 없으면 아무리 좋은 보안 대책을 세워 놓아도 소용이 없으니 웹 보안은 기존의 장비에 의존한 보안과는 다른 인식전환이 필요하다. 세이프 코드, 소스단의 보안 및 취약점 제거 코드원의 소스레벨 보안 솔루션인 세이프 코드의 장점은 소스단의 보안 및 취약점 제거에 탁월하며 약간의 웹사이트 변경이 있어도 보안성이 크게 위협받지 않는다. 특히 취약점 제거 조치(보안코딩)를 위해 사용하는 보안 핵심프로세스를 라이브러리화하여 일관적인 보안프로세스의 유지, 최신 해킹에 대한 패치 및 업데이트, 다중분산 모니터링을 가능케 하는 취약점 제거와 관리가 가능하다.
또 웹 애플리케이션 보안 취약점 제거를 통해 웹 보안의 완성도를 높이기 위해 국가정보원 8대 취약점 방어, 행정안전부 전자정부 보안 취약점 대응 지침 이행, OWASP TOP 10 방어, CWE/SANS TOP 25 취약점 방어, 홈페이지 보안 개발 가이드 지침 이행, 소스레벨 방어 가능한 모든 취약점 방어, 불법침입탐지, 홈페이지 위ㆍ변조 탐지, 보안프로세스 감시 등의 모리터링 기능 등을 수행한다는 것이 차별된다. <글 : 최두영 코드원 보안연구소 소장(dychoi@code1.co.kr)> [월간 정보보호21c 통권 제123호(info@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|