취약점 보고서

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

취약점 보고서는 기본 브랜치의 검사를 통해 발견된 취약점에 대한 정보를 제공합니다. 파이프라인이 성공했는지에 관계 없이 모든 성공한 작업의 누적 결과를 포함합니다. 파이프라인에서의 검사 결과는 작업이 완료되거나 파이프라인이 매뉴얼 작업으로 차단될 때 흡수됩니다.

개요는 취약점 관리를 참조하세요.

모든 수준에서 취약점 보고서에는 다음이 포함됩니다.

  • 심각도 별 취약점의 총 수.
  • 공통 취약점 속성에 대한 필터.
  • 테이블 레이아웃으로 제공된 각 취약점의 세부 정보.

프로젝트 수준에서는 취약점 보고서에 다음이 더 포함됩니다.

  • 업데이트된 날짜 및 최신 파이프라인 링크가 포함된 타임 스탬프.
  • 최근 파이프라인에서 발생한 실패 횟수. 실패한 작업 탭을 선택하여 파이프라인 페이지의 Failed jobs 탭을 보세요.

활동 열에는 해당 행에서 처리된 활동 (있는 경우)을 나타내는 아이콘이 포함됩니다.

  • 이슈 : 취약점에 대해 생성된 이슈로 연결됩니다. 자세한 내용은 취약점에 대한 GitLab 이슈 생성을 참조하세요.
  • 물통 : 취약점이 해결되었습니다.
  • 거짓 긍정 : 스캐너가 이 취약점을 거짓 긍정으로 결정했습니다.

취약점으로 생성된 이슈를 열려면 활동 항목 위로 마우스를 올리고 링크를 선택하세요. 이슈 아이콘 ()은 이슈의 상태를 나타냅니다. Jira 이슈 지원이 활성화된 경우, 활동 항목에 있는 이슈 링크는 Jira의 이슈로 연결됩니다. GitLab 이슈와 달리 Jira 이슈의 상태는 GitLab UI에 표시되지 않습니다.

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

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

취약점 보고서 보기

프로젝트 또는 그룹의 모든 취약점을 나열하려면 취약점 보고서를 확인하세요.

필수 조건:

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

취약점 보고서를 보려면 다음을 수행하세요:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트 또는 그룹을 찾습니다.
  2. 보안 > 취약점 보고서를 선택합니다.

취약점 보고서 필터

특정 기준과 일치하는 취약점에만 초점을 맞추기 위해 취약점 보고서를 필터링할 수 있습니다.

모든 수준에서 사용 가능한 필터는 다음과 같습니다.

  • 상태: 검출됨, 확인됨, 해제됨, 해결됨. 각 상태의 자세한 내용은 취약점 상태 값을 참조하세요.
  • 심각도: 심각, 높음, 중간, 낮음, 정보, 알 수 없음.
  • 도구: 자세한 내용은 도구 필터를 참조하세요.
  • 활동: 자세한 내용은 활동 필터를 참조하세요.

그 외에도 프로젝트 필터를 그룹 수준에서 사용할 수 있습니다.

취약점 디렉터리 필터링

취약점 디렉터리을 필터링하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
  2. 보안 > 취약점 보고서를 선택합니다.
  3. 필터를 선택합니다.
  4. 드롭다운 디렉터리에서 값을 선택합니다.
  5. 원하는 각 필터에 대해 위의 단계를 반복합니다.

각 필터를 선택한 후에:

  • 일치하는 취약점 디렉터리이 업데이트됩니다.
  • 취약점 심각도 합계가 업데이트됩니다.

도구 필터

  • GitLab 16.6에서 소개된 프로젝트 수준 도구 필터.

취약점을 감지한 도구로 취약점을 필터링할 수 있습니다. 기본적으로 취약점 보고서는 모든 도구에서 발견된 취약점을 나열합니다. 제목을 선택하면 해당 제목 아래의 모든 도구가 선택됩니다.

GitLab 16.6 및 이후

프로젝트 및 그룹의 도구 필터 콘텐츠는 다음에 따라 달라집니다.

  • 타사 분석기를 통합하고 활성화한 경우, 도구 필터는 스캔 범주 (예: 컨테이너 스캐닝, DAST, 및 의존성 스캐닝)별로 그룹화됩니다. 스캐너 항목은 스캐너가 취약점을 감지한 경우에만 표시됩니다.
  • 타사 분석기를 통합하지 않은 경우, GitLab 16.5 및 이전을 참조하세요.
GitLab 16.5 및 이전

모든 수준의 도구 필터 콘텐츠는 먼저 분석기 공급 업체로 구분되고 그런 다음 스캔 범주로 범주화됩니다. GitLab 분석기만 활성화한 경우, 도구 필터에는 해당 분석기만 나열됩니다.

매뉴얼으로 추가된 취약점을 필터링하려면 매뉴얼으로 추가됨 필터를 사용하세요.

사용 가능한 각 도구의 자세한 내용은 보안 스캔 도구를 참조하세요.

프로젝트 필터

프로젝트 필터의 콘텐츠는 현재 레벨에 따라 달라집니다.

활동 필터

  • 기본적으로 비활성화된 상태의 GitLab 16.7에서 도입되었습니다.
  • GitLab 16.9에서 일반 사용 가능으로 변경되었습니다. 활성화 피처 플래그 activity_filter_has_remediations이 삭제되었습니다.

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

