왼쪽에는 주황색으로 빛나는 원이 있고 오른쪽에는 청록색 물결 모양이 있는 추상적인 배경이며, 두 개의 흰색 사각형 모서리 괄호가 겹쳐져 있습니다.

CI/CD 보안이란 무엇인가요?

CI/CD 보안이란 무엇인가요?

CI/CD 보안은 지속적 통합 및 지속적 배포(CI/CD) 파이프라인을 보호하는 관행, 도구 및 정책을 말합니다. 조직이 소프트웨어 배포를 자동화함에 따라 이러한 파이프라인은 공격자의 주요 표적이 되고 있습니다. CI/CD 보안은 코드, 인프라, 기밀 및 빌드 환경이 DevOps 라이프사이클의 모든 단계에서 보호되도록 보장합니다.

CI/CD와 기존 소프트웨어 배포

‍

기존 소프트웨어 개발 방식과 CI/CD 파이프라인 방식의 속도, 보안, 위험 및 도구 차이를 비교한 표입니다.

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

‍

기존 워크플로와 달리 CI/CD 파이프라인은 하루에 여러 번 애플리케이션을 자동으로 빌드, 테스트 및 배포하기 때문에 지속적으로 보안을 유지해야 합니다.

CI/CD 보안이 중요한 이유

  1. 공격자는 파이프라인을 표적으로 삼습니다: 공격자들은 종종 잘못 구성된 도구, 유출된 자격 증명 또는 중독된 종속성을 악용합니다.
  2. 권한 오용은 흔해요. 빌드 시스템은 종종 광범위한 권한을 가지기 때문에 주요 측면 이동 대상이 돼요.
  3. 비밀과 토큰이 취약합니다: 코드 또는 환경 파일에 하드코딩된 자격 증명이 유출될 수 있습니다.
  4. 공급망 리스크가 점점 커지고 있습니다: CI/CD 파이프라인은 오픈 소스 패키지, 레지스트리 및 타사 서비스를 통합합니다.

CI/CD를 사용하면 배포 속도가 자산이 되지만, 보안 제어가 없으면 배포 속도도 책임이 됩니다.

CI/CD 보안의 핵심 요소

  1. 코드 보안(왼쪽 시프트)
    • 정적 및 동적 코드 분석(SAST/DAST)
    • 사전 커밋 후크 및 브랜치 보호
    • 비밀 스캔 및 린트
  2. 파이프라인 보안 구축
    • 빌드 서버 및 런너 강화(Jenkins 에이전트, GitHub 액션 등)
    • 격리된 환경에서 빌드 실행
    • 모든 아티팩트의 유효성 검사 및 서명
  3. 종속성 및 공급망 보호
    • 확인되고 고정된 종속성 사용
    • 취약한 패키지 모니터링(SCA 도구를 통해)
    • 배포 전 컨테이너 이미지 스캔
  4. 코드형 인프라(IaC) 보안
    • Terraform, CloudFormation 또는 Kubernetes 매니페스트 스캔하기
    • 배포 전에 정책 적용(예: OPA 또는 Sentinel 사용)
  5. 비밀 및 자격증명 관리
    • 볼트 및 동적 비밀 사용(예: 해시코프 볼트, AWS 비밀 관리자)
    • 자격 증명을 코드 또는 CI 구성에 하드코딩하지 마세요.
  6. 액세스 및 감사

산업 표준 & 모범 사례

  • CI/CD를 위한 OWASP 상위 10가지: 안전하지 않은 코드, 노출된 비밀, 종속성 오용과 같은 주요 위험을 강조합니다.
  • SLSA(소프트웨어 아티팩트에 대한 공급망 수준): 빌드 파이프라인을 보호하기 위한 Google 지원 프레임워크입니다.
  • NIST 800-204C: 마이크로서비스 기반 CI/CD 파이프라인을 위한 보안 전략.
  • DevSecOps 원칙: 개발 및 배포의 모든 단계에 보안 검사를 포함시킵니다.

일반적인 CI/CD 보안 위협

  • 중독된 아티팩트: 악성 패키지 또는 컨테이너가 파이프라인에 주입된 경우.
  • 자격 증명 도용: 클라우드 리소스에 액세스하는 데 사용되는 유출되거나 하드코딩된 비밀.
  • 파이프라인 장악: 공격자가 빌드 에이전트 또는 CI 도구를 탈취하여 악성 소프트웨어를 배포합니다.
  • 환경 편차: 스테이징과 프로덕션 간에 보안이 유지되지 않고 잘못 정렬된 환경.
  • 섀도우 CI/CD: 보안 정책을 우회하는 비공식적이거나 악성 파이프라인이에요.

CI/CD 파이프라인을 보호하는 방법

  • 보안을 조기에 통합하세요: 모든 병합, 빌드 및 배포에 보안을 포함하세요.
  • 자동화된 스캔: 코드, 컨테이너 및 IaC를 지속적으로 테스트합니다.
  • 비밀을 적절하게 관리하세요: 정기적으로 비밀을 교체하고 안전한 금고에 보관하세요.
  • 액세스를 모니터링하세요: 변경 사항, 배포 및 민감한 작업을 추적하세요.
  • 보안 도구를 사용하세요: CI 도구를 업데이트하고 보안을 강화하세요.
  • 아티팩트에 서명하고 확인합니다: 프로덕션에 배포하기 전에 빌드 무결성을 확인합니다.

자주 묻는 질문

1. CI/CD 보안은 기존 앱보안과 어떻게 다른가요?

기존의 앱 보안은 애플리케이션 자체에 집중합니다. CI/CD 보안은 코드 커밋부터 배포까지 전체 배포 파이프라인을 포괄합니다.

2. CI/CD 도구에 보안 기능이 내장되어 있나요?

대부분 기본적인 액세스 제어 및 로그를 포함하지만, 적절한 비밀 관리, 스캔 및 액세스 제어를 계층화하는 것은 사용자의 책임입니다.

3. 여기서 DevSecOps의 역할은 무엇인가요?

DevSecOps는 보안이 모든 CI/CD 단계에 자동화되고 지속적으로 구축되어 공동의 책임이 되도록 보장합니다.

일루미오가 CI/CD 파이프라인 보안을 지원하는 방법

Illumio는 자동화된 빌드, 배포 및 통합 중에 종종 발생하는 측면 이동 위험을 억제하여 CI/CD 환경에 강력한 세분화 및 가시성 기능을 제공합니다. 조직이 대규모로 DevOps를 도입함에 따라 파이프라인이 점점 더 상호 연결되고 손상되기 쉬워집니다. 

일루미오 세분화는 손상된 빌드 서버, 개발자 엔드포인트, 노출된 기밀 등 CI/CD 시스템이 침해된 경우 공격자가 여러 환경을 횡적으로 이동할 수 있는 능력을 차단합니다.

최종 생각

CI/CD 보안은 속도를 위해 안전을 희생하지 않도록 보장합니다. 초기 코드부터 최종 배포까지 소프트웨어 배포 파이프라인의 핵심에 보안을 내장함으로써 팀은 침해, 측면 이동 또는 공급망 손상 없이 빠르게 움직일 수 있습니다.

위반 가정.
영향 최소화.
복원력 향상.

예상치 못한 일이 언제든지 발생할 수 있다는 전제에서 시작하면 다음과 같은 행동을 유도할 수 있습니다.