InfoGrab DocsInfoGrab Docs

의존성 목록

요약

의존성 목록에서는 프로젝트 또는 그룹의 의존성과 알려진 취약점을 비롯한 주요 세부 정보를 확인할 수 있습니다. 개요는 Project Dependency - Advanced Security Testing을 참고합니다. 프로젝트의 의존성을 나열하려면 프로젝트의 기본 브랜치에서 의존성 스캐닝 또는 컨테이너 스캐닝을 실행합니다.

의존성 목록에서는 프로젝트 또는 그룹의 의존성과 알려진 취약점을 비롯한 주요 세부 정보를 확인할 수 있습니다. 이 목록은 기존 발견 항목과 신규 발견 항목을 포함하여 프로젝트의 의존성을 모아 놓은 것입니다. 이러한 정보를 소프트웨어 자재 명세서(Software Bill of Materials), SBOM 또는 BOM이라고 부르기도 합니다.

개요는 Project Dependency - Advanced Security Testing을 참고합니다.

의존성 목록 설정#

프로젝트의 의존성을 나열하려면 프로젝트의 기본 브랜치에서 의존성 스캐닝 또는 컨테이너 스캐닝을 실행합니다.

의존성 목록에는 최신 기본 브랜치 파이프라인에서 업로드된 CycloneDX 리포트의 의존성도 함께 표시됩니다. CycloneDX 리포트는 CycloneDX 사양 버전 1.4, 1.5, 1.6 중 하나를 준수해야 합니다. CycloneDX Web Tool로 CycloneDX 리포트를 검증할 수 있습니다.

Note

의존성 목록을 채우는 데 반드시 필요하지는 않지만, 일부 속성을 제공하고 일부 보안 기능을 사용하려면 SBOM 문서가 GitLab CycloneDX 속성 분류 체계를 포함하고 준수해야 합니다.

프로젝트 의존성 보기#

히스토리
  • GitLab 17.2에서는 기능 플래그 skip_sbom_occurrences_update_on_pipeline_id_change가 활성화된 경우 location 필드가 의존성이 마지막으로 탐지된 커밋으로 더 이상 연결되지 않습니다. 이 플래그는 기본적으로 비활성화되어 있습니다.
  • GitLab 17.3에서는 location 필드가 항상 의존성이 처음 탐지된 커밋으로 연결됩니다. 기능 플래그 skip_sbom_occurrences_update_on_pipeline_id_change가 제거되었습니다.
  • 의존성 경로 보기 옵션이 GitLab 17.11에서 dependency_paths라는 이름의 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • 의존성 경로 보기 옵션이 GitLab 18.2에서 일반 제공되었습니다. 기능 플래그 dependency_paths가 제거되었습니다.
  • 멀웨어 배지가 GitLab 19.4에서 dependency_malware_detection이라는 이름의 기능 플래그와 함께 베타 기능으로 도입되었습니다. 기본적으로 활성화되어 있습니다.
  • 멀웨어 배지가 GitLab 19.5에서 정식 출시되었습니다. 기능 플래그 dependency_malware_detection이 제거되었습니다.

사전 요구 사항:

  • 프로젝트 또는 그룹에 대한 Developer, Maintainer 또는 Owner 권한.

프로젝트의 의존성 또는 그룹 내 모든 프로젝트의 의존성을 확인하려면 다음 단계를 수행합니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트나 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Dependency list를 선택합니다.
  3. 선택 사항. 전이 의존성이 있다면 모든 의존성 경로를 확인할 수도 있습니다.
    • 프로젝트에서는 Location 칼럼에서 View dependency paths를 선택합니다.
    • 그룹에서는 Location 칼럼에서 위치를 선택한 다음 View dependency paths를 선택합니다.

각 의존성의 세부 정보가 취약점 심각도가 높은 순서로 정렬되어 표시됩니다(취약점이 있는 경우). 구성요소 이름, 패키저, 라이선스 기준으로 정렬할 수도 있습니다.

