| SW 개발보안 중요도 증대...제도 실효성 높이려면? | 2018.08.07 |
설계 및 구현 단계에서 각 20개 및 47개 기준 명시
개발 초기부터 보안 고려시키고, 비용 절감 효과도 커 자바에만 국한...차세대 언어로도 시큐어코딩 돼야 [보안뉴스 오다인 기자] 소프트웨어(이하 SW) 개발 시 보안이 최우선으로 고려되는 경우는 잘 없다. 사건 발생 전까지 보안은 대개 투자보다 비용으로 간주되고, 출시를 지연시키는 골칫거리로 여겨지기 때문이다. 그러나 개인정보 유출 등 보안 침해사고로 인한 사회적 피해가 심화하는 현재, SW 개발 과정에서 보안은 핵심 고려사항이 됐다. ![]() [이미지=iclickart] 침해사고로 인한 공공의 피해와 그 확산을 방지하기 위해 행정안전부(장관 김부겸, 이하 행안부)와 한국인터넷진흥원(원장 김석환, 이하 KISA)은 SW 개발보안 제도를 마련해 운영하고 있다. 행안부는 정책기관, KISA는 전문기관으로 제도를 운영한다. KISA는 SW 개발보안을 “SW 개발 과정에서 개발자의 실수, 논리적 오류 등으로 인해 발생될 수 있는 보안약점들을 최소화해 안전한 SW를 개발하기 위한 일련의 보안 활동”이라고 정의한다. △요구사항 분석 △설계 △구현 △테스트 △유지보수 등 SW 개발 생명주기(SDLC: Software Development Life Cycle)의 각 단계에서 요구되는 보안활동을 수행해 안전한 소프트웨어를 만든다는 취지다. 행안부와 KISA는 ‘전자정부 SW 개발·운영자를 위한 SW 개발보안 가이드’를 발간해 안전한 SW 개발을 지원하고 있기도 하다. 이 가이드는 다음과 같은 문장으로 왜 개발 초기부터 SW 보안이 고려돼야 하는지 논증하고 있다. “개발자와 공격자의 접근방식은 기본적으로 차이가 있다. 개발자는 애플리케이션의 정상적인 의도에 초점을 맞춰 접근하고, 공격자는 정상적인 의도 외 허용되는 모든 동작에 관심을 가진다. 즉, 보안요구사항과 오용사례에 대해 SW를 개발하는 초기단계부터 고려하여 보안위협들을 최소화해야 하는 것이다.” SW 개발보안 제도의 대상은 전자정부법 시행령 제71조에 명시된 ‘정보시스템 감리의 대상’과 같다. 즉, 정보시스템 특성이 △대국민 서비스를 위한 행정업무 또는 민원업무 처리용으로 사용하는 경우 △여러 중앙행정기관 등이 공동으로 구축하거나 사용하는 경우 중 하나에 해당하는 전자정부 SW 개발자라면 SW 개발보안 제도에 따라야 할 의무가 있다. 다만, 사업비 1억 원 미만의 소규모 사업으로서 정보시스템 감리의 비용 대비 효과가 낮다고 중앙행정기관 등의 장이 인정하는 경우는 제외한다. ![]() ▲소프트웨어 개발보안 체계[이미지=한국인터넷진흥원] SW 개발보안 제도를 준수해야 하는 사업자(개발자)는 관련 교육을 이수한 뒤 SW 개발보안 가이드를 준수해 SW를 개발하고, 자체적으로 SW 보안약점 진단 및 제거를 수행해야 한다. 이후, 발주자(행정기관 등) 자체에서 또는 감리법인(진단원)을 통해서 SW 보안약점 제거여부 진단과 조치결과 확인이 진행된다. 점검 범위는 설계 단계의 산출물을 비롯한 소스코드 전체다. 행정기관 및 공공기관 정보시스템 구축·운영 지침은 제50조 소프트웨어 개발보안 원칙에서 “(전자정부법 시행령) 제71조제1항에 해당하는 정보화사업을 추진할 때에는 별표 3의 소프트웨어 보안약점이 없도록 소프트웨어를 개발 또는 변경하여야 한다”고 규정하고 있다. ‘별표 3의 소프트웨어 보안약점’은 설계단계의 보안설계 기준 20개와 구현단계의 보안약점 제거 기준 47개로 구분·명시돼 있다. 설계단계는 △입력데이터 검증 및 표현 △보안기능 △에러처리 △세션통제 등 4개 부문으로 세분화 되고, 구현단계는 △입력데이터 검증 및 표현 △보안기능 △시간 및 상태 △에러처리 △코드오류 △캡슐화 △API 오용 등 7개 부문으로 세분화 된다. 조은래 KISA 전자정부보호팀 책임연구원은 SW 개발보안의 필요성에 대해 언급하면서 “정보보호 제품에서는 블랙리스트 방식보다 화이트리스트 방식이 더 안전하다고 평가된다”고 말했다. 허가하는 서비스·포트·사용자 등을 제한 나머지 것들의 접근을 차단하는 방식이 더 엄격하다는 것. 그는 “A기업의 경우, 설계나 구현 단계에서 코드 몇 줄로 해결될 수 있었던 간단한 약점 때문에 침해사고에 당했다”고 설명하면서, “보안약점은 소스코드 상의 오류를 뜻하는 것으로 보안 취약점과는 다르다”고 짚었다. 이와 함께 “SW 개발보안 적용 시 확연한 비용 감소의 효과를 볼 수 있다”고 강조했다. SW 개발보안에 대한 필요성과 중요성이 확대되는 한편으로, SW 개발보안 제도와 가이드의 실효성이 떨어진다는 지적도 있다. 김석 노브레이크 대표는 “전자정부 표준프레임워크에서 보안 가이드라인을 준수하도록 한 취지가 좋고 실제 활용도도 좋지만, 일부의 경우 실제 동작이 안 되는 등 현실과 괴리가 있는 코드들이 있다”고 분석했다. 그는 “(정부에서) 그대로 구현하라고 하지만 오류 때문에 구현이 안 되는 부분이 있다”면서 이에 대한 개선이 필요하다고 말했다. 프로그래밍 언어가 자바(JAVA)에만 국한돼 있다는 점도 문제로 지적된다. 김 대표는 “일반 기업에서는 자바가 아닌 다른 언어로도 코딩이 많이 되는데 이에 대한 시큐어코딩 가이드가 없다”고 말했다. 그는 “일례로 모 기업에서는 C#과 관련된 시큐어코딩 수요가 굉장히 큰데 이를 위한 인력이나 교육도 부족한 게 현실”이라고 덧붙였다. SW 개발보안 제도와 가이드가 실질적인 효과를 발휘할 수 있으려면 자바뿐만 아니라 파이선(Python) 등과 같은 차세대 언어에 대비한 시큐어코딩 가이드가 마련되고, 이를 위한 전문 인력의 확보가 수반돼야 할 것으로 보인다. [오다인 기자(boan2@boannews.com)] <저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지> |
|
|
|