21 марта 2023

Выстраивание процесса сканирования

MaxPatrol VM Getting Started

Содержание статьи

Коллеги, приветствую вас в пятой статье цикла MaxPatrol VM Getting Started. В прошлой статье мы поговорили о типах сканирования в MP VM, а сегодня расскажем про выстаивание процесса сканирования своей инфраструктуры.

Выстраивание процесса сканирования

Любой процесс сканирования начинается с инвентаризации активов и их идентификации. Другими словами, сначала необходимо просканировать IT-инфраструктуру, найти все активы и не забыть их идентифицировать. Руками это делать долго и сложно, поэтому на помощь нам приходит MP VM, который умеет делать все это сам.

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

Таким образом система позволяет выстроить процесс сканирования, при котором информация об активах всегда актуальна. Мы расскажем о том, как выстраиваем процесс сканирования, не претендуя на истину в последней инстанции.

Статические и динамические группы

Всегда начинаем с набора динамических групп, которые описывают модель сети на уровне L2-L3. Простыми словами нарезаем на VLAN, которые есть в сети. Это дает возможность посегментно проводить сканирования для балансировки и оптимизации времени и ресурсов. На выходе получаем общую карту сети в первом приближении, а также возможность контролировать наполнение этих сегментов сети активами.

Создадим группу “L3-Networks” - статическая, в которую поместим несколько динамических группы с привязкой по IP.
Фильтр на языке PDQL для групп будет выглядеть так:
Host.IpAddress in 10.10.41.0/24
Второй очередью создаем динамические группы по типам ОС. Делается это для того, чтобы в будущем иметь возможность создавать задачи для проведения Pentest и Audit по типам ОС. Такое разделение сети сокращает время проверок и снижает риски на получения отрицательного результата.

Создадим статическую группу «OS», в которую войдут две статические группы «Unix» и «Windows», а внутри них сделаем разделение по типам операционных систем.
Фильтры на языке PDQL для динамических групп этих групп будет выглядеть так:

  1. Host.OsName = 'CentOS'
  2. Host.OsName = 'Debian'
  3. Host.OsName = 'Ubuntu'
  4. Host.OsName like '%Windows%' and Host.HostType = 'Desktop'
  5. Host.OsName like '%Windows%' and Host.HostType = 'Server'

Когда группы созданы, нужно научиться их наполнять. Для этого есть специально обученные задачи сканирования с различными профилями.

Обнаружение и добавление активов в VM

Для поиска активов и наполнения наших динамических групп будем использовать уже известные из прошлой статьи инструменты.

Задача HostDiscovery, представленная в 4-x ипостасях (профилях):
  • HostDiscovery
  • Inventory Profile
  • Os Detection
  • PortScan Full Range

На в данном примере мы будем использовать профиль Inventory Profile, который будет нацелен на сетевые адреса из наших тестовых диапазонов. В боевой инфраструктуре задачи поиска активов необходимо нацеливать на всю внутреннюю подсеть (например, 192.168.0.0/16, 172.16.0.0/12 или аналогичные в зависимости от инфраструктуры).
Сама задача поиска активов выполняется очень быстро, поэтому можно запускать ее как минимум 1 раз в неделю на достаточно большой сегмент сети и не бояться проблем.

Инспектируем наши группы и проверяем, что получили:
Также к задачам обнаружения активов можно отнести задачу по сбору данных из AD.
Создаем учетную запись для обращения к контроллеру домена и создаем задачу по сбору данных.
Данная задача также не несет в себе нагрузки на инфраструктуру, поэтому ее можно проводить хоть каждый день.
На выходе мы получаем все машинки, которые находятся в домене. Информацию об IP мы не узнаем, но домен отдает тип операционной системы, благодаря которой актив попадет в соответствующую динамическую группу.
Первичную информацию об активах мы получили, все новые активы, появляющиеся в сети, будут обнаружены и автоматически разбиты по динамическим группам. Теперь приступим к задачам Pentest.

Сканирование Pentest

