[KPFIS 인사이트] 재정정보 시스템 소프트웨어 품질관리_4월호

 

01배경=최근 인공지능, 빅데이터, 모바일 등 4차 산업혁명을 주도한 IT기술이 매우 빠르게 진화하고 있다. 이러한 혁신적인 기술은 경제, 사회, 정치, 금융 등 국가 전반에 걸쳐 매우 다양한 정보시스템과 상호접속이 중요한 초연결 사회에 대한 지향성이 강하게 강조됨에 따라 정보시스템도 매우 복잡한 구조를 이루고 있으며 다양한 요인의 결함이 소프트웨어에 유입되고 있다.소프트웨어에 오류가 발생한 경우 장애가 발생하지만 시스템 장애를 예방하기 위해서는 오류의 조기 발견이나 제거, 오류 혼입 방지 등 소프트웨어 품질관리가 매우 중요하다.

정보시스템 사고(장애)의 원인 및 과정 정보시스템의 장애를 유발하는 과정은 매우 다양하다. 그러나 일반적인 하드웨어 장애는 장애유형이 잘 목록화되어 있고 감시와 제어, 장애대책 등이 대체로 잘 작동되는 편이나 소프트웨어는 특화된 전문가의 개입이 주를 이루고 있기 때문에 사전에 절차적으로 확인하거나 통제하기가 쉽지 않다. S/W의 관점에서 정보시스템의 생각을 살펴보면, 우선 운영자의 실수, 개발 및 구축기간의 제한, 정보시스템간의 상호연동성이나 복잡성 등의 결함요인이 존재하게 되며, 이러한 결함은 S/W를 개발하고 구성하는 사이에 결함으로 유입되어 직접적 또는 잠재적 장애요소를 내포하게 된다. 시간이 지남에 따라 S/W의 불편은 시스템 장해로 이어져 서비스 정지와 같은 심각한 상황에 몰리기도 한다.

03 S/W 품질관리의 중요성 S/W의 품질을 향상시키고, 잘 관리하기 위해서는 S/W 개발의 단계별로 결함을 조기에 발견하여 제거하는 것이 매우 중요하다.이하는 S/W 개발에 있어서 각 국면별 역할을 간략하게 정의한 것이다.
2014년 정보통신산업진흥원(NIPA)의 연구결과에 따르면 전체 불량의 약 83%가 요구사항 및 설계단계에서 발견되고 17%가 코딩과 테스트단계에서 발견됨으로써 요구사항 분석과 설계단계에서의 체계적 관리가 소프트웨어의 품질향상에 매우 중요한 역할을 하고 있음이 밝혀졌다.
따라서 품질관리 향상을 위해서는 다음의 원칙을 중용하는 것이 지극히 중요하다. 첫째, 개발 전 단계에서의 품질관리에 관심을 기울여야 한다. 둘째, 개발 프로젝트에 투입된 모든 구성원이 품질관리에 참여해야 한다. 셋째, 초기 품질활동으로 결함제거 비용을 최소화할 수 있다. 넷째, 초기 품질계획 및 활동을 통해 재작업을 최소화할 수 있다.

04 보안과 품질의 차이 소프트웨어를 실현하는데 있어서 보안과 품질은 매우 중요한 요소이다. 그러나 정보시스템을 어떠한 관점에서 바라보느냐에 따라 보안성과 품질은 매우 큰 차이가 난다.

A. 정보시스템의 관리적 관점

정보시스템 관리의 정책적·전략적 개념에서 보면, 소프트웨어의 품질과 보안은 완전히 분리되어 있다. <그림 4>와 같이 정보 관리(information management)의 측면에서 공유·겹치지 않음을 알 수 있다.또한 국제표준(ISO)에서 정의된 내용을 살펴보면, 품질은 소프트웨어 및 그 하위 시스템에서 발생할 수 있는 모든 오류나 결함을 포함하여 개발 단계의 잠재적 오류 등 매우 넓은 커버리지를 갖는 반면, 보안은 외부 또는 해커의 공격으로부터 악용 가능한 소프트웨어의 실수 또는 구성의 문제로 제한하여 정의하고 있다. 아래 표는 보안과 품질을 정의했음을 나타낸다.

