Как читать отчёт сканера уязвимостей и что исправлять первым

Сканер выдаёт сотни строк, и воспринимать их все как срочные нельзя. Задача при разборе отчёта: отсеять ложные срабатывания, выбрать десяток уязвимостей, которыми реально могут воспользоваться, и дать администраторам понятные задачи. Как найти открытые порты и версии сервисов, см. Nmap: сканирование сети. Здесь разбор того, что делать с готовым отчётом.
Шаг 1. Проверьте, как проходило сканирование
- С учётной записью или без. Сканирование «снаружи» видит только сетевые сервисы и угадывает версии по баннерам. С учётной записью сканер читает список установленных пакетов, и данные точнее.
- Охват. Все ли узлы были доступны. Узлы, закрытые от сканера firewall, в отчёте просто отсутствуют.
- Дата и версия базы. Отчёт месячной давности не знает о новых уязвимостях.
Шаг 2. Отсейте ложные срабатывания
Самая частая причина: сканер видит версию OpenSSH 8.9p1 и считает уязвимость актуальной, а дистрибутив уже перенёс исправление в свой пакет (backport), не меняя номер версии. Проверьте по журналу изменений пакета:
# Debian/Ubuntu
apt changelog openssh-server | grep -i CVE-2024-XXXXX
# RHEL-совместимые
rpm -q --changelog openssh-server | grep CVE-2024-XXXXX
Если CVE упомянута в журнале изменений установленной версии, исправление уже есть. Отметьте как ложное срабатывание и запишите, откуда это известно.
Шаг 3. Расставьте приоритеты
Оценка CVSS показывает тяжесть уязвимости в целом, но не вероятность, что её используют именно у вас. Добавьте три вопроса:
| Вопрос | Где посмотреть |
|---|---|
| Уязвимость уже используется в атаках? | Каталог KEV (CISA) |
| Насколько вероятна эксплуатация? | EPSS (FIRST): вероятность в ближайшие 30 дней |
| Доступна ли она из недоверенной сети? | Ваша схема сети и вывод Nmap по состояниям портов |
Порядок: сначала уязвимости из KEV на сервисах, доступных из интернета; затем с высоким EPSS на внешнем периметре; затем критичные во внутренней сети. Остальные закрываются по плану обновлений.
Шаг 4. Превратите находки в задачи
Группируйте по действию, а не по CVE. Одно обновление пакета закрывает десятки строк отчёта:
apt list --upgradable 2>/dev/null | grep -i openssl
dnf updateinfo list security
Для каждой задачи укажите: узел, пакет, действие, срок, ответственного. Если обновить нельзя, зафиксируйте исключение с компенсирующей мерой (закрыть порт, ограничить доступ) и датой пересмотра.
Как проверить
Пересканируйте те же узлы той же настройкой сканера после исправлений. Исчезновение находки из отчёта и есть подтверждение. Если уязвимость осталась, проверьте, что сервис перезапущен после обновления библиотеки: needrestart на Debian/Ubuntu или dnf needs-restarting на RHEL. Полный цикл процесса: управление уязвимостями.




















