CVSS: анализ векторов атак. Мини-курс по оценке уязвимостей

Оценка уязвимостей по CVSS: от теории к практике

О чем этот курс

CVSS (Common Vulnerability Scoring System) — это открытый стандарт для оценки критичности уязвимостей. Он позволяет перевести технические характеристики уязвимости в числовую оценку (от 0 до 10) и вектор, описывающий условия эксплуатации. Этот мини-курс научит вас:

  • Понимать структуру вектора CVSS
  • Рассчитывать базовую, временную и контекстную оценки
  • Использовать open-source инструменты для автоматизации
  • Выбирать коммерческие решения для разных масштабов бизнеса
  • Применять CVSS в реальной работе (на примерах)

Курс построен так, чтобы вы могли пройти все шаги самостоятельно на своем предприятии.


Часть 1. Основы CVSS: метрики и векторы

Что такое CVSS?

CVSS разрабатывается форумом FIRST (Forum of Incident Response and Security Teams). Актуальная версия — CVSS v3.1, но уже появилась CVSS v4.0. Мы будем рассматривать v3.1 как наиболее распространенную.

Оценка CVSS состоит из трех групп метрик:

  1. Базовые метрики (Base) — характеризуют неотъемлемые свойства уязвимости (не меняются со временем и от среды).
  2. Временные метрики (Temporal) — учитывают изменяющиеся факторы (наличие эксплойта, патча).
  3. Контекстные метрики (Environmental) — учитывают особенности конкретной ИТ-среды (важность актива, меры компенсации).

Итоговая оценка: CVSS Score = f(Base, Temporal, Environmental)

Структура вектора CVSS

Вектор CVSS выглядит примерно так:

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

Разберем на примере уязвимости CVE-2021-44228 (Log4Shell):

МетрикаЗначениеРасшифровка
AV (Attack Vector)N (Network)Атака возможна удаленно по сети
AC (Attack Complexity)L (Low)Низкая сложность, не требует специальных условий
PR (Privileges Required)N (None)Не требует привилегий
UI (User Interaction)N (None)Не требуется взаимодействие с пользователем
S (Scope)U (Unchanged)Сфера не меняется (атака не выходит за пределы компонента)
C (Confidentiality)H (High)Полная потеря конфиденциальности
I (Integrity)H (High)Полная потеря целостности
A (Availability)H (High)Полная потеря доступности

Итоговая базовая оценка: 10.0 (Critical)

Таблица метрик CVSS v3.1

Базовые метрики

МетрикаОписаниеВозможные значения
AV (Attack Vector)Как атакующий может воздействовать на уязвимостьN (Network) — по сети
A (Adjacent) — из смежной сети
L (Local) — локально
P (Physical) — физический доступ
AC (Attack Complexity)Условия, выходящие за контроль атакующегоL (Low) — низкая
H (High) — высокая
PR (Privileges Required)Уровень привилегий, необходимых для атакиN (None) — не требуются
L (Low) — низкие (пользователь)
H (High) — высокие (админ)
UI (User Interaction)Требуется ли участие пользователяN (None) — не требуется
R (Required) — требуется
S (Scope)Меняется ли сфера (влияет ли на другие компоненты)U (Unchanged) — не меняется
C (Changed) — меняется
C (Confidentiality)Влияние на конфиденциальностьH (High) — высокая
L (Low) — низкая
N (None) — отсутствует
I (Integrity)Влияние на целостностьH / L / N
A (Availability)Влияние на доступностьH / L / N

Временные метрики (опционально)

МетрикаОписаниеЗначения
E (Exploit Code Maturity)Наличие готового эксплойтаX (Not Defined)
U (Unproven)
P (PoC)
F (Functional)
H (High)
RL (Remediation Level)Наличие исправленияX / O (Official Fix)
T (Temporary Fix)
W (Workaround)
U (Unavailable)
RC (Report Confidence)Степень подтверждения уязвимостиX / U (Unknown)
R (Reasonable)
C (Confirmed)

Контекстные метрики (опционально)

МетрикаОписаниеЗначения
CR (Confidentiality Requirement)Требования к конфиденциальности активаX / H / M / L
IR (Integrity Requirement)Требования к целостностиX / H / M / L
AR (Availability Requirement)Требования к доступностиX / H / M / L
MAV, MAC, MPR, MUI, MS, MC, MI, MAМодифицированные базовые метрики с учетом средыАналогично базовым

Часть 2. Расчет CVSS: формула и примеры

Формула расчета

FIRST публикует полную спецификацию формул. Для практики проще использовать калькуляторы, но понимать логику полезно.

Базовая оценка рассчитывается по формуле:

Base Score = Impact Sub-Score + Exploitability Sub-Score

Где:

  • Impact Sub-Score зависит от C, I, A и Scope
  • Exploitability Sub-Score зависит от AV, AC, PR, UI