필드 설명
구성요소 의존성의 이름과 버전입니다.
패키저 의존성을 설치하는 데 사용된 패키지 관리자입니다. 지원되지 않는 패키지 관리자는 "unknown"으로 표시됩니다.
위치 시스템 의존성의 경우 이 필드에는 스캔된 이미지가 표시됩니다. 애플리케이션 의존성의 경우 이 필드에는 해당 의존성을 선언한 프로젝트의 패키저별 잠금 파일 링크가 표시됩니다. 직접 의존 항목이 있다면 함께 표시됩니다. 전이 의존성이 있는 경우 View dependency paths를 선택하면 모든 의존 항목의 전체 경로가 표시됩니다. 전이 의존성은 직접 의존 항목을 상위로 갖는 간접 의존 항목입니다.
라이선스(프로젝트 전용) 의존성의 소프트웨어 라이선스로 연결됩니다.
프로젝트(그룹 전용) 해당 의존성이 있는 프로젝트로 연결됩니다. 같은 의존성을 가진 프로젝트가 여러 개라면 그 프로젝트의 총 수가 표시됩니다. 이 의존성이 있는 프로젝트로 이동하려면 Projects 숫자를 선택한 다음 프로젝트 이름을 검색하여 선택합니다.
위험도 의존성에서 탐지된 취약점 수가 포함된 경고 배지입니다. 의존성이 멀웨어로 식별되었다면 빨간색 Malware 배지도 함께 표시됩니다. 멀웨어 판정은 GitLab 멀웨어 권고를 기준으로 합니다.

의존성 목록 필터링#

히스토리
  • 프로젝트의 의존성 필터링이 GitLab 17.9에서 project_component_filter라는 이름의 플래그와 함께 도입되었습니다. 기본적으로 활성화되어 있습니다.
  • GitLab 17.10에서 일반 제공되었습니다. 기능 플래그 project_component_filter가 제거되었습니다.
  • 의존성 버전 필터링이 GitLab 18.0에서 version_filtering_on_project_level_dependency_list 및 version_filtering_on_group_level_dependency_list라는 이름의 플래그와 함께 프로젝트와 그룹에 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • 의존성 버전 필터링이 GitLab 18.1에서 GitLab.com, GitLab Self-Managed, GitLab Dedicated에 활성화되었습니다.
  • 기능 플래그 version_filtering_on_project_level_dependency_list와 version_filtering_on_group_level_dependency_list가 제거되었습니다.
  • 프로젝트의 추적 ref 필터가 GitLab 19.2에서 vulnerabilities_across_contexts 및 project_dependency_tracked_ref라는 이름의 플래그와 함께 도입되었습니다. project_dependency_tracked_ref는 기본적으로 비활성화되어 있습니다.
  • 멀웨어 필터가 GitLab 19.4에서 dependency_malware_detection 및 malicious_packages_dependency_list_filtering이라는 이름의 플래그와 함께 베타 기능으로 도입되었습니다. 기본적으로 활성화되어 있습니다.
  • 기능 플래그 malicious_packages_dependency_list_filtering이 GitLab 19.5에서 제거되었습니다.
  • 기능 플래그 dependency_malware_detection이 GitLab 19.5에서 제거되었습니다.
Feature flag

멀웨어 필터와 추적 ref 필터의 사용 가능 여부는 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참고합니다.

의존성 목록을 필터링하여 일부 의존성만 집중해서 볼 수 있습니다. 의존성 목록은 그룹과 프로젝트에서 사용할 수 있습니다.

그룹에서는 다음 기준으로 필터링할 수 있습니다.

  • 프로젝트
  • 라이선스
  • 구성요소
  • 구성요소 버전
  • 멀웨어

프로젝트에서는 다음 기준으로 필터링할 수 있습니다.

  • 구성요소
  • 구성요소 버전
  • 멀웨어
  • 추적 ref

구성요소 버전으로 필터링하려면 먼저 구성요소 하나만 지정해 필터링해야 합니다.

의존성이 멀웨어로 식별되었는지를 기준으로 필터링할 수 있습니다. Malware를 선택한 다음 Yes 또는 No를 선택합니다. 기본적으로 의존성 목록에는 멀웨어 상태와 관계없이 모든 의존성이 표시됩니다.

멀웨어 탐지는 프로젝트의 기본 브랜치에서만 실행되므로 이 필터는 해당 브랜치의 의존성만 대상으로 합니다. 추적 ref로 필터링할 수도 있는 프로젝트 의존성 목록에서는 이 필터의 이름이 Malware (default branch only) 입니다. 추적 ref 필터가 없는 그룹 의존성 목록에서는 필터 이름이 Malware 입니다.

