24 марта 2023

Построение процесса управления уязвимостями

MaxPatrol VM Getting Started

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

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

Проблемы сканеров безопасности в большой инфраструктуре

По нашей статистике на одной рабочей машине под управлением Windows в среднем присутствует от 500 до 1000 уязвимостей различных степеней критичности. Если инфраструктура состоит из 2-3 тысяч активов, то суммарное количество уязвимостей может переваливать за несколько миллионов.

Зачастую непонятно, что делать с таким большим количеством уязвимостей, на какие нужно обращать внимание в первую очередь, а какие можно оставить на потом.

В MaxPatrol VM присутствует функционал политик, который сможет вам помочь.

Политики значимости активов

В системе присутствует возможность проверить значимость актива по трехбалльной шкале.
Вам необходимо определиться, какие из активов для вас имеют наибольшую важность (компрометация таких активов повлечет за собой самые большие потери), и в первую очередь заниматься уязвимостями на них.

Присвоим высокую значимость контроллерам домена. Для этого создаем политику с фильтром активов Host.HostRoles.Role = 'Domain Controller'
Также создаем отдельную политику под межсетевые экраны с фильтром NetworkDeviceHost.HostRoles.Role = 'Firewall'
По аналогии создаем политики для остальных активов и применяем политики.
Мы разбили всю нашу инфраструктуру по степени критичности. Для отслеживания этого процесса есть встроенный виджет “Значимость активов”.

Политики актуальности данных

Для того, чтобы контролировать актуальность данных сканирования активов существуют соответствующие политики “Сроки актуальности данных”.

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

Политики статуса уязвимостей

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

Плановое устранение

Данные политики предназначены для контроля патчинга IT-инфраструктуры. Например: ваши коллеги из отдела IT проводят патчинг Windows серверов раз в месяц, а рабочих станций раз в 2 месяца. Нам необходимо перенести эти договоренности в VM. Для этого создаем две политики:
Мы направили политики на соответствующие динамические группы и использовали фильтр Host.@NodeVulners.Metrics.HasFix = true, который позволяет выделить только уязвимости операционных систем, для которых уже есть известный фикс, а также выставили сроки устранения.

В результате применения данных политик все уязвимости, попадающие под них, получат статус “Исправляется”. Если в течении заданного срока уязвимость будет устранена, то она получит соответствующий статус “Устранена”, а в случае несоблюдения политик уязвимости присваивается статус “Просрочена”.

Политики можно привязывать не только по ОС, но и по конкретному ПО или конкретным уязвимостям. Для демонстрации я создал политику патчинга PostgreSQL с фильтром уязвимостей Host.Softs.Name like "%PostgreSQL%" and Host.Softs.@Vulners.Metrics.HasFix = true
Исключающие уязвимости

Представим, что у вас есть тестовый сегмент, в котором присутствует большое количество тестовых хостов, срок жизни которых очень мал. Закрывать уязвимости на таких машинках бессмысленно, поэтому такие уязвимости можно исключить из процесса. Создаем соответствующую политику:
Мы выбрали все активы из динамической группы 10.10.41.0/24 (представим, что это тестовый сегмент) и присвоили статус “Исключена” всем уязвимостям в этой группе.

Устранение вручную

Уязвимости, для которых еще нет фикса, рекомендуется рассматривать вручную вместе со специалистами IT-отдела. Для таких уязвимостей мы можем создать соответствующую политику:

Отметка “Важная”

На уязвимости, которые необходимо закрывать в первую очередь, можно повесить отметку “Важная”, например:
В данном случае мы используем фильтр Host.@Vulners.Metrics.HasNetworkAttackVector = true and Host.@Vulners.CVSS3BaseScore >= 9 and Host.@vulners.Metrics.Exploitable = true

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

Заключение

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

Автор: Роман Журавлёв, инженер TS Solution