취약점 보고서

Tier: Ultimate

Offering: GitLab.com, Self-managed, GitLab Dedicated

Vulnerability Report는 기본 브랜치의 스캔에서 발견된 취약점에 대한 정보를 제공합니다. 이는 파이프라인이 성공했는지 여부에 관계없이 모든 성공적인 작업의 누적 결과를 포함합니다. 파이프라인의 스캔 결과는 파이프라인의 작업이 완료된 후 또는 파이프라인이 수동 작업으로 차단되었을 때 수집됩니다.

개요를 보려면 취약점 관리를 참조하세요.

모든 수준에서, Vulnerability Report는 다음을 포함합니다:

  • 심각도 수준별 취약점 총 개수.
  • 일반적인 취약점 속성에 대한 필터.
  • 각 취약점의 세부 정보가 표 형식으로 표시됩니다. 일부 취약점의 경우, 세부 정보에는 기본 브랜치의 관련 파일 및 행 번호에 대한 링크가 포함됩니다.

프로젝트 수준에서, Vulnerability Report는 또한 다음을 포함합니다:

  • 업데이트된 시점을 보여주는 타임스탬프와 최신 파이프라인으로의 링크.
  • 가장 최근 파이프라인에서 발생한 실패의 수. 실패 알림을 선택하여 파이프라인 페이지의 실패한 작업 탭을 봅니다.

Activity 열은 해당 행의 취약점에 대해 수행된 활동이 있을 경우 아이콘으로 표시합니다:

  • Issues : 취약점을 위해 생성된 이슈에 대한 링크. 자세한 내용은 취약점에 대한 GitLab 이슈 생성을 참조하세요.
  • Merge requests : 취약점을 위해 생성된 병합 요청에 대한 링크. 자세한 내용은 병합 요청으로 취약점 해결을 참조하세요.
  • Checked circle : 취약점이 수정되었습니다.
  • False positive : 스캐너가 이 취약점을 잘못된 긍정으로 판단했습니다.
  • Solution tip : 취약점에 대한 해결책이 제공됩니다.

취약점에 대해 생성된 이슈를 열려면 Activity 항목 위에 커서를 가져간 후 링크를 선택하세요. 이슈 아이콘 ( )은 이슈의 상태를 나타냅니다. Jira issue support 가 활성화된 경우, Activity 항목에 있는 이슈 링크는 Jira의 이슈로 연결됩니다. GitLab 이슈와 달리 Jira 이슈의 상태는 GitLab UI에 표시되지 않습니다.

예제 프로젝트 수준 취약점 보고서

취약점이 다중 프로젝트 파이프라인 설정에서 발생하는 경우, 이 페이지는 선택된 프로젝트에서 발생한 취약점을 표시합니다.

취약점 보고서 보기

프로젝트 또는 그룹의 모든 취약점을 나열하기 위해 취약점 보고서를 봅니다.

필수 조건:

  • 프로젝트 또는 그룹에 대해 최소한의 개발자 역할이 있어야 합니다.

취약점 보고서를 보려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트 또는 그룹을 찾습니다.

  2. 보안 > 취약점 보고서를 선택합니다.

취약점 필터링

취약점 보고서에서 취약점을 더 효율적으로 우선 정리하기 위해 필터링할 수 있습니다.

다음 기준으로 필터링할 수 있습니다:

  • 상태: triage 필요, 확인, 기각, 해결. 각 상태 의미에 대한 자세한 내용은 취약점 상태 값을 참조하세요.
  • 심각도: 치명적, 높음, 중간, 낮음, 정보, 알 수 없음.
  • 도구: 더 많은 세부정보는 도구 필터를 참조하세요.
  • 활동: 더 많은 세부정보는 활동 필터를 참조하세요.
  • 프로젝트: 특정 프로젝트의 취약점을 필터링합니다 (그룹에만 사용 가능).

취약점 필터

취약점 보고서를 필터링하여 특정 취약점 집합에 집중하세요.