멀웨어 상태는 추적 ref 필터가 기본 브랜치 하나로만 설정된 경우에만 선택할 수 있습니다. 그 밖의 추적 ref를 선택하면 필터에 Yes와 No 옵션 대신 To filter by malware, remove the filter for other tracked refs 메시지가 표시됩니다. 멀웨어 필터를 적용한 뒤 추적 ref 필터를 변경하면 GitLab이 멀웨어 필터를 제거합니다.

이 필터에는 고급 취약점 관리가 필요합니다.

사전 요구 사항:

  • 프로젝트 또는 그룹에 대한 Developer, Maintainer 또는 Owner 권한.

의존성 목록을 필터링하려면 다음 단계를 수행합니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트나 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Dependency list를 선택합니다.
  3. 필터 바를 선택합니다.
  4. 필터를 선택한 다음 드롭다운 목록에서 하나 이상의 조건을 선택합니다. 드롭다운 목록을 닫으려면 목록 바깥을 선택합니다. 필터를 더 추가하려면 이 단계를 반복합니다.
  5. 선택한 필터를 적용하려면 Enter를 누릅니다.

의존성 목록에는 필터 조건에 맞는 의존성만 표시됩니다.

취약점#

히스토리
Feature flag

SBOM 기반 의존성 스캐닝과 연관된 취약점 지원 여부는 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참고합니다.

의존성에 알려진 취약점이 있다면 의존성 이름 옆의 화살표나 알려진 취약점 수를 나타내는 배지를 선택하여 확인합니다. 각 취약점의 심각도와 설명이 그 아래에 표시됩니다. 취약점의 세부 정보를 더 확인하려면 취약점 설명을 선택합니다. 취약점 세부 정보 페이지가 열립니다. 의존성 목록에는 detected와 confirmed 상태의 취약점만 표시됩니다. 취약점의 상태가 바뀌어도 SBOM이 포함된 파이프라인이 기본 브랜치에서 새로 실행되기 전까지는 그 변경이 의존성 목록에 반영되지 않습니다.

의존성 경로#

히스토리

의존성 경로는 목록에 표시된 구성요소가 전이 의존성이고 지원되는 패키지 관리자에 속하는 경우 그 구성요소의 직접 의존 항목을 보여 줍니다. 의존성 경로는 취약점이 있는 의존성에 대해서만 표시됩니다.

의존성 경로는 다음 패키지 관리자에서 지원됩니다.

다음 패키지 관리자에서는 dependency-scanning 컴포넌트를 사용할 때만 의존성 경로가 지원됩니다.

라이선스#

의존성 스캐닝 CI/CD job이 구성되어 있으면 탐지된 라이선스가 이 페이지에 표시됩니다.

내보내기#

히스토리
  • 프로젝트의 JSON 내보내기에 포함되는 malware 필드가 GitLab 19.4에서 dependency_malware_detection이라는 이름의 기능 플래그와 함께 베타 기능으로 도입되었습니다. 기본적으로 활성화되어 있습니다.
  • 프로젝트의 JSON 내보내기에 포함되는 malware 필드가 GitLab 19.5에서 정식 출시되었습니다. 기능 플래그 dependency_malware_detection이 제거되었습니다.

의존성 목록은 다음 형식으로 내보낼 수 있습니다.

  • JSON
  • CSV
  • CycloneDX 형식(프로젝트 전용)

프로젝트의 JSON 내보내기에는 해당 의존성이 멀웨어로 식별되었는지를 나타내는 malware 필드도 포함됩니다.

사전 요구 사항:

  • 프로젝트 또는 그룹에 대한 Developer, Maintainer 또는 Owner 권한.

의존성 목록을 내보내려면 다음 단계를 수행합니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트나 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Dependency list를 선택합니다.
  3. Export를 선택한 다음 파일 형식을 선택합니다.

의존성 목록이 이메일 주소로 전송됩니다. 의존성 목록을 다운로드하려면 이메일의 링크를 선택합니다.

문제 해결#

의존성 목록을 사용할 때 다음 문제가 발생할 수 있습니다.

라이선스가 'unknown'으로 표시됨#

