Skip to main content

Sysmon

Информация, приведенная на данной странице, является разработкой команды pre-sales и/или community KUMA и НЕ является официальной рекомендацией вендора.

Что такое Sysmon

System Monitor (Sysmon) — это инструмент мониторинга системы для Windows от Microsoft, входящий в пакет Sysinternals Suite. Представляет собой системную службу и драйвер устройства Windows, которые после установки постоянно работают в системе, в том числе после перезагрузки.

Типы событий, создаваемые Sysmon: https://learn.microsoft.com/ru-ru/sysinternals/downloads/sysmon#event-id-1-process-creation

Sysmon предоставляет подробную информацию о создании процессов, сетевых подключениях и изменениях времени создания файлов. За счет сбора событий Sysmon средствами сбора событий Windows (Windows Event Collection) или SIEM-системами и последующего их анализа,  можно выявлять вредоносную или аномальную активность и понять, как злоумышленники и вредоносное ПО действуют в вашей сети. Служба работает как защищенный процесс, что блокирует широкий спектр взаимодействий из пользовательского режима.

Sysmon не анализирует генерируемые им события и не пытается скрыть свое присутствие от злоумышленников.

Принцип работы

Установка и настройка Sysmon

На отдельной рабочей станции/сервере

  • Выполните загрузку Sysmon.exe с официального сайта Sysinternals:
Invoke-WebRequest -Uri "https://download.sysinternals.com/files/Sysmon.zip" -OutFile "<Путь для загрузки файла>\<Имя файла>"

image.png

  • Распакуйте архив средствами проводника Windows или с помощью PowerShell-команды:
Expand-Archive -Path "<Путь, куда был загружен файл>\<Имя файла>" -DestinationPath "<Путь для загрузки файла>\<Имя файла>" -Force

image.png

  • Загрузите готовый конфигурационный файл Sysmon. Можно использовать конфигурационные файлы из других репозиториев, например, отсюда или создать собственный (подробнее см. здесь):
Invoke-WebRequest -Uri "https://github.com/SwiftOnSecurity/sysmon-config/blob/master/sysmonconfig-export.xml" -OutFile "<Путь для загрузки файла>\<Имя файла>" 

image.png

  • Запустите PowerShell с правами администратора и выполните установку Sysmon с ранее загруженной (или собственной) конфигурацией:
<Путь до файла>\Sysmon.exe -accepteula -i "<Путь до файла конфигурации>\<Имя файла конфигурации>"

image.png

  • Проветье статус службы Sysmon:
Get-Service -Name Sysmon

image.png

На группе рабочих станций/серверов средствами GPO

  • Выполните загрузку Sysmon.exe с официального сайта Sysinternals:
Invoke-WebRequest -Uri "https://download.sysinternals.com/files/Sysmon.zip" -OutFile "<Путь для загрузки файла>\<Имя файла>"

image.png

  • Распакуйте архив средствами проводника Windows или с помощью PowerShell-команды:
Expand-Archive -Path "<Путь, куда был загружен файл>\<Имя файла>" -DestinationPath "<Путь для загрузки файла>\<Имя файла>" -Force

image.png

  • Загрузите готовый конфигурационный файл Sysmon. Можно использовать конфигурационные файлы из других репозиториев, например, отсюда или создать собственный (подробнее см. здесь):
Invoke-WebRequest -Uri "https://github.com/SwiftOnSecurity/sysmon-config/blob/master/sysmonconfig-export.xml" -OutFile "<Путь для загрузки файла>\<Имя файла>" 

image.png

  • На контроллере домена создайте папку sysmon по пути \\<Имя контроллера домена>\SYSVOL\<Название домена>\scripts\.

Почему SYSVOL?
- Гарантированная репликацияРепликация и доступность:
Папка SYSVOL автоматически реплицируется между всеми контроллерами домена (DC). Это означает, что вашифайлы файлыSysmon будут доступны с любого DC по пути \\<ANY_DC>\SYSVOL\<domain>\scripts\Sysmon\sysmon\. Это обеспечивает высокую отказоустойчивость.



Гарантированный

Гарантированныедоступ правас доступа:

компьютеров

домена:
По умолчанию у всех компьютеров в домене есть право на чтение из SYSVOL. Вам не нужнопотребуется вручную настраивать права NTFS или общие ресурсы (Network Shares). Это решает частую проблему "Access Denied" при обращении к обычным сетевым папкам.

Надежность:

SYSVOL — это критически важный, встроенный компонент домена. Он всегда работает и всегда доступен для членов домена. Его работа не зависит от поднятия отдельной файловой службы.



Безопасность:


Поскольку запись в SYSVOL по умолчанию разрешена только администраторам домена, риск случайного или злонамеренного изменения скриптов или файлов Sysmon посторонними лицами минимален.

  • Скопируйте файл sysmon.exe и файл конфигурации sysmonconfig-export.xml на контроллер домена в \\<Имя контроллера домена>\SYSVOL\<Название домена>\scripts\sysmon.
  • Создайте скрипт установки (deploy_sysmon.bat):

@echo 

off setlocal rem --- Переменные --- set SYSMON_PATH=\\domain.local\NETLOGON\Sysmon set CONFIG_FILE=%SYSMON_PATH%\sysmonconfig.xml set SYSMON_EXE=%SYSMON_PATH%\Sysmon.exe rem --- Проверяем, установлен ли уже Sysmon --- sc query Sysmon >nul 2>&1 if %ERRORLEVEL% EQU 0 ( echo Sysmon is already installed. Updating configuration. "%SYSMON_EXE%" -c "%CONFIG_FILE%" goto :EOF ) rem --- Если не установлен, устанавливаем --- echo Installing Sysmon... "%SYSMON_EXE%" -i "%CONFIG_FILE%" -accepteula endlocal
  • На контроллере домена

