Поделиться через


Sysmon версии 15.2

По 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-адреса, номера портов, имена узлов и имена портов.
  • Обнаруживает изменения во время создания файла, чтобы понять, когда файл был создан на самом деле. Изменение меток времени создания файла — это метод, часто используемый вредоносными программами для сокрытия следов.
  • Автоматически перезагрузите конфигурацию при изменении в реестре.
  • Фильтрация правил для включения или исключения определенных событий динамически.
  • Создает события из начального процесса загрузки для отслеживания действий, сделанных даже сложными вредоносными программами в режиме ядра.

Снимки экрана

EventViewer

Использование

Частое использование с простыми параметрами командной строки для установки и удаления 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 и выше.