시큐어코딩, SW 개발시 보안취약점 제거하는 근본적인 해결방안!
[보안뉴스 김정완] 행정안전부는 사이버공격의 주요 원인인 소프트웨어 보안약점을 전자정부 서비스 개발단계에서 제거하기 위해 정보시스템 구축 시 ‘소프트웨어 개발보안(시큐어코딩)’을 의무화하기로 했다고 지난 3월 27일 밝혔다.
이로 인해 시큐어코딩이 무엇이며, 왜 필요한지에 대한 관심이 높아지고 있다. 이에 본지는 행안부가 지난해 발간한 ‘소프트웨어 개발보안 가이드’ 중에서 SW 개발보안의 필요성 부분을 발췌해 정리했다.
시큐어코딩이란 SW 개발과정에서 개발자 실수, 논리적 오류 등으로 인해 SW에 내재된 보안취약점을 최소화하는 한편, 해킹 등 보안위협에 대응할 수 있는 안전한 SW를 개발하기 위한 일련의 과정을 의미한다. 넓은 의미에서 SW 개발보안은 SW 생명주기(SDLC, SW Development Lifecycle)의 각 단계별로 요구되는 보안활동을 모두 포함하며, 좁은 의미로는 SW 개발과정에서 소스코드를 작성하는 구현단계에서 보안취약점을 배제하기 위한 ‘시큐어코딩(Secure Coding)’을 의미한다.
최근 사이버 공격은 보안패치가 발표되기 이전의 보안취약점을 악용하는 제로데이 공격, 웹사이트 대상의 해킹 등이 주를 이루고 있으며, 이러한 공격은 SW 자체의 보안취약점을 이용하는 경우가 대부분이다. 얼마 전 가트너 발표에 의하면, 사이버 공격의 약 75%가 응용 프로그램, 즉 SW의 취약점을 악용한 것으로 알려졌다.
웹사이트의 경우 불특정 다수가 쉽게 접근할 수 있고, 사용자가 입력한 정보를 처리하는 프로그램의 특성상 외부 공격에 항상 노출되어 있어 사이버 침해사고가 발생할 가능성이 높다. 특히, 소스코드 보안취약점을 이용한 사이버 공격은 침입차단 및 침입방지 시스템 등 일반적인 보안장비로는 대응이 어려운 특성을 갖는다.
특히, 최근 국내외에서 발생한 고객정보 유출사고는 XSS 및 SQL 인젝션 공격 등 웹 응용프로그램에 내재된 보안취약점을 주로 악용했는데, 이렇듯 SW에 내재된 보안취약점은 사이버 침해사고의 주요 원인이 되고 있는 것이다.
이렇듯 SW 보안취약점을 이용한 공격기법은 해마다 급속도로 발전하고 있어 침입방지 시스템 등을 이용한 사후 대응으로는 한계 상황에 이르렀다. 시만텍 보고서에 따르면 지난 8년간 보안취약점을 이용하는 악성코드 수가 기하급수적으로 늘어나고 있는 추세도 이를 대변하고 있다.
그 동안은 악성코드를 개별적으로 분석해 대응할 수 있는 패턴을 개발하고 적용하는 방식으로 보안위협에 대응해 왔으나, 하루에 분석할 수 있는 악성코드 수가 한계가 있고 투자에도 제한이 있어 보다 근본적인 해결책이 필요해진 셈이다.
최근 SW 보안전문가를 중심으로 이러한 한계를 극복하고자 소스코드의 취약점 패턴을 연구하고 이에 따른 보안조치들에 대한 연구가 활발해지고 있다. 특히, 미국 등에서는 보안취약점 사례를 정리해 체계적인 DB를 구축하고, 대처방법을 보급하기 위한 정부 및 민간차원의 활동이 펼쳐지고 있다. 이렇듯 설계·구현·시험 등 개발단계에서 보안성을 강화하기 위한 시큐어코딩이 주목을 받고 있는 것이다.
다음의 표는 SW 설계단계에서 제품 출시까지 보안취약점 등 결함을 제거하는 시점에 따른 비용차이를 분석한 결과로 설계, 코딩, 통합, 베타제품, 제품출시 등 각 단계에서 보안취약점 제거 비용이 최대 30배까지 차이가 날 수 있음을 나타내고 있다. 다시 말해 설계단계에서 결함을 수정했을 경우 비용을 최소화할 수 있다는 얘기다.
이렇듯 비용이나 보안성 등 여러 측면에서 장점을 갖춘 시큐어코딩이 빠르면 이번 달부터 정보화사업 추진시 의무적으로 적용됨으로써 관련 연구 및 시장 활성화가 보다 빠르게 진척될 것으로 보인다.
[김정완 기자(boan3@boannews.com)]
<저작권자: 보안뉴스(http://www.boannews.com/) 무단전재-재배포금지>