DAST 프록시 기반 분석기에서 DAST 버전 5로의 마이그레이션
- 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 breaking change 윈도우인 2024년 5월 6일 09:00 UTC부터 2024년 5월 8일 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 작업에 공개합니다.
수정해야 할 사항:
- 파일 로그, 크롤 그래프 또는 인증 보고서를 노출하기 위해
artifacts
을 CI 작업 정의에서 제거하세요. - CI/CD 변수
DAST_BROWSER_FILE_LOG_PATH
및DAST_FILE_LOG_PATH
는 더 이상 필요하지 않습니다.
인증
프록시 기반 분석기와 DAST 버전 5는 둘 다 브라우저 기반 분석기를 사용하여 인증합니다. DAST 버전 5로 업그레이드하더라도 인증 방법은 변경되지 않습니다.
수정해야 할 사항:
-
DAST_AUTH
접두사를 가진 인증 CI/CD 변수의 이름을 변경하세요. - 이미 수행하지 않았다면
DAST_SCOPE_EXCLUDE_URLS
를 사용하여 스캔에서 로그아웃 URL을 제외하세요.
크롤링
DAST 버전 5는 브라우저에서 대상 응용 프로그램을 크롤링하여 더 나은 크롤링 범위를 제공합니다. 이는 동등한 프록시 기반 분석기 크롤링보다 더 많은 리소스를 필요로 할 수 있습니다.
수정해야 할 사항:
-
DAST_WEBSITE
대신DAST_TARGET_URL
을 사용하세요. -
DAST_SPIDER_MINS
대신 기간을 사용하는DAST_CRAWL_TIMEOUT
을 사용하세요. 예를 들어,5
대신5m
을 사용하세요. - 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를 사용한 변경 사항입니다. -
DAST_EXCLUDE_RULES
대신DAST_CHECKS_TO_EXCLUDE
을 사용하세요. GitLab DAST 취약점 확인 ID를 사용한 변경 사항입니다. - GitLab DAST 취약점 확인 ID의 설명 및 ID에 대한 취약점 확인 문서를 참조하세요.
- CI/CD 변수
DAST_AGGREGATE_VULNERABILITIES
및DAST_MAX_URLS_PER_VULNERABILITY
은 더 이상 지원되지 않습니다.
마이그레이션으로 인한 다른 취약점 생성 이유
프록시 기반 스캔과 브라우저 기반 DAST 버전 5 스캔은 서로 다른 취약점 검사 집합을 사용하기 때문에 동일한 결과를 출력하지 않습니다.
DAST 버전 5에는 너무 많은 잘못된 양성이 생성되지 않거나 현대 브라우저에서 해당 취약점이 악용될 수 없기 때문에 실행할 가치가 없는 프록시 기반 체크의 해당 항목에 대한 동등한 항목이 없습니다. 또한 더 이상 관련성이 없는 항목도 포함되어 있습니다. DAST 버전 5 스캔은 응용 프로그램의 더 많은 부분을 스캔하기 때문에 더 많은 취약점을 식별할 수 있습니다.
커버리지
브라우저 기반 DAST 버전 5가 다루지 않는 프록시 기반 능동적인 검사가 세 가지 있습니다. 완전한 커버리지를 제공하기 위해 더 많은 검사를 추가하는 작업이 진행 중이며 이전 DAST_VERSION: 4
로 유지할 수 있습니다. 프록시 기반 분석기 계속 사용를 참조하세요.
남아 있는 검사:
- CWE-79: Cross-site Scripting (XSS)
- CWE-384: Session Fixation
- CWE-16: TRACE HTTP
남아 있는 검사의 진행 상황은 에픽 남아 있는 BBD용 능동적 검사를 확인하세요.
온디맨드 스캔
온디맨드 스캔은 DAST 버전 5을 사용하여 브라우저 기반 스캔을 GitLab 17.0에서 실행합니다.
문제 해결
DAST 버전 5 문제 해결 문서를 참조하세요.
CI/CD 변수 변경 사항
다음 표는 각 프록시 기반 분석기 CI/CD 변수에 대한 마이그레이션 조치를 요약한 것입니다. 자세한 정보는 구성을 참조하세요.
프록시 기반 분석기 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
| 변경 |
5 대신 기간을 사용하는 DAST_CRAWL_TIMEOUT 을 사용하세요. 예를 들어, 5 대신 5m 을 사용하세요
|
DAST_SPIDER_START_AT_HOST
| 제거 | 미지원 |
DAST_TARGET_AVAILABILITY_TIMEOUT
| 변경 |
60 대신 기간을 사용하는 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
| 없음 | 지원됨 |