Common Vulnerability Scoring System
Common Vulnerability Scoring System (CVSS) — это открытый стандарт для оценки степени критичности уязвимостей в программном обеспечении и компьютерных системах. Разработанный и поддерживаемый некоммерческой организацией Forum of Incident Response and Security Teams (FIRST), CVSS позволяет присвоить каждой уязвимости числовой балл от 0 до 10, где 10 соответствует максимальной опасности. Система используется для приоритизации исправлений, управления рисками и сравнения уязвимостей между собой.
История
Первая версия CVSS (v1) была выпущена в 2005 году Национальным институтом стандартов и технологий США (NIST) и группой по реагированию на инциденты безопасности (CERT/CC). Однако из-за недостаточной гибкости и сложности интерпретации она не получила широкого распространения. В 2007 году управление стандартом перешло к FIRST, который выпустил версию CVSS v2 в 2007 году. Эта версия стала де-факто стандартом в индустрии информационной безопасности, её использовали такие базы данных, как Национальная база данных уязвимостей (NVD) США, а также многие вендоры.
В 2015 году была опубликована версия CVSS v3.0, которая исправила ряд недостатков предыдущей версии, в частности, ввела более точные метрики для оценки воздействия на конфиденциальность, целостность и доступность. В 2019 году вышла версия v3.1, которая уточнила формулировки и добавила рекомендации по интерпретации результатов. На 2025 год актуальной является версия CVSS v3.1, хотя ведётся работа над версией v4.0, которая должна улучшить оценку уязвимостей в облачных средах и цепочках поставок.
Структура и метрики
CVSS состоит из трёх групп метрик: базовые (Base), временные (Temporal) и контекстные (Environmental). Итоговый балл рассчитывается по формуле, учитывающей все три группы, но на практике чаще всего используется только базовый балл, который публикуется в базах данных уязвимостей.
Базовые метрики (Base Metrics)
Базовые метрики описывают неотъемлемые свойства уязвимости, которые не зависят от времени или конкретной среды. Они делятся на две подгруппы:
- Вектор атаки (Attack Vector, AV): как злоумышленник может получить доступ к уязвимости. Варианты: сетевой (Network, N), смежный (Adjacent, A), локальный (Local, L) или физический (Physical, P).
- Сложность атаки (Attack Complexity, AC): условия, необходимые для эксплуатации. Варианты: низкая (Low, L) или высокая (High, H).
- Привилегии (Privileges Required, PR): уровень привилегий, требуемых для атаки. Варианты: отсутствуют (None, N), низкие (Low, L) или высокие (High, H).
- Взаимодействие с пользователем (User Interaction, UI): требуется ли участие пользователя. Варианты: не требуется (None, N) или требуется (Required, R).
- Область воздействия (Scope, S): может ли уязвимость повлиять на компоненты, выходящие за пределы уязвимого компонента. Варианты: неизменная (Unchanged, U) или изменённая (Changed, C).
Вторая подгруппа — метрики воздействия:
- Конфиденциальность (Confidentiality, C): потеря конфиденциальности данных. Варианты: отсутствует (None, N), низкая (Low, L) или высокая (High, H).
- Целостность (Integrity, I): потеря целостности данных. Варианты: отсутствует (None, N), низкая (Low, L) или высокая (High, H).
- Доступность (Availability, A): потеря доступности системы. Варианты: отсутствует (None, N), низкая (Low, L) или высокая (High, H).
Временные метрики (Temporal Metrics)
Временные метрики учитывают обстоятельства, которые могут меняться со временем:
- Зрелость эксплойта (Exploit Code Maturity, E): насколько готов код для эксплуатации. Варианты: не подтверждён (Unproven, U), концептуальное доказательство (Proof-of-Concept, P), функциональный (Functional, F) или высокий (High, H).
- Уровень исправления (Remediation Level, RL): наличие официального исправления. Варианты: нет исправления (Unavailable, U), временное решение (Workaround, W), временное исправление (Temporary Fix, T) или официальное исправление (Official Fix, O).
- Достоверность отчёта (Report Confidence, RC): степень подтверждения уязвимости. Варианты: неизвестна (Unknown, U), разумная (Reasonable, R) или подтверждённая (Confirmed, C).
Контекстные метрики (Environmental Metrics)
Контекстные метрики позволяют адаптировать оценку под конкретную среду:
- Модифицированные базовые метрики: позволяют переопределить любую базовую метрику для конкретной системы.
- Требования безопасности (Security Requirements, CR/IR/AR): важность конфиденциальности, целостности и доступности для данной системы. Варианты: низкая (Low, L), средняя (Medium, M) или высокая (High, H).
Расчёт баллов
Базовый балл вычисляется по формуле, которая учитывает подвектор воздействия (Impact Subscore, IS) и подвектор эксплуатации (Exploitability Subscore, ES). IS рассчитывается на основе метрик C, I и A, а ES — на основе AV, AC, PR и UI. Итоговый базовый балл округляется до одного знака после запятой. Временной и контекстный баллы корректируют базовый с помощью поправочных коэффициентов.
Шкала оценок
CVSS использует качественную шкалу для интерпретации числовых баллов:
| Балл | Качественная оценка |
|---|---|
| 0.0 | Нет уязвимости (None) |
| 0.1–3.9 | Низкая (Low) |
| 4.0–6.9 | Средняя (Medium) |
| 7.0–8.9 | Высокая (High) |
| 9.0–10.0 | Критическая (Critical) |
Применение
CVSS широко используется в индустрии информационной безопасности:
- Базы данных уязвимостей: NVD, CVE, а также вендорские базы (например, Microsoft Security Response Center) присваивают каждой уязвимости базовый балл CVSS.
- Управление уязвимостями: организации используют CVSS для приоритизации исправлений — уязвимости с баллом 9.0 и выше обычно требуют немедленного реагирования.
- Сравнительный анализ: CVSS позволяет сравнивать уязвимости разных продуктов и систем по единой шкале.
- Отчётность: регуляторы и стандарты (например, PCI DSS, ISO 27001) часто требуют использования CVSS для оценки рисков.
Критика и ограничения
Несмотря на широкое распространение, CVSS имеет ряд недостатков:
- Субъективность: оценка некоторых метрик (например, сложность атаки) может варьироваться в зависимости от эксперта, что приводит к разным баллам для одной и той же уязвимости.
- Игнорирование контекста: базовый балл не учитывает специфику конкретной системы (например, наличие компенсирующих мер контроля). Контекстные метрики используются редко.
- Неравномерность шкалы: разница между баллами 9.0 и 10.0 может быть незначительной, но на практике воспринимается как существенная.
- Отсутствие учёта цепочки атак: CVSS оценивает каждую уязвимость изолированно, не учитывая, как она может быть использована в комбинации с другими.
- Запаздывание: баллы присваиваются после публикации уязвимости, что может не отражать реальную опасность в момент обнаружения.
В ответ на критику FIRST разрабатывает версию CVSS v4.0, которая должна улучшить точность оценки, ввести метрики для цепочек поставок и облачных сред, а также упростить интерпретацию результатов.
Примеры
- Уязвимость CVE-2021-44228 (Log4Shell): в Apache Log4j получила базовый балл CVSS v3.1 — 10.0 (критический). Вектор атаки: сетевой, сложность: низкая, привилегии: не требуются, взаимодействие: не требуется, область воздействия: изменённая, воздействие на конфиденциальность, целостность и доступность: высокое.
- Уязвимость CVE-2023-34362 (MOVEit Transfer): получила базовый балл 9.1 (критический). Вектор атаки: сетевой, сложность: низкая, привилегии: не требуются, взаимодействие: не требуется, область воздействия: неизменная, воздействие на конфиденциальность: высокое, целостность: высокое, доступность: отсутствует.
Источники
- FIRST. Common Vulnerability Scoring System v3.1: Specification Document. 2019.
- NIST. National Vulnerability Database. CVSS Scores.
- Mell, P., Scarfone, K., Romanosky, S. A Complete Guide to the Common Vulnerability Scoring System (CVSS). 2007.
- ISO/IEC 27001:2022. Information Security Management Systems.
- PCI Security Standards Council. PCI DSS v4.0. 2022.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →