CVSS (система оценки уязвимостей)
CVSS (Common Vulnerability Scoring System, общая система оценки уязвимостей) это открытый стандарт организации FIRST, который оценивает техническую серьёзность уязвимости по шкале от 0.0 до 10.0 и записывает входные данные в строку вектора. Он показывает, насколько опасной может быть уязвимость в разумном худшем случае, но не то, насколько вероятна атака на ваш сервер.
Что измеряет CVSS и как строится оценка
CVSS публикует FIRST (Forum of Incident Response and Security Teams). Спецификация превращает метрики одной уязвимости в оценку от 0.0 до 10.0 и строку вектора, в которой записаны входные данные. Версии 3.1 и 4.0 используют одни и те же качественные уровни:
- None (нет): 0.0
- Low (низкая): от 0.1 до 3.9
- Medium (средняя): от 4.0 до 6.9
- High (высокая): от 7.0 до 8.9
- Critical (критическая): от 9.0 до 10.0
Метрики разделены на группы. Base (базовая) описывает внутренние свойства, которые не меняются со временем и не зависят от среды: как достигается уязвимость, насколько сложна эксплуатация, какие привилегии и действия пользователя нужны, а также влияние на конфиденциальность, целостность и доступность. Temporal (в v4.0 она называется Threat) охватывает свойства, меняющиеся со временем, например зрелость эксплойта. Environmental описывает то, что зависит от конкретной организации. Версия 4.0 добавляет группу Supplemental, которая никогда не меняет оценку. Чаще всего публикуется только базовая оценка, в v4.0 она обозначается CVSS-B.
Как читать вектор и где найти оценку
Строка вектора перечисляет все входные данные. Руководство FIRST для v3.1 приводит такой пример:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Он читается так: доступ по сети, низкая сложность, привилегии не нужны, участие пользователя не нужно, область действия не меняется, высокое влияние на конфиденциальность, влияния на целостность и доступность нет. По формулам из спецификации 3.1 получается 7.5, то есть High.
Оценку CVE показывает запись в NVD, а производитель может опубликовать свою. Для Log4Shell API NVD возвращает запись Primary и запись Secondary:
curl -s 'https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2021-44228' | jq -r '.vulnerabilities[0].cve.metrics.cvssMetricV31[]
| [.source,.type,.cvssData.baseScore,.cvssData.baseSeverity] | @tsv'
В разных записях набор ключей метрик разный, поэтому сначала выведите их командой .metrics | keys. Вектор часто полезнее самого числа: AV:L или PR:H означает, что злоумышленнику нужен локальный доступ или высокие привилегии, а это снижает срочность на сервере, где вы контролируете и то и другое.
Чего оценка не говорит
В руководстве пользователя CVSS FIRST прямо сказано, что базовая оценка измеряет серьёзность и её «не следует использовать отдельно для оценки риска». Базовая оценка исходит из разумного худшего случая и ничего не знает о вашем сервере: установлен ли уязвимый сервис, доступен ли он из интернета и атакуют ли его прямо сейчас.
Типичные ошибки:
- Обновлять только Critical и игнорировать Medium, который уже эксплуатируется.
- Считать аварией Critical в программе, которой вы не пользуетесь или которая слушает только localhost.
- Сравнивать оценки из разных источников и версий, как будто они одинаковые.
- Считать, что данные об угрозах учтены. В v4.0 неопределённая зрелость эксплойта трактуется как Attacked, то есть худший случай.
Свидетельства эксплуатации нужно брать из других источников. EPSS от того же FIRST оценивает вероятность того, что CVE начнут эксплуатировать в ближайшие 30 дней, а каталог KEV CISA перечисляет уязвимости с подтверждённой эксплуатацией.
CVSS и KEV в рутине обновлений
Относитесь к CVSS как к ключу сортировки, а не к приговору. Рабочий порядок для небольшого парка серверов:
- CVE есть в каталоге KEV, и вы используете это ПО? Эксплуатация подтверждена, поэтому идите по аварийному пути независимо от оценки.
- Иначе: доступен ли уязвимый компонент из интернета и оценён ли он как High или Critical? Устанавливайте обновление в ближайшее окно обновлений или раньше.
- Всё остальное идёт в обычный цикл обновлений.
Оценка CVSS не содержит срока установки патча, поэтому задайте собственные цели для каждого уровня и запишите их. Помните, что приоритет меняется: Medium становится срочным в тот день, когда появляется публичный эксплойт, поэтому еженедельный обзор лучше разовой сортировки.
Полный процесс, от автоматизации до проверки того, что исправление действительно работает, описан в руководстве по управлению обновлениями сервера, а шаг с KEV разобран в руководстве по приоритетам KEV.
Связанные термины: Управление обновлениями, Каталог KEV CISA, N-day эксплойт, Zero-day эксплойт, Окно обновлений.
Часто задаваемые вопросы
Что означает CVSS?
CVSS расшифровывается как Common Vulnerability Scoring System (общая система оценки уязвимостей). Это открытый стандарт FIRST, который оценивает техническую серьёзность уязвимости от 0.0 до 10.0.
Какая оценка CVSS считается критической?
И в CVSS v3.1, и в v4.0 Critical это от 9.0 до 10.0, High от 7.0 до 8.9, Medium от 4.0 до 6.9, Low от 0.1 до 3.9, None это 0.0.
Чем CVSS v4.0 отличается от v3.1?
В версии 4.0 группа Temporal переименована в Threat, добавлена группа Supplemental, которая не меняет оценку, убрана метрика Scope, а влияние оценивается отдельно для уязвимой и для последующих систем.
Значит ли высокая оценка CVSS, что уязвимость эксплуатируют?
Нет. CVSS измеряет серьёзность, а не эксплуатацию. Чтобы узнать, идут ли атаки, проверьте, есть ли CVE в каталоге KEV CISA или высокая вероятность по EPSS.
Нужно ли обновлять только уязвимости High и Critical?
Нет. FIRST указывает, что базовую оценку не следует использовать отдельно для оценки риска. Уязвимость с меньшей оценкой, доступная на вашем сервере или уже эксплуатируемая, может быть важнее Critical в программе, которой вы не пользуетесь.
Хотите увидеть, в каком состоянии ваш сервер?
Запустите бесплатную read-only проверку сервера или откройте Security Lab и посмотрите цикл обнаружение, сдерживание, восстановление, проверка в действии.
Получить бесплатную проверку сервераОткрыть Security Lab