지속적인 취약성 스캐닝
GitLab v19.3Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
요약
지속적인 취약성 스캐닝(CVS)은 GitLab이 새 CI/CD 파이프라인 실행 없이 취약성 레코드를 생성할 수 있는 기능입니다. CVS는 기본 브랜치에 저장된 CycloneDX SBOM 보고서에 의존하여 프로젝트가 사용하는 구성 요소를 파악합니다.
지속적인 취약성 스캐닝(CVS)은 GitLab이 새 CI/CD 파이프라인 실행 없이 취약성 레코드를 생성할 수 있는 기능입니다. 새 보안 어드바이저리가 게시되거나 업데이트되면 GitLab은 프로젝트에 이미 기록된 구성 요소와 어드바이저리를 비교하여 일치하는 항목에 대한 취약성 레코드를 생성합니다.
CVS는 기본 브랜치에 저장된 CycloneDX SBOM 보고서에 의존하여 프로젝트가 사용하는 구성 요소를 파악합니다. 이 SBOM을 생성하려면 종속성 스캐닝 job이 기본 브랜치에서 최소 한 번 실행되어야 합니다. 그 이후에는 CVS가 추가적인 파이프라인 실행 없이도 해당 구성 요소에 대해 새로 게시된 어드바이저리를 자동으로 감지합니다. 애플리케이션 종속성이 변경될 때는 CVS가 업데이트된 구성 요소 집합을 평가할 수 있도록 기본 브랜치에서 새 파이프라인을 실행하여 SBOM을 새로 고쳐야 합니다. 대부분의 프로젝트에서는 종속성 변경이 일반적으로 코드 변경을 수반하고 이미 파이프라인을 트리거하기 때문에 이는 정규 워크플로우의 일부로 자연스럽게 이루어집니다.
CI 기반 보안 스캔과 달리 지속적인 취약성 스캐닝은 CI 파이프라인이 아닌 백그라운드 작업(Sidekiq)을 통해 실행되며 보안 보고서 아티팩트가 생성되지 않습니다.
머지 리퀘스트 보안 리포트#
머지 리퀘스트의 보안 위젯은 머지 리퀘스트 파이프라인의 보안 보고서 아티팩트를 타깃 브랜치의 최신 파이프라인 보안 보고서 아티팩트와 비교합니다. CVS는 보안 보고서 아티팩트를 생성하지 않으므로, CVS가 기본 브랜치에 생성한 취약성은 이 비교에 포함되지 않습니다.
따라서 머지 리퀘스트의 파이프라인이 CVS가 이미 기본 브랜치에 생성한 취약성을 탐지하면, 해당 구성 요소가 변경되지 않았더라도 머지 리퀘스트는 그 취약성을 새로 탐지된 것으로 보고합니다. 기본 브랜치에서 다음 파이프라인이 실행되면 타깃 브랜치의 보안 보고서 아티팩트에 해당 취약성이 포함되므로, 이후의 머지 리퀘스트에서는 더 이상 새로 탐지된 것으로 보고되지 않습니다.
이 제한은 머지 리퀘스트 비교에만 영향을 줍니다. 기본 브랜치에서는 CVS가 취약성을 생성한 시점부터 취약성 보고서에 해당 취약성이 표시됩니다.
지원되는 기능#
지속적인 취약성 스캐닝은 다음 보안 스캔에서 사용 가능합니다:
- 애플리케이션 종속성을 위한 지속적인 종속성 스캐닝.
- 컨테이너 이미지 패키지를 위한 지속적인 컨테이너 스캐닝.