취약점 심각도 수준

Tier: Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated

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), 로컬 파일 포함/경로 탐색 및 특정 형태의 Cross-Site Scripting (XSS)입니다. 일반적으로 이러한 결함들은 CVSS 3.1 기준으로 7.0-8.9 사이에 평가됩니다.

심각도 “Medium”

Medium 심각도의 취약점은 일반적으로 시스템의 잘못된 구성 또는 보안 제어의 부재로부터 발생합니다. 이러한 취약점의 악용은 제한된 양의 데이터에 액세스하거나 다른 결함들과 결합하여 의도하지 않은 시스템이나 리소스에 액세스될 수 있습니다. Medium 심각도 결함의 예시는 반사 XSS, 부정확한 HTTP 세션 처리, 보안 제어의 부재 등입니다. 일반적으로 이러한 결함들은 CVSS 3.1 기준으로 4.0-6.9 사이에 평가됩니다.

심각도 “Low”

Low 심각도의 취약점은 직접적으로 악용될 수 없지만 응용 프로그램이나 시스템에 불필요한 취약성을 도입합니다. 이러한 결함들은 보안 제어의 부재나 응용 프로그램 환경에 대한 불필요한 정보 노출로 인해 발생합니다. 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

API 보안 테스트

GitLab 분석기 심각도 수준을 출력합니까? 원본 심각도 레벨 유형 원본 심각도 레벨 예시
API security testing 문자열 HIGH, MEDIUM, LOW

의존성 스캐닝

GitLab 분석기 심각도 수준을 출력합니까? 원본 심각도 레벨 유형 원본 심각도 레벨 예시
gemnasium CVSS v2.0 등급 및 CVSS v3.1 질적 심각도 등급 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 등급이 사용됩니다.

Fuzz 테스트

모든 Fuzz 테스트 결과는 Unknown으로 보고됩니다. 이러한 결과는 직접적인 결함을 찾거나 수정의 우선순위를 설정하기 위해 수동으로 검토되어야 합니다.

SAST

GitLab 분석기 심각도 수준을 출력합니까? 원본 심각도 레벨 유형 원본 심각도 레벨 예시
sobelow 해당 없음 Hardcodes all severity levels to Unknown
SpotBugs 정수 1, 2, 3, 11, 12, 18
pmd-apex 정수 1, 2, 3, 4, 5
kubesec 문자열 CriticalSeverity, InfoSeverity
semgrep 문자열 error, warning, note, none

IaC 스캔

GitLab 분석기 출력 심각도 수준? 내재된 심각도 수준 유형 내재된 심각도 수준 예시
kics 문자열 error, warning, note, none (분석기 버전 3.7.0 이상에서는 info로 매핑)

비밀 감지

GitLab의 secrets 분석기는 모든 심각도 수준을 Critical로 하드코딩합니다. Epic 10320은 더 세분화된 심각도 등급을 채택하도록 제안합니다.