Для Scope = Unchanged:

Impact = 6.42 * (1 - (1 - C) * (1 - I) * (1 - A))
Exploitability = 8.22 * AV * AC * PR * UI
Base = (Impact + Exploitability) округленно

Пример 1: Log4Shell (CVE-2021-44228)

Вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

МетрикаЗначениеВес
AV:NNetwork0.85
AC:LLow0.77
PR:NNone0.85
UI:NNone0.85
S:UUnchanged-
C:HHigh0.56
I:HHigh0.56
A:HHigh0.56

Расчет:

  • Exploitability = 8.22 × 0.85 × 0.77 × 0.85 × 0.85 = 3.9
  • Impact = 6.42 × (1 - (1 - 0.56) × (1 - 0.56) × (1 - 0.56)) = 6.42 × (1 - 0.44³) = 6.42 × 0.915 = 5.9
  • Base = 3.9 + 5.9 = 9.8 → округляем до 10.0

Пример 2: Уязвимость межсайтового скриптинга (XSS)

CVE-2023-12345 (условная): XSS в веб-приложении, требует клика пользователя.

Вектор: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N

МетрикаЗначениеВес
AV:NNetwork0.85
AC:LLow0.77
PR:NNone0.85
UI:RRequired0.62
S:CChanged-
C:LLow0.22
I:LLow0.22
A:NNone0

Расчет для Scope = Changed:

  • Exploitability = 8.22 × 0.85 × 0.77 × 0.85 × 0.62 = 2.8
  • Impact = 7.52 × (ISC - 0.029) - 3.25 × (ISC - 0.02)^15, где ISC = 1 - (1 - C) × (1 - I) × (1 - A) = 1 - (0.78 × 0.78 × 1) = 1 - 0.6084 = 0.3916
  • Impact = 7.52 × (0.3916 - 0.029) - 3.25 × (0.3916 - 0.02)^15 ≈ 2.7 - 0 ≈ 2.7
  • Base = 2.8 + 2.7 = 5.5 (Medium)

Онлайн-калькуляторы

Чтобы не считать вручную, используйте:


Часть 3. Open-source инструменты для анализа CVSS

Для небольшого предприятия open-source решения — оптимальный старт. Они бесплатны, прозрачны и часто не уступают коммерческим аналогам в базовом функционале.

1. Инструменты для сканирования уязвимостей (с поддержкой CVSS)

ИнструментОписаниеCVSS-функцииСсылка
OpenVAS (Greenbone)Мощный сканер уязвимостей, форк NessusКаждой находке присваивается CVSS-оценка (берется из CVE или рассчитывается)greenbone.net
Nessus EssentialsБесплатная версия для дома (до 16 IP)Подробный отчет с CVSS v3, векторами, рекомендациямиtenable.com
Nmap + NSE scriptsСетевой сканер со скриптами для проверки уязвимостейНекоторые скрипты выводят CVSS при обнаруженииnmap.org
VulsСканер уязвимостей для Linux/FreeBSD на GoАгрегирует данные из NVD, OVAL, даёт CVSS-оценкиgithub.com/future-architect/vuls
OVAL (Open Vulnerability Assessment Language)Язык описания проверок конфигурацийИспользуется в OpenSCAP, результаты могут включать CVSSopen-scap.org

2. Инструменты для управления уязвимостями (с CVSS-аналитикой)

ИнструментОписаниеCVSS-функцииСсылка
DefectDojoПлатформа для управления результатами сканирования (воронка уязвимостей)Автоматически парсит CVSS из отчетов, строит дашбордыdefectdojo.org
ArcherySecПлатформа для DevSecOps, агрегирует сканерыПоддерживает CVSS v3, векторы, приоритизациюarcherysec.com
Faraday IDEКоллаборативная платформа для пентестеровИмпортирует результаты сканеров с CVSSfaradaysec.com

3. Библиотеки для разработчиков (интеграция CVSS в свои скрипты)

БиблиотекаЯзыкНазначениеСсылка
cvssPythonРасчет CVSS v2/v3 по вектору, парсингpypi.org/project/cvss
cvsslibPythonБиблиотека для работы с CVSS v3github.com/cvsslib/cvsslib
nvdlibPythonЗапросы к NVD API, получение CVSS по CVEpypi.org/project/nvdlib
cve-searchPythonПоиск по CVE с CVSS-оценкамиgithub.com/cve-search/cve-search

Пример: автоматический расчет CVSS по CVE

# Установка: pip install nvdlib cvss

import nvdlib
import cvss

# Получаем данные по CVE из NVD
cve_id = "CVE-2021-44228"
cve = nvdlib.get_cve(cve_id)[0]

# Извлекаем вектор CVSS v3
vector = cve.v31vector  # CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