특정 의존성의 라이선스가 unknown으로 표시되는 데에는 몇 가지 원인이 있을 수 있습니다. 이 섹션에서는 특정 의존성의 라이선스가 알려진 원인 때문에 unknown으로 표시되는지 판단하는 방법을 설명합니다.

업스트림에서 라이선스가 'unknown'#

해당 의존성의 업스트림에 지정된 라이선스를 확인합니다.

  • C/C++ 패키지는 Conancenter에서 확인합니다.
  • npm 패키지는 npmjs.com에서 확인합니다.
  • Python 패키지는 PyPI에서 확인합니다.
  • NuGet 패키지는 NuGet에서 확인합니다.
  • Go 패키지는 pkg.go.dev에서 확인합니다.

업스트림에서 라이선스가 unknown으로 표시된다면 GitLab에서도 해당 의존성의 License가 unknown으로 표시되는 것이 정상입니다.

라이선스에 SPDX 라이선스 표현식이 포함됨#

SPDX 라이선스 표현식은 GitLab 19.4 이상에서 지원됩니다. SPDX 라이선스 표현식의 예로는 (MIT OR CC0-1.0) 이 있습니다.

패키지 메타데이터 DB에 패키지 버전이 없음#

해당 의존성 패키지의 특정 버전이 패키지 메타데이터 데이터베이스에 존재해야 합니다. 존재하지 않으면 그 의존성의 License가 unknown으로 표시됩니다. Go 모듈에 대한 자세한 내용은 이슈 440218을 참고합니다.

패키지 이름에 특수 문자가 포함됨#

의존성 패키지의 이름에 하이픈(-)이 포함되어 있으면 License가 unknown으로 표시될 수 있습니다. 이 현상은 requirements.txt에 패키지를 수동으로 추가하거나 pip-compile을 사용할 때 발생할 수 있습니다. GitLab이 의존성 정보를 수집할 때 PEP 503의 정규화된 이름 지침에 따라 Python 패키지 이름을 정규화하지 않기 때문입니다. 자세한 내용은 이슈 440391을 참고합니다.

의존성 목록

GitLab v19.5
Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

의존성 목록에서는 프로젝트 또는 그룹의 의존성과 알려진 취약점을 비롯한 주요 세부 정보를 확인할 수 있습니다. 개요는 Project Dependency - Advanced Security Testing을 참고합니다. 프로젝트의 의존성을 나열하려면 프로젝트의 기본 브랜치에서 의존성 스캐닝 또는 컨테이너 스캐닝을 실행합니다.

의존성 목록에서는 프로젝트 또는 그룹의 의존성과 알려진 취약점을 비롯한 주요 세부 정보를 확인할 수 있습니다. 이 목록은 기존 발견 항목과 신규 발견 항목을 포함하여 프로젝트의 의존성을 모아 놓은 것입니다. 이러한 정보를 소프트웨어 자재 명세서(Software Bill of Materials), SBOM 또는 BOM이라고 부르기도 합니다.

개요는 Project Dependency - Advanced Security Testing을 참고합니다.

의존성 목록 설정#

프로젝트의 의존성을 나열하려면 프로젝트의 기본 브랜치에서 의존성 스캐닝 또는 컨테이너 스캐닝을 실행합니다.

의존성 목록에는 최신 기본 브랜치 파이프라인에서 업로드된 CycloneDX 리포트의 의존성도 함께 표시됩니다. CycloneDX 리포트는 CycloneDX 사양 버전 1.4, 1.5, 1.6 중 하나를 준수해야 합니다. CycloneDX Web Tool로 CycloneDX 리포트를 검증할 수 있습니다.

Note

의존성 목록을 채우는 데 반드시 필요하지는 않지만, 일부 속성을 제공하고 일부 보안 기능을 사용하려면 SBOM 문서가 GitLab CycloneDX 속성 분류 체계를 포함하고 준수해야 합니다.

프로젝트 의존성 보기#

