InfoGrab Docs

보안 스캐닝 결과

요약

GitLab에서 파이프라인 보안 스캐닝 결과를 보고 조치를 취합니다. 프로젝트에서 결과를 생성하려면 보안 스캐닝이 구성되어 있어야 합니다. 보안 스캔 결과를 이해하기 위한 주요 용어: 발견(Finding) : 발견은 개발 브랜치에서 식별된 잠재적 취약점입니다.

히스토리

GitLab에서 파이프라인 보안 스캐닝 결과를 보고 조치를 취합니다. 선택된 보안 스캐너가 파이프라인에서 실행되고 보안 보고서를 출력합니다. 이 보고서의 내용은 처리되어 GitLab에 표시됩니다.

프로젝트에서 결과를 생성하려면 보안 스캐닝이 구성되어 있어야 합니다. 보안 스캐너 구성에 대한 정보는 보안 구성을 참조하십시오.

보안 스캔 결과를 이해하기 위한 주요 용어:

발견(Finding) : 발견은 개발 브랜치에서 식별된 잠재적 취약점입니다. 브랜치가 기본 브랜치에 병합되면 발견이 취약점이 됩니다. : 발견은 관련 CI/CD 작업 아티팩트가 만료되거나 파이프라인이 생성된 후 90일이 지나면 만료됩니다. 관련 작업 아티팩트가 잠겨 있더라도 마찬가지입니다.

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

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

보안 보고서 아티팩트#

보안 스캐너는 브랜치 파이프라인과 활성화된 경우 머지 리퀘스트 파이프라인에서 실행됩니다. 각 보안 스캐너는 특정 보안 스캐너에서 감지된 모든 발견 또는 취약점의 세부 정보가 포함된 보안 보고서 아티팩트를 출력합니다.

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

개발(비기본) 브랜치에서 발견에는 개발 브랜치가 생성될 때 대상 브랜치에 있는 모든 취약점이 포함됩니다.

발견은 관련 CI/CD 작업 아티팩트가 만료되거나 파이프라인이 생성된 후 90일이 지나면 만료됩니다. 관련 작업 아티팩트가 잠겨 있더라도 마찬가지입니다. 만료된 발견은 파이프라인의 보안 탭에 표시되지 않습니다. 재현하려면 파이프라인을 다시 실행합니다.

보안 보고서 다운로드#

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

전제 조건:

  • 프로젝트에 대한 Security Manager, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

보안 보고서를 다운로드하려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.
  3. 파이프라인을 선택합니다.
  4. 보안 탭을 선택합니다.
  5. 결과 다운로드를 선택한 다음 원하는 보안 보고서를 선택합니다.

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

보안 보고서 목록

파이프라인 보안 보고서#

파이프라인 보안 보고서에는 브랜치에서 감지된 모든 발견 또는 취약점의 세부 정보가 포함됩니다. 기본 브랜치에 대해 실행된 파이프라인의 경우 파이프라인 보안 보고서의 모든 취약점은 취약점 보고서에도 있습니다.

브랜치의 발견 목록

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

브랜치에서 감지된 모든 발견 또는 취약점의 세부 정보를 보려면 파이프라인 보안 보고서를 봅니다.

전제 조건:

  • 프로젝트에 대한 Security Manager, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

파이프라인 보안 보고서를 보려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.
  3. 최신 파이프라인을 선택합니다.

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

이슈 만들기#

발견 또는 취약점의 수정 작업을 추적, 문서화 및 관리하기 위한 이슈를 만듭니다.

전제 조건:

  • 프로젝트에 대한 Security Manager, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

이슈를 만들려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.
  3. 파이프라인을 선택합니다.
  4. 보안 탭을 선택합니다.
  5. 발견의 설명을 선택합니다.
  6. 이슈 만들기를 선택합니다.

프로젝트에 이슈가 만들어지고 발견 또는 취약점의 설명에서 설명이 복사됩니다.

상태 변경#

파이프라인의 보안 탭에서 발견 또는 취약점의 상태를 변경할 수 있습니다. 발견에 대한 모든 변경 사항은 브랜치가 기본 브랜치에 병합될 때 유지됩니다.

전제 조건:

  • 프로젝트에 대한 Maintainer 역할 또는 admin_vulnerability 사용자 정의 권한이 있어야 합니다.

발견 또는 취약점의 상태를 변경하려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.

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

  4. 보안 탭을 선택합니다.

  5. 발견 보고서에서:

    1. 변경할 발견 또는 취약점을 선택합니다.

      • 개별 발견 또는 취약점을 선택하려면 각 항목 옆의 체크박스를 선택합니다.
      • 페이지의 모든 발견 또는 취약점을 선택하려면 테이블 헤더의 체크박스를 선택합니다.
    2. 작업 선택 드롭다운 목록에서 해제됨 또는 분류 필요를 선택합니다.

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

