Обновления и управление уязвимостями
Несколько лет назад крупная российская транспортная компания потеряла доступ к критичным системам — злоумышленники воспользовались уязвимостью в веб-сервере, патч для которой вышел за три месяца до атаки. Обновление никто не установил. Простой обошёлся намного дороже, чем установка патча.
История типовая. Большинство успешных взломов — не экзотические атаки нулевого дня, а эксплуатация давно известных уязвимостей с готовыми публичными эксплойтами. Злоумышленники автоматически сканируют интернет в поисках устаревшего ПО — и находят его в считаные часы после публикации CVE.
Задача лидер безопасности — лидер безопасности (сотрудник, который берёт на себя вопросы информационной безопасности в команде как дополнительную зону ответственности) — выстроить процесс, при котором уязвимости обнаруживаются и устраняются до того, как ими воспользуются. Ваша задача как руководителя — поддержать этот процесс ресурсами и полномочиями.
Почему обновления откладываются
Все понимают, что обновлять ПО нужно. Почему же этого не делают?
-
«Может сломаться». После одного-двух неудачных обновлений команда начинает избегать обновлений. Накопленный долг растёт месяцами.
-
Нет ответственного. Разработч ики думают, что этим занимается DevOps. DevOps думает, что разработчики следят за зависимостями. В итоге не следит никто.
-
Нет видимости. Никто не знает, какие версии ПО запущены, и не отслеживает CVE, которые затрагивают именно вашу инфраструктуру.
-
Это неинтересная работа. Обновления — рутина без очевидного результата. Когда есть срочные задачи, обновления уходят в конец списка.
Лидер безопасности не занимается установкой каждого патча лично — он создаёт процесс и систему ответственности, при которых обновления происходят своевременно.
Два типа обновлений
Операционные системы и инфраструктура
Серверы, виртуальные машины, контейнеры, управляемые сервисы в облаке. Обновления ядра Linux, системных пакетов, базовых образов Docker.
Кто отвечает: DevOps-инженеры, системные администраторы.
Стратегия: максимальная автоматизация, ручные обновления по расписанию в технологические окна.
Риск при игнорировании: удалённое выполнение кода, захват прав администратора, полная компрометация системы.
Зависимости приложений
Библиотеки и пакеты, которые использует ваш код: npm-пакеты, Python-библиотеки, Java-зависимости, Go-модули.
Кто отвечает: разработчики, но часто — никто конкретно.
Стратегия: автоматические проверки в CI/CD, регулярный цикл ревью зависимостей.
Риск при игнорировании: атаки на цепочку поставок, известные уязвимости в используемых библиотеках.
Полностью обновлённая ОС не защитит, если в приложении уязвимая версия библиотеки. Оба направления важны.
Автоматические обновления: что требовать от команды
Главная ошибка — полагаться на ручные обновления. Когда обновление требует чьих-то усилий, оно откладывается. Задача — автоматизировать всё, что не требует ручного решения.
Серверы и инфраструктура
Для серверов под управлением Linux можно включить автоматическую установку обновлений безопасности — без участия человека. Обновления, которые не затрагивают работу сервисов, устанавливаются ночью; те, что требуют перезагрузки, — в согласованное техническое окно.
Что требовать от команды:
- Автоматические обновления безопасности включены на всех серверах.
- Журналы обновлений проверяются еженедельно — чтобы убедиться, что процесс реально работает, а не только настроен.
- Любой сервер, исключённый из автообновлений, задокументирован с обоснованием и компенсирующими мерами.
- Перезагрузки после обновлений ядра выполняются — работа на необновлённом ядре снижает защиту.
Для облачной инфраструктуры (Yandex Cloud, VK Cloud, Selectel, Cloud.ru) управляемые сервисы обновляет провайдер — уточните у команды, включены ли автоматические maintenance windows для баз данных, Kubernetes-кластеров и других управляемых сервисов.
Контейнеры
Образы Docker наследуют уязвимости базового образа. Образ двухлетней давности — это два года непатченных уязвимостей.
Что требовать от команды:
- Еженедельная пересборка контейнеров с обновлёнными базовыми образами, даже если код не изменился.
- Использование минимальных базовых образов (slim, alpine, distroless) — меньше пакетов, меньше уязвимостей.
- Сканирование образов перед деплоем — любой высококритичный или критичный результат сканера блокирует выкладку.
Зависимости приложений
Вместо ручного мониторинга новых версий — инструменты автоматического обнаружения обновлений.
Российские и нейтральные инструменты для SCA (анализ состава ПО):
- CodeScoring — российское решение для анализа зависимостей и лицензионного комплаенса, интегрируется с GitLab CE, Gitea, GitFlic, GitVerse.
- Solar appScreener — российский комплекс SAST/DAST/SCA от ГК «Солар».
- Dependabot / Renovate в self-hosted GitLab CE или Gitea — допустимые open-source инструменты для автоматических PR с обновлениями.
- OWASP Dependency-Check — бесплатный, подходит для Java, .NET, Node.js, Python.
Что это даёт бизнесу: инструмент автоматически создаёт задачи на обновление уязвимых зависимостей. Разработчику не нужно помнить о проверках — система сама уведомляет, когда нужно обновить пакет. Ваша задача — убедиться, что эти задачи не игнорируются неделями.
Сканирование уязвимостей: что использовать
Автоматические обновления — только первый уровень. Второй — систематическое сканирование на уязвимости.
Сканирование инфраструктуры
Для малого и среднего бизнеса подходят:
- MaxPatrol VM / XSpider (Positive Technologies) — российские решения для управления уязвимостями, есть сертификаты ФСТЭК. MaxPatrol VM — для непрерывного мониторинга; XSpider — для периодических проверок.
- RedCheck (Алтэкс-Софт) — сертифицированный российский сканер, подходит для проверки соответствия стандартам ФСТЭК.
- Сканер-ВС (Эшелон) — сертифицирова нный сканер, востребован в госсекторе и организациях с требованиями регуляторов.
- OpenVAS/Greenbone — бесплатный open-source сканер, подходит для небольших команд без бюджета на коммерческие решения.
Сканирование контейнеров
- Trivy (open-source, Aqua Security) — бесплатный, сканирует образы Docker, файловые системы, Kubernetes-манифесты. Интегрируется в CI/CD.
- Luntry — российское решение для безопасности контейнеров и Kubernetes.
- PT Container Security (Positive Technologies) — для крупных инфраструктур с требованиями к сертификации.
Как выбрать
Для небольшой команды, начинающей с нуля: OpenVAS или Trivy — бесплатно, без сложной инсталляции, дают понимание картины. Когда появляются регуляторные требования (152-ФЗ, КИИ) или нужна централизованная отчётность — переход ите на MaxPatrol VM или RedCheck.
Мониторинг CVE: держать руку на пульсе
Сканеры проверяют ваши системы. Но нужно также отслеживать новые уязвимости, которые появляются каждую неделю.
Первичный источник для России — БДУ ФСТЭК
БДУ ФСТЭК (Банк данных угроз безопасности информации) — официальный российский реестр уязвимостей. Ведётся ФСТЭК России (Федеральной службой по техническому и экспортному контролю). Международные идентификаторы CVE и оценки CVSS здесь тоже присутствуют, но реестр дополнен российской аналитикой и привязан к российской нормативной базе.
Лидер безопасности должен регулярно проверять БДУ на уязвимости, затрагивающие используемый стек: языки программирования, фреймворки, СУБД, серверное ПО.
Что ещё отслеживать
- Бюллетени безопасности вендоров — у каждого крупного проекта (Linux-дистрибутив, PostgreSQL, nginx, используемые фреймворки) есть страница с уведомлениями об уязвимостях. Подпишитесь на RSS или email-рассылки для критичных зависимостей.
- Аналитические публикации — Positive Technologies, ГК «Солар» (Solar JSOC), BI.ZONE, F.A.C.C.T. регулярно публикуют отчёты об актуальных угрозах.
- Уведомления вашего сканера — если вы используете MaxPatrol VM или аналог, настройте автоматические оповещения о новых критичных уязвимостях в вашей инфраструктуре.
Еженедельный обзор CVE
Лидер безопасности выделяет 30 минут раз в неделю:
- Проверяет новые уязвимости в сканере и системе отслеживания зависимостей.
- Проверяет БДУ ФСТЭК на записи, релевантные вашему стеку.
- Просматривает уведомления вендоров по критичным компонентам.
- Расставляет приоритеты: что патчить на этой неделе, что — в течение месяца.
Цель — не прочитать каждый CVE, а не пропустить критичные.
Приоритизация: что патчить и когда
Уязвимости появляются быстрее, чем их можно патчить. Нужна система приоритетов.
Немедленно (24–48 часов)
- Критичная уязвимость с активной эксплуатацией в реальных атаках.
- Уязвимость в интернет-доступных системах с оценкой CVSS 9.0 и выше.
- Уязвимость в интернет-доступных системах, для которой опубликован рабочий эксплойт.
В течение недели
- Высокий уровень CVSS (7.0–8.9), нет данных об активной эксплуатации.
- Затрагивает внутренние системы с чувствительными данными.
- Есть публичный proof-of-concept.
В течение месяца
- Средний уровень (4.0–6.9).
- Требует специфических условий для эксплуатации.
- Не затрагивает системы с критичными данными.
Регулярный цикл
- Низкий уровень (ниже 4.0).
- Теоретические уязвимости без практических эксплойтов.
Как оценить реальный риск CVE
Когда появляется уязвимость, важны не только CVSS-балл, но и несколько вопросов:
Используете ли вы затронутый компонент? Уязвимость в mod_proxy Apache не затрагивает вас, если вы используете nginx.
Затронутая функция включена? Уязвимость может быть только в определённой конфигурации, которой у вас нет.
Компонент доступен из интернета? Уязвимость во внутренней БД, недоступной снаружи, менее срочна, чем аналогичная в публичном API.
Есть ли компенсирующие меры? WAF, сегментация сети, отсутствие интернет-доступа снижают реальный риск.
Читайте оригинальный advisory вендора — не только заголовки новостей. Там написано, какие версии затронуты, какие есть временные меры, если обновление пока невозможно.