Мы уже немного познакомились с модулем Pentest в предыдущей статье. Поговорим о нем немного подробнее. Сразу нужно сказать, что модуль этот бывает коварным и стоит использовать его разумно. Всегда проверяйте работу настроенной задачи с назначенным профилем сканирования данного модуля сначала в тестовой среде.

Модуль не использует учетные записи и позволяет оценить степень защищенности актива путем проведения различных проверок - метод “Черного ящика”.

Модуль позволяет проводить тестирование на проникновение, поиск уязвимостей и информации о связанном с ними ПО - выявляет открытые порты на хосте и пытается определить сервис и его версию, а также сопряженные с ним уязвимости.

Используя компонент Bruteforce для подбора паролей, можно проводить тестирование на проникновение. Здесь можно заниматься перебором логинов и паролей не только от учетных записей ОС, но и к широкому списку распространенных сервисов.

Также в систему встроен компонент для проверки на устойчивость к известным DoS-атакам — при включении выполняется имитация атаки типа «отказ в обслуживании». Остановка службы или влияние атаки на ее работу указывает на наличие уязвимости (в случае проблем со связью возможны ложные срабатывания).

В настройке задачи для проведения тестирования на проникновения ничего сложного нет. Выбрать профиль, возможно, внести свои коррективы в настройки профиля и указать активы для сканирования, как и в любой другой задаче. Я выбрал самый безопасный профиль - “Safe Pentest”. В качестве активов рекомендуем использовать статические/динамические группы, которые были созданы нами для разделения на подсети. Для этого в разделе “Группы активов” выбираем группу с нашим тестовым сегментом - “10.10.41.0/24” и запускаем задачу.
Также не забываем про периодичность сканирования тех или иных групп. Мы рекомендуем замерить время сканирования подсетей и выстраивать периодичность сканирования исходя из требований к технологическим окнам.

На выходе мы получаем активы, у которых определены доступные порты, проанализированы баннеры, обнаружены сетевые уязвимости и более точно определены версии ОС.
Направляя задачи пентеста на подсети вы исключаете возможность пропуска активов и соответственно вся ваша инфраструктура периодически сканируется.

Сканирование Audit

Как мы уже говорили раньше, аудит позволяет получить максимальное количество информации о хосте и его уязвимостях благодаря тому, что используется учетная запись - “Белый ящик”.

Если нацелить задачу по аудиту Unix машинок на подсеть, то VM попытается залогиниться на каждом активе в подсети, даже на неподходящих. Это существенно увеличивает время сканирования, поэтому задачи аудита необходимо запускать на созданные ранее динамические группы по семействам ОС.

Да данном примере мы создали задачу аудита серверов под управлением Windows и задали ей расписание сканирования.
Такие задачи необходимо выстраивать на все динамические группы по ОС, для которых вы подготовили учетные записи.

В результате сканирования мы получаем полный состав актива, весь софт, все службы, параметры и уязвимости. Результаты аудита можно использовать для инвентаризации в IT-инфраструктуре.

Что у нас получилось

В результате настройки задач и групп активов по нашей рекомендации получаем следующую картину:

  1. Вся структура организации перенесена в VM на уровне L2-L3.
  2. Новые активы обнаруживаются задачами HD и сбора данных с AD.
  3. Обнаруженные активы рассаживаются по динамическим группам с привязкой по IP и ОС.
  4. Задачи пентеста проводят сканирование всех обнаруженных активов по подсетям и корректируют версии ОС обнаруженных активов + обнаруживают сетевые уязвимости во всей инфраструктуре.
  5. Задачи аудита точечно проводят полную инвентаризацию инфраструктуры, а также собирают уязвимости ОС, ПО, пакетов и служб.

Заключение

Сегодня мы разобрали выстраивание процесса обнаружения и сканирования вашей инфраструктуры в MaxPatrol VM. В следующей статье мы поговорим о процессе управления уязвимостями.

Автор: Игорь Ширяев и Роман Журавлёв, инженеры TS Solution