취약점 심각도 수준

Tier: Ultimate Offering: GitLab.com, 자체 관리, GitLab 전용

GitLab 취약점 분석기는 가능한 경우 취약점 심각도 수준 값을 반환하려고 노력합니다. 다음은 사용 가능한 GitLab 취약점 심각도 수준 목록입니다. 가장 심각한 것부터 순위가 매겨져 있습니다.

  • Critical
  • High
  • Medium
  • Low
  • Info
  • Unknown

GitLab 분석기는 심각도 설명을 맞추려 노력하지만 항상 정확하지는 않을 수 있습니다. 제3자 공급 업체의 제공하는 분석기 및 스캐너가 동일한 분류를 따르지 않을 수 있습니다.

Critical 심각도

Critical 심각도로 식별된 취약점은 즉시 조사되어야 합니다. 이 수준의 취약점은 해당 결함의 악용이 전체 시스템 또는 데이터 침해로 이어질 수 있다고 가정합니다. Critical 심각도 결함의 예로는 명령어 또는 코드 삽입 및 SQL 삽입이 있습니다. 일반적으로 이러한 결함들은 CVSS 3.1에서 9.0-10.0 사이로 평가됩니다.

High 심각도

High 심각도의 취약점은 공격자가 애플리케이션 리소스에 액세스하거나 의도하지 않은 데이터 노출로 이어질 수 있는 결함으로 설명될 수 있습니다. High 심각도 결함의 예로는 외부 XML 엔터티 삽입(XXE), 서버 측 요청 위조(SSRF), 로컬 파일 포함/경로 탐색 및 특정 형태의 교차 사이트 스크립팅(XSS)이 있습니다. 일반적으로 이러한 결함들은 CVSS 3.1에서 7.0-8.9 사이로 평가됩니다.

Medium 심각도

중간 심각도의 취약점은 일반적으로 시스템의 잘못된 구성 또는 보안 제어 부족에서 발생합니다. 이러한 취약점의 악용은 제한된 양의 데이터에 액세스하거나 다른 결함과 결합하여 시스템 또는 리소스에 의도치 않은 액세스를 허용할 수 있습니다. 중간 심각도 결함의 예로는 반사 XSS, 잘못된 HTTP 세션 처리 및 보안 제어 부족이 있습니다. 일반적으로 이러한 결함들은 CVSS 3.1에서 4.0-6.9 사이로 평가됩니다.

Low 심각도

낮은 심각도의 취약점은 직접 악용되지 않을 수 있지만 애플리케이션이나 시스템에 불필요한 취약점을 도입하는 결함을 포함합니다. 이러한 결함들은 일반적으로 보안 제어 부족으로 인한 것이거나 애플리케이션 환경에 대한 불필요한 정보를 노출시키는 것입니다. 낮은 심각도의 취약점의 예로는 쿠키 보안 지시어 부재, 상세한 오류 또는 예외 메시지 부재가 있습니다. 일반적으로 이러한 결함들은 CVSS 3.1에서 0.1-3.9 사이로 평가됩니다.

Info 심각도

Info 수준의 심각도 취약점은 가치가 있는 정보를 포함하지만 특정한 결함이나 약점과 반드시 연관되어 있지는 않습니다. 일반적으로 이러한 문제들에 대한 CVSS 등급은 없습니다.

Unknown 심각도

이 수준에서 식별된 문제는 심각도를 명확하게 나타내기에 충분한 문맥이 없습니다.

GitLab 취약점 분석기에는 인기 있는 오픈 소스 스캔 도구가 포함되어 있습니다. 각 오픈 소스 스캔 도구는 고유의 취약점 심각도 수준 값을 제공합니다. 이러한 값들은 다음과 같을 수 있습니다:

네이티브 취약점 심각도 수준 유형 예시
문자열 WARNING, ERROR, Critical, Negligible
정수 1, 2, 5
CVSS v2.0 등급 (AV:N/AC:L/Au:S/C:P/I:P/A:N)
CVSS v3.1 질적 심각도 등급 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

일관된 취약점 심각도 수준 값을 제공하기 위해 GitLab 취약점 분석기는 위의 값들을 표준화된 GitLab 취약점 심각도 수준으로 변환합니다. 이에 대한 자세한 내용은 trivy 작업에서 확인할 수 있습니다.

컨테이너 스캐닝

GitLab 분석기 취약점 심각도 수준 반환 여부? 네이티브 취약점 심각도 수준 유형 네이티브 취약점 심각도 수준 예시
container-scanning 문자열 Unknown, Low, Medium, High, Critical

가능한 경우 공급 업체 심각도 수준이 우선하여 분석기에서 사용됩니다. 그렇지 않으면 CVSS v3.1 등급이 대신 사용됩니다. 그것도 사용할 수 없는 경우 CVSS v2.0 등급이 사용됩니다. 이 구현에 대한 자세한 내용은 trivy에 대한 작업에서 확인할 수 있습니다.

DAST

GitLab 분석기 취약점 심각도 수준 반환 여부? 네이티브 취약점 심각도 수준 유형 네이티브 취약점 심각도 수준 예시
Browser-based DAST 문자열 HIGH, MEDIUM, LOW, INFO

DAST API

GitLab analyzer Outputs severity levels? Native severity level type Native severity level example
DAST API String HIGH, MEDIUM, LOW

의존성 스캔

GitLab analyzer Outputs severity levels? Native severity level type Native severity level example
gemnasium CVSS v2.0 Rating and CVSS v3.1 Qualitative Severity Rating 1 (AV:N/AC:L/Au:S/C:P/I:P/A:N), CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

CVSS v3.1 등급은 심각도 수준을 계산하는 데 사용됩니다. 사용할 수 없는 경우 CVSS v2.0 등급이 대신 사용됩니다.

퍼즈 테스팅

모든 퍼즈 테스트 결과는 알 수 없음으로 보고됩니다. 이러한 결과를 수동으로 검토 및 우선순위를 정해서 수정해야 합니다.

SAST

GitLab analyzer Outputs severity levels? Native severity level type Native severity level example
security-code-scan String CRITICAL, HIGH, MEDIUM in analyzer version 3.2.0 and later. 이전 버전에서는 Unknown으로 하드코딩됨.
brakeman String HIGH, MEDIUM, LOW
sobelow Not applicable 모든 심각도 수준을 Unknown으로 하드코딩함.
nodejs-scan String INFO, WARNING, ERROR
flawfinder Integer 0, 1, 2, 3, 4, 5
SpotBugs Integer 1, 2, 3, 11, 12, 18
phpcs-security-audit String ERROR, WARNING
pmd-apex Integer 1, 2, 3, 4, 5
kubesec String CriticalSeverity, InfoSeverity
secrets Not applicable 모든 심각도 수준을 Critical으로 하드코딩함.
semgrep String error, warning, note, none
kics String error, warning, note, none (analyzer version 3.7.0 이후에서 info로 매핑됨)