Jump to section

DevSecOps란?

URL 복사

DevSecOps는 개발, 보안, 운영을 나타내는 말로서, 전체 IT 라이프사이클에 걸쳐 보안을 공동의 가치로 통합하는 문화, 자동화 및 플랫폼 설계에 대한 접근 방식입니다.

DevOps는 단지 개발 및 운영 팀에 국한된 문제는 아닙니다. DevOps 접근 방식의 민첩성과 대응 능력을 최대한 활용하려면 IT 보안 팀이 애플리케이션의 전체 라이프사이클에서 통합된 역할을 해야 합니다.

그 이유는 무엇일까요? 과거에 보안 역할은 개발의 최종 단계에 있는 특정 팀에 국한되어 있었습니다. 개발 주기가 몇 개월 또는 몇 년 동안 지속되던 시절에는 크게 문제가 되지 않았지만, 이제 상황이 달라졌습니다. 효과적인 DevOps는 신속하고 빈번한 개발 주기(몇 주 또는 며칠 단위)를 보장해야 하지만, 과거의 보안 사례는 가장 효율적인 DevOps 이니셔티브 조차도 실패하게 만들 수 있습니다.

 

Illustration representing a linear progression from Development to Security and then to Operations

협업을 중시하는 DevOps 프레임워크에서 보안은 공동의 책임이며 처음부터 통합되어야 합니다. 이러한 사고방식이 매우 중요해지면서, DevOps 이니셔티브에 보안 기반을 구축해야 할 필요성을 강조하기 위해 "DevSecOps"라는 용어가 등장하게 되었습니다.

 

Illustration representing collaboration between Development, Security, and Operations roles

DevSecOps는 처음부터 애플리케이션과 인프라 보안을 고려해야 함을 의미합니다. 이는 또한 DevOps 워크플로우가 느려지지 않도록 일부 보안 게이트를 자동화해야 한다는 의미이기도 합니다. 보안 기능을 갖춘 통합 개발 환경(Integrated Development Environment, IDE) 사용에 동의하는 등 지속적인 보안 통합을 위한 적합한 툴을 선택하면 이러한 목표 달성에 도움이 될 수 있습니다. 하지만 효과적인 DevOps 보안을 위해서는 새로운 툴만으로는 부족합니다. 이는 DevOps의 문화적인 변화를 바탕으로 구축되어 빠른 시일 내에 보안 팀의 작업과 통합되어야 합니다.

“DevOps” 또는 “DevSecOps”라는 명칭에 상관없이 보안을 애플리케이션 라이프사이클 전체에서 핵심적인 부분에 포함하는 것이 가장 이상적이라는 데는 변함이 없습니다. DevSecOps는 애플리케이션과 데이터 주변의 경계로서의 보안이 아닌 빌트인 보안을 이야기합니다. 보안이 개발 파이프라인의 가장 마지막 단계에 적용되는 경우, DevOps를 도입하는 조직은 긴 개발 주기를 다시 거치게 되어 애초에 피하고자 했던 상황에 직면하게 될 수 있습니다.

DevSecOps는 정보 보안을 기본으로 제공해 보안 자동화 계획을 세울 수 있도록 DevOps 이니셔티브 초기에 보안 팀 및 파트너를 참여시킬 필요가 있음을 강조합니다. 개발자가 보안을 염두에 두고 코딩해야 할 필요성을 강조하기도 하는데, 이 과정에서 보안 팀은 내부자 위협 또는 잠재적 맬웨어와 같은 알려진 위협에 대한 가시성 정보를 공유하고 피드백 및 인사이트를 제공해야 합니다. 또한 DevSecOps는 소프트웨어 공급망에 대한 리스크를 식별하는 데 초점을 맞추고 있어 소프트웨어 개발 라이프사이클 초기에 오픈소스 소프트웨어 구성 요소의 보안과 종속성을 강조합니다. 성공을 거두기 위해서는 효과적인 DevSecOps 접근 방식에 개발자를 위한 새로운 보안 교육을 포함할 수 있습니다. 더욱 전통적인 애플리케이션 개발에서 이 부분은 간과되기도 했기 때문입니다.

