InfoGrab DocsInfoGrab Docs

취약점 관리 정책

요약

취약점 관리 정책을 사용하면 더 이상 탐지되지 않는 취약점을 자동으로 해결하거나, 특정 기준에 해당하는 취약점을 자동으로 무시하거나, 취약점 심각도 수준을 재정의할 수 있습니다. 스캐너가 기본 브랜치에서 취약점을 탐지하면 상태가 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 사유로 자동 무시합니다.
  • 특정 CVE 식별자를 가진 취약점을 False positive 사유로 무시합니다.
  • 프로덕션 코드에서 특정 CVE 패턴에 해당하는 취약점의 심각도를 critical로 재정의(변경)합니다.

취약점 관리 정책은 상태가 Needs triage 또는 Confirmed 인 취약점에만 적용됩니다.

취약점 관리 정책은 추적 중인 브랜치에서 파이프라인이 실행될 때 또는 권고 스캐닝으로 취약점이 탐지될 때 적용됩니다. 모든 프로젝트는 기본 브랜치를 추적합니다. 프로젝트가 보안 스캔 결과를 위해 다른 브랜치도 추적한다면, 정책 규칙은 추적 브랜치별로 따로 평가되며 해당 브랜치의 취약점만 업데이트합니다.

정책이 자동 해결을 사용하면, 같은 스캐너에서 더 이상 탐지되지 않고 정책 규칙에 해당하는 취약점마다 다음이 수행됩니다:

  • GitLab Security Policy Bot 사용자가 취약점 레코드의 상태를 Resolved로 설정합니다.
  • 상태 변경에 대한 노트가 취약점 레코드에 추가됩니다.

GitLab Advanced SAST를 활성화하면 자동 해결 정책이 코드가 변경되지 않았는데도 Semgrep 취약점을 해결할 수 있습니다. 이러한 취약점을 먼저 검토하려면 기존 Semgrep 취약점 검토를 참고합니다.

정책이 자동 무시를 사용하면, 정책 기준에 해당하는 취약점마다 다음이 수행됩니다:

  • GitLab Security Policy Bot 사용자가 취약점 레코드의 상태를 Dismissed로 설정합니다.
  • 무시 사유가 정책 구성에 따라 설정됩니다.
  • 상태 변경에 대한 노트가 취약점 레코드에 추가됩니다.

정책은 일련의 기준에 해당하는 취약점을 찾아 심각도를 재정의할 수 있습니다:

  • GitLab Security Policy Bot 사용자가 정책 구성에 따라 심각도 수준을 설정하거나 높이거나 낮춥니다.
  • 심각도 변경에 대한 노트가 취약점 레코드에 추가됩니다.

파이프라인 부하와 소요 시간을 제한하기 위해, 자동 해결 또는 자동 무시 작업은 파이프라인당 최대 1,000개의 취약점을 처리합니다. 자동 해결 또는 자동 무시 작업은 해당하는 취약점이 모두 처리될 때까지 이후 파이프라인에서 최대 개수만큼 이어서 수행됩니다.

제한 사항#

  • 정책마다 최대 다섯 개의 규칙을 지정할 수 있습니다.
  • 보안 정책 프로젝트마다 최대 다섯 개의 취약점 관리 정책을 지정할 수 있습니다.
  • 시크릿 탐지 스캔에서 이전에 탐지된 시크릿 키가 더 이상 탐지되지 않는 것으로 확인되어도, 해당 취약점은 자동으로 해결되지 않습니다. 제거된 시크릿 키가 이미 노출된 상태이므로 취약점은 Needs Triage로 남습니다. 취약점 상태는 시크릿 키를 폐기하거나 교체한 뒤에 직접 해결로 변경해야 합니다.

자동 무시 정책#

히스토리
  • 그룹과 그 그룹에 속한 프로젝트에 대한 자동 무시 정책 지원이 GitLab 18.8에서 auto_dismiss_vulnerability_policies 기능 플래그와 함께 도입되었습니다. 기본적으로 활성화돼 있습니다.
  • GitLab 18.10에서 일반 공급되었습니다. 기능 플래그 auto_dismiss_vulnerability_policies가 제거되었습니다.
  • identifier_type 및 values 기준 필드 지원이 GitLab 18.10에서 security_policies_severity_customize 기능 플래그와 함께 도입되었습니다. 기본적으로 활성화돼 있습니다.
  • GitLab 19.0에서 일반 공급되었습니다. 기능 플래그 security_policies_severity_customize가 제거되었습니다.

