InfoGrab DocsInfoGrab Docs

보안 스캐닝 결과

요약

GitLab에서 파이프라인 보안 스캐닝 결과를 확인하고 조치할 수 있습니다. 결과를 생성하려면 프로젝트에 보안 스캐닝이 구성되어 있어야 합니다. 보안 스캔 결과를 이해하는 데 필요한 핵심 용어는 다음과 같습니다. Finding : Finding은 개발 브랜치에서 식별된 잠재적 취약점입니다.

히스토리
  • GitLab 17.9에서 dependency_scanning_for_pipelines_with_cyclonedx_reports라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 17.9에서 GitLab.com 및 GitLab Self-Managed에 활성화되었습니다.
  • 17.10에서 기능 플래그 dependency_scanning_for_pipelines_with_cyclonedx_reports가 제거되었습니다.

GitLab에서 파이프라인 보안 스캐닝 결과를 확인하고 조치할 수 있습니다. 보안 스캐너는 파이프라인에서 실행되어 보안 보고서를 출력합니다. 이 보고서의 내용은 GitLab에서 처리되어 표시됩니다.

결과를 생성하려면 프로젝트에 보안 스캐닝이 구성되어 있어야 합니다. 보안 스캐너 구성에 대한 자세한 내용은 보안 구성을 참고합니다.

보안 스캔 결과를 이해하는 데 필요한 핵심 용어는 다음과 같습니다.

Finding : Finding은 개발 브랜치에서 식별된 잠재적 취약점입니다. 해당 브랜치가 기본 브랜치에 병합되면 Finding은 취약점이 됩니다. : Finding은 관련 CI/CD job 아티팩트가 만료되거나, 관련 job 아티팩트가 잠겨 있더라도 파이프라인 생성 후 정해진 기간이 지나면 만료됩니다. 이 기간은 GitLab.com에서 30일입니다. GitLab Self-Managed와 GitLab Dedicated에서는 기본값이 90일입니다. 관리자는 보존 기간을 변경해 7일에서 90일 사이의 값으로 지정할 수 있습니다.

Vulnerability : 취약점은 기본 브랜치에서 식별된 소프트웨어 보안 약점입니다. : 취약점 레코드는 기본 브랜치에서 더 이상 탐지되지 않더라도 아카이브되기 전까지 유지됩니다.

기본 브랜치에서 식별된 취약점은 취약점 보고서에 표시됩니다.

보안 보고서 아티팩트#

보안 스캐너는 브랜치 파이프라인에서 실행되며, 활성화된 경우 머지 리퀘스트 파이프라인에서도 실행됩니다. 각 보안 스캐너는 해당 스캐너가 탐지한 모든 Finding 또는 취약점의 세부 정보를 담은 보안 보고서 아티팩트를 출력합니다.

하위 파이프라인의 보안 보고서는 파이프라인 보안 보고서와 머지 리퀘스트 보고서에 포함됩니다.

개발 브랜치(기본 브랜치가 아닌 브랜치)에서 Finding에는 개발 브랜치를 만들 당시 대상 브랜치에 있던 취약점이 모두 포함됩니다.

Finding은 관련 CI/CD job 아티팩트가 만료되거나, 관련 job 아티팩트가 잠겨 있더라도 파이프라인 생성 후 정해진 기간이 지나면 만료됩니다. 이 기간은 GitLab.com에서 30일입니다. GitLab Self-Managed와 GitLab Dedicated에서는 기본값이 90일이며, 관리자가 보존 기간을 7일에서 90일 사이의 값으로 변경할 수 있습니다. 만료된 Finding은 파이프라인의 Security 탭에 표시되지 않습니다. 다시 확인하려면 파이프라인을 재실행합니다.

보안 보고서 다운로드#

GitLab 외부에서 분석하거나 보관하는 등의 목적으로 보안 보고서를 다운로드할 수 있습니다. 보안 보고서는 JSON 파일입니다.

사전 요구 사항:

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

보안 보고서를 다운로드하려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.
  3. 파이프라인을 선택합니다.
  4. Security 탭을 선택합니다.
  5. Download results를 선택한 다음 원하는 보안 보고서를 선택합니다.

선택한 보안 보고서가 기기에 다운로드됩니다.

보안 보고서 목록

파이프라인 보안 보고서#

파이프라인 보안 보고서에는 해당 파이프라인 실행에서 탐지된 모든 Finding 또는 취약점의 세부 정보가 담깁니다. 결과는 파이프라인이 실행된 커밋 시점의 브랜치 상태를 반영하므로, 같은 브랜치의 파이프라인이라도 결과가 다를 수 있습니다. 기본 브랜치에서 실행된 파이프라인이라면 파이프라인 보안 보고서의 모든 취약점이 취약점 보고서에도 포함됩니다.

