Открыть сервис

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 →