InfoGrab Docs

사용 가능한 CI/CD 변수 및 구성 파일

요약

빠르게 시작할 수 있도록 GitLab은 구성 파일 gitlab-dast-api-config.yml을 제공합니다. 다음 프로파일은 기본 구성 파일에 미리 정의되어 있습니다.

히스토리
  • GitLab 17.1에서 템플릿 이름이 DAST-API.gitlab-ci.yml에서 API-Security.gitlab-ci.yml로, 변수 접두사가 DAST_API_에서 APISEC_변경됨.

사용 가능한 CI/CD 변수#

CI/CD 변수 설명
SECURE_ANALYZERS_PREFIX 분석기를 다운로드할 Docker 레지스트리 기본 주소를 지정합니다.
APISEC_DISABLED API 보안 테스트 스캔을 비활성화하려면 'true' 또는 '1'로 설정합니다.
APISEC_DISABLED_FOR_DEFAULT_BRANCH 기본(프로덕션) 브랜치에 대해서만 API 보안 테스트 스캔을 비활성화하려면 'true' 또는 '1'로 설정합니다.
APISEC_VERSION API 보안 테스트 컨테이너 버전을 지정합니다. 기본값은 3입니다.
APISEC_IMAGE_SUFFIX 컨테이너 이미지 접미사를 지정합니다. 기본값은 없음입니다.
APISEC_API_PORT API 보안 테스트 엔진에서 사용하는 통신 포트 번호를 지정합니다. 기본값은 5500입니다. GitLab 15.5에서 도입됨.
APISEC_TARGET_URL API 테스트 대상의 기본 URL입니다.
APISEC_TARGET_CHECK_SKIP 대상이 사용 가능해질 때까지 대기를 비활성화합니다. GitLab 17.1에서 도입됨.
APISEC_TARGET_CHECK_STATUS_CODE 대상 가용성 확인을 위한 예상 상태 코드를 제공합니다. 제공하지 않으면 500이 아닌 모든 상태 코드가 허용됩니다. GitLab 17.1에서 도입됨.
APISEC_CONFIG API 보안 테스트 구성 파일입니다. 기본값은 .gitlab-dast-api.yml입니다.
APISEC_PROFILE 테스트 중에 사용할 구성 프로파일입니다. 기본값은 Quick입니다.
APISEC_EXCLUDE_PATHS 테스트에서 API URL 경로를 제외합니다.
APISEC_EXCLUDE_URLS 테스트에서 API URL을 제외합니다.
APISEC_EXCLUDE_PARAMETER_ENV 제외된 매개변수를 포함하는 JSON 문자열입니다.
APISEC_EXCLUDE_PARAMETER_FILE 제외된 매개변수를 포함하는 JSON 파일의 경로입니다.
APISEC_REQUEST_HEADERS 각 스캔 요청에 포함할 헤더의 쉼표로 구분된(,) 목록입니다. 문자 집합 제한이 있는 마스킹된 변수에 비밀 헤더 값을 저장할 때 APISEC_REQUEST_HEADERS_BASE64를 사용하는 것을 고려하세요.
APISEC_REQUEST_HEADERS_BASE64 각 스캔 요청에 포함할 헤더의 Base64로 인코딩된 쉼표로 구분된(,) 목록입니다. GitLab 15.6에서 도입됨.
APISEC_OPENAPI OpenAPI 사양 파일 또는 URL입니다.
APISEC_OPENAPI_RELAXED_VALIDATION 문서 검증을 완화합니다. 기본값은 비활성화입니다.
APISEC_OPENAPI_ALL_MEDIA_TYPES 요청을 생성할 때 하나 대신 지원되는 모든 미디어 유형을 사용합니다. 테스트 기간이 길어집니다. 기본값은 비활성화입니다.
APISEC_OPENAPI_MEDIA_TYPES 테스트에 허용되는 콜론(:)으로 구분된 미디어 유형입니다. 기본값은 비활성화입니다.
APISEC_HAR HTTP Archive(HAR) 파일입니다.
APISEC_GRAPHQL GraphQL 엔드포인트의 경로입니다(예: /api/graphql). GitLab 15.4에서 도입됨.
APISEC_GRAPHQL_SCHEMA JSON 형식의 GraphQL 스키마의 URL 또는 파일명입니다. GitLab 15.4에서 도입됨.
APISEC_POSTMAN_COLLECTION Postman 컬렉션 파일입니다.
APISEC_POSTMAN_COLLECTION_VARIABLES Postman 변수 값을 추출하기 위한 JSON 파일의 경로입니다. 쉼표로 구분된(,) 파일 지원은 GitLab 15.1에서 도입됨.
APISEC_OVERRIDES_FILE 재정의를 포함하는 JSON 파일의 경로입니다.
APISEC_OVERRIDES_ENV 재정의할 헤더를 포함하는 JSON 문자열입니다.
APISEC_OVERRIDES_CMD 재정의 명령입니다.
APISEC_OVERRIDES_CMD_VERBOSE 임의의 값으로 설정되면 재정의 명령 출력을 gl-api-security-scanner.log job 아티팩트 파일에 기록합니다.
APISEC_PER_REQUEST_SCRIPT 요청별 스크립트의 전체 경로 및 파일명입니다. 데모 프로젝트의 예시를 참조하세요. GitLab 17.2에서 도입됨.
APISEC_PRE_SCRIPT 스캔 세션이 시작되기 전에 사용자 명령이나 스크립트를 실행합니다. 패키지 설치 등 특권 작업에는 sudo를 사용해야 합니다.
APISEC_POST_SCRIPT 스캔 세션이 완료된 후에 사용자 명령이나 스크립트를 실행합니다. 패키지 설치 등 특권 작업에는 sudo를 사용해야 합니다.
APISEC_OVERRIDES_INTERVAL 재정의 명령을 실행하는 빈도(초 단위)입니다. 기본값은 0(한 번)입니다.
APISEC_HTTP_USERNAME HTTP 인증을 위한 사용자명입니다.
APISEC_HTTP_PASSWORD HTTP 인증을 위한 비밀번호입니다. 대신 APISEC_HTTP_PASSWORD_BASE64를 사용하는 것을 고려하세요.
APISEC_HTTP_PASSWORD_BASE64 Base64로 인코딩된 HTTP 인증 비밀번호입니다. GitLab 15.4에서 도입됨.
APISEC_SERVICE_START_TIMEOUT 대상 API가 사용 가능해질 때까지 대기하는 시간(초 단위)입니다. 기본값은 300초입니다.
APISEC_TIMEOUT API 응답을 기다리는 시간(초 단위)입니다. 기본값은 30초입니다.
APISEC_SUCCESS_STATUS_CODES API 보안 테스트 스캔 job의 통과 여부를 결정하는 HTTP 성공 상태 코드의 쉼표로 구분된(,) 목록을 지정합니다. GitLab 17.1에서 도입됨. 예시: '200, 201, 204'