활동 필터를 사용할 때 선택 동작:

  • 활동
    • 모든 활동: 모든 활동 상태의 취약점(이 필터를 무시한 것과 동일)를 선택합니다. 선택하면 다른 활동 필터 옵션을 모두 선택 취소합니다.
    • 검출: (기본값) default 브랜치의 최신 파이프라인 검사에서 여전히 감지된 취약점.
    • 더 이상 감지되지 않음: default 브랜치의 최신 파이프라인 검사에서 더 이상 감지되지 않은 취약점.
    • 이슈
      • 이슈가 있는 취약점: 하나 이상의 연관된 이슈가 있는 취약점.
      • 이슈가 없는 취약점: 연관된 이슈가 없는 취약점.
    • Merge Request
      • Merge Request이 있는 취약점: 하나 이상의 연관된 Merge Request이 있는 취약점.
      • Merge Request이 없는 취약점: 연관된 Merge Request이 없는 취약점.
    • 솔루션 사용 가능
      • 솔루션이 있는 취약점: 사용 가능한 솔루션이 있는 취약점.
      • 솔루션이 없는 취약점: 사용 가능한 솔루션이 없는 취약점.

취약점 세부 정보 보기

취약점의 더 많은 세부 정보를 보려면 취약점의 설명을 선택하세요. 해당 취약점의 세부 정보 페이지가 열립니다.

취약한 소스 위치 보기

일부 보안 스캐너는 잠재적인 취약점의 파일 이름과 라인 번호를 출력합니다. 해당 정보가 제공되면 취약점의 세부 정보에는 기본 브랜치의 관련 파일에 대한 링크가 포함됩니다.

관련 파일을 보려면 취약점의 세부 정보에서 파일 이름을 선택하세요.

취약점 상태 변경

취약점을 진단하는 동안 취약점의 상태를 변경할 수 있으며, 이에는 취약점의 해제도 포함됩니다.

취약점이 해제되면 감사 로그에 누가 해제했는지, 언제 해제했는지, 그리고 왜 해제했는지에 대한 내용이 포함됩니다. 취약점 레코드를 삭제할 수 없기 때문에 영구 기록이 항상 남게 됩니다.

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

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
  2. 보안 > 취약점 보고서를 선택합니다.
  3. 다음 중 하나를 선택합니다:
    • 하나 이상의 취약점을 선택하려면 각 취약점 옆의 확인란을 선택합니다.
    • 페이지의 모든 취약점을 선택하려면 테이블 머릿글 옆의 확인란을 선택합니다.
  4. 상태 설정 드롭다운 디렉터리에서 원하는 상태를 선택합니다.
  5. 해제 상태를 선택한 경우 해제 이유 설정 드롭다운 디렉터리에서 원하는 이유를 선택합니다.
  6. 커멘트 추가 입력란에서 커멘트를 제공할 수 있습니다. 해제 상태인 경우 커멘트가 필요합니다.
  7. 상태 변경을 선택합니다.

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

프로젝트 취약점 보고서

발견 날짜별 취약점 정렬

기본적으로 취약점은 심각도 수준으로 정렬되어 있으며, 가장 심각한 취약점이 맨 위에 나열됩니다.

각 취약점이 감지된 날짜별로 취약점을 정렬하려면 “감지” 열 머릿글을 선택하세요.

취약점 세부 정보 내보내기

  • “해제 이유”가 CSV 내보내기의 열로 추가됨은 GitLab 16.8에서 도입되었습니다.

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

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

  • 상태 (상태 값이 내보내기되는 방식에 대한 자세한 내용은 다음 표를 참조하세요.)
  • 그룹 이름
  • 프로젝트 이름
  • 도구
  • 스캐너 이름
  • 취약점
  • 기본 세부 정보
  • 추가 정보
  • 심각도
  • CVE (공통 취약점 및 노출)
  • CWE (일반적인 취약점 열거)
  • 기타 식별자
  • 감지된 시간
  • 위치
  • 활동: 취약점이 기본 브랜치에서 해결되었으면 true를 반환하며, 그렇지 않으면 false를 반환합니다.
  • 커멘트
  • 전체 경로
  • CVSS 벡터
  • 해제 이유
note
전체 세부 정보는 작업 아티팩트 API를 통해 이용할 수 있습니다. 예를 들어, 취약점이 감지된 파일의 경로를 구하려면 *artifact_path 자리에 gl-*-report.json 보고서 파일 이름 중 하나를 쓰세요.

취약점 보고서에 표시되는 상태 필드 값은 취약점 내보내기에 포함된 값과 다릅니다. 이에 대응하려면 다음 참조 표를 사용하세요.

취약점 보고서 취약점 내보내기
진단 필요 감지됨
해제됨 해제됨
해결됨 해결됨
확인됨 확인됨

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

취약점 보고서에 나열된 모든 취약점의 세부 정보를 내보내려면 내보내기를 선택하세요.

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

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

취약점 매뉴얼으로 추가

  • GitLab 14.9에서 도입. 기본적으로 비활성화됨.
  • GitLab 14.10에서 GitLab.com에서 활성화.
  • GitLab 15.0에서 new_vulnerability_form 피처 플래그가 제거됨.

GitLab의 취약점 데이터베이스에 없는 경우에만 취약점을 매뉴얼으로 추가할 수 있습니다. 취약점을 추가할 수 있는 곳은 프로젝트의 취약점 보고서 뿐입니다.

취약점을 매뉴얼으로 추가하려면:

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

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

취약점 그룹화

프로젝트 수준의 취약점 보고서에서 취약점을 그룹화하여 진단을 더 효율적으로 할 수 있습니다.

취약점 보고서에서 취약점을 그룹화하려면:

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하여 프로젝트를 찾습니다.
  2. 보안 > 취약점 보고서를 선택합니다.
  3. 그룹화 기준 드롭다운 디렉터리에서 속성을 선택합니다.

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

운영 취약점

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

운영 취약점 탭