보안 보고서 다운로드#

예를 들어 GitLab 외부에서 分析하거나 보관 목적으로 보안 보고서를 다운로드할 수 있습니다. 보안 보고서는 JSON 파일입니다.

전제 조건:

  • 프로젝트에 대한 Security Manager, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

보안 보고서를 다운로드하려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.
  3. 파이프라인을 선택합니다.
  4. 보안 탭을 선택합니다.
  5. 결과 다운로드를 선택한 다음 원하는 보안 보고서를 선택합니다.

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

보안 보고서 목록

머지 리퀘스트 보안 위젯#

머지 리퀘스트는 변경 사항이 발견에 미치는 차이의 요약을 제공하는 보안 위젯을 표시합니다. CI/CD 파이프라인이 실행된 후 보안 보고서를 처리하는 데 시간이 걸리기 때문에 보안 위젯이 표시되기까지 지연이 발생할 수 있습니다.

예를 들어 다음 스캔 결과가 있는 두 개의 파이프라인을 고려합니다:

  • 소스 브랜치 파이프라인은 V1V2로 식별된 두 가지 취약점을 감지합니다.
  • 대상 브랜치 파이프라인은 V1V3으로 식별된 두 가지 취약점을 감지합니다.
  • V2는 머지 리퀘스트 위젯에 "추가됨"으로 표시됩니다.
  • V3은 머지 리퀘스트 위젯에 "수정됨"으로 표시됩니다.
  • V1은 두 브랜치 모두에 존재하며 머지 리퀘스트 위젯에 표시되지 않습니다.

소스 브랜치와 대상 브랜치 간의 차이를 표시하려면 두 브랜치의 보안 보고서가 모두 필요합니다. 시스템은 대상 브랜치의 마지막 10개 커밋에서 유효한 보안 파이프라인을 확인합니다. 각 커밋에 대해 최대 10개의 최근 파이프라인에서 보안 보고서를 확인합니다. 이 접근 방식은 커밋이 파이프라인을 건너뛰더라도 이전 커밋의 유효한 보안 보고서를 찾을 수 있도록 합니다. 보안 보고서를 찾지 못하면 모든 발견이 신규로 나열됩니다. 머지 리퀘스트에서 보안 스캐닝을 활성화하기 전에 기본 브랜치에 보안 스캐닝이 활성화되어 있는지 확인합니다.

보안 위젯 보기#

변경 사항이 발견에 미치는 차이를 보려면 머지 리퀘스트 보안 위젯을 봅니다.

전제 조건:

  • 프로젝트에 대한 Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

보안 위젯을 보려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 코드 > 머지 리퀘스트를 선택합니다.
  3. 머지 리퀘스트를 선택합니다.

각 보안 보고서 유형의 세부 정보를 보려면 세부 정보 표시([chevron-down])를 선택합니다. 각 보안 보고서 유형에 대해 위젯은 심각도별로 정렬된 처음 25개의 추가된 발견과 25개의 수정된 발견을 표시합니다. 머지 리퀘스트의 소스 브랜치에 있는 모든 발견을 보려면 모든 파이프라인 발견 보기를 선택합니다.

머지 리퀘스트의 보안 스캐닝 결과

문제 해결#

보안 스캐닝으로 작업할 때 다음 문제가 발생할 수 있습니다.

해제된 취약점이 MR 보안 위젯에 표시됨#

머지 리퀘스트의 보안 위젯을 볼 때 해제된 취약점이 여전히 나열되는 경우가 있습니다.

이 문제에 대한 해결책은 아직 없습니다. 자세한 내용은 이슈 411235를 참조하십시오.

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

Note

이 단계는 GitLab 지원팀이 이러한 오류를 재현하는 데 사용됩니다.

일부 보안 스캔은 보고서 파싱 또는 스캔 수집과 관련된 파이프라인의 보안 탭에서 오류를 발생시킬 수 있습니다. 사용자로부터 프로젝트 사본을 얻을 수 없는 경우 스캔에서 생성된 보고서를 사용하여 오류를 재현할 수 있습니다.

오류를 재현하려면:

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

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

  3. 저장소에 보고서를 커밋합니다.

  4. .gitlab-ci.yml 파일을 추가하고 작업의 아티팩트로 보고서를 지정합니다.

    예를 들어 SAST 작업으로 인한 오류를 재현하려면:

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

스캔에 따라 sast: gl-sast-report.json을 해당 artifacts:reports 유형과 올바른 JSON 보고서 파일 이름으로 교체할 수 있습니다.

보안 스캐닝 결과

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