히스토리
  • GitLab 17.2에서는 기능 플래그 skip_sbom_occurrences_update_on_pipeline_id_change가 활성화된 경우 location 필드가 의존성이 마지막으로 탐지된 커밋으로 더 이상 연결되지 않습니다. 이 플래그는 기본적으로 비활성화되어 있습니다.
  • GitLab 17.3에서는 location 필드가 항상 의존성이 처음 탐지된 커밋으로 연결됩니다. 기능 플래그 skip_sbom_occurrences_update_on_pipeline_id_change가 제거되었습니다.
  • 의존성 경로 보기 옵션이 GitLab 17.11에서 dependency_paths라는 이름의 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • 의존성 경로 보기 옵션이 GitLab 18.2에서 일반 제공되었습니다. 기능 플래그 dependency_paths가 제거되었습니다.
  • 멀웨어 배지가 GitLab 19.4에서 dependency_malware_detection이라는 이름의 기능 플래그와 함께 베타 기능으로 도입되었습니다. 기본적으로 활성화되어 있습니다.
  • 멀웨어 배지가 GitLab 19.5에서 정식 출시되었습니다. 기능 플래그 dependency_malware_detection이 제거되었습니다.

사전 요구 사항:

  • 프로젝트 또는 그룹에 대한 Developer, Maintainer 또는 Owner 권한.

프로젝트의 의존성 또는 그룹 내 모든 프로젝트의 의존성을 확인하려면 다음 단계를 수행합니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트나 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Dependency list를 선택합니다.
  3. 선택 사항. 전이 의존성이 있다면 모든 의존성 경로를 확인할 수도 있습니다.
    • 프로젝트에서는 Location 칼럼에서 View dependency paths를 선택합니다.
    • 그룹에서는 Location 칼럼에서 위치를 선택한 다음 View dependency paths를 선택합니다.

각 의존성의 세부 정보가 취약점 심각도가 높은 순서로 정렬되어 표시됩니다(취약점이 있는 경우). 구성요소 이름, 패키저, 라이선스 기준으로 정렬할 수도 있습니다.

필드 설명
구성요소 의존성의 이름과 버전입니다.
패키저 의존성을 설치하는 데 사용된 패키지 관리자입니다. 지원되지 않는 패키지 관리자는 "unknown"으로 표시됩니다.
위치 시스템 의존성의 경우 이 필드에는 스캔된 이미지가 표시됩니다. 애플리케이션 의존성의 경우 이 필드에는 해당 의존성을 선언한 프로젝트의 패키저별 잠금 파일 링크가 표시됩니다. 직접 의존 항목이 있다면 함께 표시됩니다. 전이 의존성이 있는 경우 View dependency paths를 선택하면 모든 의존 항목의 전체 경로가 표시됩니다. 전이 의존성은 직접 의존 항목을 상위로 갖는 간접 의존 항목입니다.
라이선스(프로젝트 전용) 의존성의 소프트웨어 라이선스로 연결됩니다.
프로젝트(그룹 전용) 해당 의존성이 있는 프로젝트로 연결됩니다. 같은 의존성을 가진 프로젝트가 여러 개라면 그 프로젝트의 총 수가 표시됩니다. 이 의존성이 있는 프로젝트로 이동하려면 Projects 숫자를 선택한 다음 프로젝트 이름을 검색하여 선택합니다.
위험도 의존성에서 탐지된 취약점 수가 포함된 경고 배지입니다. 의존성이 멀웨어로 식별되었다면 빨간색 Malware 배지도 함께 표시됩니다. 멀웨어 판정은 GitLab 멀웨어 권고를 기준으로 합니다.

의존성 목록 필터링#

히스토리
  • 프로젝트의 의존성 필터링이 GitLab 17.9에서 project_component_filter라는 이름의 플래그와 함께 도입되었습니다. 기본적으로 활성화되어 있습니다.
  • GitLab 17.10에서 일반 제공되었습니다. 기능 플래그 project_component_filter가 제거되었습니다.
  • 의존성 버전 필터링이 GitLab 18.0에서 version_filtering_on_project_level_dependency_list 및 version_filtering_on_group_level_dependency_list라는 이름의 플래그와 함께 프로젝트와 그룹에 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • 의존성 버전 필터링이 GitLab 18.1에서 GitLab.com, GitLab Self-Managed, GitLab Dedicated에 활성화되었습니다.
  • 기능 플래그 version_filtering_on_project_level_dependency_list와 version_filtering_on_group_level_dependency_list가 제거되었습니다.
  • 프로젝트의 추적 ref 필터가 GitLab 19.2에서 vulnerabilities_across_contexts 및 project_dependency_tracked_ref라는 이름의 플래그와 함께 도입되었습니다. project_dependency_tracked_ref는 기본적으로 비활성화되어 있습니다.
  • 멀웨어 필터가 GitLab 19.4에서 dependency_malware_detection 및 malicious_packages_dependency_list_filtering이라는 이름의 플래그와 함께 베타 기능으로 도입되었습니다. 기본적으로 활성화되어 있습니다.
  • 기능 플래그 malicious_packages_dependency_list_filtering이 GitLab 19.5에서 제거되었습니다.
  • 기능 플래그 dependency_malware_detection이 GitLab 19.5에서 제거되었습니다.
