배포 단계는 CSSC(Containers Secure Supply Chain) 프레임워크의 네 번째 단계입니다. 기업은 컨테이너 이미지의 보안 및 규정 준수를 확인하지 않고 컨테이너화된 워크로드를 실행하기 위해 호스팅 환경에 컨테이너 이미지를 배포할 수 있습니다. 이로 인해 잠재적인 보안 위험이 증가하거나 호스팅 환경에서 취약하거나 악성 코드를 실행할 수 있습니다. 이전 단계에서 생성된 컨테이너 이미지 메타데이터 및 증명은 배포 시 유효성을 검사해야 합니다. 이렇게 하면 배포가 엔터프라이즈 차원의 보안 및 규정 준수 정책을 준수합니다.
Microsoft의 CSSC(Containers Secure Supply Chain) 프레임워크는 규격 방식으로 이미지를 배포해야 하는 필요성을 식별합니다. CSSC 프레임워크는 이미지 메타데이터의 유효성을 검사하고 규정 준수 정책을 구현하여 이미지를 안전하게 배포하는 데 도움이 되는 표준 사례 및 도구 집합을 권장합니다. 이 문서에서는 CSSC 프레임워크의 배포 단계에서 사용할 수 있는 목표, 표준 사례 및 도구에 대해 알아봅니다.
배경
엔터프라이즈는 컨테이너 이미지가 취약성으로부터 자유롭고 사용이 승인되었는지 확인하지 않고 외부 또는 내부 레지스트리에서 직접 컨테이너 이미지를 배포할 수 있습니다. 신뢰할 수 없는 컨테이너 및 비준수 컨테이너 이미지를 호스팅 환경에 배포하면 잠재적인 보안 위험이 증가하거나 호스팅 환경에서 맬웨어 또는 취약한 코드를 실행할 수 있습니다.
CSSC 프레임워크 사례는 배포 준비 컨테이너 이미지가 신뢰할 수 있는 레지스트리에서 취약성 및 맬웨어가 없는지 확인하고 신뢰성과 무결성을 보장하는 데 도움이 됩니다. 많은 기업에서는 Kubernetes에 배포하기 전에 컨테이너 이미지의 SBOM 및 서명을 확인하는 정책을 구현하고, 컨테이너 이미지를 지속적으로 검사하여 검사 보고서의 유효성을 검사합니다.
배포 단계에서는 컨테이너 이미지 및 배포 환경의 보안을 유지하는 데 집중합니다. 배포는 컨테이너 이미지 서명, 수명 주기 메타데이터, 취약성 및 맬웨어 보고서, SBOM 및 검증을 위해 빌드 단계에서 생성된 출처 데이터를 사용하여 컨테이너 이미지를 호스팅 환경에 배포하기 전에 신뢰할 수 있고 규정을 준수하도록 합니다.
컨테이너 이미지를 배포하기 위한 워크플로
배포 단계에는 전 세계 수백 또는 수천 개의 클러스터에 컨테이너 이미지를 배포하는 워크플로가 있습니다. 배포는 동적으로 요청 시 발생할 수 있습니다. 컨테이너 이미지가 빌드, 확인 및 서명되면 CSSC 프레임워크는 컨테이너 이미지를 승격하고 관련 아티팩트가 배포 단계에 대한 레지스트리 간에 배포할 수 있습니다.
- 이미지 무결성 정책을 구현하여 배포 전에 이미지 서명을 확인하여 신뢰할 수 있는 게시자가 변조되지 않았는지 확인합니다.
- 취약성 검사 정책을 구현하여 컨테이너 이미지에서 취약성을 검사하고 심각도 수준(위험, 높음, 중간, LOW)에 따라 임계값을 설정하고 규격 이미지만 배포합니다.
- 원치 않는 라이선스를 사용하여 컨테이너 이미지 배포에 대한 제한을 적용하는 라이선스 준수 정책을 구현합니다.
- 배포 전에 컨테이너 이미지가 신뢰할 수 있는 원본 및 리포지토리에서 오는지 확인하는 출처 정책을 구현합니다.
- 이미지 수명 주기 정책을 구현하여 배포된 이미지가 지원 및 유효한 내에 있는지 확인하고 수명 종료 및 지원 종료 이미지의 배포를 제한합니다.
- 각 이미지에 대한 취약성 및 맬웨어 보고서를 생성하고 서명하여 변조를 방지하고 무결성을 보호합니다.
- 배포 중에 표시 유형 및 규정 준수 유효성 검사를 위해 서명된 보고서를 컨테이너 이미지에 첨부합니다.
- SBOM, 이미지 서명, 취약성 보고서, 수명 주기 메타데이터 및 출처 데이터를 비롯한 컨테이너 이미지 메타데이터를 확인합니다.
- 배포 정책을 적용하고 비준수 컨테이너 이미지의 배포를 제한하는 허용 제어 메커니즘을 구현합니다.
- CI/CD 파이프라인을 사용하여 배포 프로세스를 자동화하고 이미지 유효성 검사 및 확인 검사 통합합니다.
- 배포된 이미지를 지속적으로 모니터링하고 새로운 취약성, 규정 준수 편차를 감지하기 위한 규정 준수를 적용하고 필요에 따라 수정 작업을 수행합니다.
- 배포 활동을 기록하고 정기적인 감사를 수행하여 보안 및 규정 준수 표준을 준수합니다.
- 자동화 또는 수동 수정 절차를 구현하여 보안 인시던트 또는 규정 준수 편차를 해결합니다.
- 향후 참조 및 감사 목적으로 수행된 단계, 사용된 도구 및 구현된 보안 조치를 포함하여 배포 프로세스를 문서화합니다.
권장 사례
배포 시 이미지 메타데이터의 유효성을 검사하고 신뢰할 수 있는 레지스트리의 컨테이너 이미지만 배포하는 것이 좋습니다. 클라우드 네이티브 워크로드를 보호하기 위해 다음 방법을 사용하는 것이 좋습니다.
- 메타데이터를 확인하고 비준수 컨테이너 이미지를 제한하는 배포 정책을 적용합니다. 이렇게 하면 승인되지 않은 이미지가 배포되지 않습니다.
- 이미지를 배포하기 전에 이미지 서명의 유효성을 검사하는 배포 정책을 적용합니다. 이렇게 하면 배포에 사용되는 이미지가 신뢰할 수 있는 게시자의 이미지이며 변조되지 않습니다.
- 취약성 점수에 따라 배포 정책을 적용합니다. 이렇게 하면 특정 임계값(CRITICAL, HIGH, MEDIUM, LOW)을 초과하는 취약성이 있는 이미지를 배포할 수 없습니다.
- 지원 종료 이미지가 배포에 사용되지 않도록 수명 주기 정보를 확인하는 배포 정책을 적용합니다.
- 배포 환경 및 플랫폼에 보안 네트워크 연결이 있는지 확인합니다.
- 배포 플랫폼에 대한 무단 액세스를 거부하려면 엄격한 인증, 액세스 제어 및 파일 권한이 필요합니다. 이렇게 하면 잠재적인 유출된 자격 증명 또는 무단 변경을 방지할 수 있습니다.
- CI/CD 파이프라인에서 확인 프로세스를 자동화합니다.
배포 단계의 보안 목표
이미지 배포를 위해 잘 정의된 워크플로를 사용하면 기업이 보안을 강화하고 컨테이너에 대한 공급망의 공격 노출 영역을 줄일 수 있습니다. CSSC 프레임워크의 배포 단계는 다음 보안 목표를 충족하기 위한 것입니다.
신뢰할 수 있는 원본 및 규격 원본에서 이미지 배포
컨테이너 이미지가 신뢰할 수 있는 원본에서 제공되었으며 변조되지 않았는지 확인하려면 배포 단계 중에 보안 정책을 구현해야 합니다. 배포 전에 컨테이너 이미지 서명을 확인하여 무결성 및 신뢰성의 유효성을 검사할 수 있습니다.
허용 제어 보안 정책 구현
컨테이너 이미지가 규정을 준수하는지 확인하려면 배포 단계 중에 보안 정책을 구현해야 합니다. 이는 취약성 및 맬웨어 보고서, 이미지 서명, SBOM, 이미지 수명 주기 메타데이터 및 출처 메타데이터와 같은 보안 메타데이터에 대해 컨테이너 이미지를 확인하여 수행됩니다.
권장 도구
이미지 메타데이터의 유효성을 검사하고 유효성 검사 정책을 적용하기 위한 도구 및 서비스
Ratify 는 Kubernetes 클러스터가 배포 전에 보안 메타데이터를 확인하고 허용 정책을 준수하는 이미지만 허용할 수 있도록 하는 오픈 소스 프로젝트입니다. Kubernetes 클러스터에서 신뢰할 수 있고 규정을 준수하는 컨테이너 이미지만 실행할 수 있도록 Ratify 및 Gatekeeper를 구성하는 것이 좋습니다.
Gatekeeper 는 표준화된 방식으로 Kubernetes 클러스터에 대한 정책을 정의, 적용 및 감사하는 동적 허용 컨트롤러 및 정책 엔진을 제공하는 오픈 소스 및 CNCF 프로젝트입니다.
Azure Policy 는 외부 레지스트리 또는 신뢰할 수 없는 원본에서 컨테이너 이미지를 참조하는 배포를 감사하거나 차단하기 위해 Azure Kubernetes Service 클러스터에 기본 제공 정책을 적용할 수 있도록 Gatekeeper를 확장합니다.
이미지 메타데이터를 연결하기 위한 도구
ORAS 는 OCI 규격 레지스트리에서 아티팩트를 저장하고 관리하는 방법을 제공하는 CNCF 프로젝트입니다. ORAS를 사용하면 컨테이너 이미지, 이미지 메타데이터 등을 포함한 모든 유형의 아티팩트를 OCI 규격 레지스트리에 저장하고 관리할 수 있습니다. 또한 OCI 규격 레지스트리와 쉽게 상호 작용할 수 있는 명령줄 도구 집합을 제공합니다. ORAS를 사용하여 생성된 취약성 및 맬웨어 보고서, SBOM, 이미지 수명 주기 메타데이터 및 출처 메타데이터를 레지스트리에 연결된 이미지와 함께 푸시하는 것이 좋습니다.
컨테이너 이미지 및 메타데이터 서명 및 확인 도구
공증 프로젝트는 서명 및 확인, 서명 이식성 및 키/인증서 관리를 통해 소프트웨어 공급망을 보호하기 위한 업계 간 표준을 제공하기 위한 일련의 사양 및 도구를 포함하는 오픈 소스 프로젝트입니다. 표기법 은 서명 이식성 및 상호 운용성을 가능하게 하는 OCI(Open Container Initiative) 규격 레지스트리에서 아티팩트 서명 및 확인을 지원하는 공증 프로젝트 커뮤니티에서 개발한 공급망 도구입니다. 또한 플러그 인 모델을 통해 타사 키 관리 솔루션과 통합하여 확장성을 지원합니다. 인증 및 변조 방지를 위해 Notary Project 도구를 사용하여 컨테이너 이미지 및 메타데이터에 서명하는 것이 좋습니다.
다음 단계
컨테이너 이미지를 안전하게 배포하려면 실행 단계의 개요를 참조하세요.