파이프라인 실행에서 탐지된 Finding 목록

파이프라인 보안 보고서 보기#

파이프라인 보안 보고서를 보면 해당 파이프라인 실행에서 탐지된 모든 Finding 또는 취약점의 세부 정보를 확인할 수 있습니다.

사전 요구 사항:

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

파이프라인 보안 보고서를 보려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.
  3. 최신 파이프라인을 선택합니다.

Finding 또는 취약점의 세부 정보를 보려면 해당 설명을 선택합니다.

이슈 만들기#

Finding 또는 취약점의 조치 작업을 추적하고 기록하고 관리하려면 이슈를 만듭니다.

사전 요구 사항:

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

이슈를 만들려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.
  3. 파이프라인을 선택합니다.
  4. Security 탭을 선택합니다.
  5. Finding의 설명을 선택합니다.
  6. Create issue를 선택합니다.

Finding 또는 취약점의 설명을 그대로 복사한 설명과 함께 프로젝트에 이슈가 생성됩니다.

상태 변경#

파이프라인의 보안 탭에서 Finding 또는 취약점의 상태를 변경할 수 있습니다. Finding에 적용한 변경 사항은 브랜치가 기본 브랜치에 병합된 뒤에도 유지됩니다.

사전 요구 사항:

  • 프로젝트에 대한 Maintainer 역할 또는 admin_vulnerability 사용자 지정 권한.

Finding 또는 취약점의 상태를 변경하려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.

  3. 최신 파이프라인을 선택합니다.

  4. Security 탭을 선택합니다.

  5. Finding 보고서에서 다음 단계를 따릅니다.

    1. 변경하려는 Finding 또는 취약점을 선택합니다.

      • Finding 또는 취약점을 개별적으로 선택하려면 각 항목 옆의 체크박스를 선택합니다.
      • 페이지의 모든 Finding 또는 취약점을 선택하려면 표 헤더의 체크박스를 선택합니다.
    2. Select action 드롭다운 목록에서 Dismissed 또는 Needs Triage를 선택합니다.

    3. Change status를 선택합니다.

보안 보고서 다운로드#

GitLab 외부에서 분석하거나 보관하는 등의 목적으로 보안 보고서를 다운로드할 수 있습니다. 보안 보고서는 JSON 파일입니다.

사전 요구 사항:

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

보안 보고서를 다운로드하려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.
  3. 파이프라인을 선택합니다.
  4. Security 탭을 선택합니다.
  5. Download results를 선택한 다음 원하는 보안 보고서를 선택합니다.

선택한 보안 보고서가 기기에 다운로드됩니다.

보안 보고서 목록

머지 리퀘스트 보고서#

머지 리퀘스트의 보안 스캔 결과는 머지 리퀘스트 보고서를 참고합니다.

문제 해결#

보안 스캐닝을 사용할 때 다음과 같은 문제가 발생할 수 있습니다.

보고서 파싱 및 스캔 수집 오류#

Note

이 단계는 GitLab 지원팀이 해당 오류를 재현할 때 사용합니다.

일부 보안 스캔에서는 보고서 파싱이나 스캔 수집과 관련해 파이프라인의 Security 탭에 오류가 표시될 수 있습니다. 사용자로부터 프로젝트 사본을 받을 수 없다면, 스캔에서 생성된 보고서를 사용해 오류를 재현할 수 있습니다.

오류를 재현하려면 다음 단계를 따릅니다.

  1. 사용자로부터 보고서 사본을 받습니다. 이 예시에서는 gl-sast-report.json 입니다.

  2. 프로젝트를 만듭니다.

  3. 보고서를 리포지터리에 커밋합니다.

  4. .gitlab-ci.yml 파일을 추가하고 job에서 해당 보고서를 아티팩트로 지정합니다.

    예를 들어 SAST job으로 인한 오류를 재현하려면 다음과 같이 작성합니다.

    sample-job:
      script:
        - echo "Testing report"
      artifacts:
        reports:
          sast: gl-sast-report.json
    
  5. 파이프라인이 완료되면 파이프라인의 Security 탭 내용에서 오류를 확인합니다.

sast: gl-sast-report.json은 보고서를 생성한 스캔에 따라 해당하는 artifacts:reports 유형과 올바른 JSON 보고서 파일 이름으로 바꿀 수 있습니다.

보안 스캐닝 결과

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

요약