# Парсим и рассчитываем оценку
c = cvss.CVSS3(vector)
print(f"CVE: {cve_id}")
print(f"Vector: {vector}")
print(f"Base Score: {c.scores()[0]}")  # 10.0
print(f"Severity: {c.severities()[0]}")  # CRITICAL

Часть 4. Международные коммерческие решения

Для среднего бизнеса, где важна автоматизация, интеграция и поддержка, стоит рассмотреть коммерческие продукты.

ПродуктВендорОсобенностиCVSS-функции
Tenable.io / Nessus ProTenableОблачная платформа управления уязвимостямиДетальные отчеты с CVSS v3/v4, векторы, приоритизация Predictive Prioritization (с учетом актуальности)
Qualys VMDRQualysVulnerability Management, Detection, ResponseCVSS, собственные метрики, интеграция с threat intelligence
Rapid7 InsightVMRapid7Управление уязвимостями с приоритизацией по рискамИспользует CVSS + реальную эксплуатируемость (Metasploit)
Microsoft Defender Vulnerability ManagementMicrosoftВстроено в M365/E5CVSS, рекомендации, интеграция с Microsoft Sentinel
CrowdStrike SpotlightCrowdStrikeУправление уязвимостями на основе CVSS и реальных угрозУчитывает CVSS и активность атак

Когда выбирать международное решение

  • У вас распределенная ИТ-инфраструктура
  • Нужна интеграция с SIEM/SOAR
  • Требуется поддержка множества сканеров
  • Готовы платить за удобство и актуальность данных

Часть 5. Отечественные решения

Для компаний, подпадающих под регуляторные требования (КИИ, госсектор), или стратегии импортозамещения актуальны российские продукты.

ПродуктВендорОсобенностиCVSS-функцииСертификация
MaxPatrol VMPositive TechnologiesСканер уязвимостей, управление активамиCVSS v3, база знаний PT (собственные метрики + CVSS), интеграция с MaxPatrol SIEMФСТЭК
RedCheckRed SecurityСканер уязвимостей, анализ защищенностиCVSS v3, векторы, рекомендации по устранениюФСТЭК
ERPO (СКАН-С)ЭРПОСканирование, контроль соответствия стандартамПоддержка CVSS, экспорт в различные форматыФСТЭК
Solar VMSolar SecurityУправление уязвимостями, входит в Solar MSSCVSS, приоритизация, интеграция с Solar JSOC-
Код Безопасности: СканерКод БезопасностиСканирование сетевых сервисов и веб-приложенийCVSS v3, детальные отчетыФСТЭК

Пример работы с MaxPatrol VM

  1. Настройка цели сканирования — указываем IP-диапазоны
  2. Запуск сканирования — выявляются активные сервисы, ОС, установленное ПО
  3. Сопоставление с базой уязвимостей — MPVM использует собственную базу PT, обогащенную данными из CVE/CVSS
  4. Формирование отчета — каждая уязвимость имеет:
    • CVSS v3 вектор и оценку
    • Описание угрозы
    • Рекомендации по устранению
    • Ссылки на CVE
  5. Приоритизация — учитывается не только CVSS, но и критичность актива, наличие эксплойтов

Часть 6. Как внедрить CVSS-анализ на небольшом предприятии

Пошаговый план для малого бизнеса (до 50 сотрудников, до 100 хостов)

Шаг 1. Инвентаризация активов

Составьте список всего, что нужно защищать:

  • Серверы (физические/виртуальные)
  • Рабочие станции
  • Сетевое оборудование
  • Веб-приложения
  • Облачные сервисы

Шаг 2. Выбор инструмента (open-source)

Начните с OpenVAS (Greenbone). Это бесплатно, мощно и с поддержкой CVSS.

Установка OpenVAS (на Ubuntu/Debian):

# Добавляем репозиторий
sudo apt update
sudo apt install docker.io docker-compose -y

# Запускаем Greenbone Community Edition
wget https://raw.githubusercontent.com/greenbone/docker-compose-files/master/docker-compose.yml
sudo docker-compose -f docker-compose.yml up -d

Интерфейс: через браузер https://ваш-сервер (логин/пароль задаются при установке).

Шаг 3. Настройка сканирования

  1. Создайте цель (Target) — укажите IP-адреса или диапазоны.
  2. Выберите конфигурацию сканирования (например, “Full and fast”).
  3. Запустите задачу (Task).

Шаг 4. Анализ результатов

