Каждый день в мире появляются десятки новых CVE, некоторые могут быть “фейковые” CVEшки а есть и настоящие. Кто-то смотрит на них мельком, закрывает таб и идёт пить чай. Кто-то начинает паниковать при виде любой цифры выше шести. Ни то, ни другое – не лучший подход. В этой статье мы рассмотрим терминологию CVSS, метрики итп включая источники. Приступим.
Что такое CVSS и зачем он нужен
CVSS (Common Vulnerability Scoring System) – открытый стандарт для оценки серьёзности уязвимостей в программном обеспечении. Он выдаёт числовой балл от 0 до 10: чем выше – тем хуже ситуация в теории.
CVSS оценивает свойства уязвимости, а не её реальную опасность для вашей конкретной инфраструктуры. Это разные вещи. Уязвимость с баллом 9.8 в компоненте, который у вас вообще не запущен – не ваша проблема. А дырка на 6.5 в сервисе, торчащем в открытый интернет с базой данных клиентов за ним – очень даже ваша.
Стандарт появился в 2005 году, разработан при участии Cisco, Microsoft и других крупных игроков. Сейчас его поддерживает организация FIRST (Forum of Incident Response and Security Teams). Последняя версия – CVSS v4.0, вышедшая в конце 2023 года. Основным источником оценок для публичных CVE остаётся американская NVD (National Vulnerability Database), а в России дополнительно используется БДУ ФСТЭК.
Три группы метрик
Итоговый балл формируется из трёх слоёв, каждый из которых отвечает на свой вопрос.
1. Базовая группа (Base Metrics)
Это характеристики самой уязвимости, не зависящие от времени и контекста. Именно базовый балл вы обычно видите в NVD и бюллетенях безопасности.
Вектор атаки (Attack Vector) – откуда атакующий может воздействовать на систему:
Network (N) – через сеть, без физического присутствия. Самый опасный вариант.
Adjacent (A) – нужен доступ к той же локальной сети.
Local (L) – требуется локальный доступ к системе (терминал, SSH).
Physical § – нужен физический доступ к железу.
Сложность атаки (Attack Complexity) – насколько легко её провести:
Low – никаких специальных условий, атакуй в лоб.
High – нужны дополнительные факторы вне контроля атакующего (например, угадать токен сессии или провести MITM).
Требуемые привилегии (Privileges Required):
None – любой неавторизованный пользователь.
Low – базовые права обычного пользователя.
High – права администратора.
Взаимодействие с пользователем (User Interaction):
None – жертва ничего не делает, атака полностью автоматизирована.
Required – жертва должна совершить действие: кликнуть ссылку, открыть файл.
Метрики влияния (Impact Metrics) – что происходит с тремя столпами ИБ при успешной атаке:
Confidentiality © – утечка данных.
Integrity (I) – модификация данных.
Availability (A) – отказ в обслуживании.
Каждая из трёх оценивается как None / Low / High.
Уязвимость, которая даёт удалённое выполнение кода без авторизации и без взаимодействия с пользователем, с полным влиянием на все три метрики – получает 9.8–10.0. Как пример так выглядит Log4Shell (CVE-2021-44228, CVSS 10.0).
2. Временная группа (Temporal Metrics)
Базовая оценка статична. Но мир меняется: появляются рабочие эксплойты, выходят патчи, уточняется информация. Временные метрики корректируют балл с учётом актуального состояния дел.
Доступность эксплойта (Exploit Code Maturity):
Эксплойта нет – оценка не меняется.
Есть PoC (proof of concept) – риск вырастает.
Есть готовый автоматизированный инструмент – риск максимальный.
Именно здесь кроется разница между EternalBlue (CVE-2017-0144, базовый CVSS 8.1) в день обнаружения и тем же EternalBlue после появления WannaCry. Цифра формально та же, а реальная угроза – совершенно другая.
Уровень исправления (Remediation Level):
Патча нет.
Есть временное обходное решение (workaround).
Есть официальный патч от вендора.
Наличие патча снижает итоговую временную оценку, его отсутствие – поднимает.
Достоверность информации (Report Confidence):
Неподтверждённые слухи – оценка снижается.(вот тут спорно и я поясню это ниже.)
Вендор подтвердил наличие уязвимости – максимальная достоверность.
3. Контекстная группа (Environmental Metrics)
Самая важная группа для практического применения. Здесь вы берёте базовую оценку и адаптируете её к своей инфраструктуре.
Можно переопределить любую базовую метрику с приставкой Modified. Например, уязвимость имеет вектор Network, но уязвимый сервер стоит в изолированном сегменте без выхода наружу. Вы меняете Modified Attack Vector на Local – и итоговая оценка падает на несколько пунктов.
Также задаются требования к безопасности конкретных активов:
CR (Confidentiality Requirement) – насколько критична конфиденциальность данного актива.
IR (Integrity Requirement) – насколько важна его целостность.
AR (Availability Requirement) – насколько критична доступность.
Одна и та же уязвимость в статическом маркетинговом лендинге и в сервере с платёжными данными – это две абсолютно разные ситуации.
Шкала и что с ней делать
Диапазон | Уровень | Что это значит на практике |
|---|---|---|
0 | Нет риска | Уязвимость формально есть, реального вреда нет |
0.1–3.9 | Низкий | Эксплуатация маловероятна или эффект минимальный |
4.0–6.9 | Средний | Может быть использована, требует оценки контекста |
7.0–8.9 | Высокий | Возможна удалённая атака, данные могут быть скомпрометированы |
9.0–10.0 | Критический | Простая эксплуатация + серьёзный ущерб, часто RCE без авторизации |
Несколько ориентиров для работы:
CVSS 7.0+ – откладывать патч без весомой причины не стоит.
CVSS 9.0+ с доступным эксплойтом – это уже не вопрос «когда», а вопрос «насколько быстро».
CVSS любой + компонент не используется – сначала проверьте, точно ли он не используется.
Хакеры тоже читают NVD. Уязвимости с высоким CVSS и публичным PoC попадают в автоматизированные инструменты взлома быстрее, чем выходит патч.
Реальные примеры
Log4Shell (CVE-2021-44228) – CVSS 10.0. Уязвимость в библиотеке Log4j позволяла выполнить произвольный код через обычный лог-запрос. Сетевой вектор, нулевая сложность, никаких привилегий, никакого взаимодействия с пользователем. Когда вышел PoC, весь мир в буквальном смысле бросился патчить всё, что могло иметь отношение к Java.
EternalBlue (CVE-2017-0144) – базовый CVSS 8.1. Сам по себе уже серьёзно, но когда NSA-инструмент утёк, а на его базе написали WannaCry – реальный риск вышел далеко за пределы любых числовых оценок.
Follina (CVE-2022-30190) – CVSS 7.8. Уязвимость в Windows/MS Office, связанная с MSDT. На момент обнаружения – средне-высокий балл. Позднее активно эксплуатировалась APT-группами. Хороший пример того, почему временные метрики важны.
CVE-2024-40711 (Veeam Backup & Replication) – позволяет неавторизованным пользователям удалённо выполнять произвольный код. Для организаций, которые используют Veeam для резервного копирования – прямой путь к компрометации всей инфраструктуры через бэкап-сервер.
Где изучать уязвимости и искать информацию
Сказав про фейковые CVE – Поясню. Интернет любит хайп и даже сюда вайбовые ребята могут написать что угодно а потом ИИ будет это писать что это реальная уязвимость. О чем это я? Достаточно много экспериментов проводилось где пользователь пишет фейковую информацию и так называемые “агрегаторы ии детекторы на уязвимости” думали что это реальная уязвимость! Поэтому если где и искать информацию(по моему мнению) так это в этих источниках:
CVE Program – cve.org
Официальный реестр публично известных уязвимостей. Каждой присваивается уникальный идентификатор в формате CVE-YYYY-NNNNN. Здесь можно найти описание уязвимости, ссылки на патчи и связанные ресурсы. Это первое место, куда стоит идти, когда видишь незнакомый CVE-номер.
NVD – nvd.nist.gov
National Vulnerability Database от американского NIST – основная база, где к CVE добавляются CVSS-оценки, векторные строки, ссылки на CWE (Common Weakness Enumeration) и конфигурации CPE. Здесь удобно смотреть полную карточку уязвимости с разбивкой по версиям CVSS.
OWASP – owasp.org
Open Web Application Security Project – некоммерческая организация, которая занимается безопасностью веб-приложений. Ключевые ресурсы:
OWASP Top 10 – список десяти наиболее критичных классов уязвимостей веб-приложений. Обновляется раз в несколько лет, служит основой для большинства чеклистов и аудитов.
OWASP Testing Guide – методология тестирования безопасности веб-приложений.
OWASP WSTG (Web Security Testing Guide) – детальный справочник по каждому классу атак с примерами.
WebGoat и DVWA – намеренно уязвимые приложения для практики.
Если вы занимаетесь безопасностью веб-приложений или разрабатываете их – OWASP обязателен к изучению.
PortSwigger Web Security Academy –portswigger.net/web-security
Бесплатная обучающая платформа от создателей Burp Suite. Один из лучших ресурсов для практического изучения веб-уязвимостей: SQL-инъекции, XSS, CSRF, SSRF, XXE, десериализация, OAuth-уязвимости и многое другое.
Каждая тема структурирована: теория, лабораторные работы разной сложности, решения. Лабы запускаются прямо в браузере – никаких VM не нужно. Есть бесплатный и платный уровень, но базовый контент закрывает большинство практических нужд.
Если хотите реально понять, как работают атаки, а не просто читать про них – сюда.
Exploit Database – exploit-db.com
База публичных эксплойтов и уязвимостей, которую ведёт Offensive Security (они же создатели Kali Linux). Здесь хранятся реальные PoC-коды и рабочие эксплойты. Используется для:
Проверки, существует ли публичный эксплойт для конкретного CVE.
Изучения техник эксплуатации.
Пентеста (в легальных условиях).
Также содержит Google Hacking Database (GHDB) – сборник поисковых запросов для нахождения уязвимых систем через Google (Dorks). Полезно для понимания, что именно индексируют поисковики из вашей инфраструктуры.
Опционально еще БДУ ФСТЭК – российская база данных угроз безопасности информации. Для организаций, работающих под требованиями российского законодательства (КИИ, персональные данные) – но там почему-то нет https и весьма сомнительно показалось от этого, поэтому поискать думаю сами можете :-)
Статья доступна на сайте opensophy. Статьи, блоги и документации в первую очередь выходят и обновляются на сайте с указанием автора и соавторов.
