InfoGrab DocsInfoGrab Docs

DAST 프록시 기반 분석기에서 DAST 버전 5로 마이그레이션

요약

DAST 버전 5는 프록시 기반 분석기를 브라우저 기반 분석기로 대체합니다. 다음 조건에 모두 해당하면 이 마이그레이션 가이드를 따릅니다: 다음 섹션을 읽고 권장 변경 사항을 적용해 DAST 버전 5로 마이그레이션합니다.

히스토리

DAST 버전 5는 프록시 기반 분석기를 브라우저 기반 분석기로 대체합니다. 이 문서는 프록시 기반 분석기에서 DAST 버전 5로 마이그레이션하기 위한 가이드입니다.

다음 조건에 모두 해당하면 이 마이그레이션 가이드를 따릅니다:

  1. GitLab DAST를 사용해 CI/CD 파이프라인에서 DAST 스캔을 실행합니다.
  2. DAST CI/CD job이 DAST 템플릿 DAST.gitlab-ci.yml 또는 DAST.latest.gitlab-ci.yml 중 하나를 포함해 구성됩니다.
  3. CI/CD 변수 DAST_VERSION이 설정되지 않았거나 4 이하로 설정돼 있습니다.
  4. CI/CD 변수 DAST_BROWSER_SCAN이 설정되지 않았거나 false로 설정돼 있습니다.

다음 섹션을 읽고 권장 변경 사항을 적용해 DAST 버전 5로 마이그레이션합니다.

DAST 분석기 버전#

DAST는 두 가지 주요 버전(4 및 5)이 있습니다. GitLab 17.0부터 DAST 템플릿 DAST.gitlab-ci.yml 및 DAST.latest.gitlab-ci.yml은 기본적으로 DAST 버전 5를 사용합니다. DAST 버전 4를 계속 사용할 수 있지만, DAST 버전 5로 마이그레이션하는 동안의 임시 조치로만 사용해야 합니다. 자세한 내용은 프록시 기반 분석기 계속 사용을 참고합니다.

각 DAST 주요 버전은 기본적으로 서로 다른 분석기를 사용합니다:

  • DAST 버전 4는 프록시 기반 분석기를 사용합니다.
  • DAST 버전 5는 브라우저 기반 분석기를 사용합니다.

DAST 버전 5는 새로운 CI/CD 변수 세트를 사용합니다. DAST 버전 4 변수 이름에 대한 별칭이 만들어졌습니다.

프록시 기반 분석기 계속 사용#

GitLab 18.0까지 프록시 기반 DAST 분석기를 사용할 수 있습니다. 이 레거시 분석기의 버그와 취약점은 수정되지 않습니다.

변경 사항:

  • 프록시 기반 분석기를 계속 사용하려면 CI/CD 변수 DAST_VERSION을 4로 설정합니다.

아티팩트#

GitLab 17.0은 DAST 버전 5가 만든 아티팩트를 DAST CI job에 자동으로 게시합니다.

변경 사항:

  • 파일 로그, 크롤 그래프, 인증 보고서를 노출하려고 artifacts를 재정의했다면 CI job 정의에서 제거합니다.
  • CI/CD 변수 DAST_BROWSER_FILE_LOG_PATH와 DAST_FILE_LOG_PATH는 더 이상 필요하지 않습니다.

인증#

프록시 기반 분석기와 DAST 버전 5는 모두 브라우저 기반 분석기를 사용해 인증합니다. DAST 버전 5로 업그레이드해도 인증이 동작하는 방식은 달라지지 않습니다.

변경 사항:

  • 인증 CI/CD 변수의 이름을 변경합니다. DAST_AUTH 접두사가 붙은 변수를 참고합니다.
  • 아직 적용하지 않았다면 DAST_SCOPE_EXCLUDE_URLS를 사용해 로그아웃 URL을 스캔에서 제외합니다.

크롤링#