После сканирования вы получите отчет. Каждая находка содержит:

  • CVE ID (например, CVE-2021-44228)
  • CVSS v3 Score (например, 10.0)
  • Вектор CVSS (например, AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
  • Описание и рекомендации

Шаг 5. Приоритизация и устранение

Используйте правило: CVSS >= 7.0 — критично, исправлять в первую очередь. Но учитывайте контекст:

  • Есть ли патч?
  • Доступен ли эксплойт?
  • Насколько критичен актив для бизнеса?

Для учета контекста используйте простую таблицу:

АктивCVECVSSЭксплойтПатчПриоритет
Веб-серверCVE-2023-12349.8Есть (Metasploit)Есть1 (критично)
Рабочая станция бухгалтераCVE-2023-56785.5НетЕсть3 (низкий)

Шаг 6. Автоматизация сбора данных

Настройте еженедельное сканирование и отправку отчетов на email.

Что делать среднему и крупному бизнесу

Если у вас:

  • Более 500 хостов
  • Распределенная инфраструктура (филиалы, облака)
  • Требования регуляторов (ФСТЭК, ЦБ)
  • Нужна интеграция с SIEM/SOAR
  • Команда ИБ от 3 человек

Рекомендация: обратиться к профессионалам.

Почему стоит привлечь ООО «Стратегия Ра»

Мы не просто ставим сканер и выдаем отчет. Мы:

  • Проводим полный аудит инфраструктуры
  • Внедряем коммерческие системы (MaxPatrol, RedCheck, Solar)
  • Интегрируем CVSS-анализ с процессами управления инцидентами
  • Настраиваем приоритизацию с учетом бизнес-критичности
  • Помогаем с категорированием объектов КИИ
  • Обучаем вашу команду

Для среднего и крупного бизнеса это быстрее, надежнее и дешевле, чем разбираться самостоятельно.


Часть 7. Пример сквозного анализа

Ситуация

Небольшая компания (50 сотрудников) имеет:

  • Веб-сайт на WordPress (хостинг)
  • Почтовый сервер на базе Exim
  • 30 рабочих станций Windows 10
  • Файловый сервер (Samba на Linux)

Задача

Провести анализ уязвимостей, оценить их по CVSS, составить план устранения.

Инструменты

  • OpenVAS для сетевого сканирования
  • WPScan для проверки WordPress
  • Vuls для проверки Linux-серверов

Результаты сканирования (фрагмент)

АктивУязвимостьCVECVSSВекторРекомендация
Веб-сайтWordPress 5.8 (устаревшая версия)CVE-2021-244889.8AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HОбновить до 6.x
Почтовый серверExim 4.92 (уязвимость удаленного выполнения)CVE-2020-280179.8AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HОбновить Exim
Рабочая станцияWindows 10 1809 (уязвимость SMB)CVE-2020-07968.1AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:HУстановить патч KB4551762
Файловый серверSamba 4.10 (уязвимость повышения привилегий)CVE-2021-441417.8AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:HОбновить Samba

Приоритизация с учетом контекста

АктивCVSSЭксплойтКритичность активаПриоритет
Почтовый сервер9.8Есть (Metasploit)Высокая (корпоративная почта)1 (сегодня)
Веб-сайт9.8Есть (публичный эксплойт)Средняя (сайт-визитка)2 (неделя)
Файловый сервер7.8PoCВысокая (все документы)2 (неделя)
Рабочая станция8.1Есть, но требует аутентификацииНизкая (локальный пользователь)3 (месяц)

План действий

  1. Немедленно: обновить Exim на почтовом сервере (отключить интернет до обновления).
  2. В течение 2 дней: обновить WordPress (сделать бэкап, обновить плагины).
  3. В течение недели: обновить Samba, настроить автоматические обновления Windows.
  4. Внедрить регулярное сканирование (раз в неделю OpenVAS, раз в месяц полный аудит).

Часть 8. Ресурсы и ссылки

РесурсНазначениеСсылка
FIRST CVSS v3.1 SpecificationОфициальная спецификацияfirst.org/cvss
CVSS v3.1 CalculatorОфициальный калькуляторfirst.org/cvss/calculator
NVD (National Vulnerability Database)База уязвимостей с CVSSnvd.nist.gov
CVE DetailsСтатистика по CVE, метрикиcvedetails.com
OpenVAS / GreenboneOpen-source сканерgreenbone.net
WPScanСканер уязвимостей WordPresswpscan.com
VulsСканер для Linuxvuls.io
MaxPatrol VMОтечественный сканерptsecurity.com
RedCheckСканер уязвимостейred-security.ru
Python cvss libraryБиблиотека для работы с CVSSpypi.org/project/cvss

Заключение

CVSS — это не просто цифры. Это язык, на котором специалисты по безопасности общаются с руководителями. Умение правильно оценить уязвимость, понять ее вектор и донести риски до бизнеса — ключевая компетенция современного ИБ-специалиста.

Начните с малого: установите OpenVAS, просканируйте свою сеть, проанализируйте результаты. Когда поймете, что процесс отнимает слишком много времени или требует глубокой экспертизы — приходите к нам. В ООО «Стратегия Ра» мы поможем выстроить систему управления уязвимостями под любой масштаб.