CVE CVSS 계산기
취약점 심각도 평가를 위한 CVSS v3.1 기본 점수를 계산합니다.
9.8
Critical
CVSS v3.1 Base Score
Attack Vector
Attack Complexity
Privileges Required
User Interaction
Scope
Confidentiality Impact
Integrity Impact
Availability Impact
벡터 문자열
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HNone
0.0
Low
0.1–3.9
Medium
4.0–6.9
High
7.0–8.9
Critical
9.0–10.0
이 도구 소개
공통 취약점 점수 시스템(CVSS)은 소프트웨어 취약점의 심각도를 0에서 10까지의 척도로 평가하는 개방형 표준입니다. 대부분의 팀은 한 번에 고칠 수 있는 것보다 훨씬 많은 취약점에 직면하기 때문에, 일관된 점수는 대응 우선순위를 정하고 무엇을 먼저 패치할지 결정하는 데 필수적입니다.
이 계산기를 사용하려면 평가할 취약점의 CVSS v3.1 기본 메트릭을 선택하세요. 공격 벡터, 공격 복잡도, 필요 권한, 사용자 상호작용, 범위, 그리고 기밀성·무결성·가용성에 미치는 영향입니다. 도구는 즉시 숫자로 된 기본 점수와 없음·낮음·보통·높음·심각의 정성적 심각도 등급을 반환합니다. 보안 분석가, 침투 테스터, 트리아지 팀의 일상 업무에 도움이 됩니다.
기본 점수는 취약점의 본질적이고 고정된 속성을 반영하는 반면, 시간적·환경적 메트릭은 익스플로잇 성숙도와 사용자의 특정 배포 환경에 맞춰 조정된다는 점을 기억하세요. 이 점수는 판단을 돕지만, 자산과 노출에 대한 맥락 기반 위험 판단을 대체하지는 않습니다.
자주 묻는 질문
코드 구현
import math
# CVSS v3.1 Base Score Calculator
WEIGHTS = {
'AV': {'N': 0.85, 'A': 0.62, 'L': 0.55, 'P': 0.20},
'AC': {'L': 0.77, 'H': 0.44},
'PR_U': {'N': 0.85, 'L': 0.62, 'H': 0.27}, # Unchanged scope
'PR_C': {'N': 0.85, 'L': 0.68, 'H': 0.50}, # Changed scope
'UI': {'N': 0.85, 'R': 0.62},
'CIA': {'N': 0.00, 'L': 0.22, 'H': 0.56},
}
def roundup(x: float) -> float:
"""CVSS-specific roundup to 1 decimal place."""
return math.ceil(x * 10) / 10
def calculate_cvss_base(av, ac, pr, ui, scope, c_impact, i_impact, a_impact) -> tuple[float, str]:
"""Calculate CVSS v3.1 Base Score."""
scope_changed = scope == 'C'
pr_w = WEIGHTS['PR_C'][pr] if scope_changed else WEIGHTS['PR_U'][pr]
iss = 1 - (1 - WEIGHTS['CIA'][c_impact]) * (1 - WEIGHTS['CIA'][i_impact]) * (1 - WEIGHTS['CIA'][a_impact])
if scope_changed:
impact = 7.52 * (iss - 0.029) - 3.25 * (iss - 0.02) ** 15
else:
impact = 6.42 * iss
exploitability = 8.22 * WEIGHTS['AV'][av] * WEIGHTS['AC'][ac] * pr_w * WEIGHTS['UI'][ui]
if impact <= 0:
score = 0.0
elif scope_changed:
score = roundup(min(1.08 * (impact + exploitability), 10))
else:
score = roundup(min(impact + exploitability, 10))
# Severity
severity = 'None' if score == 0 else 'Low' if score < 4 else 'Medium' if score < 7 else 'High' if score < 9 else 'Critical'
return score, severity
# Example: Critical vulnerability (Log4Shell-like)
score, severity = calculate_cvss_base(
av='N', ac='L', pr='N', ui='N', # Network, Low complexity, No privileges, No user interaction
scope='C', # Scope Changed
c_impact='H', i_impact='H', a_impact='H' # High CIA impact
)
print(f"Log4Shell-like score: {score} ({severity})")
# Example: Local privilege escalation
score, severity = calculate_cvss_base('L', 'L', 'L', 'N', 'U', 'H', 'H', 'N')
print(f"Local privesc: {score} ({severity})")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.