DAST 버전 5는 크롤 커버리지를 높이기 위해 브라우저에서 대상 애플리케이션을 크롤링합니다. 이 방식은 같은 조건의 프록시 기반 분석기 크롤링보다 더 많은 리소스를 요구할 수 있습니다.

변경 사항:

  • DAST_WEBSITE 대신 DAST_TARGET_URL을 사용합니다.
  • DAST_SPIDER_MINS 대신 DAST_CRAWL_TIMEOUT을 사용합니다.
  • CI/CD 변수 DAST_USE_AJAX_SPIDER, DAST_SPIDER_START_AT_HOST, DAST_ZAP_CLI_OPTIONS, DAST_ZAP_LOG_CONFIGURATION은 더 이상 지원되지 않습니다.
  • DAST가 10MB보다 큰 응답 본문을 처리해야 한다면 DAST_PAGE_MAX_RESPONSE_SIZE_MB를 구성합니다.
  • DAST job을 실행하는 GitLab Runner에 CPU 리소스를 더 할당하는 방안을 검토합니다.

범위#

DAST 버전 5는 프록시 기반 분석기보다 범위를 더 세밀하게 제어할 수 있습니다.

변경 사항:

  • DAST_ALLOWED_HOSTS 대신 DAST_SCOPE_ALLOW_HOSTS를 사용합니다.
  • DAST_TARGET_URL의 도메인은 DAST_SCOPE_ALLOW_HOSTS에 자동으로 추가됩니다. 대상 애플리케이션의 API 및 에셋 엔드포인트 도메인을 추가하는 방안을 검토합니다.
  • 도메인을 DAST_SCOPE_EXCLUDE_HOSTS에 추가해 스캔에서 제외합니다(인증 중에는 제외되지 않습니다).

취약점 검사#

필요한 변경 사항#

DAST 버전 5는 GitLab이 만든 취약점 정의를 사용하며, 이 정의는 프록시 기반 분석기의 정의와 직접 대응하지 않습니다.

변경 사항:

  • DAST_ONLY_INCLUDE_RULES 대신 DAST_CHECKS_TO_RUN을 사용합니다. 사용하는 ID를 GitLab DAST 취약점 검사 ID로 변경합니다.
  • DAST_EXCLUDE_RULES 대신 DAST_CHECKS_TO_EXCLUDE를 사용합니다. 사용하는 ID를 GitLab DAST 취약점 검사 ID로 변경합니다.
  • GitLab DAST 취약점 검사의 설명과 ID는 취약점 검사 문서를 참고합니다.
  • CI/CD 변수 DAST_AGGREGATE_VULNERABILITIES와 DAST_MAX_URLS_PER_VULNERABILITY는 더 이상 지원되지 않습니다.

마이그레이션이 다른 취약점을 생성하는 이유#

프록시 기반 스캔과 브라우저 기반 DAST 버전 5 스캔은 서로 다른 취약점 검사 집합을 사용하므로 같은 결과를 내지 않습니다.

DAST 버전 5에는 거짓 양성이 지나치게 많거나, 최신 브라우저가 해당 취약점의 악용을 허용하지 않아 실행할 가치가 없거나, 더 이상 관련성이 없다고 판단되는 프록시 기반 검사에 대응하는 검사가 없습니다. 반대로 DAST 버전 5에는 프록시 기반 분석기에 없는 검사가 포함돼 있습니다.

DAST 버전 5 스캔은 애플리케이션을 더 넓게 다루므로, 사이트가 더 많이 스캔되어 취약점을 더 많이 찾아낼 수 있습니다.

커버리지#

프록시 기반 액티브 검사 하나는 아직 브라우저 기반 DAST 분석기에 구현되지 않았습니다. 남은 액티브 검사의 마이그레이션은 에픽 13411에 제안돼 있습니다. 마지막 검사가 마이그레이션될 때까지 DAST 버전 4를 유지하려면 프록시 기반 분석기 계속 사용을 참고합니다.

