Привет, Хабр! В этой статье поделюсь опытом и знаниями построения менеджмента уязвимостей в компании, ведь этот процесс, на мой взгляд, — базис информационной безопасности.

Предисловие. Почему VM важен?

Первый грейд (уровень) хакера начинается со Script Kiddy, то есть освоения навыка эксплуатации публичных уязвимостей с помощью эксплойтов, опубликованных как в открытом доступе (Metasploit, Github etc), так и написанных самостоятельно.

Если вы спросите опытного пентестера (понятие «хакер» больше относится к незаконной деятельности), какие первые шаги он совершает в исследовании инфраструктуры на проникновение, то большая часть скажет, что проверяет объект на наличие публичных уязвимостей и возможность их проэксплуатировать. Это касается и внешней (опубликованной в интернете, например SMTP-сервера), и внутренней инфраструктуры (Active Directory). В среде пентестеров есть понятие «низко висящие фрукты» — это когда задачу по «пролому» цели можно выполнить очень быстро благодаря исследованным ранее уязвимостям и готовым эксплойтам. Как говорится, увидел PrintNightmare (CVE-2021-1675 и CVE-2021-34527) в инфраструктуре и захватил ее всю.

И тут вывод напрашивается сам. Безопасность инфраструктуры должна начинаться с менеджмента уязвимостей, а уж всякая проактивная защита (антивирусы, IDSы, файрволлы и прочее) идти в дополнение.

Что представляет собой VM?

Если максимально просто, то этот процесс можно разделить на три этапа:

  1. Инвентаризация активов (хостов) компании и установленного ПО (в том числе версии) на них.

  2. Поиск по базам уязвимостей уязвимостей в ПО из п. 2.

    Например:

  3. Патч-менеджмент (устранение уязвимостей обновлением или выработка компенсирующих мер, таких как ограничение доступа к ПО или применение средств защиты в крайнем случае).

И так по кругу на регулярной основе.

Чем VM отличается от пентеста? Что приоритетнее для компании?

В отличие от пентеста, у процесса VM мягче «правила игры». Пентест подразумевает действия, в целом имитирующие злоумышленника (хакера), а это динамический подход к поиску уязвимостей инфраструктуры (мануальный и автоматизированный).

Подробно об этом подходе я уже писал:

Импортозамещение сканеров WEB уязвимостей: обзор актуальных DAST решений

Защита внешнего сетевого периметра компании через регулярный пентест

VM же — это статичный процесс. То есть ваша основная задача — выявить уже известные уязвимости в ПО компании (версиях и его конфигурации) и предоставить рекомендации отделу ИТ по их устранению. При этом у вас привилегированный доступ к инфраструктуре и нет каких-либо препятствий в виде средств защиты.

Кажется, что VM проще и эффективней пентеста, ведь мы не тратим ресурс компании на квалифицированных пентестеров, да и по затрате времени VM выглядит привлекательней. Возникает вопрос: а не заменить ли пентестеров на менеджеров уязвимостей?

Вот это - заблуждение бизнеса в выстраивании информационной безопасности компании.

Дело в том, что VM строится «изнутри» инфраструктуры. Нельзя с помощью VM понять, насколько опасно сконфигурирован внешний периметр. VM не решает задачи эксплуатирования мисконфигураций, злоупотребления функционалом и вообще формируется на поиске уязвимостей, которые были ранее обнаружены и описаны пентестерами! То есть надеясь только на VM, бизнес всегда будет на шаг позади даже по наличию уязвимостей в ПО, не говоря о других векторах атаки (тех самых web-уязвимостях, мисконфигурациях и эксплуатациях функционала).

Таким образом VM — это относительно недорогой, но крайне важный процесс, далеко не единственный в выстраивании ИБ в компании. Он позволяет защититься от Script Kiddy и даже APT-группировок (хакерских сообществ), которые при нетаргетированных атаках используют все те же «низко висящие фрукты».

Как сформировать VM?

На мой взгляд, есть 3 пути для организации менеджмента уязвимостей.

Первый путь. Когда нет бюджета на покупку ПО для ИБ

  1. Инвентаризация.

Делаем с помощью open-source-инструментов и ручного труда. Для обнаружения активов (хостов) можно использовать сетевой сканер Nmap. Однако инвентаризацию ПО придется проводить вручную, собирая информацию с хостов. Облегчить сбор установленных пакетов можно с помощью утилит.