구성 파일 {#configuration-files}#

빠르게 시작할 수 있도록 GitLab은 구성 파일 gitlab-dast-api-config.yml을 제공합니다. 이 파일에는 다양한 수의 테스트를 수행하는 여러 테스트 프로파일이 있습니다. 각 프로파일의 실행 시간은 테스트 수가 늘어남에 따라 증가합니다. 구성 파일을 사용하려면 저장소의 루트에 .gitlab/gitlab-dast-api-config.yml로 추가하세요.

프로파일#

다음 프로파일은 기본 구성 파일에 미리 정의되어 있습니다. 사용자 지정 구성을 만들어 프로파일을 추가, 제거 및 수정할 수 있습니다.

Passive#

  • Application Information Check
  • Cleartext Authentication Check
  • JSON Hijacking Check
  • Sensitive Information Check
  • Session Cookie Check

Quick#

  • Application Information Check
  • Cleartext Authentication Check
  • FrameworkDebugModeCheck
  • HTML Injection Check
  • Insecure Http Methods Check
  • JSON Hijacking Check
  • JSON Injection Check
  • Sensitive Information Check
  • Session Cookie Check
  • SQL Injection Check
  • Token Check
  • XML Injection Check

Full#

  • Application Information Check
  • Cleartext AuthenticationCheck
  • CORS Check
  • DNS Rebinding Check
  • Framework Debug Mode Check
  • HTML Injection Check
  • Insecure Http Methods Check
  • JSON Hijacking Check
  • JSON Injection Check
  • Open Redirect Check
  • Sensitive File Check
  • Sensitive Information Check
  • Session Cookie Check
  • SQL Injection Check
  • TLS Configuration Check
  • Token Check
  • XML Injection Check

사용 가능한 CI/CD 변수 및 구성 파일

Tier: Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

빠르게 시작할 수 있도록 GitLab은 구성 파일 gitlab-dast-api-config.yml을 제공합니다. 다음 프로파일은 기본 구성 파일에 미리 정의되어 있습니다.

히스토리
  • GitLab 17.1에서 템플릿 이름이 DAST-API.gitlab-ci.yml에서 API-Security.gitlab-ci.yml로, 변수 접두사가 DAST_API_에서 APISEC_변경됨.

사용 가능한 CI/CD 변수#

CI/CD 변수 설명
SECURE_ANALYZERS_PREFIX 분석기를 다운로드할 Docker 레지스트리 기본 주소를 지정합니다.
APISEC_DISABLED API 보안 테스트 스캔을 비활성화하려면 'true' 또는 '1'로 설정합니다.
APISEC_DISABLED_FOR_DEFAULT_BRANCH 기본(프로덕션) 브랜치에 대해서만 API 보안 테스트 스캔을 비활성화하려면 'true' 또는 '1'로 설정합니다.
APISEC_VERSION API 보안 테스트 컨테이너 버전을 지정합니다. 기본값은 3입니다.
APISEC_IMAGE_SUFFIX 컨테이너 이미지 접미사를 지정합니다. 기본값은 없음입니다.
APISEC_API_PORT API 보안 테스트 엔진에서 사용하는 통신 포트 번호를 지정합니다. 기본값은 5500입니다. GitLab 15.5에서 도입됨.
APISEC_TARGET_URL API 테스트 대상의 기본 URL입니다.
APISEC_TARGET_CHECK_SKIP 대상이 사용 가능해질 때까지 대기를 비활성화합니다. GitLab 17.1에서 도입됨.
APISEC_TARGET_CHECK_STATUS_CODE 대상 가용성 확인을 위한 예상 상태 코드를 제공합니다. 제공하지 않으면 500이 아닌 모든 상태 코드가 허용됩니다. GitLab 17.1에서 도입됨.
APISEC_CONFIG API 보안 테스트 구성 파일입니다. 기본값은 .gitlab-dast-api.yml입니다.
APISEC_PROFILE 테스트 중에 사용할 구성 프로파일입니다. 기본값은 Quick입니다.
APISEC_EXCLUDE_PATHS 테스트에서 API URL 경로를 제외합니다.
APISEC_EXCLUDE_URLS 테스트에서 API URL을 제외합니다.
APISEC_EXCLUDE_PARAMETER_ENV 제외된 매개변수를 포함하는 JSON 문자열입니다.
APISEC_EXCLUDE_PARAMETER_FILE 제외된 매개변수를 포함하는 JSON 파일의 경로입니다.
APISEC_REQUEST_HEADERS 각 스캔 요청에 포함할 헤더의 쉼표로 구분된(,) 목록입니다. 문자 집합 제한이 있는 마스킹된 변수에 비밀 헤더 값을 저장할 때 APISEC_REQUEST_HEADERS_BASE64를 사용하는 것을 고려하세요.
APISEC_REQUEST_HEADERS_BASE64 각 스캔 요청에 포함할 헤더의 Base64로 인코딩된 쉼표로 구분된(,) 목록입니다. GitLab 15.6에서 도입됨.
APISEC_OPENAPI OpenAPI 사양 파일 또는 URL입니다.
APISEC_OPENAPI_RELAXED_VALIDATION 문서 검증을 완화합니다. 기본값은 비활성화입니다.
APISEC_OPENAPI_ALL_MEDIA_TYPES 요청을 생성할 때 하나 대신 지원되는 모든 미디어 유형을 사용합니다. 테스트 기간이 길어집니다. 기본값은 비활성화입니다.
APISEC_OPENAPI_MEDIA_TYPES 테스트에 허용되는 콜론(:)으로 구분된 미디어 유형입니다. 기본값은 비활성화입니다.
APISEC_HAR HTTP Archive(HAR) 파일입니다.
APISEC_GRAPHQL GraphQL 엔드포인트의 경로입니다(예: /api/graphql). GitLab 15.4에서 도입됨.
APISEC_GRAPHQL_SCHEMA JSON 형식의 GraphQL 스키마의 URL 또는 파일명입니다. GitLab 15.4에서 도입됨.
APISEC_POSTMAN_COLLECTION Postman 컬렉션 파일입니다.
APISEC_POSTMAN_COLLECTION_VARIABLES Postman 변수 값을 추출하기 위한 JSON 파일의 경로입니다. 쉼표로 구분된(,) 파일 지원은 GitLab 15.1에서 도입됨.
APISEC_OVERRIDES_FILE 재정의를 포함하는 JSON 파일의 경로입니다.
APISEC_OVERRIDES_ENV 재정의할 헤더를 포함하는 JSON 문자열입니다.
APISEC_OVERRIDES_CMD 재정의 명령입니다.
APISEC_OVERRIDES_CMD_VERBOSE 임의의 값으로 설정되면 재정의 명령 출력을 gl-api-security-scanner.log job 아티팩트 파일에 기록합니다.
APISEC_PER_REQUEST_SCRIPT 요청별 스크립트의 전체 경로 및 파일명입니다. 데모 프로젝트의 예시를 참조하세요. GitLab 17.2에서 도입됨.
APISEC_PRE_SCRIPT 스캔 세션이 시작되기 전에 사용자 명령이나 스크립트를 실행합니다. 패키지 설치 등 특권 작업에는 sudo를 사용해야 합니다.
APISEC_POST_SCRIPT 스캔 세션이 완료된 후에 사용자 명령이나 스크립트를 실행합니다. 패키지 설치 등 특권 작업에는 sudo를 사용해야 합니다.
APISEC_OVERRIDES_INTERVAL 재정의 명령을 실행하는 빈도(초 단위)입니다. 기본값은 0(한 번)입니다.
APISEC_HTTP_USERNAME HTTP 인증을 위한 사용자명입니다.
APISEC_HTTP_PASSWORD HTTP 인증을 위한 비밀번호입니다. 대신 APISEC_HTTP_PASSWORD_BASE64를 사용하는 것을 고려하세요.
APISEC_HTTP_PASSWORD_BASE64 Base64로 인코딩된 HTTP 인증 비밀번호입니다. GitLab 15.4에서 도입됨.
APISEC_SERVICE_START_TIMEOUT 대상 API가 사용 가능해질 때까지 대기하는 시간(초 단위)입니다. 기본값은 300초입니다.
APISEC_TIMEOUT API 응답을 기다리는 시간(초 단위)입니다. 기본값은 30초입니다.
APISEC_SUCCESS_STATUS_CODES API 보안 테스트 스캔 job의 통과 여부를 결정하는 HTTP 성공 상태 코드의 쉼표로 구분된(,) 목록을 지정합니다. GitLab 17.1에서 도입됨. 예시: '200, 201, 204'

구성 파일 {#configuration-files}#

빠르게 시작할 수 있도록 GitLab은 구성 파일 gitlab-dast-api-config.yml을 제공합니다. 이 파일에는 다양한 수의 테스트를 수행하는 여러 테스트 프로파일이 있습니다. 각 프로파일의 실행 시간은 테스트 수가 늘어남에 따라 증가합니다. 구성 파일을 사용하려면 저장소의 루트에 .gitlab/gitlab-dast-api-config.yml로 추가하세요.

프로파일#

다음 프로파일은 기본 구성 파일에 미리 정의되어 있습니다. 사용자 지정 구성을 만들어 프로파일을 추가, 제거 및 수정할 수 있습니다.

Passive#

  • Application Information Check
  • Cleartext Authentication Check
  • JSON Hijacking Check
  • Sensitive Information Check
  • Session Cookie Check

Quick#

  • Application Information Check
  • Cleartext Authentication Check
  • FrameworkDebugModeCheck
  • HTML Injection Check
  • Insecure Http Methods Check
  • JSON Hijacking Check
  • JSON Injection Check
  • Sensitive Information Check
  • Session Cookie Check
  • SQL Injection Check
  • Token Check
  • XML Injection Check

Full#

  • Application Information Check
  • Cleartext AuthenticationCheck
  • CORS Check
  • DNS Rebinding Check
  • Framework Debug Mode Check
  • HTML Injection Check
  • Insecure Http Methods Check
  • JSON Hijacking Check
  • JSON Injection Check
  • Open Redirect Check
  • Sensitive File Check
  • Sensitive Information Check
  • Session Cookie Check
  • SQL Injection Check
  • TLS Configuration Check
  • Token Check
  • XML Injection Check