남은 검사:

  • CWE-79: Cross-site Scripting (XSS)

온디맨드 스캔#

온디맨드 스캔은 GitLab 17.0부터 DAST 버전 5를 사용해 브라우저 기반 스캔을 실행합니다.

문제 해결#

DAST 버전 5 문제 해결 문서를 참고합니다.

CI/CD 변수 변경 사항#

다음 표는 각 프록시 기반 분석기 CI/CD 변수에 필요한 마이그레이션 작업을 설명합니다. DAST 버전 5 구성에 대한 자세한 내용은 구성을 참고합니다.

프록시 기반 분석기 CI/CD 변수 필요한 작업 참고 사항
DAST_ADVERTISE_SCAN 이름 변경 DAST_REQUEST_ADVERTISE_SCAN으로
DAST_ALLOWED_HOSTS 이름 변경 DAST_SCOPE_ALLOW_HOSTS로
DAST_API_HOST_OVERRIDE 제거 지원되지 않음
DAST_API_SPECIFICATION 제거 지원되지 않음
DAST_AUTH_EXCLUDE_URLS 이름 변경 DAST_SCOPE_EXCLUDE_URLS로
DAST_AUTO_UPDATE_ADDONS 제거 지원되지 않음
DAST_BROWSER_FILE_LOG_PATH 제거 더 이상 필요 없음
DAST_DEBUG 제거 지원되지 않음
DAST_EXCLUDE_RULES 이름 변경, 검사 ID 업데이트 DAST_CHECKS_TO_EXCLUDE로
DAST_EXCLUDE_URLS 이름 변경 DAST_SCOPE_EXCLUDE_URLS로
DAST_FILE_LOG_PATH 제거 더 이상 필요 없음
DAST_FULL_SCAN_ENABLED 이름 변경 DAST_FULL_SCAN으로
DAST_HTML_REPORT 제거 지원되지 않음
DAST_INCLUDE_ALPHA_VULNERABILITIES 제거 지원되지 않음
DAST_MARKDOWN_REPORT 제거 지원되지 않음
DAST_MASK_HTTP_HEADERS 제거 지원되지 않음
DAST_MAX_URLS_PER_VULNERABILITY 제거 지원되지 않음
DAST_ONLY_INCLUDE_RULES 이름 변경, 검사 ID 업데이트 DAST_CHECKS_TO_RUN으로
DAST_PATHS 없음 지원됨
DAST_PATHS_FILE 없음 지원됨
DAST_PKCS12_CERTIFICATE_BASE64 없음 지원됨
DAST_PKCS12_PASSWORD 없음 지원됨
DAST_SKIP_TARGET_CHECK 없음 지원됨
DAST_SPIDER_MINS 변경 DAST_CRAWL_TIMEOUT으로 변경하되 시간 기간 사용. 예: 5 대신 5m 사용
DAST_SPIDER_START_AT_HOST 제거 지원되지 않음
DAST_TARGET_AVAILABILITY_TIMEOUT 변경 DAST_TARGET_CHECK_TIMEOUT으로 변경하되 시간 기간 사용. 예: 60 대신 60s 사용
DAST_USE_AJAX_SPIDER 제거 지원되지 않음
DAST_XML_REPORT 제거 지원되지 않음
DAST_WEBSITE 이름 변경 DAST_TARGET_URL로
GitLab Self-Managed: DAST_WEBSITE를 제거하기 전에 인스턴스를 17.0 이상 버전으로 업그레이드합니다. 이 변수는 17.0 이전 GitLab 버전에 포함된 DAST.gitlab-ci.yml 파일을 사용하는 경우 필요합니다.
DAST_ZAP_CLI_OPTIONS 제거 지원되지 않음
DAST_ZAP_LOG_CONFIGURATION 제거 지원되지 않음
SECURE_ANALYZERS_PREFIX 없음 지원됨

