애플리케이션 배포 옵션
DAST 스캐닝을 위해 애플리케이션을 배포하는 다양한 방법을 설명합니다.
DAST는 스캔할 수 있는 배포된 애플리케이션이 필요합니다. 대상 애플리케이션의 복잡성에 따라 DAST 템플릿을 배포하고 구성하는 방법에는 몇 가지 옵션이 있습니다. 예제 애플리케이션과 구성이 DAST 데모 프로젝트에 제공되어 있습니다. 리뷰 앱 # 리뷰 앱은 DAST 대상 애플리케이션을 배포하는 가장 복잡한 방법입니다. 이 프로세스를 지원하기 위해 GitLab은 Google Kubernetes Engine(GKE)을 사용하여 리뷰 앱 배포를 만들었습니다. 이 예제는 리뷰 앱 - GKE 프로젝트에서 찾을 수 있으며, DAST를 위한 리뷰 앱 구성에 대한 자세한 지침은 README 에서 확인할 수 있습니다. Docker 서비스 # 애플리케이션이 Docker 컨테이너를 사용하는 경우 DAST로 배포하고 스캔하는 또 다른 옵션이 있습니다. Docker 빌드 job이 완료되고 이미지가 컨테이너 레지스트리에 추가되면 이미지를 서비스 로 사용할 수 있습니다. .gitlab-ci.yml 에서 서비스 정의를 사용하여 DAST 분석기로 서비스를 스캔할 수 있습니다. job에 services 섹션을 추가할 때 alias 는 서비스에 접근하는 데 사용할 수 있는 호스트 이름을 정의하는 데 사용됩니다. 다음 예에서 dast job 정의의 alias: yourapp 부분은 배포된 애플리케이션의 URL이 yourapp 을 호스트 이름으로 사용한다는 것을 의미합니다( https://yourapp/ ). stages: - build - dast include: - template: DAST.gitlab-ci.yml # GitLab 컨테이너 레지스트리에 컨테이너 배포 deploy: services: - name: docker:dind alias: dind image: docker:20.10.16 stage: build script: - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY - docker pull $CI_REGISTRY_IMAGE:latest || true - docker build --tag $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA --tag $CI_REGISTRY_IMAGE:latest . - docker push $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA - docker push $CI_REGISTRY_IMAGE:latest dast: services: # 서비스를 사용하여 앱 컨테이너를 dast job에 연결 - name: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA alias: yourapp variables: DAST_TARGET_URL: https://yourapp DAST_FULL_SCAN: "true" # 전체 스캔 수행 DAST_BROWSER_SCAN: "true" # 브라우저 기반 GitLab DAST 크롤러 사용 대부분의 애플리케이션은 데이터베이스나 캐싱 서비스와 같은 여러 서비스에 의존합니다. 기본적으로 서비스 필드에
