Разное

Sysmon как пользоваться: Руководство по анализу Sysmon-угроз, часть 1 / Хабр

Содержание

Руководство по анализу Sysmon-угроз, часть 1 / Хабр

Эта статья является первой частью серии по анализу Sysmon-угроз. Все остальные части серии:

Часть 1. Знакомство с анализом логов Sysmon (мы тут)
Часть 2. Использование данных из Sysmon событий для выявления угроз
Часть 3. Углубленный анализ Sysmon-угроз с помощью графов

Если вы занимаетесь информационной безопасностью, наверняка вам часто приходится разбираться в происходящих атаках. Если у вас уже намётанный глаз, вы можете поискать нестандартную активность в «сырых» необработанных логах — скажем, PowerShell-скрипт с запущенной командой DownloadString или VBS-скрипт, притворяющийся Word-файлом, — просто пролистывая последнюю активность в журнале событий Windows. Но это реально большая головная боль. К счастью, Microsoft создал Sysmon, делающий анализ атак куда более простым.

Хотите разобраться в базовых идеях, стоящих за отображаемыми в логе Sysmon угрозами? Скачайте наше руководство WMI события как средство шпионажа и вы осознаете, как инсайдеры могут незаметно наблюдать за другими сотрудниками.

Основной проблемой работы с журналом событий Windows является отсутствие информации о родительских процессах, т.е. из него нельзя понять иерархию процессов. В записях лога Sysmon же наоборот, содержатся идентификатор процесса родителя, его имя и запускаемая командная строка. Спасибо тебе, Microsoft.

В первой части нашей серии мы посмотрим, что можно сделать с базовой информацией из Sysmon. Во второй части мы в полной мере воспользуемся информацией о родительских процессах для создания более комплексных структур соответствия, которые известны как графы угроз. В третьей части мы рассмотрим простой алгоритм, который сканирует граф угроз для поиска нестандартной активности через анализ «веса» графа. А в конце в качестве вознаграждения вас ждет аккуратный (и понятный) вероятностный метод обнаружения угроз.

Что поможет разобраться в сложностях журнала событий? В конечном итоге – SIEM. Она производит нормализацию событий и упрощает их последующий анализ.

Но нам не обязательно заходить так далеко, по крайне мере первое время. В начале для понимания принципов SIEM достаточно будет попробовать замечательную бесплатную утилиту Sysmon. И с ней на удивление легко работать. Так держать, Microsoft!

Какие есть возможности у Sysmon?

Если кратко – полезная и читабельная информация о процессах (см. картинки ниже). Вы обнаружите кучу полезных деталей, которых нет в журнале событий Windows, но самое главное – следующие поля:

  • ID процесса (в десятичной форме, а не hex!)
  • ID родительского процесса
  • Командную строку процесса
  • Командную строку родительского процесса
  • Хэш образа файла
  • Имена образов файла

Sysmon устанавливается одновременно и как драйвер устройства, и как служба – подробнее здесь. Её ключевым преимуществом является возможность анализа логов из нескольких источников, корреляция информации и вывод результирующих значений в одну папку журнала событий, находящуюся по пути Microsoft -> Windows -> Sysmon -> Operational. В моих собственных расследованиях логов Windows, от которых волосы встают дыбом, мне постоянно приходилось переключаться между, скажем, папкой с логами PowerShell, и папкой «Безопасность», пролистывая журналы событий в героический попытке как-то сопоставить значения между ними. Это ни разу не легкая задача, и как я потом понял, лучше было сразу запастись аспирином.

Sysmon же делает качественный скачок вперёд, предоставляя полезную (или как любят говорить вендоры – действенную) информацию для помощи в понимании основополагающих процессов. Например, я запустил скрытную сессию wmiexec, симулирующую перемещение умного инсайдера внутри сети. Вот что при этом вы увидите в журнале событий Windows:

В журнале Windows видна какая-то информация о процессе, но она малополезна. Плюс идентификаторы процессов в шестнадцатеричной форме???

У профессионального ИТ-специалиста с пониманием основ хакинга должна вызвать подозрение командная строка. Использование cmd.exe для последующего запуска другой команды с перенаправлением вывода в файл со странным названием – это явно похоже на действия софта по контролю и управлению command-and-control (C2): таким способом создаётся псевдо-шелл с помощью служб WMI.
Теперь давайте взглянем на эквивалент записи из Sysmon, обратив внимание на то, сколько дополнительной информации она нам даёт:

Возможности Sysmon на одном скриншоте: детальная информация о процессе в читабельной форме

Вы не только видите командую строку, но и имя файла, путь до исполняемого приложения, что Windows знает об этом (“Windows Command Processor”), идентификатор родительского процесса, командная строка родителя, запустившего cmd-шелл, а также реальное имя файла родительского процесса. Всё в одном месте, наконец-то!
Из лога Sysmon мы можем сделать вывод, что с высокой долей вероятности эта подозрительная командная строка, которую мы видели в «сырых» логах, не является результатом нормальной работы сотрудника. Скорее наоборот, она была сгенерирована C2-подобным процессом — wmiexec, как я упоминал ранее — и была напрямую порождена процессом WMI службы (WmiPrvSe). Теперь у нас есть индикатор того, что удалённый злоумышленник или инсайдер пробует корпоративную инфраструктуру на зуб.