DAST 프록시 기반 분석기에서 DAST 버전 5로 마이그레이션

GitLab v19.5
Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기

요약

DAST 버전 5는 프록시 기반 분석기를 브라우저 기반 분석기로 대체합니다. 다음 조건에 모두 해당하면 이 마이그레이션 가이드를 따릅니다: 다음 섹션을 읽고 권장 변경 사항을 적용해 DAST 버전 5로 마이그레이션합니다.

히스토리

DAST 버전 5는 프록시 기반 분석기를 브라우저 기반 분석기로 대체합니다. 이 문서는 프록시 기반 분석기에서 DAST 버전 5로 마이그레이션하기 위한 가이드입니다.

다음 조건에 모두 해당하면 이 마이그레이션 가이드를 따릅니다:

  1. GitLab DAST를 사용해 CI/CD 파이프라인에서 DAST 스캔을 실행합니다.
  2. DAST CI/CD job이 DAST 템플릿 DAST.gitlab-ci.yml 또는 DAST.latest.gitlab-ci.yml 중 하나를 포함해 구성됩니다.
  3. CI/CD 변수 DAST_VERSION이 설정되지 않았거나 4 이하로 설정돼 있습니다.
  4. CI/CD 변수 DAST_BROWSER_SCAN이 설정되지 않았거나 false로 설정돼 있습니다.

다음 섹션을 읽고 권장 변경 사항을 적용해 DAST 버전 5로 마이그레이션합니다.

DAST 분석기 버전#

DAST는 두 가지 주요 버전(4 및 5)이 있습니다. GitLab 17.0부터 DAST 템플릿 DAST.gitlab-ci.yml 및 DAST.latest.gitlab-ci.yml은 기본적으로 DAST 버전 5를 사용합니다. DAST 버전 4를 계속 사용할 수 있지만, DAST 버전 5로 마이그레이션하는 동안의 임시 조치로만 사용해야 합니다. 자세한 내용은 프록시 기반 분석기 계속 사용을 참고합니다.

각 DAST 주요 버전은 기본적으로 서로 다른 분석기를 사용합니다:

  • DAST 버전 4는 프록시 기반 분석기를 사용합니다.
  • DAST 버전 5는 브라우저 기반 분석기를 사용합니다.

DAST 버전 5는 새로운 CI/CD 변수 세트를 사용합니다. DAST 버전 4 변수 이름에 대한 별칭이 만들어졌습니다.

프록시 기반 분석기 계속 사용#

GitLab 18.0까지 프록시 기반 DAST 분석기를 사용할 수 있습니다. 이 레거시 분석기의 버그와 취약점은 수정되지 않습니다.

변경 사항:

  • 프록시 기반 분석기를 계속 사용하려면 CI/CD 변수 DAST_VERSION을 4로 설정합니다.

아티팩트#

GitLab 17.0은 DAST 버전 5가 만든 아티팩트를 DAST CI job에 자동으로 게시합니다.

변경 사항:

  • 파일 로그, 크롤 그래프, 인증 보고서를 노출하려고 artifacts를 재정의했다면 CI job 정의에서 제거합니다.
  • CI/CD 변수 DAST_BROWSER_FILE_LOG_PATH와 DAST_FILE_LOG_PATH는 더 이상 필요하지 않습니다.

인증#

프록시 기반 분석기와 DAST 버전 5는 모두 브라우저 기반 분석기를 사용해 인증합니다. DAST 버전 5로 업그레이드해도 인증이 동작하는 방식은 달라지지 않습니다.

변경 사항:

  • 인증 CI/CD 변수의 이름을 변경합니다. DAST_AUTH 접두사가 붙은 변수를 참고합니다.
  • 아직 적용하지 않았다면 DAST_SCOPE_EXCLUDE_URLS를 사용해 로그아웃 URL을 스캔에서 제외합니다.

크롤링#

