보안 스캐너 통합
GitLab에 보안 스캐너를 통합하기 위한 CI/CD job 정의, Docker 이미지, 커맨드라인, 리포트 형식 요구사항 및 지침을 설명합니다.
GitLab에 보안 스캐너를 통합하는 작업은 최종 사용자에게 CI/CD job 정의 를 제공하는 것으로 이루어집니다. 사용자는 이 정의를 자신의 CI/CD 구성 파일에 추가해 GitLab 프로젝트를 스캔할 수 있습니다. 그런 다음 이 job은 GitLab이 지정한 형식으로 결과를 출력해야 합니다. 이 결과는 파이프라인 보기, 머지 리퀘스트 위젯, 보안 대시보드 등 GitLab의 여러 위치에 자동으로 표시됩니다. 스캐닝 job은 보통 스캐너와 스캐너의 모든 의존성을 자체 완결적인 환경에 담은 Docker 이미지 를 기반으로 합니다. 이 페이지에서는 보안 스캐너를 구현하는 CI/CD job 작성에 대한 요구 사항과 지침, 그리고 Docker 이미지에 대한 요구 사항과 지침을 설명합니다. Job 정의 # 이 섹션에서는 보안 스캐너의 job 정의 파일에 추가할 중요한 필드 몇 가지를 설명합니다. 이 필드와 사용할 수 있는 다른 필드에 대한 전체 문서는 CI/CD 문서 에서 확인할 수 있습니다. 이름 # 일관성을 위해 스캐닝 job의 이름은 스캐너 이름을 소문자로 적어 짓습니다. job 이름 뒤에는 스캐닝 유형이 접미사로 붙습니다. _dependency_scanning _container_scanning _dast _sast 예를 들어 "MySec" 스캐너를 기반으로 하는 의존성 스캐닝 job의 이름은 mysec_dependency_scanning 이 됩니다. 이미지 # image 키워드는 보안 스캐너가 포함된 Docker 이미지 를 지정하는 데 사용합니다. 스크립트 # script 키워드는 스캐너를 실행할 명령을 지정하는 데 사용합니다. script 항목은 비워 둘 수 없으므로, 스캔을 수행하는 명령으로 설정해야 합니다. 아무 명령도 전달하지 않고 Docker 이미지에 미리 정의된 ENTRYPOINT 와 CMD 에 의존해 스캔을 자동으로 수행하게 할 수는 없습니다. before_script 는 job 정의에서 사용하지 않아야 합니다. 사용자가 스캔을 수행하기 전에 프로젝트를 준비하는 데 이 항목을 활용할 수 있기 때문입니다. 예를 들어 정적 애플리케이션 보안 테스트(SAST)나 의존성 스캐닝을 수행하기 전에 특정 프로젝트에 필요한 시스템 라이브러리를 설치하려고 before_script 를 사용하는 것은 흔한 관행입니다. 마찬가지로 after_script 도 사용자가 재정의할 수 있으므로 job 정의에서 사용하지 않아야 합니다. Stage # 일관성을 위해 스캐닝 job은 가능하면 test Stage에 속해야 합니다. test 가 기본값이므로 stage 키워드는 생략할 수 있습니다. 장애 안전 장치 # 기본적으로 스캐닝 job은 실패해도 파이프라인을 차단하지 않으므로, allow_failure 파라미터를 true 로 설정해야 합니다. 아티팩트 # 스캐닝 job은 자신이 수행하는 스캐닝 유형에 해당하는 리포트를 artifacts:reports 키워드로 선언해야 합니다. 유효한 리포트는 다음과 같습니다. dependency_scanning conta