В отчёте о пентесте у каждой находки есть строка такого вида:
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
и число рядом с ней. На совещаниях цитируют число. Читать стоит строку: она объясняет, почему число именно такое.
CVSS (Common Vulnerability Scoring System) публикует FIRST. Версия 4.0 вышла 1 ноября 2023 года.
Что измеряет оценка
CVSS измеряет критичность уязвимости: насколько легко её эксплуатировать и какой ущерб это наносит. Она не измеряет риск, который зависит ещё и от того, насколько затронутая система ценна для вас и атакует ли её кто-нибудь. Об этом прямо говорит сама спецификация, а в версии 4.0 различие отражено в названиях оценок:
| Название | Из чего складывается | На что отвечает |
|---|---|---|
| CVSS-B | Базовые метрики | Насколько критична уязвимость сама по себе? |
| CVSS-BT | Базовые и метрики угроз | Насколько критична с учётом действий атакующих сейчас? |
| CVSS-BE | Базовые и метрики среды | Насколько критична в нашей среде? |
| CVSS-BTE | Все три группы | Насколько критична здесь и сейчас? |
В отчёте о пентесте обычно приводится CVSS-B, иногда CVSS-BE, если исполнитель хорошо знает среду. Базы уязвимостей публикуют CVSS-B. Если после оценки нет букв, считайте, что это B.
Базовые метрики
Первые пять описывают, как проводится атака.
| Метрика | Значения | Вопрос |
|---|---|---|
| Attack Vector (AV) | Network, Adjacent, Local, Physical | Откуда атакующий может дотянуться? |
| Attack Complexity (AC) | Low, High | Нужно ли преодолевать действующую защиту? |
| Attack Requirements (AT) | None, Present | Зависит ли атака от условий развёртывания — например, от состояния гонки или положения в сети? |
| Privileges Required (PR) | None, Low, High | Какой доступ нужен атакующему заранее? |
| User Interaction (UI) | None, Passive, Active | Должен ли что-то сделать кто-то ещё? |
Attack Requirements — новая метрика версии 4.0: она отделяет условия среды от защиты, которую нужно преодолеть. У User Interaction теперь три значения: Passive означает обычное действие, например открытие страницы, Active — что жертва должна сделать что-то необычное.
Следующие шесть описывают ущерб — для уязвимой системы и для последующих систем, до которых можно добраться через неё:
| Метрика | Значения |
|---|---|
| Конфиденциальность: VC, SC | High, Low, None |
| Целостность: VI, SI | High, Low, None |
| Доступность: VA, SA | High, Low, None |
В версии 3.1 влияние на другие системы описывала метрика Scope. Она вызывала разногласия между оценивающими и была заменена тремя явными метриками для последующих систем.
Читаем пример
AV:N/AC:L/AT:N/PR:N/UI:N: доступно по сети, защиту преодолевать не нужно, особых условий нет, учётная запись не требуется, никому не нужно ничего нажимать. VC:H/VI:H/VA:H: полная потеря конфиденциальности, целостности и доступности уязвимой системы. SC:N/SI:N/SA:N: за её пределами последствий нет.
Оценка этого вектора — 9.3, Critical. Если бы та же уязвимость давала ещё и полный контроль над системами за ней, последние три метрики были бы High, а оценка — 10.0.
Измените одну букву — и смысл изменится. PR:L вместо PR:N означает, что нужна учётная запись: для публичного сервиса со свободной регистрацией это почти ничего не меняет, для внутренней системы — меняет многое. Оценка меняется гораздо меньше, чем смысл. Поэтому вектор стоит читать.
Шкала
| Уровень | Оценка |
|---|---|
| None | 0.0 |
| Low | 0.1 – 3.9 |
| Medium | 4.0 – 6.9 |
| High | 7.0 – 8.9 |
| Critical | 9.0 – 10.0 |
Угрозы и среда
Exploit Maturity (E) — единственная метрика угроз: Attacked, Proof-of-Concept или Unreported. Уязвимость, которую эксплуатируют в реальных атаках, сохраняет свою оценку; та, для которой эксплойт неизвестен, получает более низкую.
Метрики среды позволяют переопределить базовые метрики для вашего развёртывания и указать, насколько для затронутой системы важны конфиденциальность, целостность и доступность. Критическая уязвимость в системе, которая не хранит ничего ценного и доступна только из тестовой сети, для вас не критична — и оценка с учётом среды может это показать.
В версии 4.0 появились и дополнительные метрики, например Safety, Automatable и Recovery. Они уточняют описание уязвимости и не влияют на оценку.
Чего оценка не говорит
- Будут ли её атаковать. Для известных уязвимостей вероятность эксплуатации оценивает EPSS. Критичность и вероятность вместе говорят больше, чем каждая по отдельности.
- Сколько стоит система. Medium в платёжной системе может быть важнее, чем Critical в тестовой копии промостраницы.
- Что даёт цепочка. Три находки уровня Medium, которые вместе ведут к захвату учётной записи, описаны как три Medium и как один путь атаки. Читайте и то и другое.
Как пользоваться
Сначала отсортируйте по оценке, затем поправьте с учётом того, что знаете: ценность актива, доступность из интернета, известная эксплуатация, цепочки из отчёта. Если получившийся приоритет расходится с оценкой, запишите почему. Хороший отчёт поступает так же: приводит оценку, вектор и — там, где исполнитель не согласен с числом, — причину.
Как мы оцениваем и обрабатываем находки, описано в методологии.