본문 바로가기

POST/Insight

DevOps에서 DevSecOps로의 여정

Designed by Sophie

 

데브옵스에서 데브섹옵스로의 변화는 코드 생성 및 유지보수에서부터 소프트웨어 개발과 운영에 대해 보안을 더 중요하게 생각한다는 것을 시사합니다. 이런 방법론은 단순한 관행을 넘어서 소프트웨어 공급망에서의 보안에 집중한다는 것을 의미합니다. 데브옵스와 데브섹옵스를 이해하는 것은 해당 조직의 워크플로우를 최적화하고 제품의 질을 강화하는데 매우 중요한 개념입니다. 그리고 보안이 업무의 기본이라는 점을 다시한번 강조합니다.

 

데브섹옵스의 부상

개발(Dev)과 운영(Ops)의 간극을 줄인 DevOps는 그야말로 소프트웨어 개발의 혁명적인 일이었습니다. 개발 속도, 자동화, CI/CD 툴을 통한 협업 강화는 제품의 질 향상을 가져왔습니다. 그러나 빨라진 개발속도로 인해 소프트웨어에 대한 신뢰성을 보장하기 위해 ‘시프트 레프트’ 개념이 등장하면서 보안이 개발의 초기단계부터 고려되어야함이 강조되기 시작했습니다. 보안 점검은 개발의 마지막단계에 이뤄지는 것이 아니라 개발 프로세스에 녹여져 있어야 합니다.

 

DevSecOps 는 자연스러운 진화의 단계로 보안을 SDLC에 포함하게 되었습니다. 데브섹옵스의 목적은 매우 분명합니다. 취약성을 더 빨리 찾아내어 수정하고 개발 과정을 더 안전하고 효율적으로 만드는 것입니다.

 

데브옵스에서 데브섹옵스로 진화

데브섹옵스는 보안을 아무렇게나 추가하는 것이 아닙니다. 데브옵스가 정의한 프레임워크의 재정의를 통해 ‘보안 중심’ 사고를 강화하는 것입니다.

  • 품질과 보안 강화 프로세스 정립: 지속적 보안 모니터링과 개선을 통합하여 지속적으로 코드의 품질을 강화합니다.
  • 통합 보안을 위한 협업: DevOps는 개발과 운영 간의 협력을 육성하는 반면, DevSecOps는 보안 전문가를 처음부터 포함하여 이 협력 프레임워크를 확장합니다. 개발, 운영 및 보안 분야의 기술을 융합함으로써 조직은 취약점과 기술 부채를 최소화하는 통합된 안전한 소프트웨어 개발 전략을 달성할 수 있습니다.
  • 취약점에 대한 선행적 접근으로 품질 강화: DevOps에서 일반적인 반응적인 보안 조치를 넘어서, DevSecOps는 소프트웨어 품질에 대한 선행적 접근을 채택합니다. 개발 프로세스의 시작부터 잠재적 문제를 식별하고 해결함으로써 품질이 소프트웨어에 내장되도록 보장하여 제품 무결성과 보안을 강화합니다.
  • 포괄적인 보안을 위한 보안툴 통합: DevSecOps로의 전환은 전통적인 DevOps 자동화 및 조정 도구인 Jenkins, Docker, Kubernetes와 함께 특화된 보안 도구의 채택으로 이루어집니다. Static Application Security Testing (SAST), Software Composition Analysis (SCA), Interactive Application Security Testing (IAST), Dynamic Application Security Testing (DAST)와 같은 방법론은 소프트웨어 의존성, 오픈 소스 구성 요소, 응용 프로그램 성능에 대한 깊은 통찰력을 제공하여 취약점을 검사하고 보안 위험을 분석하며 소프트웨어가 위협에 대한 내구성을 보장합니다.

데브섹옵스 성숙도 모델

높은 품질의 안전하고 안정적인 소프트웨어를 신속하게 배포하기 위해서는 성숙한 DevSecOps 관행이 필요합니다. 자칫 애플리케이션 개발 과정에서 보안은 뒷전으로 밀려나기 쉽기 때문에 구조화된 프레임워크를 제공하는 것이 매우 중요합니다. 데브섹옵스 성숙도 모델 개념과 조직에서 반드시 고려해야할 사항에 대해 살펴보겠습니다.

 

