지속적 취약점 스캔
- 피처 플래그
dependency_scanning_on_advisory_ingestion
및package_metadata_advisory_scans
가 기본적으로 활성화된 상태로 도입됨.- GitLab 16.10에서 일반적으로 사용 가능함.
dependency_scanning_on_advisory_ingestion
및package_metadata_advisory_scans
피처 플래그가 제거됨.- 피처 플래그인
container_scanning_continuous_vulnerability_scans
가 기본적으로 비활성화된 상태로 GitLab 16.8에서 도입됨.- GitLab 16.10에서 Self-Managed 및 GitLab Dedicated에서 지속적인 컨테이너 스캔이 활성화됨.
- GitLab 17.0에서 일반적으로 사용 가능함.
container_scanning_continuous_vulnerability_scans
피처 플래그가 제거됨.
어떤 특정 컨테이너 스캔이나 의존성 스캔을 활성화한 프로젝트에 새로운 공지가 GitLab Advisory Database 또는 Trivy Database에 추가되면, 지속적 취약점 스캔이 트리거되어 해당 프로젝트에서 스캔이 실행됩니다. 새로운 공지가 애플리케이션 또는 운영 체제 의존성에 영향을 미치면, 스캐너 값이 GitLab SBoM 취약점 스캐너
로 설정되어 해당 프로젝트에 취약점이 생성됩니다.
CI 기반 컨테이너 스캔 및 의존성 스캔보다 지속적 취약점 스캔은 백그라운드 작업(Sidekiq)을 통해 실행되며 CI 파이프라인이 아닙니다. 또한 보안 보고서 아티팩트가 생성되지 않습니다.
지원되는 패키지 유형
지속적 취약점 스캔은 다음 PURL 유형의 컴포넌트를 지원합니다:
composer
conan
deb
gem
golang
maven
npm
nuget
pypi
apk
및 rpm
패키지 URL 유형 지원 작업은 issue 428703에서 추적됩니다.
Go 의사 버전은 지원되지 않습니다. Go 의사 버전을 참조하는 프로젝트 의존성은 영향을 받지 않은 것으로 간주되므로 잘못된 결과가 발생할 수 있습니다.
구성
지속적 취약점 스캔을 활성화하려면 다음을 수행합니다:
- 의존성 스캔 또는 컨테이너 스캔을 활성화하고 전제 조건을 충족시킵니다.
- GitLab Self-Managed에서는 GitLab 인스턴스의 관리 영역에서 동기화할 패키지 레지스트리 메타데이터를 선택할 수 있습니다. 이 데이터 동기화가 작동하려면 GitLab 인스턴스에서
storage.googleapis.com
도메인으로의 아웃바운드 네트워크 트래픽을 허용해야 합니다. 네트워크 연결이 제한적이거나 없는 경우, 관련 지침은 오프라인 환경에서 실행 문서 부분을 참조하세요.
오프라인 환경에서 실행
인터넷으로 외부 리소스에 대한 액세스가 제한적, 제한된 또는 간헐적인 환경에 있는 Self-Managed GitLab 인스턴스의 경우, CycloneDX 보고서를 성공적으로 취약점으로 스캔하려면 몇 가지 조정이 필요합니다. 자세한 정보는 오프라인 퀵 스타트 가이드를 참조하세요.
새로운 취약점 확인
지속적 취약점 스캔에 의해 감지된 새로운 취약점은 취약점 보고서에서 확인할 수 있습니다. 그러나 해당 취약점은 의존성 디렉터리이나 영향을 받는 SBOM 컴포넌트가 감지된 파이프라인에서 나열되지 않습니다.
GitLab Advisory Database
또는 Trivy DB
에 공지가 추가된 후 해당 프로젝트에 대응되는 취약점이 추가되기까지 몇 시간이 걸릴 수 있습니다.
취약점 데이터베이스 기여
취약점을 찾으려면 GitLab Advisory Database
에서 검색할 수 있습니다. 또한 새로운 취약점을 제출할 수 있습니다.