InfoGrab DocsInfoGrab Docs

SARIF 보고서

서드파티 SARIF 보고서를 사용하여 GitLab 취약점 관리에 보안 결과를 추가하는 방법을 설명합니다.

히스토리 GitLab 18.11에서 sarif_ingestion 이라는 기능 플래그 와 함께 GitLab 19.1에서 기본적으로 활성화되었습니다. GitLab 19.2에서 일반 제공 으로 전환되었습니다. 서드파티 SARIF 보고서를 사용하면 SARIF 2.1.0 스캐너의 결과를 GitLab 취약점 관리에 추가할 수 있습니다. CI/CD job 이 SARIF를 생성하는 스캐너를 실행하고 SARIF 아티팩트를 추가합니다. GitLab은 이 아티팩트를 파싱하고 검증한 뒤 보안 결과로 추가합니다. 보고서를 추가하면 GitLab 기본 스캐너의 결과와 함께 다음 페이지에 해당 결과가 표시됩니다. 파이프라인 Security 탭 프로젝트 취약점 보고서 보안 대시보드 머지 리퀘스트 보안 위젯 보안 정책 서드파티 SARIF 보고서는 GitLab 이 제공하는 기본 스캐너를 보완합니다. GitLab 이 자체적으로 제공하지 않는 서드파티 스캐너를 연동하거나, 이미 사용 중인 도구의 결과를 한곳에 모을 때 사용합니다. SARIF 보고서 추가 # GitLab에 SARIF 결과를 추가하려면 다음 절차를 수행합니다. 사전 요구 사항: 프로젝트에 대한 Maintainer 또는 Owner 권한. SARIF 2.1.0 파일을 생성하는 CI/CD job. .gitlab-ci.yml 파일에서 스캐너를 실행하고 SARIF 출력을 artifacts:reports:sarif 아티팩트로 저장하는 job을 정의합니다. 예시: sarif_scan: image: <scanner-image> script: - <scanner-command> --output sarif.json artifacts: reports: sarif: sarif.json [!note] GitLab이 결과를 수집하려면 job이 성공적으로 완료되어야 합니다. 변경 사항을 커밋하고 푸시합니다. job 이 완료되면 GitLab 이 SARIF 파일을 파싱합니다. 파이프라인 Security 탭에서 추가된 결과를 확인합니다. CI/CD 아티팩트 참조는 artifacts:reports:sarif 를 참고합니다. 스캐너 종료 코드 # GitLab은 결과를 생성하는 job이 성공적으로 완료된 경우에만 보안 결과를 수집합니다. job이 실패하면 SARIF 아티팩트는 여전히 업로드되어 다운로드할 수 있지만, GitLab은 결과를 처리하지 않으므로 결과가 Security 탭, 취약점 보고서, 머지 리퀘스트 위젯에 표시되지 않습니다. 많은 스캐너는 결과를 탐지하면 0이 아닌 코드로 종료합니다. 기본적으로 그렇게 동작하는 스캐너도 있고, 결과가 있을 때 파이프라인을 실패시키도록 구성했을 때 그렇게 동작하는 스캐너도 있습니다. kube-score, --exit-code 1 을 사용하는 Trivy, Checkov, tfsec, Hadolint가 그 예입니다. GitLab 분석기는 결과를 탐지해도 항상 0 으로 종료합니다. allow_failure: true 를 사용하거나 allow_failure:exit_codes 로 종료 코드