Skip to main content

MS ETW (DNS logging and diagnostics)

Расширенное ведение журнала 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

 

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

image.png

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

image.png

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

image.png

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

image.png

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

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

image.png

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

image.png

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