취약점 목록을 필터링하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.

  2. 보안 > 취약점 보고서를 선택합니다.

  3. 선택 사항. 기본 필터를 제거하려면 삭제( )를 선택합니다.

  4. 취약점 목록 위의 필터 바를 선택합니다.

  5. 나타나는 드롭다운 목록에서 필터링할 속성을 선택한 다음, 드롭다운 목록에서 값을 선택합니다.

  6. 필터 필드 외부를 선택합니다. 취약점 심각도 합계와 일치하는 취약점 목록이 업데이트됩니다.

  7. 여러 속성으로 필터링하려면 이전의 세 단계를 반복합니다. 여러 속성은 논리적 AND로 결합됩니다.

도구 필터

취약점을 감지한 도구로 필터링할 수 있습니다. 기본적으로 취약점 보고서는 모든 도구에서 나타나는 취약점을 나열합니다. 각 도구에 대한 자세한 내용은 보안 스캔 도구를 참조하세요.

수동 추가 속성을 사용하여 수동으로 추가된 취약점을 필터링합니다.

GitLab 17.1 이후, 도구 필터의 내용은 그룹과 프로젝트 간에 다릅니다:

  • 그룹의 경우, 도구 필터는 개별 도구를 나열합니다.
  • 프로젝트의 경우, 도구 필터는 스캔 카테고리별로 도구를 그룹화합니다.

GitLab 16.6에서 17.0까지, 도구 필터의 내용은 그룹과 프로젝트 간에 다릅니다:

  • 그룹의 경우, 도구 필터는 개별 도구를 나열합니다.
  • 프로젝트의 경우, 제3자 도구가 없으면 도구 필터는 개별 도구를 나열합니다. 제3자 도구가 있는 경우, 도구 필터는 스캔 카테고리별로 도구를 그룹화합니다.

GitLab 16.5 및 그 이전 버전에서는 도구 필터가 공급업체별로 도구를 그룹화합니다. GitLab 분석기만 활성화된 경우, 해당 분석기만 나열됩니다.

프로젝트 필터

프로젝트 필터의 내용은 현재 수준에 따라 다릅니다:

  • 보안 센터: 개인 보안 센터에 추가한 프로젝트만 포함됩니다.

  • 그룹 수준: 그룹 내 모든 프로젝트.

  • 프로젝트 수준: 해당 없음.

활동 필터

  • GitLab 16.7에서 도입된 기능 플래그 activity_filter_has_remediations와 함께 비활성화되어 있습니다.
  • GitLab 16.9에서 일반 제공. 기능 플래그 activity_filter_has_remediations 제거됨.

활동 필터는 다른 필터와 다르게 동작합니다. 각 카테고리에서 하나의 값만 선택할 수 있습니다. 필터를 제거하려면 활동 필터 드롭다운 목록에서 제거할 필터를 선택합니다.

활동 필터 사용 시 선택 동작:

  • 활동

    • 모든 활동: 모든 활동 상태의 취약점(이 필터를 무시하는 것과 동일). 이 옵션을 선택하면 다른 모든 활동 필터 옵션이 선택 해제됩니다.
  • 탐지

    • 여전히 탐지됨(기본값): default 브랜치의 최신 파이프라인 스캔에서 여전히 탐지된 취약점.

    • 더 이상 탐지되지 않음: default 브랜치의 최신 파이프라인 스캔에서 더 이상 탐지되지 않는 취약점.

  • 문제

    • 문제가 있음: 하나 이상의 관련 문제를 가진 취약점.

    • 문제가 없음: 관련 문제가 없는 취약점.

  • 병합 요청

    • 병합 요청 있음: 하나 이상의 관련 병합 요청이 있는 취약점.

    • 병합 요청 없음: 관련 병합 요청이 없는 취약점.

  • 해결책 이용 가능

    • 해결책 있음: 이용 가능한 해결책이 있는 취약점.

    • 해결책 없음: 이용 가능한 해결책이 없는 취약점.

