CVSS 문자 의미는? 한 번에 이해하는 가이드
Source: Dev.to
중요한 CVE가 발표될 때마다 누군가 CVSS 벡터를 팀 채팅에 붙이고 모두가 이해하는 척합니다. 스포일러: 대부분은 숫자(9.1 CRITICAL)만 보고 나머지는 무시합니다.
문제는 숫자는 얼마나 심각한지만 알려준다는 점입니다. 벡터는 왜 그런지 알려주며, 이는 대응 방식을 완전히 바꿔줍니다.
CVSS (Common Vulnerability Scoring System)는 보안 취약점을 설명하기 위한 점수 체계입니다. 단순히 숫자를 주는 것이 아니라, 공격이 어떻게 작동하는지를 압축해서 보여주는 벡터를 제공합니다.
자주 보게 될 두 가지 버전이 있습니다: 현재 가장 흔한 v3.1과 최신이며 더 상세한 v4.0. 두 버전을 모두 설명하겠습니다.
💡
💡 점수 척도
CVSS 벡터를 이해하려면, 취약점을 집을 털어 들어가는 방법에 비유해 보세요. CVSS 벡터는 “털이”에 대한 다음 질문에 답합니다:
🏠 비유
도둑이 어디서 공격할 수 있나요? 거리에서인가, 아니면 정원에 있어야 하나? (Attack Vector)
들어가는 것이 어렵나요? 문이 열려 있나요, 아니면 고보안 잠금인가요? (Attack Complexity)
열쇠가 필요합니까? 아니면 아무것도 없이 들어갈 수 있나요? (Privileges Required)
누군가 내부에서 문을 열어야 하나요? (User Interaction)
무엇을 훔칠 수 있나요? 문서, 가구, 혹은 파손도 가능합니까? (Impacts: C/I/A)
실제 벡터 예시 – CVE‑2024‑9465 (Palo Alto Expedition)
CVSS v3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
| 코드 | 이름 | 이 CVE에서 값 | 간단히 설명 |
|---|---|---|---|
| AV:N | Attack Vector — Network | 🔴 위험 | 공격자는 물리적으로 가까이 있을 필요가 없습니다. 인터넷만 있으면 전 세계 어디서든 공격 가능 (N=Network, A=Adjacent, L=Local, P=Physical) |
| AC:L | Attack Complexity — Low | 🔴 위험 | 공격 실행이 쉽습니다. 특별한 조건, 정확한 타이밍, 고급 지식이 필요하지 않으며, 익스플로잇만 있으면 누구나 가능 (L=Low, H=High) |
| PR:N | Privileges Required — None | 🔴 위험 | 공격자는 사전 계정이나 비밀번호가 전혀 필요 없습니다. 바로 공격 가능 (N=None, L=Low, H=High) |
| UI:N | User Interaction — None | 🔴 위험 | 사용자가 클릭하거나 파일을 열거나 링크를 방문할 필요가 없습니다. 공격은 자동으로 진행 (N=None, R=Required) |
| S:U | Scope — Unchanged | ⚪ 중립 | 영향이 공격받은 시스템에만 머무릅니다. 자동으로 다른 시스템으로 전파되지 않음 (U=Unchanged, C=Changed) |
| C:H | Confidentiality — High | 🔴 심각 | 모든 기밀 정보가 노출됩니다: 비밀번호, API 키, 설정 등. 공격자는 전체를 읽을 수 있음 (N=None, L=Low, H=High) |
| I:H | Integrity — High | 🔴 심각 | 공격자는 데이터를 수정하거나 생성할 수 있습니다. 여기서는 임의 파일을 시스템에 쓸 수 있음 (N=None, L=Low, H=High) |
| A:N | Availability — None | 🟢 영향 없음 | 시스템을 다운시킬 수 없습니다. 서비스는 계속 가동되며, 공격은 은밀히 진행 (N=None, L=Low, H=High) |
⚠️
⚠️ 결과 해석 방법
AV:N + AC:L + PR:N + UI:N가 같은 벡터에 모두 포함되면 “인터넷에 있는 누구든지, 별다른 노력 없이, 계정 없이, 다른 사람의 도움 없이” 공격을 실행할 수 있다는 뜻입니다. 여기에 C:H가 결합되면 기밀 데이터에 대한 최악의 조합이 됩니다.
CVSS v4.0 (보다 상세하고 최신)
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:H/SI:N/SA:N
| 코드 | 이름 | 값 | 간단히 설명 |
|---|---|---|---|
| AV:N | Attack Vector — Network | 🔴 | v3.1과 동일: 인터넷을 통한 원격 공격 |
| AC:L | Attack Complexity — Low | 🔴 | 특별 조건 없이 쉽게 실행 |
| AT:N | Attack Requirements — None | 🔴 | v4.0 신규. 공격자가 제어하지 못하는 외부 조건(활성 세션, 특정 설정 등)이 필요 없음 (N=None, P=Present) |
| PR:N | Privileges Required — None | 🔴 | 계정·인증 필요 없음 |
| UI:N | User Interaction — None | 🔴 | 사용자가 아무 행동도 할 필요 없음 |
| VC:H | Vulnerable System Confidentiality — High | 🔴 | 공격 대상 시스템(Expedition): 모든 기밀 정보가 노출 |
| VI:L | Vulnerable System Integrity — Low | 🟡 | 공격 대상 시스템: 일부 데이터 수정 가능하지만 완전한 쓰기 권한은 아님 |
| VA:N | Vulnerable System Availability — None | 🟢 | 공격 대상 시스템: 서비스 가용성에 영향 없음 |
| SC:H | Subsequent System Confidentiality — High | 🔴 | 다른 시스템(예: PAN‑OS 방화벽): API 키가 노출돼 방화벽도 기밀성 손실 |
| SI:N | Subsequent System Integrity — None | 🟢 | 다른 시스템: 방화벽에 직접적인 데이터 수정은 불가능 |
| SA:N | Subsequent System Availability — None | 🟢 | 다른 시스템: 방화벽을 다운시킬 수 없음 |
💡
💡 v4.0의 큰 개선점
VC/VI/VA는 직접 공격받은 시스템을, SC/SI/SA는 후속 영향을 받는 시스템을 나타냅니다. 이 CVE에서는 SC:H가 핵심인데, 노출된 API 키가 방화벽까지 영향을 미치기 때문입니다. v3.1은 이런 연쇄 효과를 충분히 포착하지 못했습니다.
CVSS:3.1 / AV:? / AC:? / PR:? / UI:? / S:?