GitLab에서 파이프라인 보안 스캐닝 결과를 확인하고 조치할 수 있습니다. 결과를 생성하려면 프로젝트에 보안 스캐닝이 구성되어 있어야 합니다. 보안 스캔 결과를 이해하는 데 필요한 핵심 용어는 다음과 같습니다. Finding : Finding은 개발 브랜치에서 식별된 잠재적 취약점입니다.

히스토리
  • GitLab 17.9에서 dependency_scanning_for_pipelines_with_cyclonedx_reports라는 기능 플래그와 함께 도입되었습니다. 기본적으로 비활성화되어 있습니다.
  • GitLab 17.9에서 GitLab.com 및 GitLab Self-Managed에 활성화되었습니다.
  • 17.10에서 기능 플래그 dependency_scanning_for_pipelines_with_cyclonedx_reports가 제거되었습니다.

GitLab에서 파이프라인 보안 스캐닝 결과를 확인하고 조치할 수 있습니다. 보안 스캐너는 파이프라인에서 실행되어 보안 보고서를 출력합니다. 이 보고서의 내용은 GitLab에서 처리되어 표시됩니다.

결과를 생성하려면 프로젝트에 보안 스캐닝이 구성되어 있어야 합니다. 보안 스캐너 구성에 대한 자세한 내용은 보안 구성을 참고합니다.

보안 스캔 결과를 이해하는 데 필요한 핵심 용어는 다음과 같습니다.

Finding : Finding은 개발 브랜치에서 식별된 잠재적 취약점입니다. 해당 브랜치가 기본 브랜치에 병합되면 Finding은 취약점이 됩니다. : Finding은 관련 CI/CD job 아티팩트가 만료되거나, 관련 job 아티팩트가 잠겨 있더라도 파이프라인 생성 후 정해진 기간이 지나면 만료됩니다. 이 기간은 GitLab.com에서 30일입니다. GitLab Self-Managed와 GitLab Dedicated에서는 기본값이 90일입니다. 관리자는 보존 기간을 변경해 7일에서 90일 사이의 값으로 지정할 수 있습니다.

Vulnerability : 취약점은 기본 브랜치에서 식별된 소프트웨어 보안 약점입니다. : 취약점 레코드는 기본 브랜치에서 더 이상 탐지되지 않더라도 아카이브되기 전까지 유지됩니다.

기본 브랜치에서 식별된 취약점은 취약점 보고서에 표시됩니다.

보안 보고서 아티팩트#

보안 스캐너는 브랜치 파이프라인에서 실행되며, 활성화된 경우 머지 리퀘스트 파이프라인에서도 실행됩니다. 각 보안 스캐너는 해당 스캐너가 탐지한 모든 Finding 또는 취약점의 세부 정보를 담은 보안 보고서 아티팩트를 출력합니다.

하위 파이프라인의 보안 보고서는 파이프라인 보안 보고서와 머지 리퀘스트 보고서에 포함됩니다.

개발 브랜치(기본 브랜치가 아닌 브랜치)에서 Finding에는 개발 브랜치를 만들 당시 대상 브랜치에 있던 취약점이 모두 포함됩니다.

Finding은 관련 CI/CD job 아티팩트가 만료되거나, 관련 job 아티팩트가 잠겨 있더라도 파이프라인 생성 후 정해진 기간이 지나면 만료됩니다. 이 기간은 GitLab.com에서 30일입니다. GitLab Self-Managed와 GitLab Dedicated에서는 기본값이 90일이며, 관리자가 보존 기간을 7일에서 90일 사이의 값으로 변경할 수 있습니다. 만료된 Finding은 파이프라인의 Security 탭에 표시되지 않습니다. 다시 확인하려면 파이프라인을 재실행합니다.

보안 보고서 다운로드#

GitLab 외부에서 분석하거나 보관하는 등의 목적으로 보안 보고서를 다운로드할 수 있습니다. 보안 보고서는 JSON 파일입니다.

사전 요구 사항:

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

보안 보고서를 다운로드하려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.
  3. 파이프라인을 선택합니다.
  4. Security 탭을 선택합니다.
  5. Download results를 선택한 다음 원하는 보안 보고서를 선택합니다.

선택한 보안 보고서가 기기에 다운로드됩니다.

보안 보고서 목록

파이프라인 보안 보고서#

파이프라인 보안 보고서에는 해당 파이프라인 실행에서 탐지된 모든 Finding 또는 취약점의 세부 정보가 담깁니다. 결과는 파이프라인이 실행된 커밋 시점의 브랜치 상태를 반영하므로, 같은 브랜치의 파이프라인이라도 결과가 다를 수 있습니다. 기본 브랜치에서 실행된 파이프라인이라면 파이프라인 보안 보고서의 모든 취약점이 취약점 보고서에도 포함됩니다.