취약점 그룹화

  • GitLab 16.4에서 도입된 프로젝트 수준의 취약점 그룹화는 vulnerability_report_grouping이라는 플래그와 함께 제공됩니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 16.5에서 셀프 관리 및 GitLab Dedicated에 대해 활성화된 프로젝트 수준의 취약점 그룹화가 있습니다.
  • GitLab 16.6에서 일반적으로 사용 가능한 프로젝트 수준의 취약점 그룹화. 기능 플래그 vulnerability_report_grouping이 제거되었습니다.
  • GitLab 16.7에서 group_level_vulnerability_report_grouping이라는 플래그와 함께 도입된 그룹 수준의 취약점 그룹화입니다. 기본적으로 비활성화되어 있습니다.
  • GitLab.com, 셀프 관리 및 GitLab Dedicated에서 GitLab 17.2에 활성화된 그룹 수준의 취약점 그룹화입니다.
  • GitLab 17.3에서 일반적으로 사용 가능한 그룹 수준의 취약점 그룹화. 기능 플래그 group_level_vulnerability_report_grouping이 제거되었습니다.
  • GitLab 17.4에서 일반적으로 사용 가능한 OWASP TOP 10 취약점 그룹화. 기능 플래그 vulnerability_owasp_top_10_group이 제거되었습니다.
  • OWASP TOP 10 그룹의 Non-OWASP 카테고리는 GitLab 17.5에서 owasp_top_10_null_filtering이라는 플래그와 함께 GitLab.com, 셀프 관리, GitLab Dedicated에서 기본적으로 활성화되어 있습니다.

취약점 보고서 페이지에서 취약점을 그룹화하여 보다 효율적으로 triage할 수 있습니다.

취약점을 그룹화할 수 있습니다:

  • 상태
  • 심각도
  • 도구
  • OWASP TOP 10 2017

취약점 그룹화

취약점 보고서 페이지에서 취약점을 그룹화하여 보다 효율적으로 triage할 수 있습니다.

취약점을 그룹화하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트 또는 그룹을 찾습니다.

  2. 보안 > 취약점 보고서를 선택합니다.

  3. 그룹별 드롭다운 목록에서 그룹을 선택합니다.

취약점은 선택한 그룹에 따라 그룹화됩니다. 각 그룹은 축소되어 있으며, 그룹당 총 취약점 수가 그 이름 옆에 표시됩니다. 각 그룹의 취약점을 보려면 그룹의 이름을 선택합니다.

취약점의 세부 정보 보기

취약점의 자세한 내용을 보려면 취약점의 설명을 선택합니다.

취약점의 세부정보 페이지가 열립니다.

취약점 상태 변경

  • 설명 및 기각 사유 제공이 GitLab 16.0에서 도입되었습니다.

취약점을 triage할 때 취약점의 상태를 변경할 수 있으며, 여기에는 취약점 기각이 포함됩니다.

취약점이 기각되면 감사 로그에 누가 기각했는지, 언제 기각했는지, 기각 사유가 포함됩니다. 취약점 기록을 삭제할 수 없으므로 항상 영구적인 기록이 남습니다.

전제 조건:

  • 프로젝트에 대해 최소한 Maintainer 역할을 가져야 합니다. admin_vulnerability 권한은 GitLab 17.0에서 Developer 역할에서 제거되었습니다.

취약점의 상태를 변경하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.

  2. 보안 > 취약점 보고서를 선택합니다.

  3. 선택하려면:
    • 하나 이상의 취약점을 선택하고 각 취약점 옆의 체크박스를 선택합니다.
    • 페이지의 모든 취약점을 선택하려면 표 헤더의 체크박스를 선택합니다.
  4. 상태 설정 드롭다운 목록에서 원하는 상태를 선택합니다.

  5. 기각 상태가 선택된 경우 기각 사유 설정 드롭다운 목록에서 원하는 사유를 선택합니다.

  6. 댓글 추가 입력란에 댓글을 제공할 수 있습니다. 기각 상태에서는 댓글이 필수입니다.

  7. 상태 변경을 선택합니다.

선택한 취약점의 상태가 업데이트되고 취약점 보고서의 내용이 새로 고쳐집니다.

프로젝트 취약점 보고서

