DAST 버전 5로부터 DAST 프록시 기반 분석기로의 마이그레이션
- DAST 프록시 기반 분석기는 GitLab 16.6에서 사용 중단되었으며, 17.0에서는 제거되었습니다.
DAST 버전 5는 브라우저 기반 분석기로 프록시 기반 분석기를 대체합니다. 본 문서는 프록시 기반 분석기에서 DAST 버전 5로의 마이그레이션 가이드로 작동합니다.
다음 모든 조건이 해당되는 경우 이 마이그레이션 가이드를 따르세요:
- GitLab DAST를 사용하여 CI/CD 파이프라인에서 DAST 스캔을 실행합니다.
- DAST CI/CD 작업은
DAST.gitlab-ci.yml
또는DAST.latest.gitlab-ci.yml
중 하나를 포함하여 구성됩니다. - CI/CD 변수
DAST_VERSION
이 설정되지 않았거나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.yml
및 DAST.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_VERSION
을 5
로 설정하세요.
프록시 기반 분석기 계속 사용
GitLab 18.0까지 프록시 기반 DAST를 계속 사용할 수 있습니다. 이 레거시 분석기의 버그 및 취약점은 수정되지 않습니다.
변경 사항:
- 프록시 기반 분석기를 계속 사용하려면 CI/CD 변수 DAST_VERSION
을 4
로 설정하세요.
아티팩트
GitLab 17.0은 DAST 버전 5로 생성된 아티팩트를 DAST CI 작업으로 자동 게시합니다.
변경 사항:
- 파일 로그, 크롤 그래프 또는 인증 보고서를 노출시키기 위해 필요한 경우 CI 작업 정의에서 artifacts
를 제거하세요.
- CI/CD 변수 DAST_BROWSER_FILE_LOG_PATH
및 DAST_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_OPTIONS
및 DAST_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_VULNERABILITIES
및 DAST_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
| 없음 | 지원됨 |