취약점 심각도 수준

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), 로컬 파일 포함/경로 탐색 및 특정 유형의 교차 사이트 스크립팅 (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 분석기 심각도 수준을 출력하는가? 고유 취약점 심각도 수준 유형 고유 취약점 심각도 수준 예시
브라우저 기반 DAST 문자열 HIGH, MEDIUM, LOW, INFO

DAST API

GitLab 분석기 심각도 수준을 출력하는가? 고유 취약점 심각도 수준 유형 고유 취약점 심각도 수준 예시
DAST API 문자열 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 테스트

모든 퍼즈 테스트 결과는 Unknown으로 보고됩니다. 이를 처리하여 수리해야 할 악용 가능한 결함을 찾아내는 것이 중요합니다.

SAST

GitLab 분석기 심각도 수준을 출력하는가? 고유 취약점 심각도 수준 유형 고유 취약점 심각도 수준 예시
security-code-scan 문자열 CRITICAL, HIGH, MEDIUM in 분석기 버전 3.2.0 이상. 이전 버전에서, Unknown으로 하드코딩합니다.
brakeman 문자열 HIGH, MEDIUM, LOW
sobelow 해당 없음 모든 심각도 수준을 Unknown으로 하드코딩합니다.
nodejs-scan 문자열 INFO, WARNING, ERROR
flawfinder 정수 0, 1, 2, 3, 4, 5
SpotBugs 정수 1, 2, 3, 11, 12, 18
phpcs-security-audit 문자열 ERROR, WARNING
pmd-apex 정수 1, 2, 3, 4, 5
kubesec 문자열 CriticalSeverity, InfoSeverity
secrets 해당 없음 모든 심각도 수준을 Critical으로 하드코딩합니다.
semgrep 문자열 error, warning, note, none
kics 문자열 error, warning, note, none (분석기 버전 3.7.0 이상에서 info로 매핑됨)