파이프라인 실행에서 탐지된 Finding 목록

파이프라인 보안 보고서 보기#

파이프라인 보안 보고서를 보면 해당 파이프라인 실행에서 탐지된 모든 Finding 또는 취약점의 세부 정보를 확인할 수 있습니다.

사전 요구 사항:

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

파이프라인 보안 보고서를 보려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.
  3. 최신 파이프라인을 선택합니다.

Finding 또는 취약점의 세부 정보를 보려면 해당 설명을 선택합니다.

이슈 만들기#

Finding 또는 취약점의 조치 작업을 추적하고 기록하고 관리하려면 이슈를 만듭니다.

사전 요구 사항:

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

이슈를 만들려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.
  3. 파이프라인을 선택합니다.
  4. Security 탭을 선택합니다.
  5. Finding의 설명을 선택합니다.
  6. Create issue를 선택합니다.

Finding 또는 취약점의 설명을 그대로 복사한 설명과 함께 프로젝트에 이슈가 생성됩니다.

상태 변경#

파이프라인의 보안 탭에서 Finding 또는 취약점의 상태를 변경할 수 있습니다. Finding에 적용한 변경 사항은 브랜치가 기본 브랜치에 병합된 뒤에도 유지됩니다.

사전 요구 사항:

  • 프로젝트에 대한 Maintainer 역할 또는 admin_vulnerability 사용자 지정 권한.

Finding 또는 취약점의 상태를 변경하려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.

  3. 최신 파이프라인을 선택합니다.

  4. Security 탭을 선택합니다.

  5. Finding 보고서에서 다음 단계를 따릅니다.

    1. 변경하려는 Finding 또는 취약점을 선택합니다.

      • Finding 또는 취약점을 개별적으로 선택하려면 각 항목 옆의 체크박스를 선택합니다.
      • 페이지의 모든 Finding 또는 취약점을 선택하려면 표 헤더의 체크박스를 선택합니다.
    2. Select action 드롭다운 목록에서 Dismissed 또는 Needs Triage를 선택합니다.

    3. Change status를 선택합니다.

보안 보고서 다운로드#

GitLab 외부에서 분석하거나 보관하는 등의 목적으로 보안 보고서를 다운로드할 수 있습니다. 보안 보고서는 JSON 파일입니다.

사전 요구 사항:

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

보안 보고서를 다운로드하려면 다음 단계를 따릅니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 Build > Pipelines를 선택합니다.
  3. 파이프라인을 선택합니다.
  4. Security 탭을 선택합니다.
  5. Download results를 선택한 다음 원하는 보안 보고서를 선택합니다.

선택한 보안 보고서가 기기에 다운로드됩니다.

보안 보고서 목록

머지 리퀘스트 보고서#

머지 리퀘스트의 보안 스캔 결과는 머지 리퀘스트 보고서를 참고합니다.

문제 해결#

보안 스캐닝을 사용할 때 다음과 같은 문제가 발생할 수 있습니다.

보고서 파싱 및 스캔 수집 오류#

Note

이 단계는 GitLab 지원팀이 해당 오류를 재현할 때 사용합니다.

일부 보안 스캔에서는 보고서 파싱이나 스캔 수집과 관련해 파이프라인의 Security 탭에 오류가 표시될 수 있습니다. 사용자로부터 프로젝트 사본을 받을 수 없다면, 스캔에서 생성된 보고서를 사용해 오류를 재현할 수 있습니다.

오류를 재현하려면 다음 단계를 따릅니다.

  1. 사용자로부터 보고서 사본을 받습니다. 이 예시에서는 gl-sast-report.json 입니다.

  2. 프로젝트를 만듭니다.

  3. 보고서를 리포지터리에 커밋합니다.

  4. .gitlab-ci.yml 파일을 추가하고 job에서 해당 보고서를 아티팩트로 지정합니다.

    예를 들어 SAST job으로 인한 오류를 재현하려면 다음과 같이 작성합니다.

    sample-job:
      script:
        - echo "Testing report"
      artifacts:
        reports:
          sast: gl-sast-report.json
    
  5. 파이프라인이 완료되면 파이프라인의 Security 탭 내용에서 오류를 확인합니다.

sast: gl-sast-report.json은 보고서를 생성한 스캔에 따라 해당하는 artifacts:reports 유형과 올바른 JSON 보고서 파일 이름으로 바꿀 수 있습니다.