GitLab에서 파이프라인 보안 스캐닝 결과를 보고 조치를 취합니다. 프로젝트에서 결과를 생성하려면 보안 스캐닝이 구성되어 있어야 합니다. 보안 스캔 결과를 이해하기 위한 주요 용어: 발견(Finding) : 발견은 개발 브랜치에서 식별된 잠재적 취약점입니다.

히스토리

GitLab에서 파이프라인 보안 스캐닝 결과를 보고 조치를 취합니다. 선택된 보안 스캐너가 파이프라인에서 실행되고 보안 보고서를 출력합니다. 이 보고서의 내용은 처리되어 GitLab에 표시됩니다.

프로젝트에서 결과를 생성하려면 보안 스캐닝이 구성되어 있어야 합니다. 보안 스캐너 구성에 대한 정보는 보안 구성을 참조하십시오.

보안 스캔 결과를 이해하기 위한 주요 용어:

발견(Finding) : 발견은 개발 브랜치에서 식별된 잠재적 취약점입니다. 브랜치가 기본 브랜치에 병합되면 발견이 취약점이 됩니다. : 발견은 관련 CI/CD 작업 아티팩트가 만료되거나 파이프라인이 생성된 후 90일이 지나면 만료됩니다. 관련 작업 아티팩트가 잠겨 있더라도 마찬가지입니다.

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

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

보안 보고서 아티팩트#

보안 스캐너는 브랜치 파이프라인과 활성화된 경우 머지 리퀘스트 파이프라인에서 실행됩니다. 각 보안 스캐너는 특정 보안 스캐너에서 감지된 모든 발견 또는 취약점의 세부 정보가 포함된 보안 보고서 아티팩트를 출력합니다.

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

개발(비기본) 브랜치에서 발견에는 개발 브랜치가 생성될 때 대상 브랜치에 있는 모든 취약점이 포함됩니다.

발견은 관련 CI/CD 작업 아티팩트가 만료되거나 파이프라인이 생성된 후 90일이 지나면 만료됩니다. 관련 작업 아티팩트가 잠겨 있더라도 마찬가지입니다. 만료된 발견은 파이프라인의 보안 탭에 표시되지 않습니다. 재현하려면 파이프라인을 다시 실행합니다.

보안 보고서 다운로드#

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

전제 조건:

  • 프로젝트에 대한 Security Manager, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

보안 보고서를 다운로드하려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.
  3. 파이프라인을 선택합니다.
  4. 보안 탭을 선택합니다.
  5. 결과 다운로드를 선택한 다음 원하는 보안 보고서를 선택합니다.

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

보안 보고서 목록

파이프라인 보안 보고서#

파이프라인 보안 보고서에는 브랜치에서 감지된 모든 발견 또는 취약점의 세부 정보가 포함됩니다. 기본 브랜치에 대해 실행된 파이프라인의 경우 파이프라인 보안 보고서의 모든 취약점은 취약점 보고서에도 있습니다.

브랜치의 발견 목록

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

브랜치에서 감지된 모든 발견 또는 취약점의 세부 정보를 보려면 파이프라인 보안 보고서를 봅니다.

전제 조건:

  • 프로젝트에 대한 Security Manager, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

파이프라인 보안 보고서를 보려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.
  3. 최신 파이프라인을 선택합니다.

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

이슈 만들기#

발견 또는 취약점의 수정 작업을 추적, 문서화 및 관리하기 위한 이슈를 만듭니다.

전제 조건:

  • 프로젝트에 대한 Security Manager, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

이슈를 만들려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.
  3. 파이프라인을 선택합니다.
  4. 보안 탭을 선택합니다.
  5. 발견의 설명을 선택합니다.
  6. 이슈 만들기를 선택합니다.

프로젝트에 이슈가 만들어지고 발견 또는 취약점의 설명에서 설명이 복사됩니다.

상태 변경#

파이프라인의 보안 탭에서 발견 또는 취약점의 상태를 변경할 수 있습니다. 발견에 대한 모든 변경 사항은 브랜치가 기본 브랜치에 병합될 때 유지됩니다.

전제 조건:

  • 프로젝트에 대한 Maintainer 역할 또는 admin_vulnerability 사용자 정의 권한이 있어야 합니다.

발견 또는 취약점의 상태를 변경하려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.

  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.

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

  4. 보안 탭을 선택합니다.

  5. 발견 보고서에서:

    1. 변경할 발견 또는 취약점을 선택합니다.

      • 개별 발견 또는 취약점을 선택하려면 각 항목 옆의 체크박스를 선택합니다.
      • 페이지의 모든 발견 또는 취약점을 선택하려면 테이블 헤더의 체크박스를 선택합니다.
    2. 작업 선택 드롭다운 목록에서 해제됨 또는 분류 필요를 선택합니다.

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

