유효성 검사
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
이 기능의 가용성은 기능 플래그로 제어됩니다. GitLab 유효성 검사는 액세스 토큰과 같은 시크릿이 활성화되어 있는지 확인합니다. 활성 시크릿은 합법적인 사용자를 가장하는 데 사용될 수 있으므로 비활성 시크릿보다 더 큰 보안 위험을 초래합니다.
히스토리
- GitLab 18.0에서
validity_checks라는 플래그와 함께 도입됨. 기본적으로 비활성화됩니다. - GitLab 18.2에서
validity_checks_security_finding_status라는 플래그와 함께 추가 액세스가 도입됨. 기본적으로 비활성화됩니다. - GitLab 18.5에서 GitLab.com에서 활성화됨.
- GitLab 18.5에서 실험에서 베타로 변경됨.
- GitLab 18.7에서 일반 공개됨. 기능 플래그
validity_checks_security_finding_status제거됨. - GitLab 18.7에서 일반 공개됨. 기능 플래그
validity_checks가 기본적으로 활성화됨. - GitLab 18.8에서 기능 플래그
validity_checks제거됨.
이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참조하세요.
GitLab 유효성 검사는 액세스 토큰과 같은 시크릿이 활성화되어 있는지 확인합니다. 시크릿은 다음 경우에 활성화됩니다:
- 만료되지 않았습니다.
- 인증에 사용할 수 있습니다.
활성 시크릿은 합법적인 사용자를 가장하는 데 사용될 수 있으므로 비활성 시크릿보다 더 큰 보안 위험을 초래합니다. 여러 시크릿이 한 번에 노출되면 어떤 시크릿이 활성화되어 있는지 아는 것이 트리아지 및 수정의 중요한 부분입니다.
유효성 검사 활성화#
사전 요구 사항:
- 파이프라인 보안 스캔이 활성화된 프로젝트가 있어야 합니다.
- 인스턴스에 파트너 유효성 검사 API에 대한 아웃바운드 네트워크 액세스가 있어야 합니다.
프로젝트에 대한 유효성 검사를 활성화하려면:
- 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
- 왼쪽 사이드바에서 Secure > Security configuration을 선택합니다.
- Pipeline Secret Detection 아래에서 Validity checks 토글을 켭니다.
secret_detection CI/CD job이 완료되면 GitLab은 감지된 시크릿의 상태를 확인합니다.
시크릿 상태를 보려면 취약점 세부 정보 페이지를 확인하세요. 예를 들어 시크릿을 취소한 후 상태를 업데이트하려면 secret_detection CI/CD job을 다시 실행하세요.
커버리지#
히스토리
이 기능의 가용성은 기능 플래그로 제어됩니다. 자세한 내용은 히스토리를 참조하세요.
유효성 검사는 다음 시크릿 유형을 지원합니다:
GitLab 토큰:
- GitLab 개인 액세스 토큰
- 라우팅 가능한 GitLab 개인 액세스 토큰
- GitLab 배포 토큰
- GitLab Runner 인증 토큰
- 라우팅 가능한 GitLab Runner 인증 토큰
- GitLab Kubernetes 에이전트 토큰
- GitLab SCIM OAuth 토큰
- GitLab CI/CD job 토큰
- GitLab 수신 이메일 토큰
- GitLab 피드 토큰 (v2)
- GitLab 파이프라인 트리거 토큰
외부 서비스 토큰:
- AWS IAM 시크릿 액세스 키
- GCP API 키
- GCP OAuth 클라이언트 시크릿
- Postman API 토큰
아웃바운드 네트워크 액세스 구성#
유효성 검사는 오프라인 환경에서는 지원되지 않습니다. 이 기능은 감지된 토큰이 활성 상태인지 확인하기 위해 파트너 유효성 검사 API에 대한 아웃바운드 네트워크 액세스가 필요합니다.
GitLab 인스턴스가 방화벽 뒤에 있지만 인터넷 액세스가 있는 경우, 각 파트너의 유효성 검사 API URL을 허용 목록에 추가하세요. 지원되는 URL은 다음과 같습니다:
https://sts.amazonaws.com/https://oauth2.googleapis.com/tokeninfohttps://api.getpostman.com/me
이러한 엔드포인트에 대한 아웃바운드 액세스를 허용할 수 없는 경우 이 기능을 활성화하지 마세요. 제한된 네트워크 환경에서 유효성 검사를 활성화하면 유효성 검사 중에 네트워크 오류가 발생합니다.
유효성 검사 워크플로우#
시크릿 감지 분석기가 잠재적 시크릿을 감지하면 GitLab은 벤더와 함께 시크릿의 상태를 확인하고 감지에 다음 상태 중 하나를 할당합니다:
- Possibly active: GitLab이 시크릿 상태를 확인할 수 없거나 시크릿 유형이 유효성 검사에서 지원되지 않습니다.
- Active: 시크릿이 만료되지 않았으며 인증에 사용할 수 있습니다.
- Inactive: 시크릿이 만료되거나 취소되어 인증에 사용할 수 없습니다.
활성 및 possibly active 시크릿은 가능한 한 빨리 교체해야 합니다.
소스 코드 보기
%%{init: { "fontFamily": "GitLab Sans" }}%%
flowchart TD
accTitle: Validity checks workflow
accDescr: Process flow for secret detection showing three possible outcomes.
A[Secret detection analyzer runs] --> B[Secret detected]
B --> C{Verification<br>with vendor}
C -->|Cannot verify or unsupported type| D[Possibly active]
C -->|Valid and not expired| E[Active]
C -->|Expired or revoked| F[Inactive]</code></pre></details></div>
시크릿 상태 새로 고침#
히스토리
유효성 검사가 실행된 후 토큰이 취소되거나 만료되더라도 토큰 상태는 자동으로 업데이트되지 않습니다.
토큰을 업데이트하려면 상태를 수동으로 새로 고칠 수 있습니다:
- 취약점 보고서에서 새로 고치려는 취약점을 선택합니다.
- 토큰 상태 옆에서 Retry([retry])를 선택합니다.
유효성 검사가 다시 실행되고 토큰 상태가 업데이트됩니다.
트러블슈팅#
유효성 검사를 사용할 때 다음 문제가 발생할 수 있습니다.
예상치 못한 토큰 상태#
GitLab이 유효성을 확인할 수 없는 경우 토큰이 possibly active 상태를 갖습니다.
이는 다음과 같은 이유 때문일 수 있습니다:
- 시크릿 유효성 검사 job이 실행되지 않았습니다.
- 시크릿 유형이 유효성 검사에서 지원되지 않습니다.
- 토큰 제공자에 연결하는 데 문제가 있었습니다.
이 문제를 해결하려면 secret_detection job을 다시 실행하세요. 몇 번 시도해도 상태가 지속되면 시크릿을 수동으로 검증해야 할 수 있습니다.
토큰이 활성화되지 않았다고 확신하지 않는 한 possibly active 시크릿을 가능한 한 빨리 취소하고 교체해야 합니다.
외부 서비스 토큰 유효성 검사 지연#
외부 서비스 토큰 유효성 검사는 외부 서비스에서 부과하는 속도 제한으로 인해 GitLab 토큰 유효성 검사보다 오래 걸릴 수 있습니다. 외부 서비스 토큰이 일시적으로 possibly active 상태를 표시하면 이는 일반적인 현상입니다. 유효성 검사가 대기열에 추가되어 곧 완료됩니다. Last verified at 타임스탬프를 확인하여 상태가 마지막으로 업데이트된 시간을 확인하거나 잠시 후 페이지를 새로 고치세요.
