사용 가능한 CI/CD 변수 및 구성 파일
- 변경 사항 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 아카이브(HAR) 파일입니다. |
APISEC_GRAPHQL
| GraphQL 엔드포인트의 경로입니다. 예시: /api/graphql . GitLab 15.4에 도입되었습니다.
|
APISEC_GRAPHQL_SCHEMA
| JSON 형식의 GraphQL 스키마의 URL 또는 파일명입니다. GitLab 15.4에 도입되었습니다. |
APISEC_POSTMAN_COLLECTION
| Postman Collection 파일입니다. |
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 작업 artifact 파일에 오버라이드 명령어 출력이 로깅됩니다.
|
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 주입 확인