40억원 이상 공공SI ‘SW 개발보안’ 의무화

'소프트웨어(SW) 개발보안'이라 불리는 '시큐어코딩(Secure Coding)'이 관심을 받고 있다. 갈수록 늘어나고 있는 APT(Advanced Persistent Threat) 등 사이버 공격이 대부분 SW 자체의 보안취약점을 악용한 것으로 알려져 SW 개발 단계에서 보안약점을 사전에 제거하자는 바람이 세계적으로 일고 있기 때문이다.
SW 보안 취약점을 악용해 공격하는 대표적인 사례가 웹사이트 해킹이다. 불특정다수가 쉽게 접근할 수 있고 프로그램 특성상 외부 공격에 항상 노출되어 있는 웹사이트 해킹은 SW 보안 취약점에 의해 공격을 당한 것이다. SQL 삽입 공격 등 응용SW에 내포된 보안취약점을 이용하여 개인정보가 유출된 소니 및 홍콩증권거래소의 웹사이트 공격은 유명한 사건이다.
미국은 SW 개발보안의 중요성을 인식, 국토안보부(DHS)를 중심으로 시큐어코딩을 포함한 SW 개발 전과정에 보안활동 연구를 활발히 하고 있다. 이 결과물로 2011년 11월 발표한 '안전한 사이버 미래를 위한 청사진(Blueprint for a Secure Cyber Future)'를 통해 SW 개발 전 과정에 보안을 강화하도록 권고하고 있다. 특히 미국 국토안보부는 미국국립표준기술연구소(NIST)를 통해 각 단계별 보안활동 및 절차를 표준화하여 연방정부에서 정보화시스템 구축, 운영 시 참고하도록 하고 있다.
우리나라도 지난 2009년부터 2011년까지 전자정부 지원 사업을 대상으로 SW 보안약점 진단 시범사업을 벌여왔었다. 특히 이 성과를 토대로 행정안전부는 2012년 12월부터 공공기관 정보화사업에'SW 개발보안 제도'를 도입했다.
1차적으로 공공기관에서 추진하는 40억 원 이상 정보화사업만 적용되지만 내년부터 프로젝트 규모 하한선이 20억 원 이상으로 낮아져 단계적으로 공공정보화사업 전체에 의무적으로 적용될 예정이다. 'SW 개발보안 제도'도입으로 특수를 맞은 시큐어코딩 시장과 관련업체 동향을 살펴본다.


갈수록 확산되는 'SW 개발보안'도입 붐

'시큐어코딩'이 무슨 뜻인지 의미조차 생소해 하는 사람도 많다. 하지만 '시큐어코딩'은 이미 금융·공공 분야를 중심으로 폭넓게 확산되고 있다.

금융권 가운데 다른 사업군보다 보안투자가 많은 은행권이 시큐어코딩 도입을 주도하고 있다. 은행들은 정보화시스템 구축 시 대부분 시큐어코딩을 적용하고 있다. 은행뿐만 아니라 보험, 증권, 카드사 등 제2금융권으로도 확산되고 있고 삼성전자 등 대형 제조업체들도 이들 못지않게 보안투자를 강화하면서 시큐어코딩을 도입하고 있다. 더구나 정부가 공공정보화 사업에 'SW 개발보안(시큐어코딩) 제도'도입을 의무화하면서 많은 최고정보책임자(CIO)와 최고정보보호책임자(CISO)가 시큐어코딩을 눈여겨보고 있다.

국내에 시큐어코딩이 알려진 것은 2000년대 중반부터다.

'보안 취약점 분석 툴'이라는 용어로 알려졌다. 2006년부터 은행권이 본격적으로 도입되면서 일반화되기 시작됐다. 하지만 제도와 예산으로 움직이는 공공분야에의 도입은 더뎠다, 2009년 전자정부지원사업으로 보안약점 시범사업을 벌이면서 본격적으로 도입했다고 해도 과언이 아니다. 정부가 이 사업을 기반으로 시큐어코딩의 중요성을 알고 지난해에서야 의무적용을 제도화한 것이다.

시큐어코딩, 즉 'SW 개발보안 제도'도입과 관련된 것은 행정안전부가 2012년 6월 고시한 '정보시스템 운영 지침'이다. 이 지침에 따르면 'SW 개발보안 의무화'는 2012년 12월부터 정보시스템 감리대상 정보화사업(40억원 이상)을 대상으로 하며, 2015년까지 전체 감리대상 사업으로 확대한다는 것이다.

시큐어코딩 제도는 SQL 삽입, 크로스사이트스크립트 등 공공기관의 정보화 사업 과정에서 발생할 수 있는 43개의 소프트웨어(SW) 보안 약점에 대해 문제가 없도록 해야 한다는 것이 골자이다.

이에 따라 올해부터 40억 원 규모 이상의 공공기관 정보시스템 발주자는 제안요청서에 'SW 개발보안 적용'을 명시해야한다. 구축사업자는 SW 개발보안을 위해 개발절차와 방법을 마련해야한다. 개발자들이 이를 따르도록 하는 것은 물론이다. 참여인력을 대상으로 '소프트웨어 개발보안 가이드'등 SW 개발보안 관련 교육을 실시해야 한다. 개발자들은 이 가이드를 참고로 SW를 개발해야 한다.

그러나 개발자가 매뉴얼을 일일이 외우고 코딩을 진행하기란 불가능하다.

정해진 시간 내에 고객 요구사항 구현도 어려운데 보안성과 품질을 동시에 강화하면서 코딩하기란 쉽지 않다. 습관처럼 기존 방식대로 개발을 진행하지만 정작 자신이 개발한 프로그램이 보안에 왜 취약한지 제대로 파악하지 못한다. 그래서 개발자 별도의 무기인'전문 보안 툴'(시큐어코딩)을 이용하는 것이다. 개발과정에 보안 약점 진단도구를 이용해 개발자 스스로 보안약점을 진단해 제거해야 하는 것이다.

바로 여기서'시큐어코딩'특수가 나온다.



<이하 상세 내용은 컴퓨터월드 3월 호 참조>

저작권자 © 컴퓨터월드 무단전재 및 재배포 금지