보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

개발의 전주기에 보안을 고려한 DevSecOps의 이해와 구현방법

2020.08.24

15,502

 

 

 

 

01. DevSecOps의 개요

 

1) DevOps란? ​

  • · 데브옵스(DevOps)는 소프트웨어 개발(Development)과 운영(Operation)의 합성어로, 소프트웨어 개발자와 운영자 간의 의사소통, 협업 및 통합을 강조하는 개발 환경 혹은 문화를 의미한다.
  • · DevOps는 제품 및 서비스의 출시 시간(Time-To-Market) 단축을 위해 개발 제품의 지속적인 통합과 배포를 통해 요구사항에 빠르게 대응하기 위함이다.
  • · 최근 클라우드 서비스의 증가, 그로 인한 컨테이너 기반의 서비스 배포, 마이크로서비스(MSA)의 등장에 따라 단순히 개발의 효율성과 생산성 향상을 넘어 비즈니스에 실시간으로 대응 가능한 개발 문화이다.
  • · DevOps는 개발과 운영을 결합해 애플리케이션의 개선에 초점을 맞춘다. 이 과정에서 자동화 툴을 이용해 개발의 생산성과 효율성은 높이지만, 보안까지는 자동화하지 못해 이에 대한 개선이 필요하다.

2) DevSecOps의 정의 

  • · 데브섹옵스(DevSecOps)란 소프트웨어 개발(Development)과 운영(Operation), 보안(Security)의 합성어로 애플리케이션 개발자와 운영, 보안 실무자 간의 소통과 협업, 통합을 강조하는 개발 문화이다.
  • · 과거의 일반적인 IT조직은 개발과 운영, 보안조직을 분리하는 것을 기본으로 하였다. 이는 직무분리(Separation of Duty) 및 책임추적성(Responsibility)을 확보하기 위함이다. 하지만 최근의 비즈니스 및 ICT 환경에서는 과거 IT조직 체계로는 급속도로 변화하는 비즈니스 환경에 대응이 어려워지며 DevOps와 보안(Security)이 결합된 데브섹옵스(DevSecOps)가 각광 받게 되었다.

3) DevSecOps의 필요성 

 

최근의 개발 주기는 몇일 또는 몇 주의 빠른 개발 주기 환경으로 기존의 보안 방식과 정책은 전체적인 효율성을 떨어뜨리는 원인으로 인식되어 최종 단계에서 보안 점검을 형식적인 행위로 처리해 버리는 경우가 발생하고 있다. 이를 개선하기 위해서는 DevSecOps를 통해 개발 Pipeline의 과정에서 보안 정책 및 기술을 자동화하는 것이 필요하다.

 

 

4) DevSecOps의 기대효과

 

가. 기술적 측면의 기대효과​​

  • · 보안 안전성 : DevOps 개발 프로세스 내에서 모의해킹, 보안테스트 진행 가능하며, 애플리케이션 및 워크로드 배포 시 플랫폼 취약점 점검에도 이용 가능하다. DevOps 프로세스가 진행됨에 따라 애플리케이션 및 워크로드가 점점 더 보안적으로 안전해지게 된다.
  • · 보안사고 감소 : DevOps의 전 프로세스 과정에서 보안 자동화 기술을 적용하여 취약점을 감소 시킨다.
  • · 취약점 대응시간 단축 : 취약점 발견 시에 취약점 수정 시간을 단축하여 자칫 보안사고로 확대될 수 있는 상황을 민첩하게 대응 가능하다.

나. 비즈니스적 측면의 기대효과

  • · Time To Market : 코딩을 마치고 운영 환경으로 이관되는 소요 시간 단축, 통합된 변화관리, 자동화된 배포, 테스트를 통해 재작업을 제거 가능하다.
  • · Cycle Time 단축 : 서버와 ICT 환경을 업데이트 시에 소요되는 시간을 단축할 수 있다. 또한 표준화된 프로세스와 자동화된 도구 등을 통해 개발과 보안 적용의 시간을 단축 가능하다.
  • · 생산성 및 효율성 향상 : 개발팀과 운영팀, 보안팀 간의 의사소통 채널을 단일화하고 단순화하여 빠르게 의사결정을 진행하며 이는 곧 개발의 생산성과 효율성에 긍정적인 영향을 미치게 된다.

02. DevSecOps의 구성요소 

 

1) DevSecOps의 구성도 

 

 