해결된 취약성 업데이트

머지 요청으로 취약성이 해결되면, 여전히 취약성 보고서에 나타납니다.

취약성을 업데이트하려면:

  1. 해결된 취약성이 더 이상 탐지되지 않음 상태인지 확인합니다. 취약성의 상태는 활동 필터 및 취약성 기록에 표시됩니다.

  2. 취약성의 상태를 해결됨으로 변경합니다.

탐지된 날짜별로 취약성 정렬

기본적으로 취약성은 심각도 수준에 따라 정렬되며, 가장 높은 심각도의 취약성이 상단에 나열됩니다.

각 취약성이 탐지된 날짜별로 정렬하려면 “탐지됨” 열 머리글을 선택합니다.

취약성 세부정보 내보내기

  • GitLab 16.8에서 도입된 CSV 내보내기에 “기각 사유”를 열로 추가했습니다. 소개됨.

취약성 보고서에 나열된 취약성의 세부정보를 내보낼 수 있습니다. 내보내기 형식은 CSV(쉼표로 구분된 값)입니다. 모든 취약성이 포함되며 필터는 내보내기에 적용되지 않습니다.

포함된 필드는 다음과 같습니다:

  • 상태 (상태 값이 어떻게 내보내지는지에 대한 자세한 내용은 다음 표를 참조하세요.)
  • 그룹 이름
  • 프로젝트 이름
  • 도구
  • 스캐너 이름
  • 취약성
  • 기본 세부정보
  • 추가 정보
  • 심각도
  • CVE (공통 취약점 및 노출)
  • CWE (공통 약점 열거)
  • 기타 식별자
  • 탐지된 일시
  • 위치
  • 활동: 기본 브랜치에서 취약성이 해결되면 true를 반환하고, 그렇지 않으면 false를 반환합니다.
  • 댓글
  • 전체 경로
  • CVSS 벡터
  • 기각 사유

참고:

전체 세부정보는 Job Artifacts API를 통해 확인할 수 있습니다.

*artifact_path 자리에 gl-*-report.json 보고서 파일 이름 중 하나를 사용하여, 예를 들어 취약성이 탐지된 파일의 경로를 얻을 수 있습니다.

취약성 보고서에 표시된 상태 필드의 값은 내보내기된 취약성의 값과 다릅니다. 아래 참조 표를 사용하여 값을 일치시킵니다.

취약성 보고서 취약성 내보내기
분류 필요 탐지됨
기각됨 기각됨
해결됨 해결됨
확인됨 확인됨

CSV 형식으로 세부정보 내보내기

취약성 보고서에 나열된 모든 취약성의 세부정보를 내보내려면 내보내기를 선택합니다.

세부정보는 데이터베이스에서 검색된 후 CSV 파일이 로컬 컴퓨터로 다운로드됩니다.

참고:

귀하의 프로젝트에 수천 개의 취약성이 포함되어 있는 경우 다운로드가 시작되기까지 몇 분이 걸릴 수 있습니다. 다운로드가 완료될 때까지 페이지를 닫지 마세요.

일부 CSV 리더는 행 수 또는 열 크기에 제한이 있어 대형 내보내기와 호환되지 않을 수 있습니다. 취약성 내보내기는 개별 프로그램의 제한을 고려하지 않습니다.

취약성을 수동으로 추가하기

GitLab 취약성 데이터베이스에 없는 경우 취약성을 수동으로 추가할 수 있습니다.

프로젝트의 취약성 보고서에서만 취약성을 추가할 수 있습니다.

취약성을 수동으로 추가하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 보안 > 취약성 보고서를 선택합니다.
  3. 취약성 제출을 선택합니다.
  4. 필드를 완료하고 양식을 제출합니다.

새로 생성된 취약성 세부정보 페이지가 열립니다.

운영 취약점

운영 취약점 탭은 운영 컨테이너 스캐닝에서 발견된 취약점을 나열합니다.
이 탭은 프로젝트, 그룹 및 보안 센터 취약점 보고서에 나타납니다.

운영 취약점 탭