Рекомендации для сервера WEC
Официальная справка

Настройка WEC-сервера

Настройка службы Windows Event Collector (WEC)

Если служба Windows Event Collector (WEC) еще не настроена см. раздел Настройка службы Windows Event Collector (WEC)

Настройка подписки для событий Sysmon на WEC-сервере

Чтобы настроить подписку для событий Sysmon на WEC-сервере:

  • Нажмите кнопку Win, введите eventvwr.msc и запустите Просмотр событий от имени администратора.
  • Выберите Подписки правой кнопкой мыши Создать подписку  Укажите имя подписки, например, KUMA Sysmon и тип подписки Инициировано исходным компьютером.

image.png

  • Выберите отдельные компьютеры или группу компьютеров, на которых установлен Sysmon и события которых требуется собирать. В нашем примере – это группа компьютеров KUMA Sysmon: нажмите Выбрать группы компьютеров Добавить доменный компьютер в поле Введите имена выбираемых объектов укажите ранее созданную группу компьютеров и нажмите ОК.

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

image.png

image.png

image.png

  • Задайте собираемые события: Выбрать события → перейдите на вкладку XML и установите флажок Изменить запрос вручную.
  • Вставьте в поле следующий фильтр событий:
<QueryList>
  <Query Id="0" Path="Microsoft-Windows-Sysmon/Operational">
    <Select Path="Microsoft-Windows-Sysmon/Operational">*</Select>
  </Query>
</QueryList>
  • Нажмите ОК.

image.png

  • Далее в окне Свойства подписки нажмите Дополнительно и для параметра Оптимизация доставки событий укажите Уменьшенная задержка.
  • Нажмите ОК.

image.png

Описать настройку подписки через wecutil

Нужно ли ставить Sysmon на сам WEC-сервер? Например, в описании к событиям есть такая ошибка. Пропадет ли она если поставить службу?

image.png

Настройка WinRM и подписки на источниках событий

Для отдельной рабочей станции/сервера

Если WinRM и подписка на источниках событий еще не настроены см. раздел Настройка WinRM и подписки на источниках событий (Для отдельной рабочей станции/сервера)

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

Убедитесь, что на WEC-сервер поступают события Sysmon с рабочих станций/серверов:

  • На WEC-сервере нажмите кнопку Win, введите eventvwr.msc и запустите Просмотр событий от имени администратора.
  • Перейдите в Журналы WindowsПеренаправленные события (Forwarded Events).
  • В панели справа выберите Фильтр текущего журнала.
  • В окне Фильтровать текущий журнал в поле Источники событий укажите Microsoft-Windows-Sysmon и нажмите ОК.

image.png

  • Если в окне Перенаправленные события (Forwarded Events) отображаются события Sysmon, значит подписка работает корректно.

image.png

Для MS Server 2016 и 2019 в случае если события не пересылаются, выполнить шаги по этой инструкции. При добавлении разрешения для URL-адреса с помощью netsh http add urlacl добавьте кавычки "..." в параметре SDDL:
netsh http delete urlacl url=http://+:5985/wsman/ netsh http add urlacl url=http://+:5985/wsman/ sddl="D:(A;;GX;;;S-1-5-80-569256582-2953403351-2909559716-1301513147-412116970)(A;;GX;;;S-1-5-80-4059739203-877974739-1245631912-527174227-2996563517)" netsh http delete urlacl url=https://+:5986/wsman/ netsh http add urlacl url=https://+:5986/wsman/ sddl="D:(A;;GX;;;S-1-5-80-569256582-2953403351-2909559716-1301513147-412116970)(A;;GX;;;S-1-5-80-4059739203-877974739-1245631912-527174227-2996563517)"

В случае если от источников не поступают события Sysmon проверьте на WEC-сервере в журнале Microsoft/windows/event_forwardingPlugin/Operational события с кодом 5004 (ошибка отправки логов в WEC-сервер), если там есть такие события, то выполните рекомендации по этой статье: https://learn.microsoft.com/ru-ru/troubleshoot/windows-server/system-management-components/security-event-log-forwarding-fails-error-0x138c-5004 

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

Если Вы уже ранее развернули агент KUMA на WEC-сервере и настроили сервис коллектор для сбора событий Windows (см. статью MS WEC), тогда в таком случае дополнительных действий не требуется и можно переходить к шагу Проверка поступления событий Windows в KUMA.

В случае если агент KUMA и сервис коллектора для событий Windows не настроены - см. раздел Настройка коллектора и агента KUMA.

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

Для проверки, что сбор событий Sysmon успешно настроен перейдите в РесурсыАктивные сервисы → выберите коллектор для событий Windows/Sysmon и нажмите Перейти к событиям.

image.png


2. В открывшемся окне События добавьте в поисковый запрос условие DeviceProduct = 'Sysmon' и убедитесь, что события Sysmon доступны.

image.png

https://learn.microsoft.com/en-us/sysinternals/downloads/sysmon

For example, you will need to exclude actions of your antivirus, which will otherwise likely fill up your logs with useless information.

I do recommend using a minimal number of configurations within your environment for multiple obvious reasons, like; maintenance, output equality, manageability and so on. But do make tailored configurations for Domain Controllers, Servers and workstations.