오프라인 환경에서 DAST 실행

Tier: Ultimate Offering: GitLab.com, Self-Managed, GitLab Dedicated

인터넷을 통한 외부 리소스에 제한적이거나 가끔 접근할 수밖에 없는 환경에 있는 오프라인 Self-Managed GitLab 인스턴스의 경우, DAST 작업이 성공적으로 실행되기 위해서는 몇 가지 조정이 필요합니다. 자세한 정보는 오프라인 환경을 참조하세요.

오프라인 DAST 지원 요구 사항

오프라인 환경에서 DAST를 사용하려면 다음이 필요합니다:

GitLab Runner는 기본적으로 always pull 정책을 갖고 있어, 러너가 로컬 복사본이 있는 경우에도 GitLab 컨테이너 레지스트리에서 Docker 이미지를 끌어옵니다. 오프라인 환경에서는 GitLab Runner의 pull_policyif-not-present로 설정할 수 있으며, 이렇게 하면 로컬로 사용 가능한 Docker 이미지만 사용할 수 있습니다. 그러나 CI/CD 파이프라인에서 업데이트된 스캐너를 사용할 수 있도록 하는 것을 권장하기 때문에 오프라인 환경이 아닌 경우에는 pull 정책 설정을 always로 유지하는 것이 좋습니다.

로컬 Docker 레지스트리 내에서 GitLab DAST 분석기 이미지를 사용 가능하게 하기

DAST를 위해, 다음 기본 DAST 분석기 이미지를 registry.gitlab.com에서 로컬 Docker 컨테이너 레지스트리로 가져오세요:

  • registry.gitlab.com/security-products/dast:latest

로컬 오프라인 Docker 레지스트리로 Docker 이미지를 가져오는 프로세스는 네트워크 보안 정책에 따라 다릅니다. 외부 리소스를 가져오거나 일시적으로 접근하는 데 허용되는 공식적이고 승인된 프로세스를 찾기 위해 IT 직원과 상의하세요. 이러한 스캐너들은 정기적으로 업데이트되며 새 정의가 적용됩니다. 때때로 본인만 업데이트를 진행할 수도 있습니다.

Docker 이미지를 파일로 저장하고 전송하는 방법에 대한 자세한 정보는 Docker 문서의 docker save, docker load, docker export, 그리고 docker import를 참조하세요.

DAST CI/CD 작업 변수 설정하여 로컬 DAST 분석기 사용

.gitlab-ci.yml 파일에 다음 구성을 추가하세요. DAST Docker 이미지를 사용하는 데 있어 image를 로컬 Docker 컨테이너 레지스트리에 호스팅된 DAST Docker 이미지로 대체해야 합니다:

include:
  - template: DAST.gitlab-ci.yml
dast:
  image: registry.example.com/namespace/dast:latest

이제 DAST 작업은 인터넷 액세스 없이 코드를 스캔하고 보안 보고서를 생성하기 위해 로컬 DAST 분석기의 로컬 복사본을 사용해야 합니다.

또는, CI/CD 변수 SECURE_ANALYZERS_PREFIX를 사용하여 dast 이미지의 기본 레지스트리 주소를 덮어쓸 수 있습니다.