“시큐어코딩, CC인증으로 성장 날개 달아”
상태바
“시큐어코딩, CC인증으로 성장 날개 달아”
  • 김선애 기자
  • 승인 2014.02.18 18:20
  • 댓글 0
이 기사를 공유합니다

SW 개발 프레임워크에 시큐어코딩 녹여야

2012년부터 공공기관의 소프트웨어 개발사업에 의무적으로 적용된 소프트웨어 개발보안(시큐어코딩)은 2012년 12월 40억원 이상 공공사업, 2014년 1월부터 20억원 이상 공공사업에 의무적용돼 전체 전자정부 사업의 65%가 대상이다. 내년부터는 감리대상 전 사업에 적용되도록 하고 있다.

시큐어코딩은 소프트웨어 개발단계부터 보안을 강화하도록 한 것으로, 웹과 애플리케이션 취약성 공격이 집중되면서 중요성이 강조돼 왔다. 특히 정부 공공기관을 대상으로 하는 타깃공격이 성행하고 있으며, 6·25 정부기관 해킹 공격 이후 주목도가 더 높아졌다.

공공사업에 대한 시큐어코딩 의무화는 안전행정부에서 주관하며, 전자정부 사업은 예산배정을 위한 사업계획 심의단계에서 시큐어코딩 적용 여부를 확인하고, 행정기관 자체 사업의 경우에도 보안성 진단을 통해 이행여부를 점검한다.

안행부는 공공기관 모바일앱 서비스 급증에 따라 모바일 앱 소스코드에 대한 보안성 검증을 의무화할 계획을 갖고 있다. 지난해 행정기관과 공공기관에서 530여개의 모바일 앱 서비스가 제공되고 있으며 2015년에는 920개까지 확대될 전망이다.

최근 지방법원 등 공공기관을 사칭한 개인정보유출 사고(스미싱)가 발생하고 있어, 행정 및 공공기관에서 모바일앱 서비스를 제공하기 전에 반드시 모바일 소스코드의 보안성을 검증 받도록 할 계획이다. 아울러 공공기관에서 공통으로 사용할 수 있는 앱 위변조 방지 기능, 인증서 전달 기능, 암호화 기능 등 모바일 보안 모듈을 제공하여 모바일 앱서비스의 안전성을 강화할 계획이다. 시큐어코딩은 지난해 하반기 CC인증 규격이 확정되고 올해 인증 솔루션이 나오면서 본격적으로 적용될 것으로 보인다.

소프트웨어를 개발할 때 일정을 맞추기 위해 문제가 발생하는 부분은 그냥 넘어가고 운영과정에서 발생하는 장애와 함께 보완하면서 정기적으로 혹은 수시로 패치 업데이트를 한다. 개발 일정에 맞춰야 한다는 압박 때문이기도 하지만, 개발 과정에서 일어나는 크고 작은 문제를 완벽하게 해결한 후 진행하려면 일정에 맞춰 개발할 수 없다. 수백명의 개발자들이 투입되는 대형 프로젝트의 경우 모든 개발자들의 코딩을 일일이 조사해 문제가 되는 부분을 조정하는 것이 쉽지 않은 일이다.

완벽하게 개발된 소프트웨어라 해도 실제 운영 과정에서 다른 시스템과의 충돌이 일어날 수 있고, 오래된 버전과의 충돌로 인한 장애가 발생할 수도 있다. 개발 과정에서 발견하지 못한 버그도 지속적으로 발견된다. 따라서 성능이나 기능 수행에 치명적인 장애를 발생시키지 않는 버그는 일단 넘어간 후 향후 패치를 통해 문제를 해결하는 것이 관례이다. 이렇게 소프트웨어에 남아있는 버그가 취약점 공격에 이용된다. 개발과정에서 취약점을 제거하는 비용보다 소프트웨어를 운영하는 과정에서 보안 취약점을 찾아 없애는 것이 30배 많은 비용을 소요하는 것으로 분석된다.

소프트웨어 취약점 공격은 우리나라 뿐 아니라 전 세계적으로도 심각한 사이버 보안 이슈로 꼽힌다. 가트너는 전 세계에서 발생한 공격과 해킹의 75%가 애플리케이션을 공격한 것이었다고 분석한 바 있으며, 미국국립표준기술연구소는 보고된 취약점 중 70%가 애플리케이션 취약점을 노렸다고 발표했고, HP는 84%의 공격이 애플리케이션 레이어에서 발생하고 있다고 밝혔다.

시큐어코딩은 소프트웨어 개발에 필수적인 과정이지만 개발조직의 반발 때문에 적용이 쉽지 않다. 일반적으로 소프트웨어 개발을 담당하는 개발조직에서는 보안에 크게 주목하지 않는다. 보안은 보안조직의 일이기 때문이다.

소프트웨어를 개발한 후 보안팀에서 툴을 이용해 보안 취약성을 찾아 개발조직으로 회신을 하면 개발조직에서는 “보안팀이 코딩에 대해 무엇을 아느냐”고 항의한다. 보안팀에서 보안 취약점이라고 꼽은 것 중에서는 실제 보안 취약점도 있지만, 일정한 수준의 오탐도 존재한다. 보안팀에서는 개발조직의 항의에 대해 “규정 때문에 어쩔 수 없다. 보안 사고가 일어나면 개발팀 책임이다”라고 떠넘기기 일쑤다.

이 과정을 몇 번 되풀이하다 보면 개발팀이 모든 것을 책임지기로 하고 일정에 맞춰 급하게 프로젝트를 완료한 후 개발 과정에서 해결하지 못한 취약점과 운영 도중 나타나는 문제는 패치를 통해 해결하려 한다.

그러다가 보안사고가 일어나면 보안조직과 개발조직은 서로 책임을 떠넘기기 바쁘다. 악순환의 고리를 끊기 위해 개발과 보안을 총괄 조직할 권한이 있는 사람이나 조직이 필요하지만, 개발과 보안 모든 분야에 전문적인 통찰력을 가진 사람이 적다는 현실적인 한계에 부딪힌다.

시큐어코딩 적용이 어려운 가장 큰 이유는 개발팀과 보안팀이 제대로 소통하지 못하기 때문이며, 소프트웨어 개발 프로세스 안에서 양 조직이 제대로 소통할 수 있도록 만들어야 한다. 즉 개발프레임워크 내에 시큐어코딩을 녹여내야 한다는 뜻으로, 모든 개발자가 자신이 맡은 영역에서만큼은 보안 취약점 없이 완벽하게 완수한다면 보안 취약점을 크게 줄일 수 있게 된다.



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.