지속적인 취약점 스캔
Offering: GitLab.com, Self-managed, GitLab Dedicated
- 지속적인 의존성 스캔은 도입됨으로, 기능 플래그
dependency_scanning_on_advisory_ingestion
및package_metadata_advisory_scans
가 기본값으로 활성화되어 있습니다.- GitLab 16.10에서 일반적으로 사용 가능. 기능 플래그
dependency_scanning_on_advisory_ingestion
및package_metadata_advisory_scans
가 제거되었습니다.- 지속적인 컨테이너 스캔이 GitLab 16.8에 도입됨으로 기능 플래그
container_scanning_continuous_vulnerability_scans
가 기본값으로 비활성화되어 있습니다.- GitLab 16.10에서 지속적인 컨테이너 스캔이 자체 관리 및 GitLab 전용에서 활성화됨.
- GitLab 17.0에서 일반적으로 사용 가능. 기능 플래그
container_scanning_continuous_vulnerability_scans
가 제거되었습니다.- 의존성 스캔 전용으로 새로운 구성 요소에서 CVS가 트리거되는 기능이 GitLab 17.3에 도입됨으로 기능 플래그
dependency_scanning_using_sbom_reports
가 기본값으로 비활성화되어 있습니다.- 컨테이너 스캔을 위한 새로운 구성 요소에서 CVS가 트리거되는 기능이 GitLab 17.4에 도입됨으로 기능 플래그
cvs_for_container_scanning
가 기본값으로 비활성화되어 있습니다.- 의존성 스캔 전용으로 새로운 구성 요소에서 CVS가 자체 관리 및 GitLab 전용에서 활성화됨으로 17.5에서 활성화되었습니다.
지속적인 취약점 스캔은 프로젝트의 종속성에서 보안 취약점을 찾아 구성 요소 이름과 버전을 최신 보안 권고의 정보와 비교합니다.
보안 권고가 추가되거나 업데이트되면, 지속적인 취약점 스캔은 지원되는 패키지 유형이 존재하는 모든 프로젝트에서 스캔을 트리거합니다. 권고가 종속성에 영향을 미치는 경우, 지속적인 취약점 스캔은 프로젝트에 취약점을 생성합니다.
지속적인 취약점 스캔에 의해 생성된 취약점은 GitLab SBoM Vulnerability Scanner
를 스캐너 이름으로 사용합니다.
CI 기반 보안 스캔과 달리, 지속적인 취약점 스캔은 CI 파이프라인이 아닌 백그라운드 작업(Sidekiq)을 통해 실행되므로 보안 보고서 항목이 생성되지 않습니다.
전제 조건
- 지속적인 취약점 스캔에서 지원되는 종속성이 있는 프로젝트. CycloneDX SBOM 보고서 생성 방법을 참조하세요.
- GitLab 인스턴스에 보안 권고가 동기화되어 있어야 합니다.
참고: 새로운 구성 요소가 감지되고 해당 구성 요소에 대한 권고가 이미 존재하는 경우, 취약점은 오직 다음 중 하나가 참일 때만 생성됩니다:
- 구성 요소가 의존성 스캔 관련 보고서에서 생성될 때.
-
기능 플래그
cvs_for_container_scanning
가 활성화되어 있고, 구성 요소가 컨테이너 스캔 관련 보고서에서 생성될 때.
이 기능에 대한 지원은 에픽 8026에서 추적할 수 있습니다.
지원되는 패키지 유형
지속적인 취약성 스캐닝은 다음 PURL 유형의 구성 요소를 지원합니다:
composer
conan
deb
gem
golang
maven
npm
nuget
pypi
rpm
apk
Go 의사 버전은 지원되지 않습니다. Go 의사 버전을 참조하는 프로젝트 종속성은 결코 영향을 받는 것으로 간주되지 않으며, 이는 잘못된 음성 결과를 초래할 수 있습니다.
^
가 포함된 RPM 버전은 지원되지 않습니다. 이러한 버전을 지원하기 위한 작업은 issue 459969에서 추적되고 있습니다.
선행 0이 포함된 APK 버전은 지원되지 않습니다. 이러한 버전을 지원하기 위한 작업은 issue 471509에서 추적되고 있습니다.
Red Hat 배포판의 RPM 패키지는 지원되지 않습니다. 이 사용 사례를 지원하기 위한 작업은 epic 12980에서 추적되고 있습니다.
CycloneDX SBOM 보고서 생성 방법
프로젝트 구성 요소를 GitLab에 등록하려면 CycloneDX SBOM 보고서를 사용하세요.
GitLab은 호환 가능한 보고서를 생성할 수 있는 보안 분석기를 제공합니다:
새로운 취약성 확인
지속적인 취약성 스캐닝에 의해 감지된 새로운 취약성은 취약성 보고서에서 확인할 수 있습니다.
그러나 이들은 영향을 받은 SBOM 구성 요소가 감지된 파이프라인의 종속성 목록에는 나열되지 않습니다.
보안 권고가 게시된 후, 해당 취약성이 귀하의 프로젝트에 추가되기까지 몇 시간이 걸릴 수 있습니다.
최근 14일 이내에 게시된 권고만 지속적인 취약성 스캐닝에 대해 고려됩니다.
더 이상 탐지되지 않는 취약성
지속적인 취약성 스캐닝은 새로운 권고가 게시될 때 취약성을 자동으로 생성하지만, 프로젝트에서 취약성이 더 이상 존재하지 않을 때를 알 수 없습니다.
이것을 하기 위해 GitLab은 여전히 기본 브랜치에 대한 파이프라인에서 컨테이너 스캐닝 또는
종속성 스캐닝 스캔을 실행하고, 최신 정보를 포함한 해당 보안 보고서 아티팩트를 생성할 필요가 있습니다.
이 보고서가 처리되고 더 이상 일부 취약성이 포함되지 않을 경우,
이러한 취약성은 지속적인 취약성 스캐닝에 의해 생성되었더라도 이렇게 표시됩니다.
이 동작은 17.1에서 issue 441490으로 도입되었으며, GitLab에서 유지 관리하는 스캐너(Trivy
, gemnasium
, gemnasium-python
, gemnasium-maven
)에 적용됩니다.
이 동작에 대한 개선, 즉 업데이트된 SBOM만 업로드하면 되는 요구 사항은 epic 8026에서 계획 중입니다.
보안 권고 사항
지속적인 취약점 스캐닝은 GitLab에서 관리하는 패키지 메타데이터 데이터베이스를 사용하며, 이 데이터베이스는 라이선스 및 보안 권고 데이터의 집합을 통해 GitLab.com 및 셀프 관리 인스턴스에서 정기적으로 업데이트를 게시합니다.
GitLab.com에서는 동기화가 GitLab에 의해 관리되며 모든 프로젝트에서 사용할 수 있습니다.
GitLab 셀프 관리 인스턴스에서는 관리자 영역에서 동기화할 패키지 레지스트리 메타데이터 선택하기를 할 수 있습니다.
데이터 출처
현재 보안 권고 사항에 대한 데이터 출처는 다음과 같습니다:
취약점 데이터베이스에 기여하기
취약점을 찾으려면 GitLab 권고 데이터베이스
에서 검색할 수 있습니다.
또한 새로운 취약점 제출하기를 할 수 있습니다.