취약점 관리 정책
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
취약점 관리 정책을 사용하여 더 이상 감지되지 않는 취약점을 자동으로 해결하거나, 특정 기준과 일치하는 취약점을 자동으로 무시하거나, 취약점 심각도 수준을 재정의합니다. 스캐너가 기본 브랜치에서 취약점을 감지하면 스캐너는 Needs triage 상태로 취약점 레코드를 생성합니다.
히스토리
- GitLab 17.7에서
vulnerability_management_policy_type이라는 플래그로 프로젝트에 대한 정책 적용 지원이 도입됨. 기본적으로 활성화됨. - GitLab 17.8에서 그룹 수준에 대한 그룹 정책 적용 지원이
vulnerability_management_policy_type_group이라는 플래그로 도입됨. 기본적으로 활성화됨. - GitLab 17.9에서 일반적으로 사용 가능해짐. 기능 플래그
vulnerability_management_policy_type및vulnerability_management_policy_type_group이 제거됨.
취약점 관리 정책을 사용하여 더 이상 감지되지 않는 취약점을 자동으로 해결하거나, 특정 기준과 일치하는 취약점을 자동으로 무시하거나, 취약점 심각도 수준을 재정의합니다. 이를 통해 취약점 트리아지 작업 부하를 줄일 수 있습니다.
스캐너가 기본 브랜치에서 취약점을 감지하면 스캐너는 Needs triage 상태로 취약점 레코드를 생성합니다. 취약점이 수정되고 다음 보안 스캔이 실행되면 스캔은 레코드의 활동 로그에 No longer detected를 추가하지만 레코드의 상태는 변경되지 않습니다. 수동으로 또는 취약점 관리 정책을 사용하여 상태를 Resolved로 변경할 수 있습니다.
취약점 관리 정책은 규칙이 일관되게 적용되도록 합니다. 예를 들어, 다음을 수행하는 정책을 만들 수 있습니다:
- 다음 모든 기준을 충족하는 취약점을 자동으로 해결합니다:
- 기본 브랜치에서 더 이상 감지되지 않습니다.
- SAST 스캔에서 발견됩니다.
- 낮은 위험.
- Used in tests 이유로 테스트 파일에서 발견된 취약점을 자동으로 무시합니다.
- False positive 이유로 특정 CVE 식별자가 있는 취약점을 무시합니다.
취약점 관리 정책은 Needs triage 또는 Confirmed 상태의 취약점에만 영향을 미칩니다.
취약점 관리 정책은 파이프라인이 기본 브랜치에 대해 실행될 때 또는 어드바이저리 스캔에 의해 취약점이 감지될 때 적용됩니다.
정책이 자동 해결을 사용하는 경우, 동일한 스캐너에 의해 더 이상 감지되지 않고 정책 규칙과 일치하는 각 취약점에 대해:
- GitLab Security Policy Bot 사용자가 취약점 레코드의 상태를 Resolved로 설정합니다.
- 상태 변경에 대한 메모가 취약점 레코드에 추가됩니다.
정책이 자동 무시를 사용하는 경우, 정책 기준과 일치하는 각 취약점에 대해:
- GitLab Security Policy Bot 사용자가 취약점 레코드의 상태를 Dismissed로 설정합니다.
- 무시 이유가 정책 구성에 따라 설정됩니다.
- 상태 변경에 대한 메모가 취약점 레코드에 추가됩니다.
파이프라인 부하와 기간을 제한하기 위해 자동 해결 또는 자동 무시 작업에 대해 파이프라인당 최대 1,000개의 취약점이 처리됩니다. 자동 해결 또는 자동 무시 작업은 모든 일치하는 취약점이 처리될 때까지 후속 파이프라인에서 최대값까지 재개됩니다.
제한 사항#
- 각 정책에 최대 5개의 규칙을 할당할 수 있습니다.
- 각 보안 정책 프로젝트에 최대 5개의 취약점 관리 정책을 할당할 수 있습니다.
- 비밀 감지 스캔에서 이전에 감지된 비밀 키가 더 이상 감지되지 않는다는 것을 발견하면, 이미 노출된 비밀 키이기 때문에 취약점은 자동으로 해결되지 않습니다. 대신 Needs Triage 상태로 남아 있습니다. 취약점 상태는 비밀 키가 취소되거나 교체된 후에만 수동으로 해결해야 합니다.
자동 무시 정책#
히스토리
- GitLab 18.8에서
auto_dismiss_vulnerability_policies라는 기능 플래그로 그룹 및 해당 그룹의 모든 프로젝트에 대한 자동 무시 정책 지원이 도입됨. 기본적으로 활성화됨. - GitLab 18.10에서 일반적으로 사용 가능해짐. 기능 플래그
auto_dismiss_vulnerability_policies가 제거됨.
자동 무시 정책은 다음 기준을 지원합니다:
- 파일 경로: 발견된 파일 경로를 기준으로 취약점을 매칭합니다.
test/**/*과 같은 glob 패턴을 지원합니다. - 디렉터리: 특정 디렉터리에서 발견된 취약점을 매칭합니다.
vendor/*과 같은 glob 패턴을 지원합니다. - 식별자: 식별자(CVE, CWE 또는 스캐너별 ID)를 기준으로 취약점을 매칭합니다.
CVE-2023-*과 같은 와일드카드 패턴을 지원합니다.
또한 식별자 기준은 다음도 지원합니다:
- GitLab 18.10에서
security_policies_severity_customize라는 기능 플래그로 도입된identifier_type및values기준 필드. 기본적으로 활성화됨. - GitLab 19.0에서 일반 공개됨. 기능 플래그
security_policies_severity_customize가 제거됨.
여러 기준을 결합할 수 있습니다:
AND논리. 무시되려면 취약점이 모든 기준과 일치해야 합니다.OR논리. 무시되려면 취약점이 규칙 중 하나와 일치할 수 있습니다.
다음 무시 이유가 지원됩니다:
- Acceptable risk: 취약점이 알려져 있으며 비즈니스 위험으로 수용됩니다.
- False positive: 취약점이 잘못 보고됩니다.
- Mitigating control: 다른 컨트롤에 의해 동등한 보호가 제공됩니다.
- Used in tests: 취약점이 테스트 코드 또는 테스트 데이터의 일부입니다.
- Not applicable: 취약점이 업데이트되지 않을 코드에 있습니다.
취약점 관리 정책 생성#
특정 기준과 일치하는 취약점을 자동으로 해결하거나 무시하는 취약점 관리 정책을 생성합니다.
사전 요구 사항:
- 기본적으로 그룹, 서브그룹 또는 프로젝트 Owner만 보안 정책 프로젝트를 생성하거나 할당하는 데 필요한 권한을 가지고 있습니다. 사용자 정의 역할을 사용하여 변경할 수 있습니다.
취약점 관리 정책을 생성하려면:
- 상단 바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Secure > Policies로 이동합니다.
- New policy를 선택합니다.
- Vulnerability management policy에서 Select policy를 선택합니다.
- 필드를 완성하고 정책 상태를 Enabled로 설정합니다.
- Create policy를 선택합니다.
- 머지 리퀘스트를 검토하고 병합합니다.
취약점 관리 정책이 생성되면 기본 브랜치의 파이프라인에 정책 규칙이 적용됩니다.
취약점 관리 정책 편집#
취약점 관리 정책의 규칙을 변경하려면 편집합니다.
- 상단 바에서 검색 또는 이동을 선택하고 프로젝트를 찾습니다.
- Secure > Policies로 이동합니다.
- 정책 행에서 Edit를 선택합니다.
- 정책의 세부 정보를 편집합니다.
- Save changes를 선택합니다.
- 머지 리퀘스트를 검토하고 병합합니다.
취약점 관리 정책이 업데이트되었습니다. 다음에 기본 브랜치에 대해 파이프라인이 실행될 때 정책의 규칙이 적용됩니다.
스키마#
취약점 관리 정책이 생성되거나 편집될 때, 유효한지 확인하기 위해 취약점 관리 정책 스키마와 대조하여 확인됩니다.