Представляем Get-Sysmonlogs

Конечно замечательно, когда Sysmon располагает логи в одном месте. Но, наверное, было бы ещё лучше, если бы мы могли получить доступ к индивидуальным полям лога программным способом – например, через команды PowerShell. В этом случае можно было бы написать небольшой PowerShell-скрипт, который бы автоматизировал поиск потенциальных угроз!
Не у меня первого возникла такая идея. И хорошо, что в некоторых постах форумов и GitHub проектах уже объяснено, как использовать PowerShell для парсинга Sysmon-лога. В моём случае мне хотелось избежать необходимости написания отдельных строк парсинг-скрипта для каждого поля Sysmon. Поэтому я использовал принцип ленивого человека и, как мне кажется, в результате придумал что-то интересное.


Первым важным моментом является возможность команды Get-WinEvent читать Sysmon логи, фильтровать нужные события и выводить результат в PS переменную, как здесь:

$events = Get-WinEvent  -LogName "Microsoft-Windows-Sysmon/Operational" | where { $_.id -eq 1 -or $_.id -eq 11}

Если вы захотите самостоятельно проверить работу команды, то через отображение контента в первом элементе массива $events, $events[0].Message, на выходе можно получить серию текстовых строк с очень простым форматом: имя поля Sysmon, двоеточие и затем само значение.

Ура! Вывод Sysmon лога в готовый под JSON-формат

Вы думаете о том же, о чём и я? Приложив ещё немного усилий, можно сконвертировать вывод в отформатированную под JSON-строку и затем загрузить её напрямую в PS-объект с помощью мощной команды ConvertFrom-Json .

Я покажу PowerShell-код для конвертации — он очень простой — в следующей части. А пока что давайте глянем, что может делать моя новая команда под названием get-sysmonlogs, которую я установил как PS-модуль.
Вместо углубления в анализ логов Sysmon через неудобный интерфейс журнала событий, мы можем без усилий искать инкрементальную активность непосредственно из PowerShell-сессии, а также использовать PS-команду where (алиас – «?») для сокращения результатов выдачи:

Список cmd-шеллов, запущенных через WMI. Анализ угроз задёшево с помощью нашей собственной команды Get-Sysmonlogs

Удивительно! Я создал инструмент опроса Sysmon-лога, как если бы он был базой данных. В нашей статье про EQL отмечалось, что эту функцию и выполнят описываемая в нём крутая утилита, хотя формально всё же через реальный SQL-подобный интерфейс. Да, EQL

изящен, но мы коснёмся его в третьей части.

Sysmon и анализ графов

Давайте абстрагируемся и подумаем, что мы только что создали. По сути, у нас теперь есть база данных событий Windows, доступная через PowerShell. Как я отметил ранее, между записями существуют соединения или связи — через ParentProcessId — поэтому можно получить полную иерархию процессов.

Если вы читали серию «Приключения неуловимой малвари», то знаете, что хакеры любят создавать сложные многоэтапные атаки, в которых каждый процесс выполняет свою маленькую роль и готовит плацдарм для следующего шага. Такие вещи крайне сложно отловить просто из «сырого» лога.
Но с моей командой Get-Sysmonlogs и дополнительной структурой данных, которую мы рассмотрим далее по тексту (конечно же, это граф), у нас появится практичный способ обнаружить угрозы – для чего требуется лишь выполнить правильный поиск по вершинам.

Как всегда в наших DYI блог-проектах, чем больше вы работаете над анализом деталей угроз в небольшом масштабе, тем лучше вы осознаёте, насколько сложным является детектирование угроз на уровне организации. И это осознание является крайне важным моментом.

Мы встретим первые интересные сложности во второй части статьи, где начнём связывать друг с другом Sysmon-события в куда более сложные структуры.

Sysmon — Windows Sysinternals | Microsoft Learn

  • Статья
  • Чтение занимает 13 мин

По Mark Russinovich и Thomas Garnier

Опубликовано: 26 октября 2022 г.

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 автоматическое принятие лицензионного соглашения при установке, в противном случае вам будет предложено принять его в интерактивном режиме.

Ни установка, ни удаление не требуют перезагрузки.

Примеры

