Различайте CVE, CWE, CVSS, exploit и zero-day
CVE — идентификатор записи об уязвимости в программе CVE. Он нужен, чтобы сопоставить отчёт сканера, бюллетень поставщика, пакет ОС и задачу на устранение. Идентификаторы назначают уполномоченные организации CNA в рамках CVE Program, после чего записи публикуются в CVE List. Этот список не заменяет базу с техническим анализом или бюллетень безопасности производителя.
CWE описывает класс слабости — например, ошибку контроля доступа или некорректную обработку ввода. Одна CVE может быть соотнесена с CWE, но CWE не является отдельной уязвимостью и не служит рейтингом её серьёзности.
CVSS — стандарт FIRST для оценки технических характеристик уязвимости. Спецификации FIRST определяют актуальные версии и правила расчёта. CVSS v3.1 и CVSS v4.0 используют разные метрики и шкалы представления контекста, поэтому их баллы нельзя без оговорки складывать, сравнивать как полностью эквивалентные или использовать в одной формуле.
Эксплойт — код либо последовательность действий для использования конкретной уязвимости. Наличие публич ного доказательства концепции — proof of concept, или достоверного сообщения об эксплуатации усиливает приоритет, но само по себе не доказывает атаку на ваш сервер. Уязвимость нулевого дня — ранее неизвестная разработчику или защитникам уязвимость, раскрытая либо используемая до того, как они успели подготовить исправление и защитные меры. В этот период особенно важны временные ограничения и наблюдение. Одно лишь отсутствие патча у давно известной CVE не делает её zero-day.
1. Составьте область сканирования и назначьте владельцев
Начните с инвентаризации активов, а не с диапазона IP-адресов. IP-сканирование не увидит выключенную виртуальную машину, хост за NAT, временный облачный экземпляр или сервис, опубликованный через балансировщик. Реестр активов должен позволять ответить: что это за сервер, кто принимает решение об изменении, какие сервисы он предоставляет и кому доступен.
Подготовка области проверки
Результат — утверждённый перечень целей сканирования с владельцами, ролями и границами допустимых проверок.
- 1Соберите источники активовСведите данные CMDB или реестра серверов, виртуализации, облачных учётных записей, DNS, систем развёртывания, мониторинга и списков публичных адресов. Для каждого расхождения создайте запись на проверку, а не удаляйте его как дубликат без сопоставления имени, IP, роли и среды.
- 2Зафиксируйте паспорт сервераУкажите уникальный идентификатор, FQDN, IP-адреса, ОС и выпуск, роль, среду, владельца сервиса, технического владельца, критичность актива, допустимое окно обслуживания и способ отката. Для Windows отдельно полезно указать роль сервера; для Linux — дистрибутив, выпуск и источник репозиториев.
- 3Опишите точки внешнего доступаДля каждого опубликованного имени и адреса отметьте порт, протокол, TLS-терминатор, балансировщик или reverse proxy, а также фактический путь до сервера. Внешний endpoint и внутренний сервер могут иметь разный набор уязвимостей: обновление бэкенда не обязательно меняет конфигурацию внешнего узла.
- 4Согласуйте безопасные границы сканированияОпределите разрешённые сети, время, контакт для эскалации, критичные сервисы и запретные проверки, если они способны вызвать нагрузку или изменить состояние. После запуска сверяйте число обнаруженных хостов с реестром: отсутствующий актив — отдельная находка процесса инвентаризации.
Сканирование не заменяет реагирование на инцидент
2. Выберите неаутентифицированное или аутентифицированное сканирование
Сканер уязвимостей без учётных данных видит сервер как удалённый клиент: открытые порты, баннеры, версии, доступные протоколы и отдельные поведенческие признаки. Такой режим подходит для проверки опубликованных веб-сервисов, контроля внешней поверхности атаки и поиска неожиданно доступных интерфейсов. Результат описывает видимость с конкретной точки сканирования и не показывает надёжно все локальные компоненты, устано вленные исправления и сервисы за промежуточными узлами.
Аутентифицированное сканирование подключается к ОС и обычно точнее проверяет установленные пакеты, обновления, локальную конфигурацию и состояние служб. Такой режим обычно предпочтителен, когда нужно определить, относится ли CVE к конкретному Linux- или Windows-серверу, включая неэкспортируемые в сеть компоненты. При этом применимость можно дополнительно подтверждать локальной проверкой и по бюллетеню производителя. Аутентифицированное сканирование не устраняет полностью ложноположительные и ложноотрицательные результаты: проверка всё равно зависит от доступности учётной записи, актуальности правил и особенностей конфигурации.
Выбор режима проверки
| Сценарий | Предпочтительный режим | Что позволяет проверить | Ограничение |
|---|---|---|---|
| Публичный веб-сервис или VPN-шлюз | Неаутентифицированный, с внешней точки | Наблюдаемые с этой точки сервисы, протоколы и признаки некоторых уязвимостей | Не показывает надёжно все локальные пакеты и патчи |
| Внутренний Linux- или Windows-сервер | Аутентифицированный плюс сетевой по необходимости | Установленные пакеты, обновления, локальные настройки и состояние компонентов | Нуж ны защищённые реквизиты и разрешённое подключение |
| Проверка сегментации и неожиданно открытых портов | Неаутентифицированный из нескольких разрешённых сегментов | Различия доступности в зависимости от источника | Не заменяет анализ правил firewall и маршрутизации |
| Подтверждение исправления CVE в пакете ОС | Аутентифицированный или проверка по бюллетеню ОС | Версию установленного пакета и её соответствие исправленной версии из бюллетеня | Номер upstream-версии может вводить в заблуждение при backport |
Учётные данные сканера — чувствительный секрет
Greenbone/OpenVAS и Nessus поддерживают аутентифицированные проверки Linux и Windows в поддерживаемых конфигурациях, но способы подключения, требования к правам, доступные проверки и лицензируемые функции зависят от продукта, редакции, версии, способа развёртывания и версии ленты проверок. Точные имена полей, наборы проверок и методы подключения сверяйте с актуальным официальным руководством выбранного сканера и документацией ОС; не переносите настройку между продуктами по аналогии.
3. Запустите проверку и превратите отчёт в список гипотез
Перед запуском обновите feed или плагины сканера по штатной процедуре продукта и зафиксируйте дату проверки, используемую политику, источник сканирования и факт успешной либо неуспешной аутентификации. В отчёте разделите результаты на доступные извне и внутренние, а также на подтверждённые учётными данными и обнаруженные по косвенным признакам.
- Сопоставьте каждый результат с конкретным активом, а не только с IP: адреса и DNS-записи меняются.
- Сохраните идентификатор CVE, название проверки, обнаруженный продукт, версию, порт или локальный путь проверки, доказательство сканера и дату feed.
- Помечайте ошибки подключения, тайм-ауты и неудачную аутентификацию отдельно от отсутствия уязвимостей.
- Не закрывайте находку только потому, что сервис не ответил: результат «не проверено» требует повторной проверки, другого маршрута или ручной валидации.
Почему сканер ошибается
4. Проверьте применимость CVE к Linux или Windows Server
Валидация находки
Результат — статус «применима», «неприменима», «требует дополнительной проверки» или «риск принят временно» с доказательствами.
- 1Сверьте продукт и точную сборкуСопоставьте название продукта, редакцию, архитектуру, версию и сборку из сервера со списком затронутых версий в бюллетене производителя. Не полагайтесь только на строку баннера: она может быть изменена, скрыта или отражать версию прокси.
- 2Проверьте источник пакета и backport в LinuxДля Linux подтвердите дистрибутив, выпуск, имя пакета, релиз пакета и включённый репозиторий. Поддерживаемые дистрибутивы нередко переносят исправление в более старую upstream-версию пакета, поэтому сравнение только с версией исходного проекта ненадёжно. Решение принимайте по бюллетеню и трекеру безопасности вендора ОС, где указаны затронутые и исправленные пакеты.
- 3Проверьте применимость исправления в WindowsДля Windows сопоставьте поддерживаемый выпуск и версию ОС, установленное накопительное обновление или иной указанный Microsoft пакет, редакцию и роль сервера. Затем проверьте условия эксплуатации из Microsoft Security Response Center: уязвимый компонент может требовать включённую роль, службу, конкретную конфигурацию, локальный доступ либо сетевой путь.
- 4Установите, включена ли уязвимая функцияПроверьте, установлен ли компонент, запущена ли служба, опубликован ли интерфейс, включена ли необходимая функция и достижима ли она для предполагаемого атакующего. Недоступность из интернета не всегда исключает риск: оцените доступ внутренних пользователей, подрядчиков, других сегментов и возможность бокового перемещения.
- 5За пишите решение и доказательстваДля применимой CVE создайте задачу на устранение. Для неприменимой — сохраните ссылку на бюллетень, сведения о версии, состоянии функции и дату проверки. Если данных недостаточно, назначьте владельца дополнительной проверки и срок; статус «ложное срабатывание» без обоснования не является решением.
Установка обновлений, работа с репозиториями и перезагрузками рассматриваются отдельно: обновления безопасности Linux и обновления безопасности Windows Server. Настройку общего hardening не следует подменять закрытием одной CVE: для этого есть материалы о Hardening Linux-сервера и hardening Windows Server.
5. Приоритизируйте уязвимости по риску, а не только по CVSS
Критическая оценка CVSS не равна критичности для вашей организации. CVSS описывает свойства уязвимости, но не знает, опубликован ли ваш сервис, есть ли ценные данные, доступен ли атакующему нужный путь и насколько эффективны ограничения доступа. И наоборот, средняя оценка на критичном внешнем сервере может требовать более быстрого действия, чем высокая оценка на изолированном тестовом хосте.
Каталог KEV CISA содержит CVE, для которых CISA располагает достоверными данными об эксплуатации в реальном мире и считает их приоритетными для устранения. Попадание в KEV — сильный сигнал срочности. Отсутствие записи в KEV не означает, что эксплуатации нет или риск отсутствует: каталог не является полным реестром всех атак.
EPSS FIRST оценивает вероятность эксплуатации CVE в ближайшие 30 дней. Score — модельная вероятность, percentile — положение CVE относительно других записей в распределении модели; оба значения зависят от версии модели и даты публикации. Высокий EPSS усиливает приоритет, но не доказывает эксплуатацию конкретной CVE и тем более конкретного сервера.
Факторы приоритизации CVE без универсальной формулы
| Фактор | Что повышает приоритет | Что может снизить срочность, но не отменяет проверку |
|---|---|---|
| KEV и признаки эксплуатации | CVE есть в KEV, есть подтверждённые сообщения об эксплуатации или доступный практический exploit | Нет записи KEV и нет публичного exploit; это не доказательство безопасности |
| CVSS | Высокая техническая серьёзность при применимости к серверу | Низкий балл без достижимого пути атаки; всё равно учитывайте последствия |
| EPSS | Высокая прогнозная вероятность эксплуатации в опубликованной модели | Низкий score; модель не исключает атаку и меняется со временем |
| Внешняя доступность | Сервис доступен из интернета или широкого недоверенного сегмента | Доступ только из ограниченного сегмента; оцените доступы внутри сети |
| Критичность актива | Персональные данные, ключевые бизнес-процессы, привилегированные функции, критичная инфраструктура | Тестовая среда с изолированными данными; проверьте отсутствие связей с production |
| Боковое перемещение | Сервер имеет доверенные связи, привилегированные учётные данные или доступ к другим системам | Сегментация и минимальные права реально проверены и действуют |
| Патч и компенсирующие меры | Патч доступен, но ещё не установлен; контроля нет или он слабый | Эффективный временн ый контроль уменьшает окно риска, но требует срока пересмотра |
Универсальной очереди для всех организаций нет. Сильными сигналами срочности служат подтверждённая применимость, наличие CVE в KEV и достоверные сведения об эксплуатации, но их нужно сопоставлять с достижимостью уязвимого компонента, возможными последствиями, критичностью актива и эффективностью действующих ограничений. EPSS используйте как прогнозный дополнительный сигнал, а не как замену сведениям о фактической эксплуатации. Поэтому внешняя активно эксплуатируемая CVE, ещё не попавшая в KEV, может оказаться срочнее записи KEV на изолированном активе. Если обнаружены признаки эксплуатации именно на вашем сервере, переходите к процедуре реагирования на инцидент. Для каждой задачи назначьте владельца, дату устранения, обоснование приоритета и зависимость от окна обслуживания.
6. Исправьте уязвимость или ограничьте риск до установки патча
Предпочтительное решение — поддерживаемое исправление от производителя: обновление пакета, накопительное обновление, новая поддерживаемая версия продукта или удаление неиспользуемого компонента. До развёртывания определите влияние на приложение, зависимости, план отката, критерии работоспособности и окно обслуживания. Сначала тестируйте изменение в среде, сопоставимой с production, если это возможно, затем выполняйте контролируемое развёртывание.
Если патча нет, он несовместим с приложением или его нельзя применить сразу, вводят компенсирующий контроль. Это не формальное исключение, а мера, которая уменьшает конкретный путь атаки: ограничение источников доступа, отключение уязвимой функции, сегментация, усиленная аутентификация, дополнительное обнаружение или виртуальный патч в WAF, IPS либо EDR. Его применимость и эффективность нужно проверять для конкретного протокола и трафика.