Feature flag

멀웨어 필터와 추적 ref 필터의 사용 가능 여부는 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참고합니다.

의존성 목록을 필터링하여 일부 의존성만 집중해서 볼 수 있습니다. 의존성 목록은 그룹과 프로젝트에서 사용할 수 있습니다.

그룹에서는 다음 기준으로 필터링할 수 있습니다.

  • 프로젝트
  • 라이선스
  • 구성요소
  • 구성요소 버전
  • 멀웨어

프로젝트에서는 다음 기준으로 필터링할 수 있습니다.

  • 구성요소
  • 구성요소 버전
  • 멀웨어
  • 추적 ref

구성요소 버전으로 필터링하려면 먼저 구성요소 하나만 지정해 필터링해야 합니다.

의존성이 멀웨어로 식별되었는지를 기준으로 필터링할 수 있습니다. Malware를 선택한 다음 Yes 또는 No를 선택합니다. 기본적으로 의존성 목록에는 멀웨어 상태와 관계없이 모든 의존성이 표시됩니다.

멀웨어 탐지는 프로젝트의 기본 브랜치에서만 실행되므로 이 필터는 해당 브랜치의 의존성만 대상으로 합니다. 추적 ref로 필터링할 수도 있는 프로젝트 의존성 목록에서는 이 필터의 이름이 Malware (default branch only) 입니다. 추적 ref 필터가 없는 그룹 의존성 목록에서는 필터 이름이 Malware 입니다.

멀웨어 상태는 추적 ref 필터가 기본 브랜치 하나로만 설정된 경우에만 선택할 수 있습니다. 그 밖의 추적 ref를 선택하면 필터에 Yes와 No 옵션 대신 To filter by malware, remove the filter for other tracked refs 메시지가 표시됩니다. 멀웨어 필터를 적용한 뒤 추적 ref 필터를 변경하면 GitLab이 멀웨어 필터를 제거합니다.

이 필터에는 고급 취약점 관리가 필요합니다.

사전 요구 사항:

  • 프로젝트 또는 그룹에 대한 Developer, Maintainer 또는 Owner 권한.

의존성 목록을 필터링하려면 다음 단계를 수행합니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트나 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Dependency list를 선택합니다.
  3. 필터 바를 선택합니다.
  4. 필터를 선택한 다음 드롭다운 목록에서 하나 이상의 조건을 선택합니다. 드롭다운 목록을 닫으려면 목록 바깥을 선택합니다. 필터를 더 추가하려면 이 단계를 반복합니다.
  5. 선택한 필터를 적용하려면 Enter를 누릅니다.

의존성 목록에는 필터 조건에 맞는 의존성만 표시됩니다.

취약점#

히스토리
Feature flag

SBOM 기반 의존성 스캐닝과 연관된 취약점 지원 여부는 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참고합니다.

의존성에 알려진 취약점이 있다면 의존성 이름 옆의 화살표나 알려진 취약점 수를 나타내는 배지를 선택하여 확인합니다. 각 취약점의 심각도와 설명이 그 아래에 표시됩니다. 취약점의 세부 정보를 더 확인하려면 취약점 설명을 선택합니다. 취약점 세부 정보 페이지가 열립니다. 의존성 목록에는 detected와 confirmed 상태의 취약점만 표시됩니다. 취약점의 상태가 바뀌어도 SBOM이 포함된 파이프라인이 기본 브랜치에서 새로 실행되기 전까지는 그 변경이 의존성 목록에 반영되지 않습니다.