Установка с параметрами по умолчанию (обработка образов, хэшированных с помощью 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, а в более старых системах события записываются в журнал системных событий. Метки времени события находятся в стандартном времени в формате 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 определяет, когда процесс создает поток в другом процессе. Этот метод используется вредоносными программами для внедрения кода и скрытия в других процессах. Событие указывает исходный и целевой процесс. Он предоставляет сведения о коде, который будет выполняться в новом потоке: StartAddress, StartModule и StartFunction. Обратите внимание, что поля StartModule и StartFunction выводятся. Они могут быть пустыми, если начальный адрес находится за пределами загруженных модулей или известных экспортированных функций.

Идентификатор события 9: RawAccessRead

Событие RawAccessRead определяет, когда процесс выполняет операции чтения с диска с помощью \\.\ обозначения. Этот метод часто используется вредоносными программами для кражи данных файлов, заблокированных для чтения, а также для предотвращения средств аудита доступа к файлам. Событие указывает исходный процесс и целевое устройство.

Идентификатор события 10: ProcessAccess

Событие, к которому обращается процесс, сообщает, когда процесс открывает другой процесс, операцию, за которой часто следуют запросы информации или чтение и запись адресного пространства целевого процесса. Это позволяет обнаруживать средства взлома, которые считывают содержимое памяти таких процессов, как Local Security Authority (Lsass.exe), для кражи учетных данных для использования в атаках Pass-the-Hash. Включение может создавать значительные объемы ведения журнала при наличии активных диагностических служебных программ, которые многократно открывают процессы для запроса их состояния, поэтому обычно это следует делать только с фильтрами, которые удаляют ожидаемые доступы.

Идентификатор события 11: FileCreate

Операции создания файлов регистрируются при создании или перезаписи файла. Это событие полезно для мониторинга расположений автозапуска, таких как папка Startup, а также временных каталогов и каталогов загрузки, которые являются общими местами, где вредоносные программы сбрасываются во время первоначального заражения.

Событие с идентификатором 12: RegistryEvent (создание и удаление объекта)

Раздел реестра и значение операций создания и удаления сопоставляется с этим типом событий, что может быть полезно для мониторинга изменений в расположениях автозапуска реестра или определенных изменений в реестре вредоносных программ.

Sysmon использует сокращенные версии имен корневых разделов реестра со следующими сопоставлениями:

Имя разделаСокращение
HKEY_LOCAL_MACHINEHKLM
HKEY_USERSHKU
HKEY_LOCAL_MACHINE\System\ControlSet00xHKLM\System\CurrentControlSet
HKEY_LOCAL_MACHINE\ClassesHKCR

Событие с идентификатором 13: RegistryEvent (набор значений)

Этот тип события реестра определяет изменения значений реестра. Событие записывает значение, записанное для значений реестра типа DWORD и QWORD.

Идентификатор события 14: RegistryEvent (переименование ключа и значения)

Операции переименования разделов и значений реестра сопоставляются с данным типом события, записывая новое имя переименованного ключа или значения.

Идентификатор события 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: ProcessTampering (изменение образа процесса)

Это событие создается при обнаружении методов скрытия процесса, таких как «полый» или «herpaderp».

Событие с идентификатором 26: FileDeleteDetected (удаление файла в журнале)

Файл удален.

Идентификатор события 27: FileBlockExecutable

Это событие создается, когда Sysmon обнаруживает и блокирует создание исполняемых файлов.

Идентификатор события 28: FileBlockShredding

Это событие создается, когда Sysmon обнаруживает и блокирует измельчение файлов из таких средств, как SDelete.

Идентификатор события 255: ошибка

Это событие создается при возникновении ошибки в Sysmon. Они могут произойти, если система находится под большой нагрузкой и не удалось выполнить определенные задачи или в службе Sysmon возникла ошибка. Вы можете сообщить об ошибках на форуме Sysinternals или через Twitter (@markrussinovich).

Файлы конфигурации.

Файлы конфигурации можно указать после параметров конфигурации -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
Идентификаторы COPYOnDeleteSIDстрокРазделенный запятыми список идентификаторов безопасности учетных записей, для которых будут сохраняться удаления файлов.
CopyOnDeleteExtensionsстрокРасширения для файлов, которые сохраняются при удалении.
CopyOnDeleteProcessesстрокИмена процессов, для которых будут сохраняться удаления файлов.
DnsLookupЛогическоеУправляет обратным поиском DNS. значение по умолчанию: True
Имя драйвераСтроковый типИспользует указано имя для образов драйверов и служб.
HashAlgorithmsстрокХэш-алгоритмы, применяемые для хэширования. Поддерживаются следующие алгоритмы: 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 в файле конфигурации:

IDТегСобытие
1 ПроцессСоздатьСоздание процесса
2 FileCreateTimeВремя создания файла
3 NetworkConnectОбнаружено сетевое подключение
4 н/дИзменение состояния службы Sysmon (невозможно отфильтровать)
5 ProcessTerminateПроцесс завершен
6 DriverLoadДрайвер загружен
7 Загрузка образаИзображение загружено
8 CreateRemoteThreadОбнаружена инструкция CreateRemoteThread
9 RawAccessReadОбнаружен RawAccessRead
10 ProcessAccessДоступ к процессу
11 Создание файлаФайл создан
12 RegistryEventДобавлен или удален объект реестра
13 RegistryEventНабор значений реестра
14 RegistryEventПереименован объект реестра
15 FileCreateStreamHashФайловый поток создан
16 н/дИзменение конфигурации Sysmon (невозможно отфильтровать)
17 PipeEventСоздание именованного канала
18 PipeEventИменованный канал подключен
19 WmiEventФильтр WMI
20 WmiEventПотребитель WMI
21 WmiEventФильтр потребителя WMI
22 DNSQueryЗапрос DNS
23 FileDeleteУдаление файла в архиве
24 Буфер обменаИзменениеНовое содержимое в буфере обмена
25 ProcessTamperingИзменение образа процесса
26 FileDeleteDetectedУдаление файла в журнале
27 FileBlockExecutableИсполняемый файл блока
28 FileBlockShreddingИзмельчение блоков файлов

Эти теги также можно найти в средстве просмотра событий по имени задачи.

Фильтр onmatch применяется, если события совпадают. Его можно изменить с помощью атрибута onmatch для тега фильтра. Если значение равно "include", это означает, что включаются только соответствующие события. Если для него задано значение "exclude", событие будет включено, за исключением случаев, когда правило совпадает. Для каждого идентификатора события можно указать как включаемые, так и исключаемые фильтры, где приоритет имеют совпадения с исключениями.

Каждый фильтр может содержать ноль или более правил. Каждый тег в теге фильтра является именем поля из события. Правила, указывающие условие для того же имени поля, ведут себя как условия ИЛИ, а те, которые указывают другое имя поля, ведут себя как условия AND. Правила полей также могут использовать условия для сопоставления значения. Ниже приведены условия (регистр не учитывается):

ConditionОписание
isЗначения по умолчанию равны
— любойПоле является одним из значений с ; разделителями
НетЗначения отличаются
containsПоле содержит это значение
содержит любой элементПоле содержит любое из значений с разделителями ; .
содержит всеПоле содержит все значения с разделителями ; .
ИсключаетПоле не содержит этого значения.
исключает любой изПоле не содержит одного или нескольких значений с ; разделителями.
исключает всеПоле не содержит значения с разделителями ; .
Начните сПоле начинается с этого значения
заканчиваются наПоле заканчивается этим значением
не начинается сПоле не начинается с этого значения
не заканчиваются наПоле не заканчивается этим значением
МенееЛексикографическое сравнение меньше нуля
БолееЛексикографическое сравнение больше нуля
imageСопоставление пути к изображению (полный путь или только имя изображения). Например: 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 8.1 и выше.
  • Сервер: Windows Server 2012 и выше.

Sysmon — Windows Sysinternals | Microsoft Learn

  • Статья
  • 15 минут на чтение

Марк Руссинович и Томас Гарнье

Опубликовано: 26 октября 2022 г.0017

Скачать Sysmon для Linux (GitHub)

Введение

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

Обратите внимание, что Sysmon не обеспечивает анализ событий, которые он генерирует, он также не пытается защитить или спрятаться от злоумышленников.

Обзор возможностей Sysmon

Sysmon включает следующие возможности:

  • Создание процессов журналов с полной командной строкой для текущих и родительские процессы.
  • Записывает хэш файлов образа процесса, используя SHA1 (по умолчанию), MD5, SHA256 или IMPHASH.
  • Одновременно можно использовать несколько хэшей.
  • Включает GUID процесса в события создания процесса, чтобы разрешить корреляция событий, даже если Windows повторно использует идентификаторы процессов.
  • Включает GUID сеанса в каждое событие, чтобы разрешить корреляцию событий. в том же сеансе входа в систему.
  • Регистрирует загрузку драйверов или библиотек DLL с их сигнатурами и хэшами.
  • Журналы открываются для необработанного доступа для чтения дисков и томов.
  • Опционально регистрирует сетевые подключения, включая каждое подключение. исходный процесс, IP-адреса, номера портов, имена хостов и порт имена.
  • Обнаруживает изменения во времени создания файла, чтобы понять, когда файл был действительно создан. Изменение временных меток создания файла метод, обычно используемый вредоносными программами для заметания следов.
  • Автоматически перезагружать конфигурацию при изменении в реестре.
  • Фильтрация правил для динамического включения или исключения определенных событий.
  • Генерирует события в начале процесса загрузки для регистрации активности созданные даже сложными вредоносными программами режима ядра.

Скриншоты

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

Обычное использование с простыми параметрами командной строки для установки и удаления Sysmon, а также для проверки и изменения его конфигурации:

Установить: sysmon64 -i []
Обновить конфигурацию: sysmon64 -c []
Установить манифест события: sysmon64 -m
Схема печати: sysmon64 -s
Удаление: sysmon64 -u [force]

Параметр Описание
-i Установить службу и драйвер. При желании возьмите файл конфигурации.
Обновите конфигурацию установленного драйвера Sysmon или выгрузите текущую конфигурацию, если не указан другой аргумент. При желании принимает файл конфигурации.
Установите манифест события (также неявно выполняется при установке службы).
Определение схемы конфигурации печати.
Удаление службы и драйвера. Использование -u force приводит к продолжению удаления, даже если некоторые компоненты не установлены.

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

В Vista и более поздних версиях события сохраняются в Applications and Services Logs/Microsoft/Windows/Sysmon/Operational . В старых системах события записываются в журнал событий System .

Если вам нужна дополнительная информация о файлах конфигурации, используйте -? конфиг команда.

Укажите -accepteula для автоматического принятия лицензионного соглашения при установке, в противном случае вам будет предложено принять его в интерактивном режиме.

Ни установка, ни удаление не требуют перезагрузки.

Примеры

Установка с настройками по умолчанию (обработка образов, хешированных с помощью 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
 

Events

В Vista и более поздних версиях события сохраняются в Applications and Services Logs/Microsoft/Windows/Sysmon/Operational , а в более старых системах события записываются в журнал системных событий. Временные метки событий указаны в формате UTC. стандартное время.

Ниже приведены примеры каждого типа событий, генерируемых Sysmon.

Идентификатор события 1: Создание процесса

Событие создания процесса предоставляет расширенную информацию о новом созданный процесс. Полная командная строка предоставляет контекст процесса исполнение. Поле ProcessGUID является уникальным значением для этого процесса. по всему домену, чтобы упростить корреляцию событий. Хэш полный хэш файла с алгоритмами в поле HashType.

Идентификатор события 2: процесс изменил время создания файла

Событие изменения времени создания файла регистрируется при создании файла время явно модифицируется процессом. Это событие помогает отслеживать реальное время создания файла. Злоумышленники могут изменить способ создания файла время бэкдора, чтобы он выглядел так, как будто он был установлен с операционная система. Обратите внимание, что многие процессы законно изменяют время создания файла; это не обязательно указывает на вредоносный Мероприятия.

Идентификатор события 3: Сетевое подключение

Событие сетевого подключения регистрирует подключения TCP/UDP на машине. Это отключен по умолчанию. Каждое соединение связано с процессом через поля ProcessId и ProcessGUID. Событие также содержит источник и имена хостов назначения, IP-адреса, номера портов и статус IPv6.

Идентификатор события 4: состояние службы Sysmon изменилось

Событие изменения состояния службы сообщает о состоянии службы Sysmon (запущено или остановлено).

Идентификатор события 5: Процесс завершен

Событие завершения процесса сообщает о завершении процесса. Это предоставляет UtcTime, ProcessGuid и ProcessId процесса.

Идентификатор события 6: драйвер загружен

События загрузки драйвера предоставляют информацию о драйвере, загружается в систему. Настроенные хэши предоставляются, а также информация о подписи. Подпись создается асинхронно для соображений производительности и указывает, был ли файл удален после загрузки.

Идентификатор события 7: изображение загружено

Журналы событий загрузки изображения, когда модуль загружается в определенном процесс. Это событие отключено по умолчанию и должно быть настроено с опцией –l. Указывает процесс, в котором находится модуль. загружается, хэши и информация о подписи. Подпись создана асинхронно по соображениям производительности и указывает, был ли файл удаляется после загрузки. Это событие должно быть тщательно настроено, т.к. отслеживание всех событий загрузки изображений будет генерировать большое количество событий.

Идентификатор события 8: CreateRemoteThread

Событие CreateRemoteThread обнаруживает, когда процесс создает поток в другой процесс. Этот метод используется вредоносными программами для внедрения кода и скрыть в других процессах. Событие указывает источник и цель процесс. Он дает информацию о коде, который будет выполняться в новом поток: StartAddress, StartModule и StartFunction. Обратите внимание, что Поля StartModule и StartFunction предполагаются, они могут быть пустыми если начальный адрес находится за пределами загруженных модулей или известных экспортируемых функции.

Идентификатор события 9: RawAccessRead

Событие RawAccessRead обнаруживает, когда процесс выполняет чтение операции с накопителя с использованием обозначения \.\. Эта техника часто используется вредоносными программами для кражи данных из заблокированных файлов для чтения, а также чтобы избежать инструментов аудита доступа к файлам. Событие указывает исходный процесс и целевое устройство.

Идентификатор события 10: ProcessAccess

Процесс сообщает о событии, когда процесс открывает другой процесс, операция, за которой часто следуют информационные запросы или чтение и запись адресного пространства целевого процесса. Это позволяет обнаруживать хакерских инструментов, которые считывают содержимое памяти таких процессов, как Local Security Authority (Lsass.exe) для кражи учетных данных для использования в Атаки Pass-the-Hash. Его включение может генерировать значительное количество ведение журнала, если есть активные диагностические утилиты, которые повторно открываются процессы для запроса их состояния, поэтому обычно это следует делать только так с фильтрами, удаляющими ожидаемый доступ.

Идентификатор события 11: FileCreate

Операции создания файла регистрируются при создании или перезаписи файла. Это событие полезно для мониторинга местоположений автозапуска, таких как Папка автозагрузки, а также временные и загрузочные каталоги, которые общие места падения вредоносного ПО во время первоначального заражения.

Идентификатор события 12: RegistryEvent (создание и удаление объекта)

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

Sysmon использует сокращенные версии имен корневых разделов реестра с следующие сопоставления:

Имя ключа Аббревиатура
HKEY_LOCAL_MACHINE Гонконг
HKEY_USERS Гонконг
HKEY_LOCAL_MACHINE\System\ControlSet00x HKLM\System\CurrentControlSet
HKEY_LOCAL_MACHINE\классы Гонконг

Идентификатор события 13: RegistryEvent (набор значений)

Этот тип события реестра идентифицирует изменения значения реестра. событие записывает значение, записанное для значений реестра типа DWORD и QWORD.

Идентификатор события 14: RegistryEvent (переименование ключа и значения)

Операции переименования ключа и значения реестра сопоставляются с этим типом события, запись нового имени ключа или значения, которое было переименовано.

Идентификатор события 15: FileCreateStreamHash

Это событие регистрируется при создании именованного файлового потока и генерирует события, которые регистрируют хэш содержимого файла, в который поток назначается (безымянный поток), а также содержимое именованного ручей. Существуют варианты вредоносных программ, которые сбрасывают свои исполняемые файлы или настройки конфигурации через загрузку браузера, и это мероприятие направлено на захватив это на основе браузера, присоединившего Zone.Identifier «знак Интернет».

Идентификатор события 16: ServiceConfigurationChange

Это событие регистрирует изменения в конфигурации Sysmon, например, когда правила фильтрации обновлены.

Идентификатор события 17: PipeEvent (канал создан)

Это событие генерируется при создании именованного канала. Вредоносное ПО часто использует именованные каналы для межпроцессного взаимодействия.

Идентификатор события 18: PipeEvent (канал подключен)

Это событие регистрируется, когда между клиентом и сервер.

Идентификатор события 19: WmiEvent (обнаружена активность WmiEventFilter)

При регистрации фильтра событий WMI, который является методом, используемым вредоносным ПО для execute это событие регистрирует пространство имен 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: ProcessTampering (изменение образа процесса)

Это событие генерируется, когда используются методы сокрытия процесса, такие как «полый» или «herpaderp» обнаруживаются.

Идентификатор события 26: FileDeleteDetected (зарегистрировано удаление файла)

Файл был удален.

Идентификатор события 27: FileBlockExecutable

Это событие генерируется, когда Sysmon обнаруживает и блокирует создание исполняемых файлов.

Идентификатор события 28: FileBlockShredding

Это событие генерируется, когда Sysmon обнаруживает и блокирует уничтожение файлов такими инструментами, как SDelete.

Идентификатор события 255: ошибка

Это событие генерируется при возникновении ошибки в Sysmon. Они могут произойти, если система находится под большой нагрузкой, и определенные задачи не могут быть выполнено или в службе Sysmon существует ошибка. Вы можете сообщить о любых ошибках на форуме Sysinternals или в Twitter (@маркруссинович).

Файлы конфигурации

Файлы конфигурации можно указать после -i (установка) или -c (установка) переключатели конфигурации. Они облегчают развернуть предустановленную конфигурацию и фильтровать захваченные события.

Простой XML-файл конфигурации выглядит следующим образом:

 
  
  <ХэшАлгоритмс>*
  <Фильтрация событий>
    
    
    
      Microsoft
      окна
    
    
    
    
    
    
      443
      80
    
    
      iexplore.exe
    
  

 

Файл конфигурации содержит атрибут версии схемы в Sysmon ярлык. Эта версия не зависит от бинарной версии Sysmon и позволяет анализировать старые файлы конфигурации. Вы можете получить актуальную версию схемы с помощью «-? config» в командной строке. Конфигурация записи находятся непосредственно под тегом Sysmon, а фильтры — под тегом Тег EventFiltering.

Записи конфигурации

Записи конфигурации аналогичны переключателям командной строки и включают следующие

Записи конфигурации включают следующее:

Запись Значение Описание
Каталог архивов Строка Имя каталогов в корне тома, в которые перемещаются файлы копирования при удалении. Каталог защищен системным ACL (вы можете использовать PsExec от Sysinternals для доступа к каталогу, используя psexec -sid cmd ). По умолчанию: Сисмон
Проверка отзыва Булево значение Управляет проверками отзыва подписи. По умолчанию: Истина
CopyOnDeletePE Булево значение Сохраняет удаленные исполняемые файлы изображений. По умолчанию: Ложь
CopyOnDeleteSIDs Струны Разделенный запятыми список SID учетных записей, для которых будут сохранены удаления файлов.
CopyOnDeleteExtensions Струны Расширения для файлов, которые сохраняются при удалении.
Копионделетепроцессес Струны Имена процессов, для которых будут сохранены удаления файлов.
DNSLookup Булево значение Управляет обратным поиском DNS. По умолчанию: Истина
Имя Водителя Строка Использует указанное имя для образов драйверов и служб.
Хэш-алгоритмы Струны Алгоритм(ы) хэширования для применения при хешировании. Поддерживаемые алгоритмы включают MD5, SHA1, SHA256, IMPHASH и * (все). По умолчанию: Нет

Переключатели командной строки имеют запись конфигурации, описанную в разделе Использование Sysmon. выход. Параметры являются необязательными в зависимости от тега. Если командная строка коммутатор также включает событие, его необходимо настроить, хотя его тег фильтра. Вы можете указать ключ -s, чтобы Sysmon распечатывал полный текст. схема конфигурации, включая теги событий, а также имена полей и типы для каждого события. Например, вот схема для RawAccessRead тип события:

 
  
  
  
  
  

 

Записи фильтрации событий

Фильтрация событий позволяет фильтровать сгенерированные события. Во многих случаях мероприятия могут быть шумными и собрать все не представляется возможным. За например, вас могут интересовать сетевые подключения только для определенный процесс, но не все из них. Вы можете отфильтровать вывод на хост сокращает данные для сбора.

Каждое событие имеет собственный тег фильтра в узле EventFiltering в файл конфигурации:

ID Тег Событие
1 ProcessCreate Процесс создания
2 Время создания файла Время создания файла
3 NetworkConnect Обнаружено сетевое соединение
4 н/д Изменение состояния службы Sysmon (нельзя отфильтровать)
5 Завершение Процесса Процесс завершен
6 DriverLoad Драйвер загружен
7 ImageLoad Изображение загружено
8 CreateRemoteThread Обнаружен CreateRemoteThread
9 RawAccessRead Обнаружен RawAccessRead
10 Доступ к процессу Доступ к процессу
11 Создание файла Файл создан
12 Событие Реестра Объект реестра добавлен или удален
13 Событие Реестра Набор значений реестра
14 Событие Реестра Объект реестра переименован в
15 Филкреатестреамхэш Файловый поток создан
16 н/д Изменение конфигурации Sysmon (не может быть отфильтровано)
17 PipeEvent Создан именованный канал
18 PipeEvent Соединение с именованной трубой
19 WmiEvent Фильтр WMI
20 WmiEvent Потребитель WMI
21 WmiEvent Потребительский фильтр WMI
22 DNSQuery DNS-запрос
23 FileDelete Удаление файла из архива
24 Изменение буфера обмена Новый контент в буфере обмена
25 Вмешательство в процесс Изменение образа процесса
26 FileDeleteDetected Удаление файла занесено в журнал
27 FileBlockExecutable Исполняемый блок файлов
28 FileBlockShredding Уничтожение файловых блоков

Вы также можете найти эти теги в средстве просмотра событий в названии задачи.

Фильтр onmatch применяется, если события совпадают. Это можно изменить с атрибутом onmatch для тега фильтра. Если значение "include" , это означает, что включены только совпавшие события. Если он установлен на "исключить" , событие будет включено, за исключением случаев совпадения правила. Вы можете указать как набор фильтров включения, так и набор фильтров исключения для каждого идентификатор события, где исключенные совпадения имеют приоритет.

Каждый фильтр может включать ноль или более правил. Каждый тег под фильтром тег — это имя поля из события. Правила, определяющие условие для одно и то же имя поля ведет себя как условия ИЛИ, а те, которые указывают другое имя поля ведет себя как условия И. Правила поля также могут использовать условия для соответствия значению. Условия следующие (все случаи нечувствительный):

Состояние Описание
это По умолчанию, значения равны
любой Поле является одним из ; значения с разделителями
не Значения отличаются
содержит Поле содержит это значение
содержит любые Поле содержит любой из ; значения с разделителями
содержит все Поле содержит все ; значения с разделителями
исключает Поле не содержит этого значения
исключая любой Поле не содержит одного или нескольких из ; значения с разделителями
исключает все Поле не содержит ни одного из ; значения с разделителями
начинаются с Поле начинается с этого значения
конец на Поле заканчивается этим значением
не начинаться с Поле не начинается с этого значения
не заканчиваться на Поле не заканчивается этим значением
менее Лексикографическое сравнение меньше нуля
более Лексикографическое сравнение больше нуля
изображение Совпадение с путем к изображению (полный путь или только имя изображения). Например: lsass.exe будет соответствовать c:\windows\system32\lsass.exe

Можно использовать другое условие, указав его в качестве атрибута. Этот исключает сетевую активность процессов с iexplore.exe в их путь:

 
  iexplore.exe

 

Чтобы Sysmon сообщал, какое совпадение с правилом привело к регистрации события, добавьте имена к правилам:

 
  iexplore.exe

 

Вы можете использовать как правила включения, так и правила исключения для одного и того же тега, где правила исключения переопределить правила включения. В правиле условия фильтрации имеют поведение ИЛИ.

В примере конфигурации, показанном ранее, сетевой фильтр использует как включить и исключить правило для захвата активности на портах 80 и 443 всеми процессами кроме тех, в имени которых есть iexplore. exe .

Также можно переопределить способ объединения правил с помощью правила группа, которая позволяет установить тип объединения правил для одного или нескольких событий явно для AND или OR.

Следующий пример демонстрирует это использование. В первой группе правил событие создания процесса будет сгенерировано, когда timeout.exe выполняется только с аргумент командной строки 100 , но событие завершения процесса будет генерируется для завершения ping.exe и timeout.exe .

 <Фильтрация событий>
    
      
        timeout.exe
        100
      
    
    
      
        timeout.exe
        ping. exe
      
    
    
  
 

Загрузить Sysmon (4,6 МБ)

Работает на:

  • Клиент: Windows 8.1 и выше.
  • Сервер: Windows Server 2012 и выше.

Как включить Sysmon для ведения журналов и безопасности Windows

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

Sysmon является частью пакета программного обеспечения Sysinternals, теперь принадлежащего Microsoft, и обогащает стандартные журналы Windows, обеспечивая более высокий уровень мониторинга событий, таких как создание процессов, сетевые подключения и изменения в файловой системе. Он чрезвычайно прост в установке и развертывании. Выполнение этих шагов позволит включить невероятное количество журналов.

Установка Sysmon

Вы можете запустить скрипт Poshim для автоматической установки Sysmon или установить его вручную:

  • Чтобы автоматически установить Sysmon с помощью сценария Poshim, следуйте этим инструкциям.
  • Чтобы вручную установить Sysmon, следуйте приведенным ниже инструкциям.
    1. Скачать Sysmon (или весь пакет Sysinternals)
    2. Загрузите выбранную конфигурацию (мы рекомендуем Sysmon Modular)
    3. Сохраните файл config.xml в каталоге c:\windows или выполните команду PowerShell: Invoke-WebRequest -Uri https://raw.githubusercontent.com/olafhartong/sysmon-modular/master/sysmonconfig.xml -OutFile C:\Windows\config.xml
    4. Установите, открыв командную строку от имени администратора и введя sysmon64. exe –accepteula –i c:\windows\config.xml
      1. Sysmon.exe предназначен только для 32-разрядных систем
      2. Sysmon64.exe предназначен только для 64-битных систем

Существует несколько чрезвычайно полезных идентификаторов событий Windows, которые генерирует Sysmon для обнаружения распространенных угроз на различных предприятиях. Несколько примеров более полезных сгенерированных событий в целях безопасности перечислены ниже. Полный список идентификаторов событий, которые может генерировать Sysmon, находится на их странице загрузки.

Если вам нужен локальный доступ к событиям Sysmon, а не просмотр их в SIEM, вы найдете их в средстве просмотра событий в разделе Журналы приложений и служб > Microsoft > Windows > Sysmon.

Идентификатор события 1 — Создание процесса

Sysmon не только покажет, какие процессы выполняются, но и когда они завершатся, а также много информации о самом исполняемом или двоичном файле. Он также предоставляет хэши для всех двоичных файлов, которые запускаются в системе, и перечисляет, подписаны они или нет, что позволяет легко увидеть, пытается ли вредоносный код имитировать законные программы, такие как PowerShell или другие встроенные инструменты Microsoft.

Выше вы можете увидеть запущенную программу редактора реестра. В некоторых случаях, когда вы не можете иметь среду, состоящую только из белого списка, вы можете использовать события, подобные этим, для оповещения о запущенных процессах, если они подписаны соответствующим поставщиком, или о порождении процессов, которыми они не должны быть (например, MS Word порождает PowerShell).

Идентификатор события 3 — Обнаружено сетевое подключение

В этом примере мы можем увидеть, где был запущен Setup.exe, кем, а также что он пытается загрузить дополнительный контент от облачного провайдера. Эти события могут быть полезны для обнаружения командного и управляющего трафика (который может указывать на то, что злоумышленники отправляют команды для кражи данных, распространения вредоносных программ и т.  д.), а также для определения того, какие приложения обращаются к определенным интернет-ресурсам.

Идентификатор события 4 — изменение состояния службы Sysmon

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

Идентификатор события 13 — события набора значений реестра

Оповещения о добавлениях и изменениях определенных местоположений реестра могут быть полезны для обнаружения вредоносного сохранения на конечной точке. Много раз добавляются записи в «Выполнить» и «Выполнить один раз» в Windows, чтобы вредоносное ПО могло возобновить свою деятельность после перезагрузки хоста.

Идентификатор события 22 — ведение журнала DNS

Регистрация трафика DNS дает несколько преимуществ, таких как обнаружение вредоносных инструментов удаленного доступа, неправильные настройки безопасности и трафик управления и контроля.

Здесь мы можем увидеть популярный тест Red Canary Atomic Red Team для MITRE ATT&CK T1117 «Regsvr32» для нескольких перечисленных идентификаторов событий. По сути, regsvr32 может загружать и регистрировать библиотеки DLL (библиотеки динамической компоновки) из URL-адресов через командную строку, что относительно легко обнаружить при установленном Sysmon.

Идентификатор события 1 показывает:

      1. ParentImage — C:\Windows\System32\cmd.exe
        • командная строка
      2. ИсходноеИмяФайла — REGSVR32.EXE
        • Regsvr32.exe — это программа командной строки, используемая для регистрации и отмены регистрации связывания объектов и элементов управления внедрением, включая библиотеки DLL, в системах Windows. Regsvr32.exe можно использовать для выполнения произвольных двоичных файлов.
      3. CommandLine — regsvr32.exe /s /u /i:https://raw.githubusercontent.com/redcanaryco/atomic-red-team/master/atomics/T1117/RegSvr32.sct scrobj.dll
        • Тестовая атака от Atomic Red Team

Идентификатор события 3 Показывает:

      1. Образ — C:\Windows\System32\regsvr32. exe
        • Regsvr32 — это приложение, создающее сетевое соединение
      2. Имя порта назначения — https
      3. IP-адрес назначения – 151.101.0.133

Идентификатор события 22 Показывает:

      1. Имя запроса — raw.githubusercontent.com
      2. Имя образа — C:\Windows\System32\regsvr32.exe
        • Regsvr32 — это приложение, запрашивающее DNS-разрешение местоположения DLL в Интернете

И когда вы связываете их все вместе, вы можете создавать обнаружения на основе вредоносной активности.


Нажмите, чтобы увеличить

Узнайте больше о том, как максимально эффективно использовать инструменты ведения журналов Windows, в разделе «Как оптимизировать ведение журналов Windows для обеспечения безопасности» и узнайте, как платформа Blumira автоматически обнаруживает и устраняет обнаруженные нарушения безопасности.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *