DAST 버전 5로부터 DAST 프록시 기반 분석기로의 마이그레이션

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

다음 모든 조건이 해당되는 경우 이 마이그레이션 가이드를 따르세요:

  1. GitLab DAST를 사용하여 CI/CD 파이프라인에서 DAST 스캔을 실행합니다.
  2. DAST CI/CD 작업은 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 세 번째 중단 변경 창부터(2024-05-06 09:00 UTC ~ 2024-05-08 22:00 UTC) DAST.gitlab-ci.ymlDAST.latest.gitlab-ci.yml 템플릿은 기본적으로 DAST 버전 5를 사용합니다.

DAST 버전 4를 계속 사용할 수 있지만, DAST 버전 5로 마이그레이션 중에만 임시 조치로 하도록 해야 합니다. 자세한 내용은 프록시 기반 분석기 계속 사용를 참조하세요.

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

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

DAST 버전 5는 새로운 CI/CD 변수 세트를 사용합니다. DAST 버전 4 변수의 별칭이 생성되었습니다.

변경 사항: - GitLab 16.11 및 이전 버전에서 DAST 버전 5를 사용하여 DAST 스캔을 테스트하려면 CI/CD 변수 DAST_VERSION5로 설정하세요.

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

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

변경 사항: - 프록시 기반 분석기를 계속 사용하려면 CI/CD 변수 DAST_VERSION4로 설정하세요.

아티팩트

GitLab 17.0은 DAST 버전 5로 생성된 아티팩트를 DAST CI 작업으로 자동 게시합니다.

변경 사항: - 파일 로그, 크롤 그래프 또는 인증 보고서를 노출시키기 위해 필요한 경우 CI 작업 정의에서 artifacts를 제거하세요. - CI/CD 변수 DAST_BROWSER_FILE_LOG_PATHDAST_FILE_LOG_PATH가 더 이상 필요하지 않습니다.

인증

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

변경 사항: - 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_OPTIONSDAST_ZAP_LOG_CONFIGURATION가 더 이상 지원되지 않습니다. - DAST가 10MB보다 큰 응답 본문을 처리해야하는 경우 DAST_PAGE_MAX_RESPONSE_SIZE_MB를 구성하세요. - DAST 작업을 수행하는 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을 사용하세요. GitLab DAST 취약점 확인 ID로 사용된 ID를 변경하세요. - DAST_EXCLUDE_RULES 대신 DAST_CHECKS_TO_EXCLUDE를 사용하세요. GitLab DAST 취약점 확인 ID로 사용된 ID를 변경하세요. - GitLab DAST 취약점 확인 ID에 대한 설명 및 ID에 관한 문서는 취약점 확인을 참조하세요. - CI/CD 변수 DAST_AGGREGATE_VULNERABILITIESDAST_MAX_URLS_PER_VULNERABILITY가 더 이상 지원되지 않습니다.

마이그레이션으로 인한 다른 취약점 생성 이유

프록시 기반 스캔 및 브라우저 기반 DAST 버전 5 스캔은 서로 다른 취약점 확인을 사용하기 때문에 동일한 결과를 생성하지 않습니다.

DAST 버전 5는 너무 많은 잘못된 양성 결과를 생성하는 프록시기반체크에 상응하는 것이 없으며, 현대 브라우저가 해당 취약점을 악용하는 것을 허용하지 않기 때문에 실행할 가치가 없는, 더 이상 관련이 없는 검사를 실행하지 않습니다. DAST 버전 5에는 프록시 기반 분석기에 없는 검사가 포함되어 있습니다.

DAST 버전 5 스캔은 애플리케이션의 더 많은 부분을 스캔하기 때문에 더 많은 취약점을 식별할 수 있습니다.

커버리지

DAST 버전 5가 커버하지 않는 프록시 기반 액티브 체크가 3가지 있습니다. 완전한 커버리지를 제공하기 위해 더 많은 체크를 추가하는 것은 활발히 진행 중이며, 그동안 DAST_VERSION: 4를 유지할 수 있습니다. 프록시 기반 분석기 계속 사용를 참조하세요.

남아있는 체크: - CWE-79: 크로스사이트 스크립팅 (XSS) - CWE-384: 세션 조작 - CWE-16: TRACE HTTP

남아있는 체크의 진행 상황은 에픽 남은 BBD용 액티브 체크에서 확인하세요.

온디맨드 스캔

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

문제 해결

DAST version 5 troubleshooting 문서를 참조하세요.

CI/CD 변수의 변경 사항

다음 표는 각 프록시 기반 분석기 CI/CD 변수에 필요한 이주 작업을 설명합니다. DAST version 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로 변경
DAST_ZAP_CLI_OPTIONS 제거 지원되지 않음
DAST_ZAP_LOG_CONFIGURATION 제거 지원되지 않음
SECURE_ANALYZERS_PREFIX 없음 지원됨