보안 보고서 다운로드#

예를 들어 GitLab 외부에서 分析하거나 보관 목적으로 보안 보고서를 다운로드할 수 있습니다. 보안 보고서는 JSON 파일입니다.

전제 조건:

  • 프로젝트에 대한 Security Manager, Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

보안 보고서를 다운로드하려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 빌드 > 파이프라인을 선택합니다.
  3. 파이프라인을 선택합니다.
  4. 보안 탭을 선택합니다.
  5. 결과 다운로드를 선택한 다음 원하는 보안 보고서를 선택합니다.

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

보안 보고서 목록

머지 리퀘스트 보안 위젯#

머지 리퀘스트는 변경 사항이 발견에 미치는 차이의 요약을 제공하는 보안 위젯을 표시합니다. CI/CD 파이프라인이 실행된 후 보안 보고서를 처리하는 데 시간이 걸리기 때문에 보안 위젯이 표시되기까지 지연이 발생할 수 있습니다.

예를 들어 다음 스캔 결과가 있는 두 개의 파이프라인을 고려합니다:

  • 소스 브랜치 파이프라인은 V1V2로 식별된 두 가지 취약점을 감지합니다.
  • 대상 브랜치 파이프라인은 V1V3으로 식별된 두 가지 취약점을 감지합니다.
  • V2는 머지 리퀘스트 위젯에 "추가됨"으로 표시됩니다.
  • V3은 머지 리퀘스트 위젯에 "수정됨"으로 표시됩니다.
  • V1은 두 브랜치 모두에 존재하며 머지 리퀘스트 위젯에 표시되지 않습니다.

소스 브랜치와 대상 브랜치 간의 차이를 표시하려면 두 브랜치의 보안 보고서가 모두 필요합니다. 시스템은 대상 브랜치의 마지막 10개 커밋에서 유효한 보안 파이프라인을 확인합니다. 각 커밋에 대해 최대 10개의 최근 파이프라인에서 보안 보고서를 확인합니다. 이 접근 방식은 커밋이 파이프라인을 건너뛰더라도 이전 커밋의 유효한 보안 보고서를 찾을 수 있도록 합니다. 보안 보고서를 찾지 못하면 모든 발견이 신규로 나열됩니다. 머지 리퀘스트에서 보안 스캐닝을 활성화하기 전에 기본 브랜치에 보안 스캐닝이 활성화되어 있는지 확인합니다.

보안 위젯 보기#

변경 사항이 발견에 미치는 차이를 보려면 머지 리퀘스트 보안 위젯을 봅니다.

전제 조건:

  • 프로젝트에 대한 Developer, Maintainer 또는 Owner 역할이 있어야 합니다.

보안 위젯을 보려면:

  1. 상단 표시줄에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
  2. 왼쪽 사이드바에서 코드 > 머지 리퀘스트를 선택합니다.
  3. 머지 리퀘스트를 선택합니다.

각 보안 보고서 유형의 세부 정보를 보려면 세부 정보 표시([chevron-down])를 선택합니다. 각 보안 보고서 유형에 대해 위젯은 심각도별로 정렬된 처음 25개의 추가된 발견과 25개의 수정된 발견을 표시합니다. 머지 리퀘스트의 소스 브랜치에 있는 모든 발견을 보려면 모든 파이프라인 발견 보기를 선택합니다.

머지 리퀘스트의 보안 스캐닝 결과

문제 해결#

보안 스캐닝으로 작업할 때 다음 문제가 발생할 수 있습니다.

해제된 취약점이 MR 보안 위젯에 표시됨#

머지 리퀘스트의 보안 위젯을 볼 때 해제된 취약점이 여전히 나열되는 경우가 있습니다.

이 문제에 대한 해결책은 아직 없습니다. 자세한 내용은 이슈 411235를 참조하십시오.

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

Note

이 단계는 GitLab 지원팀이 이러한 오류를 재현하는 데 사용됩니다.

일부 보안 스캔은 보고서 파싱 또는 스캔 수집과 관련된 파이프라인의 보안 탭에서 오류를 발생시킬 수 있습니다. 사용자로부터 프로젝트 사본을 얻을 수 없는 경우 스캔에서 생성된 보고서를 사용하여 오류를 재현할 수 있습니다.

오류를 재현하려면:

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

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

  3. 저장소에 보고서를 커밋합니다.

  4. .gitlab-ci.yml 파일을 추가하고 작업의 아티팩트로 보고서를 지정합니다.

    예를 들어 SAST 작업으로 인한 오류를 재현하려면:

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

스캔에 따라 sast: gl-sast-report.json을 해당 artifacts:reports 유형과 올바른 JSON 보고서 파일 이름으로 교체할 수 있습니다.