DAST 프록시 기반 분석기 (폐기됨)
DAST 프록시 기반 분석기는 GitLab CI/CD 파이프라인에 추가할 수 있습니다. 이를 통해 JavaScript를 심하게 사용하지 않는 웹 애플리케이션의 취약점을 발견할 수 있습니다. 이에 사용하는 애플리케이션의 경우 DAST 브라우저 기반 분석기를 참조하세요.
비디오 방문을 통해 GitLab과 함께 동적 응용 프로그램 보안 테스트(DAST) 설정하는 방법을 확인하세요.
분석기는 Software Security Project Zed Attack Proxy (ZAP)를 두 가지 다른 방식으로 스캔합니다:
- 매뉴얼 스캔만(기본값). DAST는 ZAP의 베이스라인 스캔을 실행하고 애플리케이션을 미적대적으로 공격하지는 않습니다.
- 매뉴얼 및 미대적(또는 전체) 스캔. DAST는 구성하여 애플리케이션을 공격하고 보다 체계적인 보안 보고서를 생성할 수 있습니다. 리뷰 앱과 결합했을 때 매우 유용할 수 있습니다.
템플릿
- 모든 DAST 템플릿은 GitLab 15.0에서 DAST_VERSION: 3으로 업데이트되었습니다.
GitLab DAST 구성은 CI/CD 템플릿에서 정의됩니다. 템플릿의 업데이트는 GitLab 업그레이드로 제공되어 개선 사항 및 추가 기능을 활용할 수 있습니다.
이용 가능한 템플릿:
-
DAST.gitlab-ci.yml
: DAST CI/CD 템플릿의 안정 버전. -
DAST.latest.gitlab-ci.yml
: DAST 템플릿의 최신 버전.
템플릿 버전에 대한 자세한 내용은 CI/CD 문서를 참조하세요.
DAST 버전
기본적으로 DAST 템플릿은 DAST Docker 이미지의 최신 주 버전을 사용합니다. DAST_VERSION
변수를 사용하여 DAST가 어떻게 업데이트되는지 선택할 수 있습니다:
- 주 버전(예:
1
)을 고정하여 새 기능 및 수정 사항과 자동으로 DAST를 업데이트합니다. - 부 버전(예:
1.6
)을 고정하여 수정 사항만 업데이트합니다. - 특정 버전(예:
1.6.4
)을 고정하여 모든 업데이트를 방지합니다.
최신 DAST 버전은 DAST 릴리스 페이지에서 찾을 수 있습니다.
DAST 실행 옵션
DAST로 웹 애플리케이션을 검사하는 데 사용할 수 있습니다:
- 자동으로, 합병 요청을 통해 시작됨.
- 매뉴얼으로, 필요에 따라 시작됨.
이러한 실행 옵션 간의 차이점 중 일부:
자동 스캔 | 매뉴얼 스캔 |
---|---|
DAST 스캔은 합병 요청에 의해 시작됨. | DAST 스캔은 매뉴얼으로 시작되며, DevOps 수명주기 외부에서 실행됨. |
CI/CD 변수는 .gitlab-ci.yml 에서 제공됨.
| CI/CD 변수는 UI에서 제공됨. |
모든 DAST CI/CD 변수가 이용 가능함. | 일부 DAST CI/CD 변수가 이용 가능함. |
DAST.gitlab-ci.yml 템플릿.
|
DAST-On-Demand-Scan.gitlab-ci.yml 템플릿.
|
자동 DAST 실행 활성화
DAST를 자동으로 실행하려면 다음 중 하나를 활성화합니다:
- 자동 DAST를 활성화합니다 (provided by Auto DevOps).
- .gitlab-ci.yml` 파일을 매뉴얼으로 편집.
- UI를 통해 DAST를 구성합니다(#configure-dast-using-the-ui).
.gitlab-ci.yml
파일 매뉴얼으로 편집
이 방법은 GitLab CI/CD 구성 파일이 복잡한 경우에 사용합니다.
DAST 템플릿을 포함하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Build > 파이프라인 편집기를 선택합니다.
-
.gitlab-ci.yml
파일의 맨 아래에 다음을 복사하여 붙여넣습니다. 이미include
줄이 있는 경우template
줄만 추가하십시오.안정 버전의 DAST 템플릿을 사용하려면:
include: - template: DAST.gitlab-ci.yml
최신 DAST 템플릿을 사용하려면:
include: - template: DAST.latest.gitlab-ci.yml
-
다음 중 하나의 방법으로 DAST를 통해 스캔할 URL을 정의합니다:
-
DAST_WEBSITE
CI/CD 변수를 설정합니다. 설정된 경우 이 값이 우선합니다. -
프로젝트의 루트에 있는
environment_url.txt
파일에 URL을 추가합니다. 동적 환경에서 테스트하는 데 유용합니다. GitLab CI/CD 파이프라인 중에 동적으로 생성된 애플리케이션을 대상으로 DAST를 실행하려면, DAST 이전에 실행되는 작업에서 애플리케이션의 도메인을environment_url.txt
파일에 유지하도록 합니다. DAST는 자동으로environment_url.txt
파일을 구문 분석하여 스캔 대상을 찾습니다.예를 들어, DAST 이전에 실행되는 작업에서 다음과 유사한 코드를 포함할 수 있습니다:
script: - echo http://${CI_PROJECT_ID}-${CI_ENVIRONMENT_SLUG}.domain.com > environment_url.txt artifacts: paths: [environment_url.txt] when: always
이에 대한 예제는 Auto DevOps CI YAML 파일에서 확인할 수 있습니다.
-
- 유효성 검사 탭을 선택한 다음 파이프라인 유효성 검사를 선택합니다. 메시지 시뮬레이션이 성공적으로 완료됨은 파일이 유효하다는 것을 의미합니다.
- 편집 탭을 선택합니다.
- 선택 사항. 커밋 메시지에서 커밋 메시지를 사용자 정의합니다.
- 변경 사항 커밋을 선택합니다.
이제 파이프라인에 DAST 작업이 포함됩니다.
결과는 DAST 보고서 아티팩트로 저장될 수 있으며 나중에 다운로드하여 분석할 수 있습니다. 구현 제한으로 인해 항상 사용 가능한 최신 DAST 아티팩트를 사용합니다. 뒷단에서는 지정된 URL에서 테스트를 실행하고 가능한 취약점을 스캔하기 위해 GitLab DAST Docker 이미지가 사용됩니다.
UI를 사용하여 DAST 구성
이 방법을 사용하면 UI에서 옵션을 선택합니다. 선택 사항에 따라 코드 스니펫이 생성되어 .gitlab-ci.yml
파일에 붙여넣습니다.
UI를 사용하여 DAST를 구성하려면:
- 왼쪽 사이드바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- 보안 > 보안 구성을 선택합니다.
- Dynamic Application Security Testing (DAST) 섹션에서 DAST 활성화 또는 DAST 구성을 선택합니다.
- 원하는 Scanner 프로필을 선택하거나 Scanner 프로필 만들기를 선택하고 Scanner 프로필을 저장합니다. 자세한 내용은 scanner profiles을 참조하십시오.
- 원하는 Site 프로필을 선택하거나 Site 프로필 만들기를 선택하고 Site 프로필을 저장합니다. 자세한 내용은 site profiles을 참조하십시오.
- 코드 스니펫 생성을 선택합니다. 선택한 옵션에 해당하는 YAML 스니펫이 포함된 모달이 열립니다.
- 다음 중 하나를 수행합니다:
- 스니펫을 클립보드에 복사하려면 코드만 복사를 선택합니다.
- 프로젝트의
.gitlab-ci.yml
파일에 스니펫을 추가하려면 코드 복사 및.gitlab-ci.yml
파일 열기를 선택합니다. Pipeline Editor가 엽니다.- 스니펫을
.gitlab-ci.yml
파일에 붙여넣습니다. - 유효성 검사 탭을 선택한 다음 파이프라인 유효성 검사를 선택합니다. 메시지 시뮬레이션이 성공적으로 완료되었습니다는 파일이 유효함을 나타냅니다.
- 편집 탭을 선택합니다.
- 선택 사항. 커밋 메시지에서 커밋 메시지를 사용자화합니다.
- 변경 사항 커밋을 선택합니다.
- 스니펫을
이제 파이프라인에 DAST 작업이 포함됩니다.
API 스캔
- DAST API analyzer는 웹 API를 스캔하는 데 사용됩니다. GraphQL, REST 및 SOAP과 같은 웹 API 기술을 지원합니다.
URL 스캔
URL 스캔을 사용하여 DAST가 웹 사이트의 어느 부분을 스캔할지 지정할 수 있습니다.
스캔할 URL 정의
스캔할 URL은 다음 두 가지 방법 중 하나로 지정할 수 있습니다:
-
DAST_PATHS_FILE
CI/CD 변수를 사용하여 경로가 포함된 파일의 이름을 지정합니다. -
DAST_PATHS
변수를 사용하여 경로의 디렉터리을 나열합니다.
DAST_PATHS_FILE
CI/CD 변수 사용
파일에 스캔할 URL을 정의하려면 각 줄에 하나의 경로가 포함된 일반 텍스트 파일을 작성하십시오.
page1.html
/page2.html
category/shoes/page1.html
해당 파일의 URL을 스캔하려면 CI/CD 변수 DAST_PATHS_FILE
을 해당 파일의 경로로 설정하십시오.
파일은 프로젝트 리포지터리에 체크인하거나 DAST를 실행하는 작업에서 artifact로 생성할 수 있습니다.
기본적으로 DAST 스캔은 프로젝트 리포지터리를 복제하지 않습니다. 프로젝트의 경로에 상대적인 파일 경로를 DAST_PATHS_FILE
에 지정하여 DAST 작업이 프로젝트를 복제하도록 지시하십시오.
include:
- template: DAST.gitlab-ci.yml
variables:
GIT_STRATEGY: fetch
DAST_PATHS_FILE: url_file.txt # url_file.txt는 프로젝트의 루트 디렉터리에 있습니다
DAST_BROWSER_SCAN: "true" # 브라우저 기반 GitLab DAST 크롤러 사용
DAST_PATHS
CI/CD 변수 사용
CI/CD 변수에 스캔할 경로를 지정하려면 DAST_PATHS
변수에 경로의 쉼표로 구분된 디렉터리을 추가하십시오. 단일 호스트의 경로만 스캔할 수 있습니다.
include:
- template: DAST.gitlab-ci.yml
variables:
DAST_PATHS: "/page1.html,/category1/page1.html,/page3.html"
DAST_BROWSER_SCAN: "true" # 브라우저 기반 GitLab DAST 크롤러 사용
DAST_PATHS
및 DAST_PATHS_FILE
을 사용할 때 다음 사항을 참고하십시오:
-
DAST_PATHS_FILE
또는DAST_PATHS
를 사용할 때는DAST_WEBSITE
을 정의해야 합니다. 두 경우 모두 지정된 경로는 스캔할 URL을 작성하는 데DAST_WEBSITE
을 사용합니다. -
DAST_PATHS
또는DAST_PATHS_FILE
을 정의하는 경우 스파이더링이 비활성화됩니다. -
DAST_PATHS_FILE
및DAST_PATHS
를 함께 사용할 수 없습니다. -
DAST_PATHS
변수는 약 130 kb에 제한됩니다. 이를 초과하는 경로 디렉터리이 있는 경우DAST_PATHS_FILE
을 사용하십시오.
전체 스캔
나열된 경로에 대한 전체 스캔을 수행하려면 DAST_FULL_SCAN_ENABLED
CI/CD 변수를 사용하십시오.
인증
프록시 기반 분석기는 스캔 전에 사용자의 인증을 위해 브라우저 기반 분석기를 사용합니다. 구성 지침은 Authentication를 참조하십시오.
DAST 설정 사용자화
DAST의 동작을 CI/CD 변수 및 명령줄 옵션을 사용하여 사용자화할 수 있습니다. CI/CD 변수 사용은 DAST 템플릿에 포함된 값보다 우선합니다.
CI/CD 변수 사용하여 DAST 사용자화
DAST 설정은 .gitlab-ci.yml
의 variables
파라미터에서 CI/CD 변수를 사용하여 변경할 수 있습니다. 모든 DAST CI/CD 변수의 세부 정보는 사용 가능한 CI/CD 변수를 참조하십시오.
예:
include:
- template: DAST.gitlab-ci.yml
variables:
DAST_WEBSITE: https://example.com
DAST_SPIDER_MINS: 120
DAST_BROWSER_SCAN: "true" # 브라우저 기반 GitLab DAST 크롤러 사용
템플릿은 파이프라인 구성 전에 평가되므로 변수의 마지막 언급이 우선합니다.
규칙 활성화 또는 비활성화
DAST가 취약점을 스캔하는 데 사용하는 규칙의 전체 디렉터리은 ZAP 문서에서 찾을 수 있습니다.
DAST_EXCLUDE_RULES
는 지정된 ID의 규칙을 비활성화합니다.
DAST_ONLY_INCLUDE_RULES
는 스캔에 사용할 규칙 세트를 지정된 ID로 제한합니다.
DAST_EXCLUDE_RULES
및 DAST_ONLY_INCLUDE_RULES
는 상호 배타적이며 두 가지 모두 구성한 DAST 스캔은 오류로 종료됩니다.
기본적으로 긴 시간이 걸리거나 빈번히 거짓 긍정 결과를 생성하는 규칙이기 때문에 여러 규칙이 기본적으로 비활성화되어 있습니다. 비활성화된 규칙의 전체 디렉터리은 exclude_rules.yml
에서 찾을 수 있습니다.
DAST_EXCLUDE_RULES
및 DAST_ONLY_INCLUDE_RULES
디렉터리은 둘 다 값이 숫자로 해석되지 않도록 반드시 쌍따옴표("
)로 둘러싸야 합니다.
민감한 정보 숨기기
HTTP 요청 및 응답 헤더에는 쿠키 및 인증 자격 증명을 포함하여 민감한 정보가 포함될 수 있습니다. 기본적으로 다음 헤더가 마스킹됩니다.
-
Authorization
. -
Proxy-Authorization
. -
Set-Cookie
(값만). -
Cookie
(값만).
DAST_MASK_HTTP_HEADERS
CI/CD 변수를 사용하여 마스킹할 헤더를 나열할 수 있습니다. 헤더를 마스킹하는 방법에 대한 자세한 내용은 DAST 설정 사용자화를 참조하십시오.
상호 TLS 사용
상호 TLS를 사용하면 대상 애플리케이션 서버가 요청이 알려진 출처에서 오는지 확인할 수 있습니다. 브라우저 기반 스캔은 상호 TLS를 지원하지 않습니다.
요구 사항
- Base64로 인코딩된 PKCS12 인증서
- Base64로 인코딩된 PKCS12 인증서의 암호
상호 TLS를 활성화하려면:
-
PKCS12 인증서가 이미 Base64로 인코딩되지 않은 경우 로컬에서 인코딩하는 것을 권장합니다. 예를 들어 macOS 또는 Linux에서 인증서를 인코딩하려면:
base64 <경로-대-인증서-파일>
-
DAST_PKCS12_CERTIFICATE_BASE64
라는 마스킹된 변수를 만들고 PKCS12 인증서의 Base64로 인코딩된 값을 해당 변수에 저장하십시오. -
DAST_PKCS12_PASSWORD
라는 마스킹된 변수를 만들어 PKCS12 인증서의 암호를 해당 변수에 저장하십시오.
사용 가능한 CI/CD 변수
이러한 CI/CD 변수는 DAST에 특화되어 있습니다. 이를 사용하여 DAST의 동작을 귀하의 요구 사항에 맞게 사용자 정의할 수 있습니다. 인증 CI/CD 변수에 대해서는 인증을 참조하십시오.
CI/CD 변수 | 유형 | 설명 |
---|---|---|
DAST_ADVERTISE_SCAN
| boolean |
true 로 설정하여 DAST 검사의 일부로 보내진 모든 요청에 Via 헤더가 추가되어 보고됩니다.
|
DAST_AGGREGATE_VULNERABILITIES
| boolean | 취약점 집계는 기본적으로 true 로 설정됩니다. 이 기능을 비활성화하고 각 취약점을 개별적으로 보려면 false 로 설정하십시오.
|
DAST_ALLOWED_HOSTS
| 콤마로 구분된 문자열 디렉터리 | 이 변수에 포함된 호스트명은 크롤링될 때 유효범위에 있는 것으로 간주됩니다. 기본적으로 DAST_WEBSITE 호스트명이 허용된 호스트 디렉터리에 포함됩니다. DAST_REQUEST_HEADERS 를 사용하여 이러한 호스트명에 대한 모든 요청에 헤더를 추가합니다. 예시: site.com,another.com
|
DAST_API_HOST_OVERRIDE 1
| string | GitLab 16.0에서 제거됨. DAST API scan으로 대체되었습니다. |
DAST_API_SPECIFICATION 1
| URL 또는 문자열 | GitLab 16.0에서 제거됨. DAST API scan으로 대체되었습니다. |
DAST_AUTO_UPDATE_ADDONS
| boolean | ZAP 애드온은 DAST 도커 이미지에서 특정 버전에 고정됩니다. 스캔 시작 시 최신 버전을 다운로드하려면 true 로 설정하십시오. 기본값: false .
|
DAST_DEBUG 1
| boolean | 디버그 메시지 출력을 활성화합니다. 기본값: false .
|
DAST_EXCLUDE_RULES
| string | 스캔 중에 실행하지 않을 취약점 규칙 ID의 콤마로 구분된 디렉터리을 설정하십시오. 규칙 ID는 숫자이며 DAST 로그나 ZAP 프로젝트에서 찾을 수 있습니다. 예시: HTTP Parameter Override 의 규칙 ID는 10026 입니다. DAST_ONLY_INCLUDE_RULES 가 설정된 경우 사용할 수 없습니다. 참고: 이전 버전의 GitLab에서는 제외된 규칙이 실행되었지만 생성된 취약점은 억제되었습니다.
|
DAST_EXCLUDE_URLS 1
| URLs | 인증된 스캔 중에 건너뛸 URL들입니다. 콤마로 구분됩니다. 정규 표현식 구문을 사용하여 여러 URL을 일치시킬 수 있습니다. 예시: .* 는 임의의 문자 시퀀스와 일치합니다. 예시: http://example.com/sign-out .
|
DAST_FULL_SCAN_ENABLED 1
| boolean |
ZAP Full Scan 대신 ZAP Baseline Scan을 실행하려면 true 로 설정하십시오. 기본값: false .
|
DAST_HTML_REPORT
| string | GitLab 15.7에서 폐기됨. 스캔 완료 후 작성된 HTML 보고서의 파일 이름입니다. |
DAST_INCLUDE_ALPHA_VULNERABILITIES
| boolean | 알파 패시브 및 액티브 스캔 규칙을 포함하려면 true 로 설정하십시오. 기본값: false .
|
DAST_MARKDOWN_REPORT
| string | GitLab 15.7에서 폐기됨. 스캔 완료 후 작성된 Markdown 보고서의 파일 이름입니다. |
DAST_MASK_HTTP_HEADERS
| string | 마스킹할 요청 및 응답 헤더의 콤마로 구분된 디렉터리입니다. 모든 마스킹할 헤더를 포함해야 합니다. 기본적으로 마스킹되는 헤더 디렉터리을 참조하십시오. |
DAST_MAX_URLS_PER_VULNERABILITY
| number | 단일 취약점에 대해 보고되는 URL의 최대 수입니다. DAST_MAX_URLS_PER_VULNERABILITY 의 기본값은 50 입니다. 모든 URL을 나열하려면 0 으로 설정하십시오.
|
DAST_ONLY_INCLUDE_RULES
| string | 스캔을 구성하여 실행할 취약점 규칙 ID의 콤마로 구분된 디렉터리을 설정하십시오. 규칙 ID는 숫자이며 DAST 로그나 ZAP 프로젝트에서 찾을 수 있습니다. DAST_EXCLUDE_RULES 가 설정된 경우 사용할 수 없습니다.
|
DAST_PATHS
| string | DAST가 스캔할 URL의 콤마로 구분된 디렉터리을 설정하십시오. 예시: /page1.html,/category1/page3.html,/page2.html .
|
DAST_PATHS_FILE
| string |
DAST_WEBSITE 의 내부에서 스캔할 경로가 포함된 파일 경로입니다. 파일은 한 줄에 하나의 경로가 있는 일반 텍스트여야 합니다.
|
DAST_PKCS12_CERTIFICATE_BASE64
| string | 상호 TLS를 요구하는 사이트에 사용되는 PKCS12 인증서입니다. Base64 텍스트로 인코딩되어 있어야 합니다. |
DAST_PKCS12_PASSWORD
| string |
DAST_PKCS12_CERTIFICATE_BASE64 에서 사용된 인증서의 암호입니다.
|
DAST_REQUEST_HEADERS 1
| string | 요청 헤더 이름과 값을 콤마로 구분된 디렉터리으로 설정하십시오. DAST에 의해 실행되는 각 요청에 헤더가 추가됩니다. 예시: Cache-control: no-cache,User-Agent: DAST/1.0
|
DAST_SKIP_TARGET_CHECK
| boolean | 스캔하기 전에 대상이 사용 가능한지 DAST에서 확인하는 것을 방지하려면 true 로 설정하십시오. 기본값: false .
|
DAST_SPIDER_MINS 1
| number | 스파이더 스캔의 최대 기간(분)입니다. 무제한으로 설정하려면 0 으로 설정하십시오. 기본값: 1분 또는 스캔이 전체 스캔인 경우 무제한입니다.
|
DAST_SPIDER_START_AT_HOST
| boolean | 스캔 전에 대상을 해당 호스트로 재설정하는 것을 방지하려면 false 로 설정하십시오. true 로 설정하면 비호스트 대상 http://test.site/some_path 이 스캔 전에 http://test.site 로 재설정됩니다. 기본값: false .
|
DAST_TARGET_AVAILABILITY_TIMEOUT 1
| number | 대상 사용 가능 여부를 기다릴 최대 시간(초)입니다. |
DAST_USE_AJAX_SPIDER 1
| boolean | 자바스크립트를 필요로 하는 사이트를 탐색하기 위해 전통적인 스파이더 외에 AJAX 스파이더를 사용하려면 true 로 설정하십시오. 기본값: false .
|
DAST_XML_REPORT
| string | GitLab 15.7에서 폐기됨. 스캔 완료 후 작성된 XML 보고서의 파일 이름입니다. |
DAST_WEBSITE 1
| URL | 스캔할 웹사이트의 URL입니다. |
DAST_ZAP_CLI_OPTIONS
| string |
GitLab 15.7에서 폐기됨. ZAP 서버 명령줄 옵션입니다. 예시: -Xmx3072m 은 Java 최대 메모리 할당 풀 크기를 설정합니다.
|
DAST_ZAP_LOG_CONFIGURATION
| string |
GitLab 15.7에서 폐기됨. 추가 log4j 속성의 세미콜론으로 구분된 디렉터리으로 설정하십시오. 예시: logger.httpsender.name=org.parosproxy.paros.network.HttpSender;logger.httpsender.level=debug;logger.sitemap.name=org.parosproxy.paros.model.SiteMap;logger.sitemap.level=debug;
|
SECURE_ANALYZERS_PREFIX
| URL | 분석 도구를 다운로드할 Docker 레지스트리의 기본 주소를 설정합니다. |
- 온디맨드 DAST 스캔에서 사용 가능합니다.
명령줄 옵션을 사용하여 DAST 사용자 정의
모든 DAST 구성이 CI/CD 변수를 통해 사용할 수 있는 것은 아닙니다. 모든 가능한 옵션을 확인하려면 다음 구성을 실행하세요. 해당 명령줄 옵션은 작업 로그에 출력됩니다:
include:
template: DAST.gitlab-ci.yml
dast:
script:
- /analyze --help
그런 다음 script
명령을 덮어쓰고 적절한 인수를 전달해야 합니다. 예를 들어, 알파의 취약점 정의는 -a
로 포함할 수 있습니다. 다음 구성은 해당 정의를 포함합니다:
include:
template: DAST.gitlab-ci.yml
dast:
script:
- export DAST_WEBSITE=${DAST_WEBSITE:-$(cat environment_url.txt)}
- /analyze -a -t $DAST_WEBSITE
사용자 정의 ZAProxy 구성
ZAProxy 서버에는 유용한 구성 가능한 값이 많이 있습니다. -config
에 대한 많은 key/values는 문서화되어 있지 않지만, 테스트되지 않은 가능한 키 디렉터리이 있습니다. 이러한 옵션은 DAST에서 지원되지 않을 수 있으며 사용할 때 DAST 스캔을 중단시킬 수 있습니다. TOKEN
으로 Authorization 헤더 값을 다시 작성하는 예제는 다음과 같습니다:
include:
template: DAST.gitlab-ci.yml
variables:
DAST_ZAP_CLI_OPTIONS: "-config replacer.full_list(0).description=auth -config replacer.full_list(0).enabled=true -config replacer.full_list(0).matchtype=REQ_HEADER -config replacer.full_list(0).matchstr=Authorization -config replacer.full_list(0).regex=false -config replacer.full_list(0).replacement=TOKEN"
Bleeding-edge 취약점 정의
ZAP은 먼저 alpha
클래스에서 규칙을 생성합니다. 커뮤니티와의 테스트 기간 후, 그것들은 beta
로 승격됩니다. DAST는 기본적으로 beta
정의를 사용합니다. alpha
정의를 요청하려면 다음 구성에서 보여지는 DAST_INCLUDE_ALPHA_VULNERABILITIES
CI/CD 변수를 사용하세요:
include:
template: DAST.gitlab-ci.yml
variables:
DAST_INCLUDE_ALPHA_VULNERABILITIES: "true"
프로젝트 리포지터리 복제
DAST 작업이 실행될 때 프로젝트 리포지터리가 필요로 하지 않으므로, 기본적으로 GIT_STRATEGY
는 none
으로 설정됩니다.
보고서
DAST 도구는 스캔 및 결과에 대한 세부 정보를 포함하는 gl-dast-report.json
보고서 파일을 출력합니다. 이 파일은 작업의 artefacts에 포함됩니다. JSON이 기본 형식이지만 보고서를 Markdown, HTML 및 XML 형식으로 출력할 수 있습니다. 대체 형식을 지정하려면 CI/CD 변수를 사용하세요.
보고서 스키마에 대한 자세한 내용은 DAST 보고서 스키마를 참조하세요. 예제 보고서는 DAST 리포지터리에서 찾을 수 있습니다.
문제 해결
사이트 프로필을 유효성 검사하려고 할 때 unable to get local issuer certificate
오류
자체 서명된 인증서의 사용은 지원되지 않을 수 있으며 오류 메시지 unable to get local issuer certificate
와 함께 작업이 실패할 수 있습니다. 자세한 내용은 issue 416670을 참조하세요.