자동 무시 정책은 다음 기준을 지원합니다:

  • File path: 취약점이 발견된 파일 경로를 기준으로 일치시킵니다. test/**/* 같은 glob 패턴을 지원합니다.
  • Directory: 특정 디렉터리에서 발견된 취약점을 일치시킵니다. vendor/* 같은 glob 패턴을 지원합니다.
  • Identifier: 식별자(CVE, CWE, 스캐너별 ID)를 기준으로 취약점을 일치시킵니다. CVE-2023-* 같은 와일드카드 패턴을 지원합니다.

식별자 기준은 다음도 지원합니다:

  • 특정 식별자 형식과 일치시키기 위한 식별자 유형(cve, cwe, owasp) 지정.
  • values 배열을 사용해 여러 식별자를 OR 논리로 일치시키기.

여러 기준은 다음 방식으로 조합할 수 있습니다:

  • AND 논리. 무시되려면 취약점이 모든 기준에 해당해야 합니다.
  • OR 논리. 무시되려면 취약점이 규칙 중 하나에만 해당하면 됩니다.

지원되는 무시 사유는 다음과 같습니다:

  • Acceptable risk: 취약점이 알려져 있으며 비즈니스 위험으로 수용되었습니다.
  • False positive: 취약점이 잘못 보고되었습니다.
  • Mitigating control: 다른 통제 수단으로 동등한 보호가 제공됩니다.
  • Used in tests: 취약점이 테스트 코드 또는 테스트 데이터의 일부입니다.
  • Not applicable: 취약점이 더 이상 업데이트되지 않는 코드에 있습니다.

심각도 재정의 정책#

히스토리
  • GitLab 18.10에서 security_policies_severity_customize 기능 플래그와 함께 도입되었습니다. 기본적으로 활성화돼 있습니다.
  • GitLab 19.0에서 일반 공급되었습니다. 기능 플래그 security_policies_severity_customize가 제거되었습니다.

취약점의 심각도를 재정의하는 정책은 자동 무시 정책과 동일한 기준을 사용합니다:

  • File path: 취약점이 발견된 파일 경로를 기준으로 일치시킵니다.
  • Directory: 특정 디렉터리에서 발견된 취약점을 일치시킵니다.
  • Identifier: 식별자를 기준으로 취약점을 일치시킵니다.

식별자 기준에서는 특정 식별자 형식만 일치시키도록 식별자 유형을 선택적으로 지정할 수 있습니다:

  • CVE ID: CVE-2021-44228 같은 CVE 식별자나 CVE-2023-* 같은 패턴을 일치시킵니다.
  • CWE ID: CWE-79 같은 CWE 식별자나 CWE-* 같은 패턴을 일치시킵니다.
  • OWASP: A1 또는 A03:2021 같은 OWASP 식별자를 일치시킵니다.

지원되는 심각도 연산은 다음과 같습니다:

  • Set: 심각도를 특정 수준(info, low, medium, high, critical)으로 설정합니다.
  • Increase: 심각도를 한 단계 올립니다.
  • Decrease: 심각도를 한 단계 낮춥니다.

취약점 관리 정책 생성#

특정 기준에 해당하는 취약점을 자동으로 해결하거나 무시하려면 취약점 관리 정책을 만듭니다.

필수 조건:

  • 기본적으로 보안 정책 프로젝트를 만들거나 지정하는 데 필요한 권한은 그룹, 하위 그룹, 프로젝트의 Owner에게만 있습니다. 이 범위는 사용자 지정 역할로 변경할 수 있습니다.

취약점 관리 정책을 만들려면 다음과 같이 진행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Secure > Policies로 이동합니다.
  3. New policy를 선택합니다.
  4. Vulnerability management policy에서 Select policy를 선택합니다.
  5. 필드를 입력하고 정책 상태를 Enabled로 설정합니다.
  6. Create policy를 선택합니다.
  7. 머지 리퀘스트를 검토하고 머지합니다.

취약점 관리 정책을 만들고 나면 추적 중인 브랜치의 파이프라인에 정책 규칙이 적용됩니다.

취약점 관리 정책 편집#

규칙을 변경하려면 취약점 관리 정책을 편집합니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Secure > Policies로 이동합니다.
  3. 해당 정책 행에서 Edit를 선택합니다.
  4. 정책 세부 정보를 편집합니다.
  5. Save changes를 선택합니다.
  6. 머지 리퀘스트를 검토하고 머지합니다.

취약점 관리 정책이 업데이트되었습니다. 추적 중인 브랜치에서 다음 파이프라인이 실행될 때 정책 규칙이 적용됩니다.

스키마#

취약점 관리 정책을 만들거나 편집하면 취약점 관리 정책 스키마와 대조해 유효한지 확인합니다.

취약점 관리 정책

GitLab v19.5
Tier: Ultimate
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 사유로 자동 무시합니다.
  • 특정 CVE 식별자를 가진 취약점을 False positive 사유로 무시합니다.
  • 프로덕션 코드에서 특정 CVE 패턴에 해당하는 취약점의 심각도를 critical로 재정의(변경)합니다.

취약점 관리 정책은 상태가 Needs triage 또는 Confirmed 인 취약점에만 적용됩니다.

취약점 관리 정책은 추적 중인 브랜치에서 파이프라인이 실행될 때 또는 권고 스캐닝으로 취약점이 탐지될 때 적용됩니다. 모든 프로젝트는 기본 브랜치를 추적합니다. 프로젝트가 보안 스캔 결과를 위해 다른 브랜치도 추적한다면, 정책 규칙은 추적 브랜치별로 따로 평가되며 해당 브랜치의 취약점만 업데이트합니다.

정책이 자동 해결을 사용하면, 같은 스캐너에서 더 이상 탐지되지 않고 정책 규칙에 해당하는 취약점마다 다음이 수행됩니다:

  • GitLab Security Policy Bot 사용자가 취약점 레코드의 상태를 Resolved로 설정합니다.
  • 상태 변경에 대한 노트가 취약점 레코드에 추가됩니다.

GitLab Advanced SAST를 활성화하면 자동 해결 정책이 코드가 변경되지 않았는데도 Semgrep 취약점을 해결할 수 있습니다. 이러한 취약점을 먼저 검토하려면 기존 Semgrep 취약점 검토를 참고합니다.

정책이 자동 무시를 사용하면, 정책 기준에 해당하는 취약점마다 다음이 수행됩니다:

  • GitLab Security Policy Bot 사용자가 취약점 레코드의 상태를 Dismissed로 설정합니다.
  • 무시 사유가 정책 구성에 따라 설정됩니다.
  • 상태 변경에 대한 노트가 취약점 레코드에 추가됩니다.

정책은 일련의 기준에 해당하는 취약점을 찾아 심각도를 재정의할 수 있습니다:

  • GitLab Security Policy Bot 사용자가 정책 구성에 따라 심각도 수준을 설정하거나 높이거나 낮춥니다.
  • 심각도 변경에 대한 노트가 취약점 레코드에 추가됩니다.

파이프라인 부하와 소요 시간을 제한하기 위해, 자동 해결 또는 자동 무시 작업은 파이프라인당 최대 1,000개의 취약점을 처리합니다. 자동 해결 또는 자동 무시 작업은 해당하는 취약점이 모두 처리될 때까지 이후 파이프라인에서 최대 개수만큼 이어서 수행됩니다.

제한 사항#

  • 정책마다 최대 다섯 개의 규칙을 지정할 수 있습니다.
  • 보안 정책 프로젝트마다 최대 다섯 개의 취약점 관리 정책을 지정할 수 있습니다.
  • 시크릿 탐지 스캔에서 이전에 탐지된 시크릿 키가 더 이상 탐지되지 않는 것으로 확인되어도, 해당 취약점은 자동으로 해결되지 않습니다. 제거된 시크릿 키가 이미 노출된 상태이므로 취약점은 Needs Triage로 남습니다. 취약점 상태는 시크릿 키를 폐기하거나 교체한 뒤에 직접 해결로 변경해야 합니다.

자동 무시 정책#

히스토리
  • 그룹과 그 그룹에 속한 프로젝트에 대한 자동 무시 정책 지원이 GitLab 18.8에서 auto_dismiss_vulnerability_policies 기능 플래그와 함께 도입되었습니다. 기본적으로 활성화돼 있습니다.
  • GitLab 18.10에서 일반 공급되었습니다. 기능 플래그 auto_dismiss_vulnerability_policies가 제거되었습니다.
  • identifier_type 및 values 기준 필드 지원이 GitLab 18.10에서 security_policies_severity_customize 기능 플래그와 함께 도입되었습니다. 기본적으로 활성화돼 있습니다.
  • GitLab 19.0에서 일반 공급되었습니다. 기능 플래그 security_policies_severity_customize가 제거되었습니다.

자동 무시 정책은 다음 기준을 지원합니다:

  • File path: 취약점이 발견된 파일 경로를 기준으로 일치시킵니다. test/**/* 같은 glob 패턴을 지원합니다.
  • Directory: 특정 디렉터리에서 발견된 취약점을 일치시킵니다. vendor/* 같은 glob 패턴을 지원합니다.
  • Identifier: 식별자(CVE, CWE, 스캐너별 ID)를 기준으로 취약점을 일치시킵니다. CVE-2023-* 같은 와일드카드 패턴을 지원합니다.

식별자 기준은 다음도 지원합니다:

  • 특정 식별자 형식과 일치시키기 위한 식별자 유형(cve, cwe, owasp) 지정.
  • values 배열을 사용해 여러 식별자를 OR 논리로 일치시키기.

여러 기준은 다음 방식으로 조합할 수 있습니다:

  • AND 논리. 무시되려면 취약점이 모든 기준에 해당해야 합니다.
  • OR 논리. 무시되려면 취약점이 규칙 중 하나에만 해당하면 됩니다.

지원되는 무시 사유는 다음과 같습니다:

  • Acceptable risk: 취약점이 알려져 있으며 비즈니스 위험으로 수용되었습니다.
  • False positive: 취약점이 잘못 보고되었습니다.
  • Mitigating control: 다른 통제 수단으로 동등한 보호가 제공됩니다.
  • Used in tests: 취약점이 테스트 코드 또는 테스트 데이터의 일부입니다.
  • Not applicable: 취약점이 더 이상 업데이트되지 않는 코드에 있습니다.

심각도 재정의 정책#

히스토리
  • GitLab 18.10에서 security_policies_severity_customize 기능 플래그와 함께 도입되었습니다. 기본적으로 활성화돼 있습니다.
  • GitLab 19.0에서 일반 공급되었습니다. 기능 플래그 security_policies_severity_customize가 제거되었습니다.

취약점의 심각도를 재정의하는 정책은 자동 무시 정책과 동일한 기준을 사용합니다:

  • File path: 취약점이 발견된 파일 경로를 기준으로 일치시킵니다.
  • Directory: 특정 디렉터리에서 발견된 취약점을 일치시킵니다.
  • Identifier: 식별자를 기준으로 취약점을 일치시킵니다.

식별자 기준에서는 특정 식별자 형식만 일치시키도록 식별자 유형을 선택적으로 지정할 수 있습니다:

  • CVE ID: CVE-2021-44228 같은 CVE 식별자나 CVE-2023-* 같은 패턴을 일치시킵니다.
  • CWE ID: CWE-79 같은 CWE 식별자나 CWE-* 같은 패턴을 일치시킵니다.
  • OWASP: A1 또는 A03:2021 같은 OWASP 식별자를 일치시킵니다.

지원되는 심각도 연산은 다음과 같습니다:

  • Set: 심각도를 특정 수준(info, low, medium, high, critical)으로 설정합니다.
  • Increase: 심각도를 한 단계 올립니다.
  • Decrease: 심각도를 한 단계 낮춥니다.

취약점 관리 정책 생성#

특정 기준에 해당하는 취약점을 자동으로 해결하거나 무시하려면 취약점 관리 정책을 만듭니다.

필수 조건:

  • 기본적으로 보안 정책 프로젝트를 만들거나 지정하는 데 필요한 권한은 그룹, 하위 그룹, 프로젝트의 Owner에게만 있습니다. 이 범위는 사용자 지정 역할로 변경할 수 있습니다.

취약점 관리 정책을 만들려면 다음과 같이 진행합니다:

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Secure > Policies로 이동합니다.
  3. New policy를 선택합니다.
  4. Vulnerability management policy에서 Select policy를 선택합니다.
  5. 필드를 입력하고 정책 상태를 Enabled로 설정합니다.
  6. Create policy를 선택합니다.
  7. 머지 리퀘스트를 검토하고 머지합니다.

취약점 관리 정책을 만들고 나면 추적 중인 브랜치의 파이프라인에 정책 규칙이 적용됩니다.

취약점 관리 정책 편집#

규칙을 변경하려면 취약점 관리 정책을 편집합니다.

  1. 상단 바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
  2. Secure > Policies로 이동합니다.
  3. 해당 정책 행에서 Edit를 선택합니다.
  4. 정책 세부 정보를 편집합니다.
  5. Save changes를 선택합니다.
  6. 머지 리퀘스트를 검토하고 머지합니다.

취약점 관리 정책이 업데이트되었습니다. 추적 중인 브랜치에서 다음 파이프라인이 실행될 때 정책 규칙이 적용됩니다.

스키마#

취약점 관리 정책을 만들거나 편집하면 취약점 관리 정책 스키마와 대조해 유효한지 확인합니다.