지속적 종속성 스캐닝
GitLab의 지속적 취약점 스캐닝(CVS)을 사용하여 새 파이프라인 실행 없이 프로젝트 종속성의 보안 취약점을 자동으로 탐지하는 방법을 설명합니다.
히스토리 종속성 스캐닝을 위한 지속적 취약점 스캐닝은 기본으로 활성화된 기능 플래그 dependency_scanning_on_advisory_ingestion 및 package_metadata_advisory_scans 와 함께 도입됨 . GitLab 16.10에서 일반적으로 사용 가능 해짐. 기능 플래그 dependency_scanning_on_advisory_ingestion 및 package_metadata_advisory_scans 제거됨. 종속성 스캐닝을 위한 지속적 취약점 스캐닝(CVS)은 새 파이프라인 실행 없이 컴포넌트 이름과 버전을 최신 보안 어드바이저리 정보와 비교하여 프로젝트 종속성의 보안 취약점을 탐지합니다. 파이프라인은 CycloneDX SBOM을 통해 프로젝트 컴포넌트를 등록하기 위해 기본 브랜치에서 최소 한 번 실행되어야 합니다. 이후 CVS는 종속성이 변경될 때까지 추가 파이프라인 실행 없이 어드바이저리가 게시될 때마다 실행됩니다. 새로운 취약점이 발생할 수 있습니다 . 지속적 취약점 스캐닝이 지원되는 패키지 유형 의 컴포넌트를 포함하는 모든 프로젝트에서 스캔을 트리거할 때 새로운 취약점이 발생할 수 있습니다. 종속성 스캐닝을 위한 지속적 취약점 스캐닝으로 생성된 취약점은 스캐너 이름으로 GitLab SBoM Vulnerability Scanner , 취약점 유형으로 Dependency Scanning 을 사용합니다. CI/CD 기반 보안 스캔과 달리 지속적 취약점 스캐닝은 CI/CD 파이프라인이 아닌 백그라운드 job(Sidekiq)을 통해 실행되며 Security report 아티팩트가 생성되지 않습니다. 사전 요구 사항 # CycloneDX SBOM 보고서 . GitLab 인스턴스에 동기화된 보안 어드바이저리 . 지원되는 패키지 유형 # 지속적 취약점 스캐닝은 종속성 스캐닝을 위해 다음 PURL 유형 의 컴포넌트를 지원합니다: cargo conan go maven npm nuget packagist pub pypi rubygem swift Go 의사 버전(pseudo versions)은 지원되지 않습니다. Go 의사 버전을 참조하는 프로젝트 종속성은 오탐(false negatives)이 발생할 수 있으므로 영향을 받는 것으로 간주되지 않습니다. CycloneDX SBOM 보고서 생성 방법 # CycloneDX SBOM 보고서 를 사용하여 프로젝트 컴포넌트를 GitLab에 등록하세요. CycloneDX 보고서는 다음 사항을 준수해야 합니다: CycloneDX 스펙 버전 1.4 , 1.5 , 또는 1.6 . 종속성 스캐닝을 위한 GitLab CycloneDX 속성 분류 체계 . GitLab은 GitLab과 호환되는 보고서를 생성할 수 있는 보안 분석기를 제공합니다: 종속성 스캐닝 분석기 Gemnasium 분석기(더 이상 사용되지 않음) 새로운 취약점 확인 # 지속적 취약점 스캐닝으로 탐지된 새로운 취약점은 취약점 보고서 에서 확인할 수 있습니다. 단, 영향을 받는 SBOM 컴포넌트가 탐지된 파이프라인에는 표