DAST 버전 5는 크롤 커버리지를 높이기 위해 브라우저에서 대상 애플리케이션을 크롤링합니다. 이 방식은 같은 조건의 프록시 기반 분석기 크롤링보다 더 많은 리소스를 요구할 수 있습니다.

변경 사항:

  • DAST_WEBSITE 대신 DAST_TARGET_URL을 사용합니다.
  • DAST_SPIDER_MINS 대신 DAST_CRAWL_TIMEOUT을 사용합니다.
  • CI/CD 변수 DAST_USE_AJAX_SPIDER, DAST_SPIDER_START_AT_HOST, DAST_ZAP_CLI_OPTIONS, DAST_ZAP_LOG_CONFIGURATION은 더 이상 지원되지 않습니다.
  • DAST가 10MB보다 큰 응답 본문을 처리해야 한다면 DAST_PAGE_MAX_RESPONSE_SIZE_MB를 구성합니다.
  • DAST job을 실행하는 GitLab Runner에 CPU 리소스를 더 할당하는 방안을 검토합니다.

범위#

DAST 버전 5는 프록시 기반 분석기보다 범위를 더 세밀하게 제어할 수 있습니다.

변경 사항:

  • DAST_ALLOWED_HOSTS 대신 DAST_SCOPE_ALLOW_HOSTS를 사용합니다.
  • DAST_TARGET_URL의 도메인은 DAST_SCOPE_ALLOW_HOSTS에 자동으로 추가됩니다. 대상 애플리케이션의 API 및 에셋 엔드포인트 도메인을 추가하는 방안을 검토합니다.
  • 도메인을 DAST_SCOPE_EXCLUDE_HOSTS에 추가해 스캔에서 제외합니다(인증 중에는 제외되지 않습니다).

취약점 검사#

필요한 변경 사항#

DAST 버전 5는 GitLab이 만든 취약점 정의를 사용하며, 이 정의는 프록시 기반 분석기의 정의와 직접 대응하지 않습니다.

변경 사항:

  • DAST_ONLY_INCLUDE_RULES 대신 DAST_CHECKS_TO_RUN을 사용합니다. 사용하는 ID를 GitLab DAST 취약점 검사 ID로 변경합니다.
  • DAST_EXCLUDE_RULES 대신 DAST_CHECKS_TO_EXCLUDE를 사용합니다. 사용하는 ID를 GitLab DAST 취약점 검사 ID로 변경합니다.
  • GitLab DAST 취약점 검사의 설명과 ID는 취약점 검사 문서를 참고합니다.
  • CI/CD 변수 DAST_AGGREGATE_VULNERABILITIES와 DAST_MAX_URLS_PER_VULNERABILITY는 더 이상 지원되지 않습니다.

마이그레이션이 다른 취약점을 생성하는 이유#

프록시 기반 스캔과 브라우저 기반 DAST 버전 5 스캔은 서로 다른 취약점 검사 집합을 사용하므로 같은 결과를 내지 않습니다.

DAST 버전 5에는 거짓 양성이 지나치게 많거나, 최신 브라우저가 해당 취약점의 악용을 허용하지 않아 실행할 가치가 없거나, 더 이상 관련성이 없다고 판단되는 프록시 기반 검사에 대응하는 검사가 없습니다. 반대로 DAST 버전 5에는 프록시 기반 분석기에 없는 검사가 포함돼 있습니다.

DAST 버전 5 스캔은 애플리케이션을 더 넓게 다루므로, 사이트가 더 많이 스캔되어 취약점을 더 많이 찾아낼 수 있습니다.

커버리지#

프록시 기반 액티브 검사 하나는 아직 브라우저 기반 DAST 분석기에 구현되지 않았습니다. 남은 액티브 검사의 마이그레이션은 에픽 13411에 제안돼 있습니다. 마지막 검사가 마이그레이션될 때까지 DAST 버전 4를 유지하려면 프록시 기반 분석기 계속 사용을 참고합니다.

