사용 가능한 CI/CD 변수
요약
이 CI/CD 변수는 브라우저 기반 DAST 분석기에 특정합니다. 이 변수는 스캔이 수행되는 방법과 결과가 저장되는 위치를 제어합니다. 이 변수는 스캐너에 특정 요소를 찾을 위치, 취할 작업 및 작업 완료를 기다릴 시간을 알려줍니다.
이 CI/CD 변수는 브라우저 기반 DAST 분석기에 특정합니다. 요구 사항에 맞게 DAST의 동작을 사용자 지정하는 데 사용할 수 있습니다.
스캐너 동작#
이 변수는 스캔이 수행되는 방법과 결과가 저장되는 위치를 제어합니다.
| CI/CD 변수 | 유형 | 예시 | 설명 |
|---|---|---|---|
DAST_CHECKS_TO_EXCLUDE |
문자열 | 552.2,78.1 |
스캔에서 제외할 검사 식별자의 쉼표로 구분된 목록. 식별자는 취약점 검사를 참조하세요. |
DAST_CHECKS_TO_RUN |
문자열 목록 | 16.1,16.2,16.3 |
스캔에 사용할 검사 식별자의 쉼표로 구분된 목록. 식별자는 취약점 검사를 참조하세요. |
DAST_CRAWL_GRAPH |
불리언 | true |
스캔의 크롤 단계 중 방문한 탐색 경로의 SVG 그래프를 생성하려면 true로 설정합니다. 생성된 그래프에 액세스하려면 gl-dast-crawl-graph.svg를 CI job 아티팩트로 정의해야 합니다. 기본값은 false. |
DAST_FULL_SCAN |
불리언 | true |
패시브 및 액티브 검사 모두 실행하려면 true로 설정합니다. 기본값은 false. |
DAST_LOG_BROWSER_OUTPUT |
불리언 | true |
Chromium STDOUT 및 STDERR를 로깅하려면 true로 설정합니다. |
DAST_LOG_CONFIG |
문자열 목록 | brows:debug,auth:debug |
(지원 중단) 콘솔 로그에 사용할 모듈 및 의도한 로깅 수준 목록. |
DAST_LOG_DEVTOOLS_CONFIG |
문자열 | Default:messageAndBody,truncate:2000 |
DAST와 Chromium 브라우저 사이의 프로토콜 메시지를 로깅하도록 설정합니다. |
DAST_LOG_FILE_CONFIG |
문자열 목록 | brows:debug,auth:debug |
파일 로그에 사용할 모듈 및 의도한 로깅 수준 목록. |
DAST_LOG_FILE_PATH |
문자열 | /output/browserker.log |
파일 로그의 경로로 설정합니다. 기본값은 gl-dast-scan.log. |
SECURE_ANALYZERS_PREFIX |
URL | registry.organization.com |
분석기를 다운로드할 Docker 레지스트리 기본 주소를 설정합니다. |
SECURE_LOG_LEVEL |
문자열 | debug |
파일 로그의 기본 수준을 설정합니다. SECURE_LOG_LEVEL을 참조하세요. |
요소, 작업 및 타임아웃#
이 변수는 스캐너에 특정 요소를 찾을 위치, 취할 작업 및 작업 완료를 기다릴 시간을 알려줍니다.
| CI/CD 변수 | 유형 | 예시 | 설명 |
|---|---|---|---|
DAST_ACTIVE_SCAN_TIMEOUT |
기간 문자열 | 3h |
스캔의 액티브 스캔 단계가 완료될 때까지 기다리는 최대 시간. 기본값은 3h. |
DAST_ACTIVE_SCAN_WORKER_COUNT |
숫자 | 3 |
병렬로 실행할 액티브 검사 수. 기본값은 3. |
DAST_CRAWL_MAX_ACTIONS |
숫자 | 10000 |
크롤러가 수행하는 최대 작업 수. 예시 작업에는 링크 선택 또는 양식 작성이 포함됩니다. 기본값은 10000. |
DAST_CRAWL_MAX_DEPTH |
숫자 | 10 |
크롤러가 취하는 연결된 작업의 최대 수. 예를 들어 클릭, 양식 작성, 클릭의 깊이는 3입니다. 기본값은 10. |
DAST_CRAWL_TIMEOUT |
기간 문자열 | 5m |
스캔의 크롤 단계가 완료될 때까지 기다리는 최대 시간. 기본값은 24h. |
DAST_CRAWL_WORKER_COUNT |
숫자 | 3 |
사용할 최대 동시 브라우저 인스턴스 수. GitLab.com의 인스턴스 러너의 경우 최대 3개를 권장합니다. 더 많은 리소스를 가진 프라이빗 러너는 더 높은 숫자에서 이점을 얻을 수 있지만 5~7개 인스턴스 이후에는 거의 이점이 없을 것입니다. 기본값은 동적으로 사용 가능한 논리적 CPU 수와 같습니다. |
DAST_PAGE_DOM_READY_TIMEOUT |
기간 문자열 | 7s |
탐색이 완료된 후 브라우저가 페이지가 로드되어 분석 준비가 완료되었다고 고려할 때까지 기다리는 최대 시간. 기본값은 6s. |
DAST_PAGE_DOM_STABLE_WAIT |
기간 문자열 | 200ms |
페이지가 안정적인지 확인하기 전에 DOM 업데이트를 기다리는 시간을 정의합니다. 기본값은 500ms. |
DAST_PAGE_ELEMENT_READY_TIMEOUT |
기간 문자열 | 600ms |
요소를 분석 준비가 완료되었다고 결정하기 전에 기다리는 최대 시간. 기본값은 300ms. |
DAST_PAGE_IS_LOADING_ELEMENT |
선택기 | css:#page-is-loading |
페이지에서 더 이상 보이지 않을 때 분석기에 페이지 로딩이 완료되어 스캔이 계속될 수 있음을 나타내는 선택기. DAST_PAGE_IS_READY_ELEMENT와 함께 사용할 수 없습니다. |
DAST_PAGE_IS_READY_ELEMENT |
선택기 | css:#page-is-ready |
페이지에서 보이는 것이 감지될 때 분석기에 페이지 로딩이 완료되어 스캔이 계속될 수 있음을 나타내는 선택기. DAST_PAGE_IS_LOADING_ELEMENT와 함께 사용할 수 없습니다. |
DAST_PAGE_MAX_RESPONSE_SIZE_MB |
숫자 | 15 |
HTTP 응답 본문의 최대 크기. 이보다 큰 본문을 가진 응답은 브라우저에 의해 차단됩니다. 기본값은 10 MB. |
DAST_PAGE_READY_AFTER_ACTION_TIMEOUT |
기간 문자열 | 7s |
브라우저가 페이지가 로드되어 분석 준비가 완료되었다고 고려할 때까지 기다리는 최대 시간. 기본값은 7s. |
DAST_PAGE_READY_AFTER_NAVIGATION_TIMEOUT |
기간 문자열 | 15s |
브라우저가 한 페이지에서 다른 페이지로 이동할 때까지 기다리는 최대 시간. 기본값은 15s. |
DAST_PASSIVE_SCAN_WORKER_COUNT |
정수 | 5 |
병렬로 패시브 스캔하는 워커 수. 기본값은 사용 가능한 CPU 수. |
DAST_PKCS12_CERTIFICATE_BASE64 |
문자열 | ZGZkZ2p5NGd... |
상호 TLS가 필요한 사이트에 사용되는 PKCS12 인증서. base64 텍스트로 인코딩해야 합니다. |
DAST_PKCS12_PASSWORD |
문자열 | password |
DAST_PKCS12_CERTIFICATE_BASE64에 사용되는 인증서의 비밀번호. GitLab UI를 사용하여 민감한 사용자 지정 CI/CD 변수를 만드세요. |
DAST_REQUEST_ADVERTISE_SCAN |
불리언 | true |
전송된 모든 요청에 Via: GitLab DAST <version> 헤더를 추가하여 요청이 GitLab DAST 스캔의 일부로 전송되었음을 알리려면 true로 설정합니다. 기본값: false. |
DAST_REQUEST_COOKIES |
딕셔너리 | abtesting_group:3,region:locked |
모든 요청에 추가할 쿠키 이름 및 값. |
DAST_REQUEST_HEADERS |
문자열 | Cache-control:no-cache |
쉼표로 구분된 요청 헤더 이름 및 값 목록으로 설정합니다. 지원되지 않는 헤더: content-length, cookie2, keep-alive, hosts, trailer, transfer-encoding, 및 proxy- 접두사가 있는 모든 헤더. |
DAST_REQUEST_USER_AGENT |
문자열 | 브라우저에서 전송하는 user-agent 문자열을 변경하도록 설정합니다. 기본 user-agent는 Linux의 Google Chrome입니다. | |
DAST_SCOPE_ALLOW_HOSTS |
문자열 목록 | site.com,another.com |
이 변수에 포함된 호스트 이름은 크롤링될 때 범위 내에 있는 것으로 간주됩니다. 기본적으로 DAST_TARGET_URL 호스트 이름이 허용된 호스트 목록에 포함됩니다. DAST_REQUEST_HEADERS를 사용하여 설정된 헤더는 이 호스트 이름에 대한 모든 요청에 추가됩니다. |
DAST_SCOPE_EXCLUDE_ELEMENTS |
선택기 | a[href='2.html'],css:.no-follow |
스캔 시 무시되는 선택기의 쉼표로 구분된 목록. |
DAST_SCOPE_EXCLUDE_HOSTS |
문자열 목록 | site.com,another.com |
이 변수에 포함된 호스트 이름은 제외된 것으로 간주되고 연결이 강제로 끊깁니다. |
DAST_SCOPE_IGNORE_HOSTS |
문자열 목록 | site.com,another.com |
이 변수에 포함된 호스트 이름은 액세스되지만 공격하지 않고 보고하지 않습니다. |
DAST_TARGET_CHECK_SKIP |
불리언 | true |
스캔 전에 DAST가 대상을 사용 가능한지 확인하지 못하게 하려면 true로 설정합니다. 기본값: false. |
DAST_TARGET_CHECK_TIMEOUT |
숫자 | 60 |
대상 가용성을 기다리는 시간 제한(초). 기본값: 60s. |
DAST_TARGET_PATHS_FILE |
문자열 | /builds/project/urls.txt |
전체 사이트를 크롤링하는 대신 이 경로만 스캔합니다. DAST_TARGET_URL에 대한 상대적 URL 경로 목록이 포함된 파일 경로로 설정합니다. 파일은 줄당 하나의 경로가 있는 일반 텍스트여야 합니다. 이 설정이 있으면 DAST_CRAWL_MAX_DEPTH의 기본값이 1로 설정됩니다. 이를 방지하려면 DAST_OVERRIDE_MAX_DEPTH: false를 설정합니다. |
DAST_TARGET_PATHS |
문자열 | /page1.html,/category1/page3.html |
전체 사이트를 크롤링하는 대신 이 경로만 스캔합니다. DAST_TARGET_URL에 대한 상대적 URL 경로의 쉼표로 구분된 목록으로 설정합니다. 이 설정이 있으면 DAST_CRAWL_MAX_DEPTH의 기본값이 1로 설정됩니다. 이를 방지하려면 DAST_OVERRIDE_MAX_DEPTH: false를 설정합니다. |
DAST_TARGET_URL |
URL | https://site.com |
스캔할 웹 사이트의 URL. |
DAST_USE_CACHE |
불리언 | true |
캐싱을 비활성화하려면 false로 설정합니다. 기본값: true. 참고: 캐시를 비활성화하면 OOM 이벤트 또는 DAST job 타임아웃이 발생할 수 있습니다. |
DAST_CRAWL_GROUPED_URLS |
문자열 | https://example.com/hello/*,https://example.com/world/*/details |
(실험적) 적어도 하나의 *가 있는 와일드카드 URL 패턴의 쉼표로 구분된 목록으로 설정합니다. 스캔 시간을 줄이기 위해 스캐너는 패턴당 일치하는 URL 하나만 그룹화하고 분석합니다. |
인증#
이 변수는 스캐너에 애플리케이션으로 인증하는 방법을 알려줍니다.
| CI/CD 변수 | 유형 | 예시 | 설명 |
|---|---|---|---|
DAST_AUTH_AFTER_LOGIN_ACTIONS |
문자열 | select(option=id:accept-yes),click(on=css:.continue) |
로그인 후 로그인 확인 전에 수행할 작업의 쉼표로 구분된 목록. click 및 select 작업을 지원합니다. 로그인 양식 제출 후 추가 작업 수행을 참조하세요. |
DAST_AUTH_BEFORE_LOGIN_ACTIONS |
선택기 | css:.user,id:show-login-form |
로그인 양식에 DAST_AUTH_USERNAME 및 DAST_AUTH_PASSWORD를 입력하기 전에 클릭할 요소를 나타내는 선택기의 쉼표로 구분된 목록. |
DAST_AUTH_CLEAR_INPUT_FIELDS |
불리언 | true |
수동 로그인 시도 전에 사용자 이름 및 비밀번호 필드 지우기를 비활성화합니다. 기본값은 false. |
DAST_AUTH_COOKIE_NAMES |
문자열 | sessionID,groupName |
인증에 사용되는 쿠키를 지정하기 위해 쿠키 이름의 쉼표로 구분된 목록으로 설정합니다. |
DAST_AUTH_FIRST_SUBMIT_FIELD |
선택기 | css:input[type=submit] |
다중 페이지 로그인 프로세스의 사용자 이름 양식을 제출하기 위해 클릭되는 요소를 설명하는 선택기. |
DAST_AUTH_NEGOTIATE_DELEGATION |
문자열 | *.example.com,example.com,*.EXAMPLE.COM,EXAMPLE.COM |
통합 인증 및 위임을 허용해야 하는 서버. 이 속성은 두 가지 Chromium 정책을 설정합니다: AuthServerAllowlist 및 AuthNegotiateDelegateAllowlist. GitLab 17.6에서 도입. |
DAST_AUTH_OTP_FIELD |
선택기 | name:otp |
로그인 양식에서 일회용 비밀번호를 입력하는 데 사용되는 요소를 설명하는 선택기. |
DAST_AUTH_OTP_KEY |
문자열 | I5UXITDBMIQEIQKTKQFA==== |
웹 사이트에 인증하기 위해 일회용 비밀번호를 생성할 때 사용하는 Base32 인코딩된 비밀 키. |
DAST_AUTH_OTP_SUBMIT_FIELD |
선택기 | css:input[type=submit] |
사용자 이름과 별도인 경우 OTP 양식을 제출하기 위해 클릭되는 요소를 설명하는 선택기. |
DAST_AUTH_PASSWORD |
문자열 | P@55w0rd! |
웹 사이트에 인증할 비밀번호. |
DAST_AUTH_PASSWORD_FIELD |
선택기 | name:password |
로그인 양식에서 비밀번호를 입력하는 데 사용되는 요소를 설명하는 선택기. |
DAST_AUTH_SUBMIT_FIELD |
선택기 | css:input[type=submit] |
단일 페이지 로그인 양식의 로그인 양식 또는 다중 페이지 로그인 양식의 비밀번호 양식을 제출하기 위해 클릭되는 요소를 설명하는 선택기. |
DAST_AUTH_SUCCESS_IF_AT_URL |
URL | https://www.site.com/welcome* |
로그인 양식이 제출된 후 인증이 성공했는지 결정하기 위해 브라우저의 URL과 비교되는 URL. 동적 URL을 일치시키기 위해 와일드카드 *를 사용할 수 있습니다. |
DAST_AUTH_SUCCESS_IF_ELEMENT_FOUND |
선택기 | css:.user-avatar |
로그인 양식이 제출된 후 인증이 성공했는지 결정하기 위해 존재가 사용되는 요소를 설명하는 선택기. |
DAST_AUTH_SUCCESS_IF_NO_LOGIN_FORM |
불리언 | true |
로그인 양식이 제출된 후 로그인 양식의 부재를 확인하여 성공적인 인증을 확인합니다. 이 성공 확인은 기본적으로 활성화됩니다. |
DAST_AUTH_TYPE |
문자열 | basic-digest |
사용할 인증 유형. |
DAST_AUTH_URL |
URL | https://www.site.com/login |
대상 웹 사이트의 로그인 양식이 포함된 페이지의 URL. DAST_AUTH_USERNAME과 DAST_AUTH_PASSWORD는 로그인 양식과 함께 제출되어 인증된 스캔을 만듭니다. |
DAST_AUTH_USERNAME |
문자열 | user@email.com |
웹 사이트에 인증할 사용자 이름. |
DAST_AUTH_USERNAME_FIELD |
선택기 | name:username |
로그인 양식에서 사용자 이름을 입력하는 데 사용되는 요소를 설명하는 선택기. |
DAST_SCOPE_EXCLUDE_URLS |
URL | https://site.com/.*/sign-out |
인증된 스캔 중에 건너뛸 URL; 쉼표로 구분. 여러 URL을 일치시키기 위해 정규식 구문을 사용할 수 있습니다. 예를 들어 .*는 임의의 문자 시퀀스와 일치합니다. |
DAST_AUTH_REPORT |
불리언 | true |
인증 프로세스 중 수행된 단계를 자세히 설명하는 보고서를 생성하려면 true로 설정합니다. 생성된 보고서에 액세스하려면 gl-dast-debug-auth-report.html을 CI job 아티팩트로 정의해야 합니다. 보고서 내용은 인증 실패를 디버깅할 때 도움이 됩니다. 기본값은 false. |
