«Погоня за полным списком уязвимостей — это ловушка, в которую попадают многие отделы ИБ. Мы пытаемся каталогизировать неизвестное, тратим бюджеты на сканеры, которые показывают лишь часть картины, и в итоге получаем ложное чувство безопасности. Настоящая защита начинается с осознания, что некоторые дыры в заборе всегда будут, и фокус должен сместиться на то, чтобы забор был достаточно крепким, а внутри — разделённым на отсеки».
Что такое уязвимость на практике, а не в базе данных
В базах вроде NVD уязвимость — это запись с идентификатором, описанием и баллом CVSS. Удобно для учёта, но опасно для понимания. В реальной инфраструктуре уязвимость — это не статичный объект, а динамическое состояние системы. Это состояние возникает только при совпадении трёх факторов:
- Дефект: Ошибка в коде, небезопасная конфигурация, устаревший протокол.
- Вектор атаки: Наличие у злоумышленника пути для эксплуатации этого дефекта. Уязвимость в сервисе, закрытом сетевым экраном, не имеет вектора.
- Воздействие: Реальный ущерб для конфиденциальности, целостности или доступности. Без последствий дефект — просто баг.
Отсутствие любого из этих элементов превращает «критическую уязвимость» в теоретическую. Например, CVE для компонента, который физически присутствует в системе, но функционально отключён и не обрабатывает внешние данные, не представляет актуального риска здесь и сейчас.
Почему нельзя составить полный список уязвимостей
Стремление к стопроцентной инвентаризации наталкивается на фундаментальные, а не технические ограничения.
Инфраструктура в постоянном движении
Любой снимок состояния устаревает в момент его создания. Пока сканер завершает обход, в системе уже могут быть развёрнуты новые контейнеры, откатаны обновления, изменены правила маршрутизации или пользователи установили непроверенное ПО. Уязвимости — это не статичный список файлов, а свойство живого, меняющегося окружения.
Ограничения сканирования: что остаётся за кадром
Сканеры — это инструменты, работающие по известным шаблонам. Их слепые зоны систематичны:
- Zero-day: Дефекты, о которых ещё нет публичных записей, по определению не видны.
- Логические уязвимости приложений: Ошибки в бизнес-логике, например, возможность изменить сумму перевода через манипуляцию с HTTP-параметром, не оставляют классических следов для сканера безопасности.
- Контекстуальные слабости: Риск, возникающий из уникальной комбинации легитимных настроек. По отдельности каждый параметр соответствует политике, но вместе создают брешь. Сканер, проверяющий пункты чек-листа по одному, этого не увидит.
Эмерджентный риск: когда целое опаснее частей
Главная угроза редко заключается в одной критичной «дыре». Чаще она рождается из цепочки незначительных, на первый взгляд, упущений, которые сканер оценивает по отдельности как низкорисковые.
Рассмотрим типичный сценарий: в системе используется библиотека с уязвимостью, позволяющая прочитать определённые файлы. В другом месте для учётных записей администраторов установлены простые пароли. В третьем — журналы аудита с информацией о таких учётках хранятся в общедоступном сетевом каталоге.
Сканер отметит три проблемы с низким или средним приоритетом. Однако злоумышленник, используя первую слабость, получит доступ к журналам, извлечёт логин администратора, подберёт слабый пароль и получит полный контроль. Ключевая уязвимость, приведшая к компрометации, не была прописана ни в одной базе данных — она возникла как эмерджентное свойство всей конфигурации.

Смена цели: от инвентаризации к управлению рисками
Приняв невозможность полного учёта, можно перейти к эффективной стратегии. Её суть — не в тотальном поиске, а в создании среды, где эксплуатация уязвимостей затруднена, а последствия — ограничены. Это соответствует духу регуляторных требований, фокусирующихся на защите критичных активов.
- Инвентаризация активов, а не уязвимостей: Базой для любых решений должно быть точное знание, что работает в инфраструктуре: какое ПО, какие версии, какие сервисы и зачем. Без этого карта рисков строится в пустоте.
- Контекстная, а не абстрактная приоритизация: Один и тот же CVE имеет разный вес. Уязвимость в SSH-сервере, выведенном в интернет, критична. Та же уязвимость на сервере в изолированном сегменту управления — нет. Приоритет должен определяться не только баллом CVSS, но и расположением актива, его значимостью и существующими мерами контроля.
- Проактивное укрепление (Hardening): Массовое применение безопасных настроек на основе CIS Benchmarks или отечественных аналогов предотвращает появление целых классов уязвимостей «из коробки». Это эффективнее, чем потом искать и латать каждую.
- Архитектурная устойчивость: Внедрение сегментации сети, строгого контроля доступа и принципа наименьших привилегий. Цель — разорвать цепочки атак и ограничить зону воздействия даже при успешной эксплуатации дефекта.
Практические шаги, которые работают
Вместо попыток достичь недостижимой полноты, ресурсы стоит направить на следующие направления.
| Направление работы | Конкретные действия | Какой риск снижает |
|---|---|---|
| Автоматизация контроля конфигураций | Регулярная проверка систем на соответствие эталонным безопасным настройкам с помощью инструментов вроде OpenSCAP. Фокус на аудите прав доступа и параметров безопасности. | Устраняет массовые, «типовые» уязвимости, возникающие из-за небрежных настроек по умолчанию, сокращая общую поверхность атаки. |
| Управление зависимостями (SCA) | Внедрение процессов и инструментов для отслеживания сторонних библиотек и компонентов в собственном коде. Организация регулярного цикла обновлений для зависимостей. | Позволяет контролировать «невидимый» пласт рисков, скрытый в цепочках сторонних компонентов, и оперативно реагировать на новые CVE в них. |
| Сегментация и минимальные привилегии | Логическое и физическое разделение сетевых зон (например, фронтенд, бэкенд, управление). Строгое назначение прав пользователям и сервисным аккаунтам — только необходимый минимум. | Ограничивает горизонтальное перемещение злоумышленника в сети. Даже при успешной атаке на один компонент, доступ к критичным системам блокируется. |
| Проактивный поиск аномалий (Threat Hunting) | Целенаправленный анализ потоков логов, сетевого трафика и поведения систем не по сигнатурам, а в поисках отклонений от нормальной активности, указывающих на сложные многоэтапные атаки. | Выявляет угрозы, использующие логические уязвимости или комбинации слабостей, которые остаются невидимыми для автоматических сканеров уязвимостей. |
[ИЗОБРАЖЕНИЕ: Диаграмма, сравнивающая два подхода: слева — «Реактивный: сканирование и латание» с бесконечным циклом и растущим списком CVE; справа — «Проактивный: управление рисками» с циклами укрепления, сегментации и мониторинга, ограничивающими потенциальный ущерб.]
К чему приводит отказ от иллюзий
Попытки знать всё о уязвимостях создают иллюзию контроля, но на практике ведут к тушению бесконечных пожаров и истощению ресурсов. Эффективная стратегия начинается с принятия факта, что часть рисков всегда будет неидентифицирована.
Фокус смещается с вопроса «Все ли уязвимости мы нашли?» на вопросы «Насколько устойчива наша архитектура к неизвестным угрозам?» и «Как быстро и с какими последствиями мы сможем среагировать, если что-то будет использовано?». Это и есть управление рисками в действии — прагматичный подход, который не только соответствует требованиям регуляторов вроде ФСТЭК по обеспечению устойчивости, но и реально повышает уровень безопасности.