오프라인 구성
GitLab v19.5Offering: GitLab Self-Managed
요약
인터넷을 통한 외부 리소스 접근이 제한되거나 부분적으로만 허용되거나 간헐적인 환경의 인스턴스에서는 DAST job이 정상적으로 실행되도록 몇 가지 조정이 필요합니다. 오프라인 환경에서는 모든 버전의 DAST를 사용할 수 있습니다.
인터넷을 통한 외부 리소스 접근이 제한되거나 부분적으로만 허용되거나 간헐적인 환경의 인스턴스에서는 DAST job이 정상적으로 실행되도록 몇 가지 조정이 필요합니다. 자세한 내용은 오프라인 환경을 참고합니다.
오프라인 DAST 지원을 위한 요구사항#
오프라인 환경에서는 모든 버전의 DAST를 사용할 수 있습니다. 이를 위해 다음이 필요합니다.
docker또는kubernetesexecutor를 사용하는 GitLab Runner. 러너는 타깃 애플리케이션에 네트워크로 접근할 수 있어야 합니다.- DAST 컨테이너 이미지의 복사본을 로컬에 보유한 Docker 컨테이너 레지스트리. 이미지는 DAST 컨테이너 레지스트리에 있습니다. 오프라인 호스트에 Docker 이미지 로드를 참고합니다.
GitLab Runner의 기본 pull policy는 always이므로,
로컬 복사본이 있더라도 러너가 GitLab 컨테이너 레지스트리에서 Docker 이미지를 가져오려고 시도합니다.
로컬에 있는 Docker 이미지만 사용하려면 오프라인 환경에서 GitLab Runner의
pull_policy를 if-not-present로 설정할 수 있습니다.
오프라인 환경이 아니라면 pull policy 설정을 always로 유지해야 합니다.
이 설정을 통해 CI/CD 파이프라인에서 업데이트된 스캐너를
사용할 수 있습니다.
GitLab DAST 분석기 이미지를 Docker 레지스트리에서 사용 가능하게 하기#
DAST의 경우 registry.gitlab.com에서 다음 기본 DAST 분석기 이미지를 로컬 Docker 컨테이너 레지스트리로 가져옵니다.
registry.gitlab.com/security-products/dast:latest
Docker 이미지를 로컬 오프라인 Docker 레지스트리로 가져오는 과정은 네트워크 보안 정책에 따라 다릅니다. IT 담당자와 상의하여 외부 리소스를 가져오거나 일시적으로 접근할 수 있는 승인된 절차를 확인합니다. 이 스캐너들은 새로운 정의로 주기적으로 업데이트되며, 경우에 따라 직접 업데이트할 수도 있습니다.
Docker 이미지를 파일로 저장하고 전송하는 방법은 Docker 문서의
docker save,
docker load,
docker export,
docker import를 참고합니다.
로컬 DAST 분석기를 사용하도록 DAST CI/CD job 변수 설정#
.gitlab-ci.yml 파일에 다음 구성을 추가합니다. 로컬 Docker 컨테이너 레지스트리에 호스팅된
DAST Docker 이미지를 참조하도록 image를 바꿔야 합니다.
include:
- template: DAST.gitlab-ci.yml
dast:
image: registry.example.com/namespace/dast:latest
이제 DAST job은 인터넷 접근 없이 로컬 DAST 분석기 복사본을 사용하여 코드를 스캔하고 보안 보고서를 생성합니다.
또는 CI/CD 변수 SECURE_ANALYZERS_PREFIX를 사용하여 dast 이미지의 기본 레지스트리 주소를 재정의할 수 있습니다.