남은 검사:

  • CWE-79: Cross-site Scripting (XSS)

온디맨드 스캔#

온디맨드 스캔은 GitLab 17.0부터 DAST 버전 5를 사용해 브라우저 기반 스캔을 실행합니다.

문제 해결#

DAST 버전 5 문제 해결 문서를 참고합니다.

CI/CD 변수 변경 사항#

다음 표는 각 프록시 기반 분석기 CI/CD 변수에 필요한 마이그레이션 작업을 설명합니다. DAST 버전 5 구성에 대한 자세한 내용은 구성을 참고합니다.

프록시 기반 분석기 CI/CD 변수 필요한 작업 참고 사항
DAST_ADVERTISE_SCAN 이름 변경 DAST_REQUEST_ADVERTISE_SCAN으로
DAST_ALLOWED_HOSTS 이름 변경 DAST_SCOPE_ALLOW_HOSTS로
DAST_API_HOST_OVERRIDE 제거 지원되지 않음
DAST_API_SPECIFICATION 제거 지원되지 않음
DAST_AUTH_EXCLUDE_URLS 이름 변경 DAST_SCOPE_EXCLUDE_URLS로
DAST_AUTO_UPDATE_ADDONS 제거 지원되지 않음
DAST_BROWSER_FILE_LOG_PATH 제거 더 이상 필요 없음
DAST_DEBUG 제거 지원되지 않음
DAST_EXCLUDE_RULES 이름 변경, 검사 ID 업데이트 DAST_CHECKS_TO_EXCLUDE로
DAST_EXCLUDE_URLS 이름 변경 DAST_SCOPE_EXCLUDE_URLS로
DAST_FILE_LOG_PATH 제거 더 이상 필요 없음
DAST_FULL_SCAN_ENABLED 이름 변경 DAST_FULL_SCAN으로
DAST_HTML_REPORT 제거 지원되지 않음
DAST_INCLUDE_ALPHA_VULNERABILITIES 제거 지원되지 않음
DAST_MARKDOWN_REPORT 제거 지원되지 않음
DAST_MASK_HTTP_HEADERS 제거 지원되지 않음
DAST_MAX_URLS_PER_VULNERABILITY 제거 지원되지 않음
DAST_ONLY_INCLUDE_RULES 이름 변경, 검사 ID 업데이트 DAST_CHECKS_TO_RUN으로
DAST_PATHS 없음 지원됨
DAST_PATHS_FILE 없음 지원됨
DAST_PKCS12_CERTIFICATE_BASE64 없음 지원됨
DAST_PKCS12_PASSWORD 없음 지원됨
DAST_SKIP_TARGET_CHECK 없음 지원됨
DAST_SPIDER_MINS 변경 DAST_CRAWL_TIMEOUT으로 변경하되 시간 기간 사용. 예: 5 대신 5m 사용
DAST_SPIDER_START_AT_HOST 제거 지원되지 않음
DAST_TARGET_AVAILABILITY_TIMEOUT 변경 DAST_TARGET_CHECK_TIMEOUT으로 변경하되 시간 기간 사용. 예: 60 대신 60s 사용
DAST_USE_AJAX_SPIDER 제거 지원되지 않음
DAST_XML_REPORT 제거 지원되지 않음
DAST_WEBSITE 이름 변경 DAST_TARGET_URL로
GitLab Self-Managed: DAST_WEBSITE를 제거하기 전에 인스턴스를 17.0 이상 버전으로 업그레이드합니다. 이 변수는 17.0 이전 GitLab 버전에 포함된 DAST.gitlab-ci.yml 파일을 사용하는 경우 필요합니다.
DAST_ZAP_CLI_OPTIONS 제거 지원되지 않음
DAST_ZAP_LOG_CONFIGURATION 제거 지원되지 않음
SECURE_ANALYZERS_PREFIX 없음 지원됨