빌트인 보안은 실제로 어떤 모습일까요? DevSecOps를 처음 시작하는 기업이라면, 리스크 허용 범위를 결정하고 리스크/장점 분석을 수행하는 것이 좋은 DevSecOps 전략이 될 수 있습니다. 주어진 애플리케이션 내에서 어느 정도의 보안 제어가 필요할까요? 각기 다른 애플리케이션에 대하여 시장 출시 속도는 얼마나 중요한가요? 파이프라인에서 수동으로 보안을 점검하면 시간이 많이 소요될 수 있으므로, 반복되는 태스크를 자동화하는 것이 DevSecOps의 핵심입니다.

과제는 개발 주기를 단축하고, 운영 중단을 최소화하여 보안 조치를 통합하고, 컨테이너마이크로서비스와 같은 혁신적인 기술로 업데이트하면서도 분리된 팀들 간에 긴밀하게 협업하도록 해야 합니다. 물론 어느 조직에서든 이런 목표를 달성하는 것은 쉽지 않은 일입니다. 이러한 이니셔티브는 모두 조직 내외의 협업을 통해 인적 개입이 이루어지면서 시작됩니다. 그러나 DevSecOps 프레임워크에서 더욱 원활하게 수동 변경을 수행하려면 자동화가 필요합니다.

Illustrations representing that DevOps plus Automation equals Security

그러면 무엇을 어떻게 자동화해야 할까요? 이러한 질문에 대한 답변을 위해 작성된 가이드를 참조하세요. 조직은 한걸음 물러서서 개발 및 운영 환경 전체를 고려해야 합니다. 여기에는 소스 컨트롤 리포지토리, 컨테이너 레지스트리, 지속적 통합/지속적 배포(CI/CD) 파이프라인, 애플리케이션 프로그래밍 인터페이스(Application Programming Interface, API) 관리, 오케스트레이션 및 릴리스 자동화, 운영 관리 및 모니터링이 포함됩니다.

새로운 자동화 기술은 조직이 더욱 민첩한 개발 사례를 도입하도록 지원하여 새로운 보안 조치를 추진하는 데 기여하고 있습니다. 그러나 자동화가 최근 IT 환경 변화의 전부는 아닙니다. 컨테이너 및 마이크로서비스와 같은 클라우드 네이티브 기술이 이제 대부분의 DevOps 계획에서 주요한 부분이 되었으며, 이를 위해 DevOps 보안을 조정해야 하는 상황입니다.

컨테이너를 통해 규모가 확장되고 인프라가 더욱 동적으로 구성되면서 많은 조직의 비즈니스 운영 방식이 변화했습니다. 이런 이유로 DevOps 보안 사례는 반드시 새로운 환경에 맞춰 조정되어야 하며 컨테이너별 보안 가이드라인을 따라야 합니다.

클라우드 네이티브 기술은 정적인 보안 정책과 체크리스트에 적합하지 않습니다. 대신 보안은 애플리케이션과 인프라 라이프사이클의 모든 단계에 지속적으로 통합되어야 합니다.

DevSecOps는 애플리케이션 개발 과정 전체에 보안을 구축한다는 것을 의미합니다. 이처럼 파이프라인에 통합하려면 조직에 새로운 툴 만큼이나 새로운 사고 방식이 필요합니다. 따라서 DevOps 팀은 전반적인 환경과 데이터 및 지속적 통합/지속적 제공 프로세스를 보호하기 위해 보안을 자동화해야 합니다. 여기에는 컨테이너의 마이크로서비스 보안이 포함될 수 있습니다.

Red Hat® Advanced Cluster Security는 클라우드 네이티브 원칙과 마이크로서비스 아키텍처, 선언적 정의, 변경 불가능한 인프라의 아티팩트를 사용하여 DevSecOps 모범 사례를 자동화합니다. 플랫폼은 모든 쿠버네티스 환경과 연동되며 DevOps 및 보안 툴과 통합되어 팀이 공급망, 인프라, 워크로드를 운영화하고 더욱 안전하게 보호할 수 있도록 지원합니다.

