CVSS는 취약점의 이론적 특성만 평가하므로, 실제 배포 환경과 노출 정도를 충분히 반영하지 못한다. GitLab의 취약점 관리 정책을 사용하면 CVE·CWE·파일 경로·디렉터리 조건에 따라 심각도를 자동 조정해 조직의 실제 위험 모델에 맞출 수 있다. 이를 통해 대규모 스캔 결과를 수동으로 분류하는 부담을 줄이고, 중요한 취약점에 대응 우선순위를 일관되게 부여할 수 있다.
## GitLab 심각도 재정의 정책의 작동 방식
- 정책은 기본 브랜치의 파이프라인이 실행될 때마다 취약점 결과에 적용된다.
- 다음 조건으로 취약점을 선택할 수 있다.
- CVE ID
- CWE ID
- 특정 파일 경로
- 특정 디렉터리
- 제공되는 심각도 조정 방식은 세 가지다.
- **Set Severity**: `info`, `low`, `medium`, `high`, `critical` 중 하나로 고정
- **Increase Severity**: 한 단계 상향
- **Decrease Severity**: 한 단계 하향
- 권한이 있는 사용자가 직접 변경한 심각도는 정책보다 우선한다.
- 정책으로 변경된 내역은 취약점 이력과 감사 이벤트에 기록되어 변경 이유를 추적할 수 있다.
## 내부 서비스의 낮은 노출 위험 반영
내부 관리자 도구, 개발자용 유틸리티, 배치 작업처럼 외부 트래픽을 받지 않는 서비스는 동일한 CVE라도 공개 API보다 실제 위험이 낮을 수 있다.
- `internal/**/*` 같은 내부 서비스 디렉터리를 대상으로 정책을 적용한다.
- 특정 CVE가 해당 디렉터리에서 발견되면 심각도를 한 단계 낮춘다.
- 예를 들어 `Critical`은 `High`, `High`는 `Medium`으로 조정된다.
- 전체 심각도를 무조건 낮추지 않고 상대적인 우선순위를 유지하는 방식이다.
- 조직이 내부 배포 환경에서 위험이 낮다고 판단한 CVE 목록으로 값을 교체해 사용해야 한다.
## 운영 코드의 인젝션 취약점 상향
XSS와 SQL 인젝션은 실제 공격에 자주 악용되는 대표적인 취약점이므로, 운영 소스 코드에서 발견되면 기본 CVSS보다 엄격하게 처리할 수 있다.
- `CWE-79`(Cross-Site Scripting)와 `CWE-89`(SQL Injection)를 조건으로 지정한다.
- `src/**/*` 등 운영 코드 디렉터리에서 발견된 경우 심각도를 `Critical`로 고정한다.
- CWE와 경로를 함께 조건으로 사용해 테스트 코드나 비운영 영역의 불필요한 상향을 줄인다.
- Critical 취약점에 보안팀 승인을 요구하는 머지 리퀘스트 승인 정책과 결합하면:
- 취약점 보고서에서 우선순위가 상향되고
- 검토 없이 해당 코드가 프로덕션에 병합되는 것을 방지할 수 있다.
## 여러 스캐너 간 심각도 통일
SAST, 의존성 스캔, 컨테이너 스캔 등은 같은 CVE를 서로 다른 심각도로 보고할 수 있다. 이 차이는 대응 기준과 승인 임계값을 혼란스럽게 만든다.
- 조직이 특정 CVE를 항상 같은 수준으로 처리해야 한다고 판단하면 심각도를 고정한다.
- 예를 들어 Log4j 관련 CVE인 `CVE-2021-44228`, `CVE-2021-45046`, `CVE-2021-45105`를 모두 `High`로 설정할 수 있다.
- 어떤 스캐너가 발견했는지와 관계없이 동일한 기준을 적용할 수 있다.
- 여러 종류의 보안 스캔을 운영하는 조직에서 보고서와 승인 절차를 일관되게 만드는 데 유용하다.
## 실제 악용 정보에 따른 상향
CVSS는 정적인 점수이므로 취약점이 실제 공격에 사용되기 시작했는지 즉시 반영하지 못한다. 이를 보완하기 위해 EPSS와 CISA KEV 같은 위협 인텔리전스를 정책 조건에 활용할 수 있다.
- CISA KEV 카탈로그에 등록된 CVE는 실제 악용 사례가 확인된 것으로 보고 `Critical`로 상향할 수 있다.
- EPSS가 높은 취약점, 예를 들어 악용 가능성이 `0.5`를 넘는 CVE도 더 높은 우선순위로 처리할 수 있다.
- 글에서는 `CVE-2024-3094`, `CVE-2023-4966`, `CVE-2023-22515` 등을 KEV 기반 상향 예시로 제시한다.
- 다만 제공된 글 내용은 이 네 번째 예시의 정책 설정 중간에서 끝나 있어, 다섯 번째 방법과 이후 세부 내용은 확인할 수 없다.
## 적용 시 권장 사항
- 심각도 조정은 CVSS를 임의로 왜곡하기보다 배포 위치, 공격 노출도, 실제 악용 여부를 반영하는 조직별 위험 모델로 사용한다.
- 디렉터리 조건을 함께 지정해 내부·테스트·운영 코드를 구분한다.
- 정책 변경 이력과 수동 재정의 우선순위를 고려해 정기적으로 정책을 검토한다.
- Critical 상향 정책은 머지 승인 정책과 연계해 보고서 분류뿐 아니라 배포 통제까지 자동화하는 것이 좋다.