사용 가능한 CI/CD 변수 및 구성 파일
- 변경됨 템플릿 이름을
DAST-API.gitlab-ci.yml
에서API-Security.gitlab-ci.yml
로 변경하고 변수를DAST_API_
에서APISEC_
로 접두사를 변경했습니다. GitLab 17.1에서.
사용 가능한 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 아카이브(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 작업 아티팩트 파일에 재정의 명령 출력을 기록합니다. |
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 |
HTTP 인증 비밀번호, base64 인코딩됨. 도입됨 GitLab 15.4에서. |
APISEC_SERVICE_START_TIMEOUT |
대상 API가 사용 가능해질 때까지 기다리는 시간(초)입니다. 기본값은 300초입니다. |
APISEC_TIMEOUT |
API 응답을 기다리는 시간(초)입니다. 기본값은 30초입니다. |
APISEC_SUCCESS_STATUS_CODES |
API 보안 테스트 스캐닝 작업이 통과했는지 판단하는 HTTP 성공 상태 코드의 쉼표로 구분된 (, ) 목록을 지정합니다. 도입됨 GitLab 17.1에서. 예: '200, 201, 204'
|
구성 파일
신속하게 시작할 수 있도록 GitLab은 구성 파일
gitlab-dast-api-config.yml
을 제공합니다.
이 파일에는 다양한 테스트 수를 수행하는 여러 테스트 프로파일이 있습니다. 각 프로파일의 실행 시간은 테스트 수가 증가함에 따라 증가합니다.
구성 파일을 사용하려면, .gitlab/gitlab-dast-api-config.yml
로 저장소의 루트에 추가하세요.
프로파일
다음 프로파일은 기본 구성 파일에 미리 정의되어 있습니다. 프로파일은 커스텀 구성을 생성하여 추가, 제거 및 수정할 수 있습니다.
패시브
- 애플리케이션 정보 확인
- 평문 인증 확인
- JSON 탈취 확인
- 민감한 정보 확인
- 세션 쿠키 확인
퀵
- 애플리케이션 정보 확인
- 평문 인증 확인
- FrameworkDebugModeCheck
- HTML 주입 확인
- 안전하지 않은 HTTP 메서드 확인
- JSON 탈취 확인
- JSON 주입 확인
- 민감한 정보 확인
- 세션 쿠키 확인
- SQL 주입 확인
- 토큰 확인
- XML 주입 확인
풀
- 애플리케이션 정보 확인
- 평문 인증 확인
- CORS 확인
- DNS 리바인딩 확인
- 프레임워크 디버그 모드 확인
- HTML 주입 확인
- 안전하지 않은 HTTP 메서드 확인
- JSON 탈취 확인
- JSON 주입 확인
- 오픈 리다이렉트 확인
- 민감한 파일 확인
- 민감한 정보 확인
- 세션 쿠키 확인
- SQL 주입 확인
- TLS 구성 확인
- 토큰 확인
- XML 주입 확인