환경 및 데이터 보안

  • 환경 표준화 및 자동화: 각 서비스는 무단 연결 및 액세스를 최소화하기 위한 최소한의 권한을 보유해야 합니다.
  • 사용자 Identity 및 액세스 제어 기능의 중앙 집중화: 인증이 여러 지점에서 시작되므로, 엄격한 액세스 제어 및 중앙 집중식 인증 메커니즘은 마이크로서비스를 보호하는 데 필수적입니다.
  • 마이크로서비스를 실행하는 컨테이너를 서로 분리하고 네트워크에서도 분리: 여기에는 전송 중인 데이터와 유휴 데이터가 모두 포함되는데, 이러한 데이터는 공격자에게 유용한 표적이 될 수 있기 때문입니다.
  • 애플리케이션 및 서비스 간 데이터 암호화: 통합 보안 기능을 사용한 컨테이너 오케스트레이션 플랫폼은 무단 액세스 가능성을 최소화합니다.
  • 보안 API 게이트웨이 도입: 보안 API는 권한 부여 및 라우팅 가시성을 높여줍니다. 노출되는 API를 줄여 조직은 공격 표면을 줄일 수 있습니다.

CI/CD 프로세스 보안

  • 컨테이너를 위한 보안 스캐너 통합: 이는 컨테이너를 레지스트리에 추가하는 프로세스의 일부로 수행해야 합니다.
  • CI 프로세스에서 보안 테스트 자동화: 여기에는 보안 정적 분석 툴을 빌드에 포함시켜 실행하는 작업과, 빌드 파이프라인에 포함될 때 사전 구축된 모든 컨테이너 이미지를 스캔하여 알려진 보안 취약점을 식별하는 작업이 포함됩니다.
  • 보안 기능에 대한 자동화된 테스트를 수용 테스트 프로세스에 추가: 입력 검증 테스트 및 검증 인증과 권한 부여 기능을 자동화합니다.
  • 알려진 취약점에 대한 패치 등 보안 업데이트 자동화: DevOps 파이프라인을 통해 이러한 작업을 수행합니다. 또한 관리자가 프로덕션 시스템에 로그인할 필요를 없애고, 문서로 기록되어 추적 가능한 변경 로그를 생성합니다.
  • 시스템 및 서비스 구성 관리 기능 자동화: 이를 통해 보안 정책을 준수하고 수동 작업의 오류를 줄일 수 있습니다. 감사 및 문제 해결 역시 자동화되어야 합니다.

CI/CD 보안에 대해 자세히 알아보기 

OpenShift를 통한 DevOps 문화 및 사례 e-book 표지 이미지

OpenShift를 통한 DevOps 문화 및 사례에 대해 자세히 알아보기

추가 자료

문서

DevSecOps란?

DevOps의 민첩성과 대응 능력을 최대한 활용하려면 IT 보안 팀이 애플리케이션의 전체 라이프사이클에서 주요 역할을 해야 합니다.

문서

CI/CD(지속적 통합/지속적 제공): 개념, 방법, 장점, 구현 과정

CI/CD는 애플리케이션의 통합 및 테스트 단계에서부터 제공 및 배포에 이르는 애플리케이션의 라이프사이클 전체에 걸쳐 지속적인 자동화와 지속적인 모니터링을 제공합니다.

문서

DevOps 엔지니어는 어떤 사람일까요?

DevOps 엔지니어는 조직 내 협업, 혁신, 문화적인 변화를 지원하는 기술 및 전문성을 두루 갖추고 있습니다.  

DevOps에 대한 자세한 내용

제품

Red Hat 전문가가 참여하는 집중적인 전문 레지던스 환경에서 애자일 방법론과 오픈소스 툴로 기업의 비즈니스 문제를 해결하는 방법을 학습합니다.

다양한 시각으로 고객의 상황을 파악하고 이를 바탕으로 고객의 과제를 분석하여 종합적이고 비용 효율적인 솔루션을 통해 문제를 해결하도록 돕는 전략적인 조언자입니다.

리소스

체크리스트

DevOps 방법론을 활용한 엔터프라이즈 자동화

백서

Red Hat Ansible Automation Platform으로 CI/CD 파이프라인 간소화

자세히 알아보기