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 "<Путь для загрузки файла>\<Имя файла>"
- Распакуйте архив средствами проводника Windows или с помощью PowerShell-команды:
Expand-Archive -Path "<Путь, куда был загружен файл>\<Имя файла>" -DestinationPath "<Путь для загрузки файла>\<Имя файла>" -Force
- Загрузите готовый конфигурационный файл Sysmon. Можно использовать конфигурационные файлы из других репозиториев, например, отсюда или создать собственный (подробнее см. здесь):
Invoke-WebRequest -Uri "https://github.com/SwiftOnSecurity/sysmon-config/blob/master/sysmonconfig-export.xml" -OutFile "<Путь для загрузки файла>\<Имя файла>"
- Запустите PowerShell с правами администратора и выполните установку Sysmon с ранее загруженной (или собственной) конфигурацией:
<Путь до файла>\Sysmon.exe -accepteula -i "<Путь до файла конфигурации>\<Имя файла конфигурации>"
- Проветье статус службы Sysmon:
Get-Service -Name Sysmon
На группе рабочих станций/серверов средствами GPO
При наличии опыта администрирования Windows инфраструктуры вы можете использовать наиболее привычный для Вас способ. Ниже описан один из вариантов установки и настройки Sysmon.
- Выполните загрузку Sysmon.exe с официального сайта Sysinternals:
Invoke-WebRequest -Uri "https://download.sysinternals.com/files/Sysmon.zip" -OutFile "<Путь для загрузки файла>\<Имя файла>"
- Распакуйте архив средствами проводника Windows или с помощью PowerShell-команды:
Expand-Archive -Path "<Путь, куда был загружен файл>\<Имя файла>" -DestinationPath "<Путь для загрузки файла>\<Имя файла>" -Force
- Загрузите готовый конфигурационный файл Sysmon. Можно использовать конфигурационные файлы из других репозиториев, например, отсюда или создать собственный (подробнее см. здесь):
Invoke-WebRequest -Uri "https://github.com/SwiftOnSecurity/sysmon-config/blob/master/sysmonconfig-export.xml" -OutFile "<Путь для загрузки файла>\<Имя файла>"
- На контроллере домена создайте папку sysmon по пути \\<Имя контроллера домена>\SYSVOL\<Название домена>\scripts\.
Почему SYSVOL?
Репликация и доступность:
Папка SYSVOL автоматически реплицируется между всеми контроллерами домена (DC). Это означает, что файлы Sysmon будут доступны с любого DC по пути \\<ANY_DC>\SYSVOL\<domain>\scripts\sysmon\. Это обеспечивает высокую отказоустойчивость.
Гарантированный доступ с компьютеров домена:
По умолчанию у всех компьютеров в домене есть право на чтение из SYSVOL. Вам не потребуется вручную настраивать права NTFS или общие ресурсы (Network Shares).
Безопасность:
Поскольку запись в SYSVOL по умолчанию разрешена только администраторам домена, риск случайного или злонамеренного изменения скриптов или файлов Sysmon посторонними лицами минимален.
- Скопируйте файл sysmon.exe и файл конфигурации sysmonconfig-export.xml на контроллер домена в \\<Имя контроллера домена>\SYSVOL\<Название домена>\scripts\sysmon.
- Создайте скрипт установки (deploy_sysmon.cmd):
@echo off
setlocal EnableDelayedExpansion
rem --- Проверяем, установлен ли уже Sysmon ---
sc query Sysmon >nul 2>&1
if !ERRORLEVEL! EQU 0 (
echo [INFO] Sysmon is already installed. Exiting.
goto :clean_exit
)
rem --- Пути ---
set "SYSMON_NETWORK_PATH=\\truecompany.local\SYSVOL\truecompany.local\scripts\sysmon"
set "CONFIG_FILE=%SYSMON_NETWORK_PATH%\sysmonconfig-export.xml"
set "SYSMON_EXE=%SYSMON_NETWORK_PATH%\Sysmon.exe"
rem --- Локальный путь для копирования ---
set "SYSMON_LOCAL_DIR=C:\Windows\Temp\SysmonDeploy"
set "SYSMON_LOCAL_EXE=%SYSMON_LOCAL_DIR%\Sysmon.exe"
set "CONFIG_LOCAL_FILE=%SYSMON_LOCAL_DIR%\sysmonconfig-export.xml"
rem --- Создаем локальную папку ---
if not exist "%SYSMON_LOCAL_DIR%" mkdir "%SYSMON_LOCAL_DIR%"
rem --- Копируем файлы ---
echo Copying files from SYSVOL...
copy /Y "%SYSMON_EXE%" "%SYSMON_LOCAL_DIR%\" >nul
copy /Y "%CONFIG_FILE%" "%SYSMON_LOCAL_DIR%\" >nul
rem --- Устанавливаем Sysmon ---
echo [INFO] Installing Sysmon...
"%SYSMON_LOCAL_EXE%" -i "%CONFIG_LOCAL_FILE%" -accepteula
rem --- Очистка временных файлов ---
rd /S /Q "%SYSMON_LOCAL_DIR%" >nul 2>&1
:clean_exit
endlocal
echo Sysmon deployment task completed.
GPO можно применять к группе компьютеров, к OU, к сайт или всему домену. Первоначально рекомендуется выполнить развертывание службы Sysmon на нескольких некритичных рабочих станциях и далее после успешного тестирования постепенно масштабировать GPO на другие группы компьютеров и/или OU.
- В нашем примере будет использоваться группа компьютеров - создайте группу компьютеров средствами Active Directory – пользователи и компьютеры, задайте имя группе, например, KUMA Sysmon. Добавьте в данную группу несколько некритичных рабочих станций, на которых предполагается развертывание службы Sysmon.
- Для того, чтобы изменения вступили в силу (в данном случае членство в новой группе), выполните перезагрузку устройства. Альтернативным вариантом может быть перевыпуск Kerberos-тикетов для устройства с помощью klist.exe.
- На контроллере домена запустите оснастку Управление групповой политикой: нажмите Win + R → gpmc.msc.
- Создайте новый объект групповой политики, например, Deploy Sysmon: ПКМ Объекты групповой политики → Создать → введите в имени Deploy Sysmon.
- Далее выберите созданный объект групповой политики Deploy Sysmon и нажмите Изменить.
- Перейдите в Конфигурация компьютера → Политики → Конфигурация Windows → Сценарии (Запуск/Завершение) → Автозагрузка (Computer Configuration → Policies → Windows Settings → Scripts (Startup/Shutdown) → Startup)
-
Нажмите Добавить и в появившемся окне Добавление сценария нажмите Обзор.
- В окне Проводника в папку \\<Наименование домена>\SysVol\<Наименование домена>\Policies\<GUID политики>\Machine\Scripts\Startup скопируйте ранее созданный скрипт deploy_sysmon.cmd, далее выберите скрипт и нажмите Открыть.
- Нажмите ОК.
- В окне Свойства: Автозагрузка нажмите ОК. Таким образом, скрипт, устанавливающий службу Sysmon будет выполняться при запуске ОС.
- Далее вернитесь в Управление групповой политикой → выберите объект групповой политики Deploy Sysmon → в окне справа Фильтры безопасности удалите группу Прошедшие проверку и добавьте группу KUMA Sysmon.
- Нажмите ПКМ на домен и выберите Связать существующий объект групповой политики → выберите KUMA Sysmon и нажмите ОК.
- Итоговый вид политики должен выглядеть следующим образом (см. скриншот).
- Для того, чтобы параметры новой GPO, были применены на рабочих станциях необходимо перезагрузить устройства и выполнить вход пользователя.
- Для проверки успешного применения GPO перейдите в журнал событий на тестовом компьютере (Event Viewer -> Applications and Services Logs -> Microsoft -> Windows -> Sysmon -> Operational). Должны появиться события.
Рекомендации для сервера WEC
Официальная справка
Настройка WEC-сервера
Настройка службы Windows Event Collector (WEC)
Если служба Windows Event Collector (WEC) еще не настроена см. раздел Настройка службы Windows Event Collector (WEC)
Настройка подписки для событий Sysmon на WEC-сервере
Чтобы настроить подписку для событий Sysmon на WEC-сервере:
- Нажмите кнопку Win, введите eventvwr.msc и запустите Просмотр событий от имени администратора.
- Выберите Подписки → правой кнопкой мыши Создать подписку → Укажите имя подписки, например, KUMA Sysmon и тип подписки Инициировано исходным компьютером.
- Выберите отдельные компьютеры или группу компьютеров, на которых установлен Sysmon и события которых требуется собирать. В нашем примере – это группа компьютеров KUMA Sysmon: нажмите Выбрать группы компьютеров → Добавить доменный компьютер → в поле Введите имена выбираемых объектов укажите ранее созданную группу компьютеров и нажмите ОК.
Если предполагается сбор событий с контроллера домена, в таком случае, контроллер домена можно добавить как отдельный доменный компьютер.
- Задайте собираемые события: Выбрать события → перейдите на вкладку XML и установите флажок Изменить запрос вручную.
- Вставьте в поле следующий фильтр событий:
<QueryList>
<Query Id="0" Path="Microsoft-Windows-Sysmon/Operational">
<Select Path="Microsoft-Windows-Sysmon/Operational">*</Select>
</Query>
</QueryList>
- Нажмите ОК.
- Далее в окне Свойства подписки нажмите Дополнительно и для параметра Оптимизация доставки событий укажите Уменьшенная задержка.
- Нажмите ОК.
Описать настройку подписки через wecutil
Нужно ли ставить Sysmon на сам WEC-сервер? Например, в описании к событиям есть такая ошибка. Пропадет ли она если поставить службу?
Настройка WinRM и подписки на источниках событий
Для отдельной рабочей станции/сервера
Если WinRM и подписка на источниках событий еще не настроены см. раздел Настройка WinRM и подписки на источниках событий (Для отдельной рабочей станции/сервера)
Проверка поступления событий
Убедитесь, что на WEC-сервер поступают события Sysmon с рабочих станций/серверов:
- На WEC-сервере нажмите кнопку Win, введите eventvwr.msc и запустите Просмотр событий от имени администратора.
- Перейдите в Журналы Windows → Перенаправленные события (Forwarded Events).
- В панели справа выберите Фильтр текущего журнала.
- В окне Фильтровать текущий журнал в поле Источники событий укажите Microsoft-Windows-Sysmon и нажмите ОК.
- Если в окне Перенаправленные события (Forwarded Events) отображаются события Sysmon, значит подписка работает корректно.
Для 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 ( ), если там есть такие события, то выполните рекомендации по этой статье: 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 и нажмите Перейти к событиям.
2. В открывшемся окне События добавьте в поисковый запрос условие DeviceProduct = 'Sysmon' и убедитесь, что события Sysmon доступны.
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.