취약점 관리 정책
GitLab에서 취약점 관리 정책을 정의하고 적용하여 취약점을 자동으로 해결하고, 트리아지 작업 부하를 줄이고, 일관된 수정을 보장합니다.
히스토리 프로젝트에 정책을 적용하는 기능이 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 사유로 자동 무시합니다. 특정 CVE 식별자를 가진 취약점을 False positive 사유로 무시합니다. 프로덕션 코드에서 특정 CVE 패턴에 해당하는 취약점의 심각도를 critical로 재정의(변경)합니다. 취약점 관리 정책은 상태가 Needs triage 또는 Confirmed 인 취약점에만 적용됩니다. 취약점 관리 정책은 추적 중인 브랜치에서 파이프라인이 실행될 때 또는 권고 스캐닝으로 취약점이 탐지될 때 적용됩니다. 모든 프로젝트는 기본 브랜치를 추적합니다. 프로젝트가 보안 스캔 결과를 위해 다른 브랜치도 추적한다면, 정책 규칙은 추적 브랜치별로 따로 평가되며 해당 브랜치의 취약점만 업데이트합니다. 정책이 자동 해결을 사용하면, 같은 스캐너에서 더 이상 탐지되지 않고 정책 규칙에 해당하는 취약점마다 다음이 수행됩니다: GitLab Security Policy Bot 사용자가 취약점 레코드의 상태를 Resolved 로 설정합니다. 상태 변경에 대한 노트가 취약점 레코드에 추가됩니다. GitLab Advanced SAST를 활성화하면 자동 해결 정책이 코드가 변경되지 않았는데도 Semgrep 취약점을 해결할 수 있습니다. 이러한 취약점을 먼저 검토하려면 기존 Semgrep 취약점 검토 를 참고합니다.