Skip to main content

MS ETW (DNS Analytics)

Расширенное ведение журнала 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. Для связи между провайдером и потребителем контроллер использует так называемые сессии трассировки. Сессия служит в том числе для фильтрации необходимых данных по различными параметрам, потому что потребителю может быть нужна только одна часть информации, а другому потребителю - другая.

Полезные ссылки:

Настройка на стороне Windows

Переходим в EventViewer (Выполнить -> eventvwr.msc). Далее переходим в Журналы приложений и служб\Microsoft\Windows\DNS-Server (на англ. Applications and Services Logs\Microsoft\Windows\DNS-Server)

image.png

Далее переходим в свойства Аналитического журнала:

image.png

Оставляем максимальный размер журнала по умолчнию в 1 Гб:

image.png

Нажимаем на чекбокс Включить ведение журнала, затем ОК

image.png

Должно получиться следующее:

image.png

Нажимаем Применить и ОК.

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

image.png

image.png

Далее необходимо перейти в Управление компьютером и открыть его от Админиcтратора. Переходим Служебные программы - Производительность - Сеансы отслеживания событий запуска.

image.png

Создаем группу сборщиков данных:

image.png

Задаем имя сборщика, например etwDNS-Analytics:

image.png

Добавляем поставщика Microsoft-Windows-DNSServer:

image.png

Агент с коннектором ETW работает только с System.Provider.Guid: {EB79061A-A566-4698-9119-3ED2807060E7} - Microsoft-Windows-DNSServer

Нажимаем Далее - Далее - Готово.

Запускаем созданного поставщика, как сеанс отслеживания событий:

image.png

Далее в сеансах отслеживания событий, в свойствах - Сеансы отслеживания указываем Режим реального времени

image.png

Нажимаем Применить и ОК.

Настройка коллектора и агента KUMA

Создание коллектора KUMA

Для создания коллектора в веб-интерфейсе KUMA перейдите на вкладку Ресурсы -> Коллекторы и нажмите на кнопку Добавить коллектор.

После выполнения вышеуказанных действий откроется мастер настройки. На первом шаге выберите Имя коллектора и Тенант, к которому будет принадлежать создаваемый коллектор.

image.png

На втором шаге мастера укажите транспорт. В нашем случае используется TCP (можно также использовать http и режимы с верификацией для защищенной отправки). В поле URL задайте FQDN/порт (выбирается любой из незанятых), на котором коллектор будет ожидать соединение от агента. В качестве разделителя укажите \n.

*можно указать только порт при инсталляции All-in-one.

image.png

На третьем шаге мастера укажите нормализатор. В данном случае рекомендуется использовать предустановленный расширенный нормализатор для событий Windows [OOTB] Microsoft DNS ETW logs json.

image.png

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

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

image.png

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

image.png

Также после выполнения вышеуказанных действий на вкладке Ресурсы -> Активные сервисы появится созданный сервис коллектора.

Установка коллектора KUMA

Выполните подключение к CLI KUMA (установка коллектора выполняется с правами root).

Перед установкой рекомендуется выполнить из командной строки команду, скопированную на прошлом шаге без ключа --install, чтобы убедиться в отсутствии ошибок.

image.png

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

Для установки сервиса коллектора в командной строке выполните команду, скопированную на прошлом шаге.

image.png

При необходимости добавьте порт коллектора в исключения фаервола и обновите параметры службы.

firewall-cmd --add-port=<порт, выбранный для коллектора>/tcp –permanent
firewall-cmd --reload

После успешной установки сервиса его в статус в веб-консоли KUMA изменится на зеленый.


Создание агента KUMA

Для создания агента в веб-интерфейсе KUMA перейдите на вкладку Ресурсы -> Агенты и нажмите на кнопку Добавить агент.

В открывшейся вкладке Общие параметры укажите Имя агента и Тенант, к которому он будет принадлежать.

image.png

На вкладке Подключение 1 в параметрах коннектора задайте имя коннектора, тип  etw и укажите имя сессии (это имя сборщика созданного на этапе настройки на стороне Windows) в нашем случае это etwDNS-Analytics.

image.png

В секции Точки назначения укажите имя точки назначения, тип tcp (должен совпадать с настройками коллектора). Задайте URL в формате fqdn:port (FQDN коллектора и порт, должны совпадать с настройками коллектора).

image.png

В дополнительных параметрах укажите размер дискового буфера в 1 Гб.

image.png

После настройки дополнительных параметров сохраните созданный ресурс агента.

Публикация агента KUMA

В разделе Ресурсы -> Активные сервисы опубликуйте созданную конфигурацию Agent ETW. Для этого нажмите Создать сервис -> выберите созданный сервис агента Agent ETW и нажмите Создать сервис. После публикации сервиса скопируйте его идентификатор нажатием на ПКМ данного сервиса для последующей установки агента на Windows сервере.

image.png

 

Установка агента 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.

image.png

Для установки агента KUMA запустите командную строку с правами администратора.

Перейдите в папку C:\Users\<имя пользователя>\Desktop\KUMA и выполните следующую команду:

C:\Users\<имя пользователя>\Desktop\KUMA>kuma.exe agent --core https://<DOMAIN-NAME-KUMA-CORE-Server>:7210 --id <Windows Agent ID>

image.png

Перейдите в веб-интерфейс 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

image.png

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

В результате, на Windows сервере будет установлен сервис KUMA Windows Agent <Windows Agent ID>.

image.png

Если статус агента  в веб-интерфейсе KUMA красный, необходимо удостовериться в доступности портов 7210 и порта коллектора Windows по направлению от агента к KUMA Collector. 

Для удаления сервиса агента KUMA по окончанию тестирования продукта выполните следующую команду:

C:\Users\<имя пользователя>\Desktop\KUMA>kuma.exe agent --id <Windows Agent ID> --uninstall

Проверка поступления событий Windows в KUMA

Для проверки, что сбор событий с устройств Windows успешно настроен перейдите в Ресурсы -> Активные сервисы -> выберите (чекбокс) ранее созданный коллектор для Windows и нажмите Перейти к событиям. Либо ПКМ - Перейти к событиям. В открывшемся окне События убедитесь, что присутствуют события с Windows-устройств.

image.png