DAST 프록시 기반 분석기에서 DAST 버전 5로 마이그레이션
- DAST 프록시 기반 분석기는 GitLab 16.6에서 중단되었습니다 그리고 17.0에서 제거되었습니다.
DAST 버전 5는 프록시 기반 분석기를 브라우저 기반 분석기로 대체합니다. 이 문서는 프록시 기반 분석기에서 DAST 버전 5로 마이그레이션하기 위한 가이드입니다.
다음 모든 조건이 적용되는 경우 이 마이그레이션 가이드를 따르십시오:
-
CI/CD 파이프라인에서 DAST 스캔을 실행하기 위해 GitLab DAST를 사용합니다.
-
DAST CI/CD 작업은 DAST 템플릿
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 템플릿 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로 스캔을 테스트하려면 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로 업그레이드해도 인증 방식은 변경되지 않습니다.
수정 사항:
- 인증 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가 10 MB보다 큰 응답 본문을 처리해야 하는 경우
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에 대한 취약성 검사 문서를 참조하십시오.
- CI/CD 변수
DAST_AGGREGATE_VULNERABILITIES
및DAST_MAX_URLS_PER_VULNERABILITY
는 더 이상 지원되지 않습니다.
마이그레이션이 서로 다른 취약성을 생성하는 이유
프록시 기반 스캔과 브라우저 기반 DAST 버전 5 스캔은 서로 다른 취약성 검사를 사용하기 때문에 동일한 결과를 생성하지 않습니다.
DAST 버전 5는 너무 많은 허위 긍정 결과를 생성하는 프록시 기반 검사의 동등한 대체물이 없으며, 현대 브라우저에서는 이러한 취약성을 악용할 수 없기 때문에 실행할 가치가 없거나 더 이상 관련성이 없다고 여겨지는 체크를 포함하지 않습니다.
DAST 버전 5에는 프록시 기반 분석기가 포함하지 않는 검사도 포함되어 있습니다.
DAST 버전 5 스캔은 애플리케이션의 더 나은 범위를 제공하므로, 사이트의 더 많은 부분이 스캔되기 때문에 더 많은 취약성을 식별할 수 있습니다.
범위
DAST 버전 5가 다루지 않는 세 가지 프록시 기반 활성 체크가 있습니다. 완전한 범위를 제공하기 위해 더 많은 검사를 추가하는 작업이 활발히 개발 중이며, 이들이 완료될 때까지 DAST_VERSION: 4
를 사용할 수 있습니다. 프록시 기반 분석기 사용 계속하기를 참조하십시오.
남은 검사:
- CWE-79: 교차 사이트 스크립팅(XSS)
- CWE-384: 세션 고정(Session Fixation)
- CWE-16: TRACE HTTP
남은 검사의 진행 상황은 에픽 BBD에 대한 남은 활성 체크에서 확인하십시오.
온디맨드 스캔
온디맨드 스캔은 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 |
DAST_ZAP_CLI_OPTIONS |
제거 | 지원되지 않음 |
DAST_ZAP_LOG_CONFIGURATION |
제거 | 지원되지 않음 |
SECURE_ANALYZERS_PREFIX |
없음 | 지원됨 |