실행 단계 개요
실행 단계는 CSSC(Containers Secure Supply Chain) 프레임워크의 다섯 번째 단계입니다. 이 단계에서는 런타임 환경을 검사 및 모니터링하고 오래되고 취약한 이미지의 제거를 강조합니다. 이 개요는 CSSC 프레임워크의 실행 단계에 대한 배경, 목표 및 목표를 제공합니다.
Microsoft의 CSSC(Containers Secure Supply Chain) 프레임워크는 신뢰할 수 있는 이미지를 사용하여 컨테이너를 실행해야 하는 필요성을 식별하고 이미지를 안전하게 실행하고 런타임의 공격 노출 영역을 줄이는 데 도움이 되는 모범 사례 및 도구 집합을 제공합니다. 이 문서에서는 CSSC 프레임워크의 실행 단계에서 사용할 수 있는 목표, 모범 사례 및 도구에 대해 알아봅니다.
배경
현재 기업은 다양한 방법을 사용하여 신뢰할 수 있는 이미지로 규격 컨테이너화된 워크로드를 실행합니다. 배포된 워크로드를 모니터링하면 기업에서 실제 운영 상태가 예상 상태인지 확인할 수 있습니다. 워크로드 이미지는 배포 시 또는 배포 후에 취약해집니다. 엔터프라이즈는 런타임 환경 및 이미지를 지속적으로 검색하여 현재 취약한 워크로드와 보안 업데이트 또는 버그 수정을 받기 위해 지원되지 않는 이미지를 검색하는 것이 좋습니다.
CSSC 프레임워크의 실행 단계에서는 적시에 노드를 재활용하고, 최신 및 패치된 컨테이너 이미지를 사용하여 컨테이너를 업그레이드하고, 부실하고 실행되지 않는 컨테이너 이미지를 제거하고, 컨테이너의 바람직하지 않은 동작을 방지하는 등 실행 중인 컨테이너 및 런타임 호스트의 보안을 보장하기 위해 구현해야 하는 일련의 단계 및 보안 컨트롤을 권장합니다.
권장 사례
Microsoft는 컨테이너화된 워크로드 및 런타임에 대한 취약성 및 맬웨어 스캐너를 지속적으로 실행하는 것이 좋습니다. 컨테이너 및 노드를 정기적으로 업데이트하고 노드를 클린 유지하는 것은 컨테이너화된 애플리케이션이 손상되지 않도록 보호하는 효과적인 방법입니다.
- 취약성 및 맬웨어를 정기적으로 검색하고 이미지 수명 주기 메타데이터를 검사 패치 및 업데이트해야 하는 이미지를 식별합니다. 악의적인 행위자가 취약한 부실 이미지를 사용할 가능성을 줄이기 위해 노드의 캐시에서 부실 이미지를 정기적으로 클린
- 호스트 환경 및 컨테이너에 대한 강력한 인증 및 권한 부여 메커니즘을 구성하고 공격자가 시스템에 쉽게 액세스할 수 없어 손상 시 손상을 입힐 수 있으므로 컨테이너를 루트가 아닌 것으로 실행합니다.
- 컨테이너 및 작업 노드를 정기적으로 업데이트합니다. 이렇게 하면 컨테이너와 노드가 최신 보안 패치 및 수정으로 실행되도록 합니다.
- 컨테이너 및 노드 포트를 제한하고, 컨테이너의 네트워크 액세스를 제한하고, 상호 TLS를 사용하도록 설정하여 공격 노출 영역을 줄입니다.
- 시스템 불안정의 위험을 완화하기 위해 컨테이너에서 사용할 수 있는 메모리 양 또는 CPU 제어와 같은 컨테이너에 리소스 제약 조건 적용
- 요구 사항에 따라 CIS 벤치마크, CISE 지침, CNCF 소프트웨어 공급망 모범 사례, NIST 지침 또는 지역 정부 지침과 같은 업계 표준 지침을 따릅니다.
런타임 환경을 지속적으로 검색 및 모니터링하기 위한 워크플로
실행 단계에는 런타임 환경을 지속적으로 검사하고 모니터링하는 워크플로가 있습니다. 실행 단계 워크플로는 취약하고 오래된 컨테이너 이미지를 제거하는 데 적용됩니다. 런타임 환경을 안전하게 유지하는 것이 매우 중요하며 워크플로는 다음 단계를 수행합니다.
- 컨테이너화된 워크로드 및 런타임 환경에서 취약성 및 맬웨어를 지속적으로 검색하여 잠재적인 보안 위협을 검사.
- 컨테이너 및 작업자 노드를 정기적으로 업데이트하여 최신 보안 패치 및 수정 사항으로 실행되도록 합니다.
- 컨테이너 및 노드를 정기적으로 업데이트하여 컨테이너화된 애플리케이션을 손상으로부터 보호하고 패치 및 수정으로 인한 취약성 위험을 방지합니다.
- 이미지 수명 주기 메타데이터를 확인하여 업그레이드가 최신이고 안전해야 하는 이미지를 식별합니다.
- 악의적인 행위자가 취약한 부실 이미지를 사용하지 않도록 노드의 캐시에서 부실 이미지를 정기적으로 클린.
- 호스트 환경 및 컨테이너에 대한 강력한 인증 및 권한 부여 메커니즘을 구성하고 컨테이너를 실행하여 공격자가 시스템에 쉽게 액세스하고 손상 시 손상을 입히는 것을 방지합니다.
- 컨테이너 및 노드 포트를 제한하고, 컨테이너의 네트워크 액세스를 제한하고, 상호 TLS를 사용하도록 설정하고, 컨테이너에서 사용할 수 있는 메모리 또는 CPU 양을 제어하는 등 컨테이너에 리소스 제약 조건을 적용하여 시스템 불안정의 위험을 완화하여 공격 표면을 줄입니다.
실행 단계의 보안 목표
CSSC 프레임워크의 실행 단계는 다음 보안 목표를 충족하기 위한 것입니다.
런타임을 모니터링하여 취약한 이미지 실행 줄이기
컨테이너에서 취약성 및 조직 정책 준수를 검사합니다. 컨테이너가 최신 버전의 이미지를 사용하고 있는지 확인합니다.
런타임 컨테이너를 최신 상태로 유지하면 컨테이너에 항상 취약성이 없고 조직 정책을 준수할 수 있습니다. 이미지는 단계 전체에서 지속적으로 모니터링되어야 합니다. 획득 단계 또는 빌드 단계의 새 이미지는 실행 단계에서 런타임 컨테이너의 업데이트를 트리거할 수 있습니다. 취약성 수정, 라이선스가 비준수되는 소프트웨어 수정, 시간이 지남에 따라 지원이 종료되는 이미지 등 다양한 이유로 이미지를 업데이트할 수 있습니다. 이러한 모든 업데이트는 업데이트할 런타임 컨테이너를 트리거합니다.
비준수 이미지를 방지하고 부실 이미지를 클린 공격 위험을 최소화합니다.
CI/CD 파이프라인은 배포 단계에서 이미지를 빌드하고 배포 플랫폼에 푸시하는 것이 일반적이지만 런타임 노드에서 사용되지 않는 이미지는 다시 제거되지 않을 수 있습니다. 이로 인해 디스크에 bloat가 누적되고, 비준수 이미지의 호스트가 노드에 남아 있을 수 있습니다. 취약성은 부실 이미지에도 존재할 가능성이 높습니다. 부실 이미지의 일반 클린 불필요한 검사를 방지하고 런타임 환경의 공격 노출 영역을 줄일 수 있습니다.
보안 구성을 사용하여 호스팅 환경을 최신 상태로 유지
신뢰할 수 있는 업스트림 또는 클라우드 공급자의 보안 릴리스 및 패치를 사용하여 호스팅 환경을 최신 상태로 유지합니다. 엄격한 액세스 제어 및 제한된 네트워크 권한을 보장하여 런타임 환경의 공격 노출 영역을 줄입니다. 호스팅 환경에 대한 예기치 않은 동작, 잘못된 구성 및 공격에 대한 실시간 검색을 채택합니다.
권장 도구
Microsoft는 기업이 실행 단계 워크플로에서 권장되는 단계를 구현하고 위에 나열된 보안 목표를 해결하는 데 도움이 되는 도구 및 서비스 세트를 제공합니다.
취약성 검사 및 패치 이미지에 대한 도구 및 서비스
클라우드용 Microsoft Defender 컨테이너화된 워크로드의 보안을 개선, 모니터링 및 기본 위해 클라우드 네이티브 솔루션입니다. 클라우드용 Microsoft Defender Azure Container Registry 및 실행 중인 컨테이너에 저장된 이미지에 대한 취약성 평가 및 관리 도구를 제공합니다.
비준수 이미지를 클린 도구 및 서비스
Azure Image Cleaner 는 자동 이미지 식별 및 제거를 수행합니다. Azure Image Cleaner를 사용하여 AKS 컨테이너 워크로드에 대한 Kubernetes 노드에서 부실 이미지를 클린, 또는 AKS가 아닌 환경이나 바닐라 Kubernetes 환경에 대해 오픈 소스 지우개를 사용하여 부실 이미지의 위험을 완화하고 이미지를 클린 데 필요한 시간을 줄입니다.
런타임 서비스를 자동으로 업그레이드하기 위한 도구
클러스터 자동 업그레이드는 구체적인 시간 및 운영 비용 이점을 생성하는 “한 번만 설정”하면 되는 메커니즘을 제공합니다. AKS 자동 업그레이드를 사용하도록 설정하면 클러스터가 최신 상태이고 AKS를 사용하는 경우 AKS 및 업스트림 Kubernetes의 보안 릴리스 또는 패치를 놓치지 마세요.
다음 단계
컨테이너를 안전하게 관찰하고 잠재적인 공급망 보안 문제를 적시에 찾으려면 준수 단계의 개요를 참조하세요.