지속적 컨테이너 스캐닝
GitLab의 지속적 취약점 스캐닝(CVS)을 통해 새 파이프라인 실행 없이 컨테이너 이미지 의존성의 보안 취약점을 자동으로 탐지하는 방법을 설명합니다.
히스토리 GitLab 16.8에서 container_scanning_continuous_vulnerability_scans 라는 플래그 와 함께 지속적 컨테이너 스캐닝이 도입됨 . 기본적으로 비활성화됨. GitLab 16.10에서 GitLab Self-Managed 및 GitLab Dedicated에서 활성화됨 . GitLab 17.0에서 일반적으로 사용 가능 해짐. 피처 플래그 container_scanning_continuous_vulnerability_scans 제거됨. 컨테이너 스캐닝을 위한 지속적 취약점 스캐닝(CVS)은 새 파이프라인을 실행하지 않고도 최신 보안 어드바이저리 의 정보와 컴포넌트 이름 및 버전을 비교하여 프로젝트 이미지 의존성의 보안 취약점을 탐지합니다. CVS는 기본 브랜치에 저장된 CycloneDX SBOM 보고서를 사용하여 프로젝트에서 사용 중인 컴포넌트를 파악합니다. 이 SBOM을 생성하려면 기본 브랜치에서 컨테이너 스캐닝 job이 최소 한 번 실행되어야 합니다. 이후 CVS는 추가 파이프라인 실행 없이 해당 컴포넌트에 대해 새로 게시된 어드바이저리를 자동으로 탐지합니다. 이미지 콘텐츠가 변경되면 CVS가 업데이트된 컴포넌트 집합을 평가할 수 있도록 기본 브랜치에서 새 파이프라인을 실행하여 SBOM을 갱신해야 합니다. 대부분의 프로젝트에서는 의존성 변경 시 코드 변경을 수반하여 파이프라인이 이미 트리거되므로, 이는 일반적인 워크플로의 일부로 처리됩니다. 지속적 취약점 스캐닝이 지원되는 패키지 유형 의 컴포넌트를 포함하는 모든 프로젝트에 대해 스캔을 트리거하면 새로운 취약점이 발생 할 수 있습니다. 컨테이너 스캐닝을 위한 지속적 취약점 스캐닝이 생성한 취약점은 스캐너 이름으로 GitLab SBoM Vulnerability Scanner 를, 취약점 유형으로 Container Scanning 을 사용합니다. CI/CD 기반 보안 스캔과 달리, 지속적 취약점 스캐닝은 CI/CD 파이프라인이 아닌 백그라운드 job(Sidekiq)을 통해 실행되며, 보안 보고서 아티팩트는 생성되지 않습니다. 사전 요구 사항 # CycloneDX SBOM 보고서 . GitLab 인스턴스에 동기화된 보안 어드바이저리 . 지원되는 패키지 유형 # 지속적 취약점 스캐닝은 다음 PURL 유형 의 컴포넌트를 지원합니다: apk deb rpm 알려진 제한 사항: 선행 0이 포함된 APK 버전은 지원되지 않습니다. 이 버전 지원을 위한 작업은 이슈 471509 에서 추적 중입니다. ^ 가 포함된 RPM 버전은 지원되지 않습니다. 이 버전 지원을 위한 작업은 이슈 459969 에서 추적 중입니다. Red Hat 배포판의 RPM 패키지는 지원되지 않습니다. 이 사용 사례 지원을 위한 작업은 에픽 12980 에서 추적 중입니다. CycloneDX SBOM 보고서 생성 방법 # CycloneDX SBOM 보고서 를 사용하여 프로젝트 컴포넌트를 GitLab에 등록하세요. CycloneDX 보고서는 다음 사항을 준수해야 합니다: CycloneDX 명세 버