Например, на Linux посмотреть установленные пакеты можно командой rpm -aq.
Например, на Linux посмотреть установленные пакеты можно командой rpm -aq.

Далее нужно сформировать таблицу с обнаруженным ПО и постоянно ее актуализировать. Работа посильная для небольших инфраструктур.

  1. Поиск CVE, как вы понимаете, — занятие не менее трудозатратное. Нужно взять базы и смотреть в них уязвимости по обнаруженным нами в 1-й стадии ПО. Нюанс в том, что часто в новых уязвимостях вообще не заполнены характеристики (CVSS, CWE). Поэтому не будет понятно, насколько опасна уязвимость, как эксплуатируется и на что воздействует, а есть лишь описание, которое придется читать.

    Вот пример новой незаполненной CVE, где кроме описания ничего нет.
    Вот пример новой незаполненной CVE, где кроме описания ничего нет.

    А с учетом того, что каждый день таких вот CVE приходит с десяток, работа эта времязатратная, но есть в ней неоспоримый плюс. Исследуя базы CVE вручную, самые новые известные уязвимости вы сможете выявить раньше, чем сканер, из-за лага обновления баз.

  2. Патч-менеджмент здесь будет представлять как направление поручений ИТ-отделу после мануальной экспертизы, в ходе которой мы находим патч или другие рекомендации по устранению от вендора (если рекомендаций нет, то закрываем средством защиты до их появления). Или решаем, что уязвимость не применима к нашей инфраструктуре. Контроль исправлений же — это по сути повторение 1 и 2 этапов. Будет не лишним вести таблицу с поручениями и кратким описанием.

Второй путь. Когда мы используем ПО для автоматизации поиска уязвимостей

  1. Инвентаризация.

Производится уже с помощью ПО — сканеров уязвимостей.

О крупных Отечественных решениях писал тут:

Битва «Титанов». Сравнение двух лучших отечественных сканеров уязвимостей. MaxPatrol 8 и RedCheck Enterprise

В целом ситуация не поменялась, разве что Positive Technologies ушли в сторону создания ПО для VM полного цикла, о котором расскажу позже.

Автоматизация инвентаризации проходит таким образом, что вы сначала сканируете внутреннюю инфраструктуру режимом «пентест» или встроенным сетевым сканером Nmap. А затем добавляете обнаруженные активы в скоуп покрытия, группируя по основному функционалу (почтовые серверы, серверы БД, Active Directory и т.д.). Инвентаризация самого ПО, установленного в активах - задача сканера уязвимостей.

  1. Этап поиска уязвимостей здесь самый комфортный — все делает сканер. Вам лишь нужно добавить учетные данные для доступа в актив (сервер) и создать задание на сканирование (об этом подробно в статье из п. 1). Результатом сканирования будет отчет, в котором мы увидим уязвимости в ПО (CVE, BDU), их критичность, описание и даже рекомендации по патчингу со ссылками на патчи вендоров или описанием, как исправить без таковых.

    Пример карточки уязвимостей из Max Patrol VM
    Пример карточки уязвимостей из Max Patrol VM
  2. Патч-менеджмент тут получится ручным. Точнее, не патч-менеджмент как таковой, а контроль исправлений. Желательно вести дашборд с поручениями ИТ-отделу и пересканировать активы для контроля исправления (благо, и RedCheck, и Max Patrol могут сделать диференцированный отчет, который покажет состояние ДО и ПОСЛЕ). В общем, даже со сканером уязвимостей без мануальной работы никак.

Третий путь. Когда мы используем ПО менеджмента уязвимостей полного цикла

Именно такое решение предлагает компания Positive Technologies https://www.ptsecurity.com/ru-ru/products/mp-vm/ в своем продукте Max Patrol VM.

Казалось бы, вот он: Грааль для VM, который решит все проблемы. Так ли это? Проверим.

MP VM — готовое решение по менеджменту уязвимостей. За счет продвинутого дашборда мы видим текущее состояние инфраструктуры (что выявлено в ходе сканирований и что уже пофикшено). Можно дать доступ к дашборду руководству или системным администраторам, ответственным за инфраструктуру, чтобы они сами могли реагировать на состояние уязвимостей в ПО. Поскольку решение работает через web, достаточно поделиться DNS-адресом и создать учетку с минимально необходимыми правами, например только на просмотр.

Для работы с активами и уязвимостями в MP VM реализован гибкий язык запросов к БД.