품질과 보안을 완전히 분리하여 운영하는 경우에는 품질과 보안을 관리하기 위한 전사 조직이 별도로 존재한다. 이 경우 개발조직으로서는 품질관리와 보안관리에 대한 조치를 해야 하는 이중적 부담을 갖는다.예를 들어 품질관리의 테스트 단계에서 결함을 처치하고 있지만, 이후 보안관리 절차에 따라 다시 보안결함을 처치해야 하며, 이러한 경우, 품질관리 전 단계의 수정이 필요한 경우, 또는 보안결함이 조치되지 않고 무시되기도 한다.

나. 보안은 품질관리의 일부로 보는 견해(devOps)

품질관리에 있어서의 일부 보안 요소가 포함되어야 한다는 생각이다. 아래 그림과 같이 7개의 품질관리 지표 중 1개 지표만이 보안 영역에서 관리되며 개발 전 단계와 매핑시키면 보안이 테스트 단계에 집중되어 있음을 알 수 있다.그 관점에서는 소프트웨어 품질관리 단계에서 품질과 보안조직과의 협의를 통해 보안영역과 공통되는 부분을 미리 정의함으로써 품질보증을 관리할 수 있다.


이 경우 보안은 소프트웨어 테스트 단계에서 소프트웨어 취약점 진단(시큐어 코딩 보안)을 주로 수행하고 조치 여부를 확인하는 역할을 하므로 전체적인 보안 관리에는 한계가 발생한다는 맹점이 존재한다.
다. 전체 소프트웨어 품질 단계에 보안이 적용되어야 한다는 생각(Dev SecOPs)
소프트웨어 개발의 전 과정에서 모든 사람이 보안에 책임을 지는 것을 목표로 하는 것으로, 개발, 운용, 보안의 직무를 통합해 관리하는 것을 의미한다(2012년 가트너에서 모델을 발표).Dev SecOps 방법론과 매우 유사한 것이 마이크로소프트사에서 개발한 Secure-SDLC(Software Development Life Cycle)로 마이크로소프트 OS인 Window Vista로부터 적용되어 매우 큰 효과를 얻었다고 한다.그러나 이 방법론을 적용하기 위해서는 보안전문인력, 방법론 및 절차가 이전 개발주기에 투입되어 관리되어야 하기 때문에 별도의 품질관리조직과 함께 개발운영조직에도 전임 보안인력이 존재해야 하는 문제가 발생한다.


05 재정정보시스템의 소프트웨어 품질관리를 위한 방향성 현재는 대기업 IT기업을 중심으로 소프트웨어 품질관리의 중요성을 인식하게 되어 전담조직과 예산, 방법 등에 대한 관심이 높아지고 있다.그러나 여전히 많은 기관이나 기업에서는 소프트웨어의 품질관리를 하고 있지 않은지 개발 부서 자체의 절차에 의해 수행, 테스트되고 있어 전사 시점에서의 검증 프로세스가 없다.보안 관리의 기술적 측면에서 품질관리를 실시할 경우, 전술한 바와 같이 보안 취약점 진단 툴에 의존해 점검·조치를 실시하는 등 전체적인 품질관리 수준보다 지엽적인 보안관리에 가깝다고 할 수 있다.한국재정정보원은 정보시스템의 운영뿐 아니라 개발까지 직접 수행하고 관리하는 조직으로 소프트웨어의 품질관리가 어느 기관보다 매우 중요하다고 할 수 있다. 따라서, 개발전의 프로세스에 시큐리티가 적용되는 DevSecOps 베이스의 방법론이나 마이크로소프트사의 Secure-SDLC의 방법론을 적용하는 것이 바람직하다.또한개발과정별로통일된품질관리를할수있도록전담조직의신설과각운용/개발조직에품질관리직무가부여된전담인력이필요하며,개발주기(life cycle)에따라적절히감소·보고되어야한다.

이 블로그의 인기 게시물

7월에 제주도를 즐길 수 있는 곳 _ 스노클링의 성지 _ 간조 때 찾은 반포포구 아이들과 물놀이

독후감 서평 쓰는 법, 서평서 쓰는 법 예, 독서록 쓰는 법

차량용 블루투스 리시버 뉴메이트 NF-5000을 써보니