성숙도 모델은 DevSecOps를 조직에 정착시키는 과정에서 현재 상태를 평가하고 궁극적인 목표에 얼마나 도달해 있는지 평가하며, 다음 단계로 발전하기 위한 전략적 계획을 수립할 수 있도록 도와줍니다. 다음은 효과적이며 포괄적인 DevSecOps 를 형성하는데 반드시 고려해야할 사항들입니다.

  • 현재 DevSecOps 성숙도 수준 파악: 현재의 성숙도 수준을 이해하는 것은 목표한 개선을 위한 중요한 출발점입니다.
  • 조직이 필요로하는 DevSecOps 성숙도 수준 확인: DevSecOps의 목표와 비즈니스 목표가 일치하도록 성숙도의 수준을 정의합니다.
  • 조직이 요구하는 수준에 도달하기 위한 방법 고민: 현재 상태와 목표 수준간의 격차 해소를 위한 전략적이며 실행가능한 단계별 계획 수립이 필요합니다.

단계별로 성숙도를 확인할 수 있으며, 다음 단계로 나가기 위해 필요한 내용을 확인해 볼 수 있습니다.

 

Beginner (초보)

  • 대부분 수동 프로세스
  • 애플리케이션 생성, 개발, 유지 관리를 포함한 모든 작업이 수동으로 수행
  • 애플리케이션은 쉽게 패치되지 않기 때문에 완벽한 실행이 과제

Intermediate (중급)

  • 전환에는 애플리케이션 조립 라인 생성이 포함
  • 코드는 제품 보안을 지원하고 개발, 보안 및 운영 팀 간의 협업을 촉진
  • 자동화는 규정 준수, 인프라, 코드로서의 보안 포괄이 핵심 목표
  • Tekton 및 Jenkins와 같은 표준화 도구는 협업을 단순화하고 코드에서 애플리케이션을 구축

Advanced (고급)

  • 대규모 DevSecOps 구현
  • 패치 관리, 구성 등 프로세스 개선 중요
  • 기존 자동화 확장 및 클라우드 서비스 활용하여 DevSecOps 애플리케이션 조립 라인의 효율성과 속도 향상
  • 클라우드 기술을 통해 대규모 배포 가능

Expert (전문가)

  • 클라우드 네이티브상의 API 우선 접근 방식을 통한 자동화
  • 서버리스 및 마이크로서비스와 같은 기술 활용 강화
  • 애플리케이션 및 보안 개발을 위한 머신러닝과 인공지능 통한 의사결정 강화

이런 단계를 고려하여 OWASP(Open Worldwide Application Security Project)는 포괄적인 DevSecOps 성숙도 모델을 제공하여 조직에 보안 상태를 강화하기 위한 명확한 로드맵을 제공합니다. 로드맵은 4단계로 정의됩니다.

 

1단계: 보안 관행에 대한 이해

조직은 보안 관행에 대한 기본적인 인식을 얻으며, 보안의 중요성을 인지하고는 있지만 보안 조치를 위한 체계적인 접근방식은 부족할 수 있습니다.

 

2단계: 기본 보안관행 채택

기본 보안 관행을 적극적으로 채택하기 시작합니다. 보안을 개발 프로세스에 통합하고 정기 보안평가를 수행하며 기본 보안 제어를 구현합니다.

 

3단계: 보안 관행의 적극적인 채택

SDLC 전반에 걸쳐 보안 관행을 광범위하게 채택하고 자동 보안 테스팅, 지속적인 모니터링 및 선제적 위협대응 인텔리전스를 통합 적용합니다.

 

4단계: 고도화된 보안 관행의 확장 적용

데브섹옵스 성숙도 4단계에 이르르면 조직은 고도화된 보안 관행을 확장 적용하게 됩니다. 모든 단계에 걸쳐 자동화, 실시간 위협 감지, 보안 위협에 대한 선제적 방어가 적용됩니다.

 

데브섹옵스 성숙도 모델 도입 장점

데브섹옵스 성숙도 모델의 도입 장점은 다음과 같습니다.

  • 더 나은 고객 경험
  • 비용 절감
  • 소프트웨어 딜리버리 속도 증가
  • 개선된 보안
  • 더 빠른 혁신
  • 리소스 관리 개선

데브섹옵스 성숙도 모델은 소프트웨어 개발에서 보안 관행을 단계적으로 강화하는 좋은 지침이 됩니다. 이 컨셉을 이해함으로써 보안을 강화할 뿐 아니라 비용절감의 효과까지 함께 누릴 수 있습니다. 데브섹옵스는 단순한 방법론을 넘어서 소프트웨어 개발에서 보안이 가장 중요한 요소라는 점을 인지하는 마인드셋을 제공합니다.

 

 

원문 출처:

DevSecOps maturity model: A beginner's guide

How DevOps evolved into DevSecOps: Embracing security in software development

 

참고 링크:

데브옵스 원칙 이해하기: 시프트 레프트와 시큐어 라이트

SAST vs. DAST: 애플리케이션 보안 강화