Можно здесь же построить и карту сети, просканировав все наши внутренние ресурсы по диапазонам IP.

Резюмируя увиденное, отмечу, что продукт MP VM оправдывает свое название: это готовый процесс VM в одном ПО. Но мы-то здесь не для рекламы продукта собрались ;)

Эффективность MP VM в решении задач VM

Если взять основного конкурента Positive Technologies — решение от Altex-Soft Red Check Expert, то в их эффективности полный паритет. Оба сканера находят одинаковое количество уязвимостей на момент исследования (мы тестировали как на Win-, так и на Linux-хостах), а значит, базы уязвимостей актуализируются у обоих сканеров оперативно и с одинаковой задержкой.

В свою очередь у MP VM есть, на наш взгляд, одна неточность, а именно — масштабирование уязвимостей. VM считает количество уязвимостей не так, например, как RedCheck (1 CVE — 1 хост, ну и в самой CVE указываются ПО, в которых она обнаружена, что логично). PT VM же считает одну CVE столько раз, сколько она упоминается в ПО на хосте, что для статистики страшнее, но для реального понимания дел излишне:

Показывает одни и те же CVE как разные уязвимости из-за того, что они формально в разных пакетах (разные версии одного пакета).
Показывает одни и те же CVE как разные уязвимости из-за того, что они формально в разных пакетах (разные версии одного пакета).

Отображение аналогичной CVE в RedCheck — одна CVE и список пакетов, в которых она присутствует.

Удобней же и видно какие пакеты нужно обновить, чтобы устранить уязвимость.
Удобней же и видно какие пакеты нужно обновить, чтобы устранить уязвимость.

Кроме как «для маркетинга» сложно понять, зачем такой подход у Positive Technologies в MP VM.

Идем далее — отчеты.

По какой-то непонятной причине в продукте MP VM отказались от отчетов в формате PDF по хостам. С одной стороны понятно, что отчеты в PDF имеют ограничения в размере, да и продукт сам по себе про интеграцию с другими системами и работу с управлением уязвимостями в самом приложении, но сценарии в разных компаниях могут отличаться. В общем, пока отчетов в PDF нет, только XLSX. PDF-отчеты вендор обещал сделать.

Конечно, выглядит как придирки, тут спорить не буду. Однако у MP VM все же есть серьезный недостаток: цена. Даже в сравнении с прямым конкурентом RedCheck Expert цена за актив (а эти продукты тарифицируются именно по активам) может отличаться в 15 раз. Да-да, именно в 15, то есть за стоимость покрытия одного актива MP VM можно покрыть 15 активов с помощью RedCheck Expert! Продукты предлагают разную автоматизацию процесса VM, но по эффективности поиска уязвимостей на хостах они одинаково хороши.

Так какой путь в выстраивании менеджмента уязвимостей в компании выбрать?

Нет ничего плохого в том, чтобы начинать выстраивать VM по первому пути, особенно если компания небольшая. В любом случае отказываться от него совсем нельзя, тем более в части поиска свежих уязвимостей, ведь в базы сканеров они добавляются с некоторой задержкой. Да и принцип «доверяй, но проверяй» в VM работает как никогда — бывали случаи, когда сканеры всех вендоров не видели критической уязвимости из-за багов. К тому же, этот путь частично можно автоматизировать и сделать подписку на новые CVE по софту, благо большинство баз это предлагают сделать бесплатно. Можно, в конце концов, написать скрипт, который по API будет собирать новые CVE из баз данных прямиком в какой-нибудь ваш дашборд, да хоть в графану. В любом случае отслеживать новые трендовые уязвимости вручную — хорошая практика.

Второй путь — самый распространенный. Здесь и процессы можно выстроить под себя, и отчеты. Это идеальное сочетание максимальной эффективности и небольшого бюджета: разница в эффективности поиска уязвимостей между дешевым RedCheck и дорогим MP VM ровным счетом никакая.

Третий путь — для корпораций с большими бюджетами на ИБ, особенно тех, кто строит ИБ на основе продуктов Positive Technologies (тут стоит сказать, что у других вендоров VM полного цикла я не видел, поэтому пока в СНГ PT монополисты). Продукты PT построены на принципе взаимоинтеграции, весь класс их решений безопасности можно интегрировать в одно окно как для работы, так и для контроля состояния инфраструктуры. Это позволяет экономить на человеческом ресурсе, однако цена неоправданно высока.

Комментарии (0)