<출처 : 가트너(Gartner)>

 

2) DevSecOps의 구성요소​ 

 

 

3) DevSecOps 단계별 적용 Tool 

 

 

  • · DevSecOps의 성공적인 적용을 위해서는 DevOps 개발 전단계에 자동화된 도구 및 보안 도구를 적용 할 수 있다. 이를 통해 개발의 생산성, 효율성, 보안성을 확보 할 수 있다.
  • · DevOps의 개발 과정과 동일하게 소스코드의 작성 단계부터 배포 및 모니터링 단계까지 DevOps Pipeline과 유기적으로 연계되는 자동화된 보안 도구(Tool)의 적용이 필요하다.

 

03. Micro Focus Enterprise DevSecOps Suit를 통해 본 DevSecOps의 핵심기능
 

1) Micro Focus Enterprise DevSecOps Suite의 아키텍처 

 

DevSecOps의 대표적인 솔루션인 Micro Focus 사에서 제공하는 ‘Micro Focus Enterprise DevSecOps Suite’를 통해 개발부터 운영까지 전체 라이프사이클을 포괄하는 핵심기능에 대해 알아보도록 하겠다. 

 

 

2) Micro Focus Enterprise DevSecOps Suite의 핵심 모듈 

 

 

Micro Focus Enterprise DevSecOps Suite는 End-to-End DevOps Ecosystem으로 모듈식 운영과 Micro Focus의 모든 기술과 통합을 지원하는 시스템으로, CP(Continuous Planning), CI(Continuous Integration), CD(Continuous Deployment & Release), CT(Continuous Testing), CS(Continuous Security), CO(Continuous Operations), CC(Continuous Collaboration), CA(Continuous Assessment) 총 8개 모듈로 구성되어 있다. 

  

04. DevSecOps의 성공적 도입을 위한 조건

 

1) 조직 문화 및 업무 프로세스 측면의 조건


 ① 개발 문화 개선

    - DevSecOps를 조직내에 성공적으로 적용하기 위해서는 개발과 운영, 보안부서가 보안을 공동의 책임으로 하는 문화 및 인식이 필요하다. 

     - 이를 위해 DevOps와 DevSecOps를 학습 및 교육하고. 조직내에 구성원들의 의견과 주장을 서로 소통하기 위한 커뮤니케이션 문화가 정착되어야 한다.


 ② 구성원들의 전문성 제고

      - 과거 전통적인 개발의 생명주기는 짧게는 수개월에서 길게는 1년 이상의 개발기간을 소요하기도 했다. 개발의 전주기지만 비즈니스의 변화와 ICT환경의 변화에 고객의 Needs는 다양해 졌으며, RTE(Real Time Enterprise)를 지원하기 위한 빠른 개발과 배포가 중요하다

      - 이러한 요구사항들에 적절하게 대응하기 위해서는 DevSecOps의 구성원들은 고급 개발자 이상의 개발 능력과 기술력이 동반되어야 성공적인 DevSecOps가 가능해 질 것이다.

 

 ③ 업무 프로세스 개선

      - DevSceOps를 구현하기 위해서는 보안과 컴플라이언스 조직이 각자의 프로세스, 정책, 요구사항을 개발 및 운영 부문에 활용하는 동일한 DevOps 워크플로우로 통합 시켜야 한다. 이는 보안 조직이 개발과 운영의 프로세스, 기술, 도구를 제대로 이해하지 못할 경우 DevSecOps를 성공적으로 도입 할 수 없다.

      - 보안 조직은 개발 초기 단계부터 보안을 고려하여 분석하고 테스팅을 진행해야 한다. 개발자는 시큐어코딩에 대해 학습과 적용을 해야 하며, 필요하다면 보안 조직은 개발자에게 이에 대한 교육을 진행하여야 한다. 

 

 ④ 보안을 전과정에 내재화

      - 보안을 전체 애플리케이션 개발, 운영 과정의 핵심 가치로 내재화 시키는 구체적인  방법과 전문가의 도움이 필요하다. 조직내에 강력하게 DevSecOps 문화를 내재화 하기 위해서는 보안 정책 및 지침의 수준으로 ‘규정화’ 시키는 방법도 하나의 사례가 될 수 있다. 

      - 보안을 규정화 하려면 개발 전과정을 자동화하고 정교한 솔루션이 필요하다. 보안 정책의 업데이트가 개발 과정에서 신속하고 지속적으로 이루어져야 하며 필요에 따라 외부 툴을 쉽게 연동할 수 있어야 한다.

 

