Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
По Mark Russinovich и Thomas Garnier
Опубликовано: 26 марта 2026 г.
Скачайте sysmon(4,6 МБ)
Скачать Sysmon для Linux (GitHub)
Введение
Системный монитор (Sysmon) — это системная служба Windows и драйвер устройства, который после установки в системе остается резидентом во время перезагрузки системы для мониторинга и регистрации действий системы в журнал событий Windows. Он предоставляет подробные сведения о создании процессов, сетевых подключениях и изменениях времен созданий файлов. Собирая события, создаваемые с помощью коллекции событий Windows или агентов SIEM , а затем анализируя их, можно определить вредоносные или аномальные действия и понять, как злоумышленники и вредоносные программы работают в вашей сети. Служба выполняется как защищенный процесс, поэтому не позволяет выполнять широкий спектр взаимодействий в пользовательском режиме.
Обратите внимание, что Sysmon не предоставляет анализ событий, которые он создает, и не пытается скрыть себя от злоумышленников.
Общие сведения о возможностях sysmon
Sysmon включает следующие возможности:
- Создание журнала с полной командной строкой для текущих и родительских процессов.
- Записывает хэш файлов изображений процесса с помощью SHA1 (по умолчанию), MD5, SHA256 или IMPHASH.
- Одновременно можно использовать несколько хэшей.
- Включает GUID процесса в процессе создания событий, чтобы обеспечить корреляцию событий, даже если Windows повторно использует идентификаторы процессов.
- Содержит GUID сеанса в каждом событии, чтобы разрешить корреляцию событий в одном сеансе входа.
- Регистрирует загрузку драйверов или библиотек DLL с их подписями и хэшами.
- Доступ к журналам предоставляется для низкоуровневого чтения дисков и томов.
- При необходимости регистрирует сетевые подключения, включая исходный процесс каждого подключения, IP-адреса, номера портов, имена узлов и имена портов.
- Обнаруживает изменения во время создания файла, чтобы понять, когда файл был создан на самом деле. Изменение меток времени создания файла — это метод, часто используемый вредоносными программами для сокрытия следов.
- Автоматически перезагрузите конфигурацию при изменении в реестре.
- Фильтрация правил для включения или исключения определенных событий динамически.
- Создает события из начального процесса загрузки для отслеживания действий, сделанных даже сложными вредоносными программами в режиме ядра.
Снимки экрана
Использование
Частое использование с простыми параметрами командной строки для установки и удаления Sysmon, а также для проверки и изменения конфигурации:
Установить: sysmon64 -i [<configfile>]
Обновление конфигурации: sysmon64 -c [<configfile>]
Установка манифеста события: sysmon64 -m
Схема печати: sysmon64 -s
Удаление: sysmon64 -u [force]
| Параметр | Описание |
|---|---|
| -i | Установите службу и драйвер. При необходимости возьмите файл конфигурации. |
| -c | Обновите конфигурацию установленного драйвера Sysmon или выведите текущую конфигурацию, если не указан другой аргумент. При необходимости принимает файл конфигурации. |
| -m | Установите манифест события (это также осуществляется автоматически при установке службы). |
| -s | Определение схемы конфигурации печати. |
| -u | Удаление службы и драйвера. Использование -u force приводит к удалению, даже если некоторые компоненты не установлены. |
Служба немедленно регистрирует события, и драйвер устанавливается как драйвер, загружаемый при запуске, для фиксации активности с начала загрузки, которые служба запишет в журнал событий при запуске.
В Vista и более поздних версиях события хранятся в Applications and Services Logs/Microsoft/Windows/Sysmon/Operational.
В старых системах события записываются в System журнал событий.
Если вам нужна дополнительная информация о файлах конфигурации, используйте -? config команду.
Укажите -accepteula , чтобы автоматически принять EULA при установке, в противном случае вам будет предложено принять его в интерактивном режиме.
Ни установка, ни удаление не требуют перезагрузки.
Примеры
Установите с параметрами по умолчанию (хэшированные образы с помощью SHA1 и нет сетевого мониторинга)
sysmon -accepteula -i
Установите Sysmon с файлом конфигурации (как описано ниже)
sysmon -accepteula -i c:\windows\config.xml
Удалить
sysmon -u
Показать текущую конфигурацию
sysmon -c
Перенастройка активного sysmon с помощью файла конфигурации (как описано ниже)
sysmon -c c:\windows\config.xml
Изменение конфигурации на параметры по умолчанию
sysmon -c --
Отображение схемы конфигурации
sysmon -s
События
В Vista и более поздних версиях события хранятся в Applications and Services Logs/Microsoft/Windows/Sysmon/Operational, а на более старых системах события записываются в System журнал событий.
Метки времени событий используем всемирное координированное время (UTC).
Ниже приведены примеры каждого типа события, создаваемого sysmon.
Идентификатор события 1. Создание процесса
Событие создания процесса предоставляет расширенные сведения о созданном процессе. Полная командная строка предоставляет контекст для выполнения процесса. Поле ProcessGUID является уникальным значением для этого процесса в домене, чтобы упростить корреляцию событий. Хэш — это полный хэш файла с алгоритмами в HashType поле.
Идентификатор события 2. Процесс изменил время создания файла
Событие времени создания файла изменений регистрируется при явном изменении времени создания файла процессом. Это событие помогает отслеживать реальное время создания файла. Злоумышленники могут изменить время создания файла backdoor, чтобы он выглядел так, как он был установлен с операционной системой. Обратите внимание, что многие процессы законно изменяют время создания файла; Он не обязательно указывает на вредоносные действия.
Идентификатор события 3. Сетевое подключение
Журналы событий сетевого подключения записывают подключения TCP/UDP на компьютере. Он отключен по умолчанию. Каждое соединение связано с процессом через поля ProcessId и ProcessGuid. Событие также содержит IP-адреса исходного и целевого узлов, номера портов и состояние IPv6.
Идентификатор события 4. Изменено состояние службы Sysmon
Событие изменения состояния службы сообщает о состоянии службы Sysmon (запущена или остановлена).
Идентификатор события 5. Завершение процесса
Событие завершения процесса регистрирует факт завершения процесса. Он предоставляет UtcTime, ProcessGuid и ProcessId процесса.
Идентификатор события 6. Драйвер загружен
События, загруженные драйвером, предоставляют сведения о загрузке драйвера в систему. Настроенные хэши и информация о подписи предоставляются. Подпись создается асинхронно по соображениям производительности и указывает, был ли файл удален после загрузки.
Идентификатор события 7. Загруженный образ
Журналирует событие загрузки изображения, когда модуль загружается в конкретный процесс. Это событие отключено по умолчанию и должно быть настроено с параметром "–l". Он указывает процесс загрузки модуля, хэши и сведения о сигнатуре. Подпись создается асинхронно по соображениям производительности и указывает, был ли файл удален после загрузки. Это событие следует тщательно настроить, так как мониторинг всех событий загрузки изображений приведет к значительному количеству ведения журнала.
Идентификатор события 8. CreateRemoteThread
Событие CreateRemoteThread обнаруживает, когда процесс создает поток в другом процессе. Этот метод используется вредоносными программами для внедрения кода и скрытия в других процессах. Событие указывает исходный и целевой процесс. Он содержит сведения о коде, который будет выполняться в новом потоке: StartAddressStartModule и StartFunction. Обратите внимание, что поля StartModule и StartFunction выводятся из контекста, они могут быть пустыми, если начальный адрес находится вне загруженных модулей или известных экспортированных функций.
Идентификатор события 9: RawAccessRead
Событие RawAccessRead обнаруживает, когда процесс проводит операции чтения с диска с помощью \\.\ денотации. Этот метод часто используется вредоносными программами для кражи данных файлов, которые заблокированы для чтения, а также для предотвращения доступа к файлам средств аудита. Событие указывает исходный процесс и целевое устройство.
Идентификатор события 10: ProcessAccess
Процесс обращается к отчетам о событиях, когда он открывает другой процесс — операцию, за которой часто следуют запросы информации или операции чтения и записи в адресное пространство целевого процесса. Это позволяет обнаруживать средства взлома, которые считывают содержимое памяти таких процессов, как локальный центр безопасности (Lsass.exe), чтобы украсть учетные данные для использования в атаках Pass-the-Hash. Включение может создавать значительное количество ведения журнала, если активны служебные программы диагностики, которые неоднократно открывают процессы для запроса их состояния, поэтому это обычно следует делать только при использовании фильтров, удаляющих ожидаемые доступы.
Идентификатор события 11. FileCreate
Операции создания файлов регистрируются при создании или перезаписи файла. Это событие полезно для мониторинга расположений автозапуска, таких как папка Автозагрузка, а также временные и скачиваемые каталоги, которые являются общими местами для распространения вредоносных программ во время первоначальной инфекции.
Идентификатор события 12. RegistryEvent (создание и удаление объекта)
Операции создания и удаления ключей и значений реестра соответствуют этому типу события, что может быть полезно для мониторинга изменений в расположениях автозагрузки реестра или конкретных модификаций реестра, произведенных вредоносными программами.
Sysmon использует сокращенные версии названий корневых ключей реестра с такими сопоставлениями:
| Имя ключа | Аббревиатура |
|---|---|
HKEY_LOCAL_MACHINE |
HKLM |
HKEY_USERS |
HKU |
HKEY_LOCAL_MACHINE\System\ControlSet00x |
HKLM\System\CurrentControlSet |
HKEY_LOCAL_MACHINE\Classes |
HKCR |
Идентификатор события 13: RegistryEvent (набор значений)
Этот тип события реестра определяет изменения значений реестра. Событие записывает значение, записанное для значений реестра типа DWORD и QWORD.
Идентификатор события 14: Событие реестра (переименование ключа и значения)
Ключ реестра и операции переименования значений сопоставляются с этим типом события, фиксируя новое имя переименованного ключа или значения.
Идентификатор события 15: FileCreateStreamHash
Это событие регистрируется при создании именованного потока файлов и создает события, которые регистрируют хэш содержимого файла, которому назначается поток (неименованный поток), а также содержимое именованного потока. Существуют варианты вредоносных программ, которые загружают исполняемые файлы или параметры конфигурации через загрузки в браузере, и это событие предназначено для захвата этого на основе браузера, который присоединяет Zone.Identifier "метку Интернета" в потоке.
Идентификатор события 16: ServiceConfigurationChange
Это событие регистрирует изменения в конфигурации Sysmon, например при обновлении правил фильтрации.
Идентификатор события 17: PipeEvent (создание канала)
Это событие генерируется при создании именованного канала. Вредоносные программы часто используют именованные каналы для взаимодействия между процессами.
Идентификатор события 18: PipeEvent (Подключение канала)
Это событие регистрируется при подключении именованного канала между клиентом и сервером.
Идентификатор события 19: WmiEvent (обнаружено действие WmiEventFilter)
При регистрации фильтра событий WMI, который является методом, используемым вредоносными программами для выполнения, это событие регистрирует пространство имен WMI, имя фильтра и выражение фильтра.
Идентификатор события 20: WmiEvent (обнаружено действие WmiEventConsumer)
Это событие ведет учет потребителей WMI, фиксируя имя потребителя, журнал и назначение.
Идентификатор события 21: WmiEvent (обнаружено действие WmiEventConsumerToFilter)
Когда потребитель привязывается к фильтру, это событие регистрирует имя потребителя и путь фильтра.
Идентификатор события 22: DNSEvent (DNS-запрос)
Это событие создается при выполнении DNS-запроса, независимо от того, успешен результат или нет, кэширован он или нет. Данные телеметрии для этого события добавлены для Windows 8.1, поэтому она недоступна в Windows 7 и более ранних версиях.
Идентификатор события 23: FileDelete (удаление файла заархивировано)
Файл был удален. Кроме регистрации события, удаленный файл также сохраняется в ArchiveDirectory (что является значением по умолчанию C:\Sysmon). В обычных условиях работы этот каталог может увеличиться до неразумного размера— см. идентификатор события 26: FileDeleteDetected для аналогичного поведения, но без сохранения удаленных файлов.
Идентификатор события 24: ClipboardChange (новое содержимое в буфере обмена)
Это событие создается при изменении содержимого буфера обмена системы.
Идентификатор события 25: Вмешательство в процесс (изменение образа процесса)
Это событие создается при обнаружении методов скрытия процесса, таких как "hollow" или "herpaderp".
Идентификатор события 26: ОбнаруженоУдалениеФайла (удаление файла зафиксировано)
Файл был удален.
Идентификатор события 27: FileBlockExecutable
Это событие создается при обнаружении и блокировке создания исполняемых файлов (формат PE).
Идентификатор события 28: FileBlockShredding
Это событие создается, когда Sysmon обнаруживает и блокирует удаление файлов с помощью таких инструментов, как SDelete.
Идентификатор события 29: FileExecutableDetected
Это событие создается, когда Sysmon обнаруживает создание нового исполняемого файла (формат PE).
Идентификатор события 255: ошибка
Это событие создается при возникновении ошибки в системе Sysmon. Они могут произойти, если система находится под тяжелой нагрузкой и некоторые задачи не могут быть выполнены, или ошибка существует в службе Sysmon, или даже если определенные условия безопасности и целостности не выполнены. Вы можете сообщить о любых ошибках на форуме Sysinternals.
Файлы конфигурации
Файлы конфигурации можно указать после переключателя -i (установка) или -c (конфигурация). Они упрощают развертывание предварительно заданной конфигурации и фильтрацию захваченных событий.
Простой XML-файл конфигурации выглядит следующим образом:
<Sysmon schemaversion="4.82">
<!-- Capture all hashes -->
<HashAlgorithms>*</HashAlgorithms>
<EventFiltering>
<!-- Log all drivers except if the signature -->
<!-- contains Microsoft or Windows -->
<DriverLoad onmatch="exclude">
<Signature condition="contains">microsoft</Signature>
<Signature condition="contains">windows</Signature>
</DriverLoad>
<!-- Do not log process termination -->
<ProcessTerminate onmatch="include" />
<!-- Log network connection if the destination port equal 443 -->
<!-- or 80, and process isn't InternetExplorer -->
<NetworkConnect onmatch="include">
<DestinationPort>443</DestinationPort>
<DestinationPort>80</DestinationPort>
</NetworkConnect>
<NetworkConnect onmatch="exclude">
<Image condition="end with">iexplore.exe</Image>
</NetworkConnect>
</EventFiltering>
</Sysmon>
Файл конфигурации содержит атрибут schemaversion в теге Sysmon. Эта версия не зависит от двоичной версии Sysmon и позволяет анализировать старые файлы конфигурации. Текущую версию схемы можно получить с помощью командной строки "-? config". Записи конфигурации расположены непосредственно под тегом Sysmon, а фильтры находятся под тегом EventFiltering.
Записи конфигурации
Записи конфигурации похожи на параметры командной строки и включают следующие элементы.
Записи конфигурации включают в себя следующие:
| Ввод | значение | Описание |
|---|---|---|
| ArchiveDirectory | Строка | Имя каталогов в корне тома, в которые перемещаются файлы копирования при удалении. Каталог защищен системой ACL (можно использовать PsExec из Sysinternals для доступа к каталогу с помощью psexec -sid cmd). По умолчанию: Sysmon |
| CheckRevocation | Логический | Управляет проверками отзыва подписей. По умолчанию: True |
| CopyOnDeletePE | Логический | Сохраняет удаленные исполняемые файлы изображений. По умолчанию: False |
| CopyOnDeleteSIDs | Строки | Разделенный запятыми список идентификаторов учетных записей, для которых будут сохранены удаленные файлы. |
| CopyOnDeleteExtensions | Строки | Расширения для файлов, которые сохраняются при удалении. |
| КопированиеПриУдаленииПроцессов | Строки | Имена процессов, для которых будут сохранены удаленные файлы. |
| DnsLookup | Логический | Управляет обратным поиском DNS. По умолчанию: True |
| ИмяДрайвера | Строка | Использует указанное имя для образов драйверов и служб. |
| Алгоритмы хеширования | Строки | Хэш-алгоритмы, применяемые для хэширования. Поддерживаемые алгоритмы включают MD5, SHA1, SHA256, IMPHASH и * (все). По умолчанию: None |
Параметры командной строки имеют запись конфигурации, описанную в выходных данных использования Sysmon. Параметры необязательны в зависимости от тега. Если параметр командной строки также включает событие, его необходимо настроить через его тег фильтра. Можно указать -s параметр, чтобы Sysmon выводил полную схему конфигурации, включая теги событий, а также имена и типы полей для каждого события. Например, вот схема типа RawAccessRead события:
<event name="SYSMON_RAWACCESS_READ" value="9" level="Informational "template="RawAccessRead detected" rulename="RawAccessRead" version="2">
<data name="UtcTime" inType="win:UnicodeString" outType="xs:string"/>
<data name="ProcessGuid" inType="win:GUID"/>
<data name="ProcessId" inType="win:UInt32" outType="win:PID"/>
<data name="Image" inType="win:UnicodeString" outType="xs:string"/>
<data name="Device" inType="win:UnicodeString" outType="xs:string"/>
</event>
Записи фильтрации событий
Фильтрация событий позволяет фильтровать созданные события. Во многих случаях события могут быть шумными, поэтому собирать всю информацию невозможно. Например, вас могут интересовать сетевые подключения только для определенного процесса, но не для всех процессов. Вы можете отфильтровать выходные данные на узле, уменьшая собираемые данные.
Каждое событие имеет собственный тег фильтра в узле EventFiltering в файле конфигурации:
| Идентификатор | Тег | Мероприятие |
|---|---|---|
| 1 | ProcessCreate; | Создание процесса |
| 2 | ВремяСозданияФайла | Время создания файла |
| 3 | NetworkConnect | Обнаружено сетевое подключение |
| 4 | Недоступно | Изменение состояния службы sysmon (невозможно отфильтровать) |
| 5 | ProcessTerminate | Процесс завершен |
| 6 | DriverLoad | Драйвер загружен |
| 7 | ImageLoad | Изображение загружено |
| 8 | CreateRemoteThread | CreateRemoteThread обнаружен |
| 9 | RawAccessRead | Обнаружен RawAccessRead |
| 10 | ProcessAccess | Доступ к процессу получен |
| 11 | СозданиеФайла | Файл создан |
| 12 | RegistryEvent | Добавлен или удален объект реестра |
| 13 | Событие реестра | Значение реестра установлено |
| 14 | Событие реестра | Объект реестра переименован |
| 15 | FileCreateStreamHash | Файловый поток создан |
| 16 | Недоступно | Изменение конфигурации sysmon (не может быть отфильтровано) |
| 17 | PipeEvent | Именованный канал создан |
| 18 | PipeEvent | Именованный канал подключен |
| 19 | WmiEvent | Фильтр WMI |
| 20 | WmiEvent | Потребитель WMI |
| 21 | WmiEvent | Фильтр потребителя WMI |
| 22 | DnsQuery | Запрос DNS |
| 23 | УдалениеФайла | Архивирована операция удаления файла |
| 24 | Изменение буфера обмена | Новое содержимое в буфере обмена |
| 25 | Подделка процесса | Изменение образа процесса |
| 26 | ОбнаруженоУдалениеФайла | Фиксация удаления файла в журнале |
| 27 | FileBlockExecutable | Блокировка исполняемых файлов |
| 28 | FileBlockShredding | Перемешивание блока файлов |
| 29 | ФайлИсполняемыйОбнаружен | Обнаруженный исполняемый файл |
Эти теги также можно найти в средстве просмотра событий в имени задачи.
Фильтр onmatch применяется, если события совпадают. Его можно изменить с помощью атрибута onmatch для тега фильтра. Если значение равно "include", это означает, что включены только соответствующие события. Если для него задано значение "exclude", событие будет включено, за исключением случаев, когда соответствует правилу. Можно указать как набор фильтров включения, так и набор фильтров исключений для каждого идентификатора события, где приоритет имеют совпадения исключений.
Каждый фильтр может содержать ноль или больше правил. Каждый тег под тегом фильтра — это имя поля из события. Правила, указывающие условие для того же имени поля, что и условия OR, и те, которые указывают другое имя поля, ведут себя как условия AND. Правила полей также могут использовать условия для сопоставления значения. Условия приведены следующим образом (все являются нечувствительными к регистру):
| Условие | Description |
|---|---|
| is | По умолчанию значения равны |
| — любой | Поле является одним из значений, разделённых с помощью ;. |
| Нет | Значения отличаются |
| содержит | Поле содержит это значение |
| содержит любой из | Поле содержит одно из значений, разделенных с помощью ;. |
| содержит все | Поле содержит все значения, разделенные ; |
| Исключает | Поле не содержит этого значения. |
| исключает любой из | Поле не содержит одного или нескольких значений, разделённых с помощью ;. |
| исключает все | Поле не содержит ни одного из значений, разделённых с помощью ;. |
| началось с | Поле начинается с этого значения. |
| закончить с | Поле заканчивается этим значением. |
| не начинается с | Поле не начинается с этого значения. |
| не заканчивается | Поле не заканчивается этим значением. |
| Менее | Лексографическое сравнение меньше нуля |
| более | Лексографическое сравнение больше нуля |
| Изображение | Сопоставление пути изображения (полный путь или только имя изображения). Например: lsass.exe будет соответствовать c:\windows\system32\lsass.exe |
Можно использовать другое условие, указав его в качестве атрибута. Это исключает сетевую активность из процессов с iexplore.exe в их пути.
<NetworkConnect onmatch="exclude">
<Image condition="contains">iexplore.exe</Image>
</NetworkConnect>
Чтобы получить отчет Sysmon о сопоставлении правил, в результате которого регистрируется событие, добавьте имена в правила:
<NetworkConnect onmatch="exclude">
<Image name="network iexplore" condition="contains">iexplore.exe</Image>
</NetworkConnect>
Вы можете использовать правила включения и исключения для одного тега, где правила исключения переопределяют правила включения. В правиле условия фильтрации имеют поведение, аналогичное логическому ИЛИ.
В пример конфигурации, показанной ранее, сетевой фильтр использует как правило включения, так и исключения для захвата активности на порты 80 и 443 всеми процессами, за исключением тех, в именах которых присутствует iexplore.exe.
Кроме того, можно переопределить способ объединения правил с помощью группы правил, которая позволяет использовать тип объединения правил для одного или нескольких событий, которые должны быть явно заданы как AND или OR.
Использование этого метода показано в следующем примере. В первой группе правил событие создания процесса будет создано, когда timeout.exe выполнится только с аргументом командной строки 100, но событие завершения процесса будет создано при завершении ping.exe и timeout.exe.
<EventFiltering>
<RuleGroup name="group 1" groupRelation="and">
<ProcessCreate onmatch="include">
<Image condition="contains">timeout.exe</Image>
<CommandLine condition="contains">100</CommandLine>
</ProcessCreate>
</RuleGroup>
<RuleGroup groupRelation="or">
<ProcessTerminate onmatch="include">
<Image condition="contains">timeout.exe</Image>
<Image condition="contains">ping.exe</Image>
</ProcessTerminate>
</RuleGroup>
<ImageLoad onmatch="include"/>
</EventFiltering>
Скачайте sysmon(4,6 МБ)
Выполняется:
- Клиент: Windows 10 и выше.
- Сервер: Windows Server 2016 и выше.