MS ETW (DNS Analytics) KUMA 3.2
Расширенное ведение журнала DNS и диагностика доступны по умолчанию с версии Windows Server 2016. Эта функция также доступна в Windows Server 2012 R2 при установке исправления для ведения журнала запросов и аудита изменений, доступного по адресу https://support.microsoft.com/kb/2956577
Event Tracing for Windows (ETW) - это механизм логирования различных событий, создаваемых приложениями и драйверами. Фактически является более расширенной версией стандартного журнала событий. Исторически ETW использовался для задач дебага при разработке, сейчас его можно использовать в том числе и для поиска вредоносной активности.
Включение опции логирования ETW оказывает незначительное влияние на производительность (рекомендуется в нагруженных системах). Например, DNS-сервер, работающий на современном оборудовании и получающий 100 000 запросов в секунду (QPS), может испытывать снижение производительности на 5 % при включении аналитических журналов. Очевидного влияния на производительность при скорости запроса 50 000 QPS и ниже не наблюдается. Однако всегда желательно отслеживать производительность DNS-сервера всякий раз, когда включено дополнительное ведение журнала.
Теория
ETW состоит из трёх отдельных компонентов:
- Провайдеры (Providers), в некоторых случаях зовутся поставщиками
- Потребители (Consumers)
- Контроллеры (Controllers)
Провайдеры генерируют события, потребители их используют, а контроллеры управляют всей этой деятельностью. Провайдеры - это приложения, которые содержат функционал отправки событий в ETW. Примеры провайдеров: ядро Windows, драйвера устройств, user-mode приложения и другое ПО. Какие необходимо отправлять события решает разработчик в своём коде, упрощенно говоря, если выполняется важная с точки зрения разработчика функция (открывается доступ к SAM), то создается запись в ETW.
Для отправки провайдеры регистрируются в контроллере, контроллер в свою очередь может включить или отключить источник событий. Отключенный источник события не генерирует. Пример контроллеров - это logman или wevtutil. Для связи между провайдером и потребителем контроллер использует так называемые сессии трассировки. Сессия служит в том числе для фильтрации необходимых данных по различными параметрам, потому что потребителю может быть нужна только одна часть информации, а другому потребителю - другая.
Полезные ссылки:
- https://habr.com/ru/articles/502362/
- https://bmcder.com/blog/a-begginers-all-inclusive-guide-to-etw
- https://learn.microsoft.com/ru-ru/archive/blogs/teamdhcp/network-forensics-with-windows-dns-analytical-logging
Настройка на стороне Windows
Переходим в EventViewer (Выполнить -> eventvwr.msc). Далее переходим в Журналы приложений и служб\Microsoft\Windows\DNS-Server (на англ. Applications and Services Logs\Microsoft\Windows\DNS-Server)
Далее переходим в свойства Аналитического журнала:
Оставляем максимальный размер журнала по умолчнию в 1 Гб:
Нажимаем на чекбокс Включить ведение журнала, затем ОК
Должно получиться следующее:
Нажимаем Применить и ОК.
При появлении следующего окна, не пугаемся, при включенной ротации аналитического журнала события не отображаются в интерфейсе, чтобы их увидеть (нам это не понадобится) нужно остановить журнал.
Далее необходимо перейти в Управление компьютером и открыть его от Админиcтратора. Переходим Служебные программы - Производительность - Сеансы отслеживания событий запуска.
Создаем группу сборщиков данных:
Задаем имя сборщика, например etwDNS-Analytics:
Добавляем поставщика Microsoft-Windows-DNSServer:
Агент с коннектором ETW работает только с System.Provider.Guid: {EB79061A-A566-4698-9119-3ED2807060E7} - Microsoft-Windows-DNSServer
Нажимаем Далее - Далее - Готово.
Запускаем созданного поставщика, как сеанс отслеживания событий:
Далее в сеансах отслеживания событий, в свойствах - Сеансы отслеживания указываем Режим реального времени
Нажимаем Применить и ОК.
Настройка коллектора и агента KUMA
Создание коллектора KUMA
Для создания коллектора в веб-интерфейсе KUMA перейдите на вкладку Ресурсы -> Коллекторы и нажмите на кнопку Добавить коллектор.
После выполнения вышеуказанных действий откроется мастер настройки. На первом шаге выберите Имя коллектора и Тенант, к которому будет принадлежать создаваемый коллектор.
На втором шаге мастера укажите транспорт. В нашем случае используется TCP (можно также использовать http и режимы с верификацией для защищенной отправки). В поле URL задайте FQDN/порт (выбирается любой из незанятых), на котором коллектор будет ожидать соединение от агента. В качестве разделителя укажите \n.
*можно указать только порт при инсталляции All-in-one.
На третьем шаге мастера укажите нормализатор. В данном случае рекомендуется использовать предустановленный расширенный нормализатор для событий Windows [OOTB] Microsoft DNS ETW logs json.
Шаги мастера настройки с четвертого по шестой можно пропустить и вернуться к их настройке позднее.
На седьмом шаге мастера задайте точки назначения. Для хранения событий добавьте точку назначения типа Хранилище. В случае если предполагается также корреляция по событиям добавьте точку назначения типа Коррелятор.
На завершающем шаге мастера нажмите на кнопку Создать и сохранить сервис. После чего появится строка установки сервиса, которую необходимо скопировать для дальнейшей установки.
Также после выполнения вышеуказанных действий на вкладке Ресурсы -> Активные сервисы появится созданный сервис коллектора.
Установка коллектора KUMA
Выполните подключение к CLI KUMA (установка коллектора выполняется с правами root).
Перед установкой рекомендуется выполнить из командной строки команду, скопированную на прошлом шаге без ключа --install, чтобы убедиться в отсутствии ошибок.
В случае отсутствия ошибок в выводе командной строки, прервите исполнение в командной строке, после чего можно переходить к установке.
Для установки сервиса коллектора в командной строке выполните команду, скопированную на прошлом шаге.
При необходимости добавьте порт коллектора в исключения фаервола и обновите параметры службы.
firewall-cmd --add-port=<порт, выбранный для коллектора>/tcp –permanent
firewall-cmd --reload
После успешной установки сервиса его в статус в веб-консоли KUMA изменится на зеленый.
Создание агента KUMA
Для создания агента в веб-интерфейсе KUMA перейдите на вкладку Ресурсы -> Агенты и нажмите на кнопку Добавить агент.
В открывшейся вкладке Общие параметры укажите Имя агента и Тенант, к которому он будет принадлежать.
На вкладке Подключение 1 в параметрах коннектора задайте имя коннектора, тип etw и укажите имя сессии (это имя сборщика созданного на этапе настройки на стороне Windows) в нашем случае это etwDNS-Analytics.
В секции Точки назначения укажите имя точки назначения, тип tcp (должен совпадать с настройками коллектора). Задайте URL в формате fqdn:port (FQDN коллектора и порт, должны совпадать с настройками коллектора).
В дополнительных параметрах укажите размер дискового буфера в 1 Гб.
После настройки дополнительных параметров сохраните созданный ресурс агента.
Публикация агента KUMA
В разделе Ресурсы -> Активные сервисы опубликуйте созданную конфигурацию Agent ETW. Для этого нажмите Создать сервис -> выберите созданный сервис агента Agent ETW и нажмите Создать сервис. После публикации сервиса скопируйте его идентификатор нажатием на ПКМ данного сервиса для последующей установки агента на Windows сервере.
Установка агента KUMA
Создание учетной записи
Для функционирования агента KUMA необходимо создать либо доменную сервисную учетную запись, либо локальную УЗ с помощью которой будет выполняться запуск агента KUMA и обеспечиваться доступ к чтению аналитического журнала. Для УЗ требуются следующие группы и права Пользователи журналов производительности (Performance Log Users group) (чтение журнала, настройка в свойствах пользователя) и Вход в качестве службы (Log on service) (права на запуск сервиса агента, настройка в политиках безопасности).
После запуска сервиса агента можно переключиться на системную локальную учетку (LocalSystem), сделать это можно через Services на Windows. Иногда такое целесообразно при ротации паролей в УЗ.
Установка агента KUMA
Выполняется на Windows сервере, который обеспечивает прием событий от источников (рабочих станций/серверов). Предварительно FQDN Core KUMA должен быть добавлен в файл hosts на Windows сервере, либо добавлен на DNS-сервере. На Windows сервере рекомендуется создать папку C:\Users\<имя пользователя>\Desktop\KUMA.
Далее скопируйте в данную папку исполняемый файл kuma.exe.
Файл kuma.exe находится в архиве пакетов установки KUMA.
Для установки агента KUMA запустите командную строку с правами администратора.
Перейдите в папку C:\Users\<имя пользователя>\Desktop\KUMA и выполните следующую команду:
C:\Users\<имя пользователя>\Desktop\KUMA>kuma.exe agent --core https://<DOMAIN-NAME-KUMA-CORE-Server>:7210 --id <Windows Agent ID>
Перейдите в веб-интерфейс KUMA (активные сервисы) и убедитесь в успешности запуска агента - статус агента Windows должен измениться на зеленый. После этого остановите работу агента путем прерывания исполнения в командной строке.
Запустите установку агента командой:
C:\Users\<имя пользователя>\Desktop\KUMA>kuma.exe agent --core https://<DOMAIN-NAME-KUMA-CORE-Server>:7210 --id <Windows Agent ID> –-user <Имя сервисной доменной УЗ> --install
Если агент устанавливается из-под доменной учетной записи пользователь указывается в формате <домен>\<имя учетной записи>, например, demo\user
Во время установки сервиса система запросит пароль. Введите пароль сервисной доменной учетной записи.
В результате, на Windows сервере будет установлен сервис KUMA Windows Agent <Windows Agent ID>.
Если статус агента в веб-интерфейсе KUMA красный, необходимо удостовериться в доступности портов 7210 и порта коллектора Windows по направлению от агента к KUMA Collector.
Для удаления сервиса агента KUMA по окончанию тестирования продукта выполните следующую команду:
C:\Users\<имя пользователя>\Desktop\KUMA>kuma.exe agent --id <Windows Agent ID> --uninstall
Проверка поступления событий Windows в KUMA
Для проверки, что сбор событий с устройств Windows успешно настроен перейдите в Ресурсы -> Активные сервисы -> выберите (чекбокс) ранее созданный коллектор для Windows и нажмите Перейти к событиям. Либо ПКМ - Перейти к событиям. В открывшемся окне События убедитесь, что присутствуют события с Windows-устройств.