2) 기술적 측면의 조건

 

 ① 자동화를 통한 효율성과 정확성 제고

    ​ - DevOps의 핵심 중에 하나는 자동화(Automation)이다. DevSecOps 또한 이와 다르지 않다. DevSecOps Pipeline 전과정에서 자동화된 도구를 활용하여 보안 테스팅 등을 진행해야 한다. 예를 들어 소스코드를 개발 시에 gitrob, CHECKMARK 도구를 이용해 소스코드를 점검하며, CI Build시에 Splunk를 통해 소스코드의 오류 여부를 점검하는 등 개발 프로세스 단계별로 도구를 활용해  자동화를 진행한다. 

     ​ - 이를 위해서는 개발, 운영, 보안 조직이 서로 협업해야 하며, 각 도구들에 대한 이해와 성숙도 또한 중요하다. 

 

 ② DevSecOps의 단계적 적용

      - IT 개발 조직에 갑자기 DevSecOps를 적용한다고 하면 과연 구성원들은 어떻게 받아 들일까? 모두가 혼란스러울 것이다. 이를 줄이기 위해서는 단계적으로 적용하는 것이 하나의 방법이다. 단계적 적용을 통해 DevSecOps 조직의 성숙도를 높이고, Best Practice Model 를 통해 개발 전체 조직으로 확대해 나갈 수 있다.

      - 또한 자동화 솔루션의 일부 모듈을 도입 함으로서 조직내에서 성숙도를 향상 시켜 나가는 방법도 있다. 앞의 Micro Focus Enterprise DevSecOps Suite의 8개 모듈 중 Continuous Testing 모듈을 우선 구매하여, 테스트 단계에 적용하여 테스트 병목을 개선 함으로서, 단기간에 ROI(투자대비효과)를 실현할 수 있다.

 

 ③ 효과적인 도구 선택

      - DevSecOps CI/CD Pipeline과 기존 도구들에 쉽게, 그리고 효과적으로 연결할 수 있는 도구들을 선택해야 한다. 또한 각종 보안 관련 도구들이 사용하기 편리하게 유기적으로 연결되어야 하며, 도구 별 기능 및 자동화 수준 또한 고려되어야 한다.

 

 ④ 지속적 반복 및 개선

      - DevSceOps를 성공적으로 적용하기 위해서는 끊임없이 다가가는 반복의 과정이다. DevSecOps는 단숨에 달성하는 것이 아닌 지속적 반복과 개선을 해 나가는 것이라고 볼 수 있다. 결국 DevSecOps가 성공하기 위해서는 당장 손에 잡히는 성과에 집착하기 보다는 새로운 기업 문화가 조직 전체로 퍼져 나갈 수 있도록 최신 기술과 솔루션을 꾸준히 지원하고 교육하는 것이 가장 중요하다.

 

05. 결론

 

현재의 ICT 환경은 기존 On-Premise 환경에서 클라우드 서비스 및 컨테이너 기반의 서비스 형태로 진화해가고 있다. 조직에서는 이와 관련한 보안 취약점을 즉시 대응 가능한 DevSecOps에 대한 요구가 더욱더 늘어나게 될 것이다. 

뿐만 아니라 비즈니스 및 서비스 또한 기존의 도메인 단위보다 경량화된 마이크로서비스(MSA) 단위로의 개발과 배포 등이 증가하며 보안 취약점에 빠르게 대응 가능한 개발 문화 형태가 필요해지고 있다.

더욱이, 최근에는 COVID-19와 같은 글로벌 팬데믹 현상으로 인해, 업무 환경이 스마트워크 및 원격 근무 형태로 변화하며 새로운 보안 위협 및 취약점들이 등장하게 될 것이라고 보여진다. 

향후의 비즈니스 및 ICT 환경은 기존의 정보시스템 인프라, 데이터 및 정보 등을 대상으로 하는 전통적인 보안위협에서 벗어나 예상하기 어려운 다양한 형태의 보안 위협이 증가하게 될 것이며, 이러한 보안위협을 빠르게 대응하기 위해서는 DevSecOps를 통해 개발과 운영, 보안조직을 통합하여 유연하게 대응 가능한 개발 문화 및 자동화된 기술을 적용하는 것이 중요하다.