의존성 경로#

히스토리

의존성 경로는 목록에 표시된 구성요소가 전이 의존성이고 지원되는 패키지 관리자에 속하는 경우 그 구성요소의 직접 의존 항목을 보여 줍니다. 의존성 경로는 취약점이 있는 의존성에 대해서만 표시됩니다.

의존성 경로는 다음 패키지 관리자에서 지원됩니다.

다음 패키지 관리자에서는 dependency-scanning 컴포넌트를 사용할 때만 의존성 경로가 지원됩니다.

라이선스#

의존성 스캐닝 CI/CD job이 구성되어 있으면 탐지된 라이선스가 이 페이지에 표시됩니다.

내보내기#

히스토리
  • 프로젝트의 JSON 내보내기에 포함되는 malware 필드가 GitLab 19.4에서 dependency_malware_detection이라는 이름의 기능 플래그와 함께 베타 기능으로 도입되었습니다. 기본적으로 활성화되어 있습니다.
  • 프로젝트의 JSON 내보내기에 포함되는 malware 필드가 GitLab 19.5에서 정식 출시되었습니다. 기능 플래그 dependency_malware_detection이 제거되었습니다.

의존성 목록은 다음 형식으로 내보낼 수 있습니다.

  • JSON
  • CSV
  • CycloneDX 형식(프로젝트 전용)

프로젝트의 JSON 내보내기에는 해당 의존성이 멀웨어로 식별되었는지를 나타내는 malware 필드도 포함됩니다.

사전 요구 사항:

  • 프로젝트 또는 그룹에 대한 Developer, Maintainer 또는 Owner 권한.

의존성 목록을 내보내려면 다음 단계를 수행합니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트나 그룹을 찾습니다.
  2. 왼쪽 사이드바에서 Secure > Dependency list를 선택합니다.
  3. Export를 선택한 다음 파일 형식을 선택합니다.

의존성 목록이 이메일 주소로 전송됩니다. 의존성 목록을 다운로드하려면 이메일의 링크를 선택합니다.

문제 해결#

의존성 목록을 사용할 때 다음 문제가 발생할 수 있습니다.

라이선스가 'unknown'으로 표시됨#

특정 의존성의 라이선스가 unknown으로 표시되는 데에는 몇 가지 원인이 있을 수 있습니다. 이 섹션에서는 특정 의존성의 라이선스가 알려진 원인 때문에 unknown으로 표시되는지 판단하는 방법을 설명합니다.

업스트림에서 라이선스가 'unknown'#

해당 의존성의 업스트림에 지정된 라이선스를 확인합니다.

  • C/C++ 패키지는 Conancenter에서 확인합니다.
  • npm 패키지는 npmjs.com에서 확인합니다.
  • Python 패키지는 PyPI에서 확인합니다.
  • NuGet 패키지는 NuGet에서 확인합니다.
  • Go 패키지는 pkg.go.dev에서 확인합니다.

업스트림에서 라이선스가 unknown으로 표시된다면 GitLab에서도 해당 의존성의 License가 unknown으로 표시되는 것이 정상입니다.

라이선스에 SPDX 라이선스 표현식이 포함됨#

SPDX 라이선스 표현식은 GitLab 19.4 이상에서 지원됩니다. SPDX 라이선스 표현식의 예로는 (MIT OR CC0-1.0) 이 있습니다.

패키지 메타데이터 DB에 패키지 버전이 없음#

해당 의존성 패키지의 특정 버전이 패키지 메타데이터 데이터베이스에 존재해야 합니다. 존재하지 않으면 그 의존성의 License가 unknown으로 표시됩니다. Go 모듈에 대한 자세한 내용은 이슈 440218을 참고합니다.

패키지 이름에 특수 문자가 포함됨#

의존성 패키지의 이름에 하이픈(-)이 포함되어 있으면 License가 unknown으로 표시될 수 있습니다. 이 현상은 requirements.txt에 패키지를 수동으로 추가하거나 pip-compile을 사용할 때 발생할 수 있습니다. GitLab이 의존성 정보를 수집할 때 PEP 503의 정규화된 이름 지침에 따라 Python 패키지 이름을 정규화하지 않기 때문입니다. 자세한 내용은 이슈 440391을 참고합니다.