Содержание статьи
- Установка
- Ожидание: типы событий
- Настройка
- Эксперименты
- Создание процесса — Event ID 1
- Изменение временной метки файла — Event ID 2
- Сетевое соединение — Event ID 3
- Изменение Sysmon — Event ID 4
- Процесс завершен — Event ID 5
- Пустышки Event ID 6–8
- Образ загружен — Event ID 7
- Создание удаленного потока — Event ID 8
- Прямое чтение с диска — Event ID 9
- Получен доступ к процессу — Event ID 10
- Создание файла — Event ID 11
- Пустышки — Event ID 12–15
- Изменение конфигурации Sysmon — Event ID 16
- Пустышки — Event ID 17–22
- Файл удален с сохранением копии — Event ID 23
- Финальные пустоты — Event ID 24–29, 255
- Эксперименты с обогащением конфигов
- Немного про eBPF
- Выводы
Мы часто настраиваем аудит в Linux (auditd, eBPF) — и сами, и вместе с коллегами. Потом приходят джуны, и выясняется, что им... сложно. Ну ладно, подумали мы. Немного изврата — и хотя бы базовое логирование в Linux всегда можно настроить, почти без затрат.
Основная цель статьи — рассказать об инструменте, показать его возможности и пополнить копилку знаний «Хакера» еще одной занятной технологией, о которой в комьюнити безопасников пока мало говорят.
Установка
С установкой мудрить не нужно: официальная инструкция проста и понятна — всего четыре команды, и все готово.
Да и ребуты не нужны. Чтобы запустить службу, выполняем sysmon .
Можно проверить, что по умолчанию уже фиксируются какие‑то XML‑подобные логи: sudo . В некоторых дистрибутивах их можно увидеть через journalctl . Ну и не забудь убедиться, что служба вообще запустилась: systemctl .
Окей, health check прошел. Базовые команды похожи на винду (есть хороший гайд по ним). Введем sysmon и увидим минимальную справку.
В целом на этом обзор можно было бы и закончить, но мы будем дотошны и последовательны. Зачем нам инструмент, который нельзя пощупать?!
Ожидание: типы событий
Давай посмотрим, какие события может ловить Sysmon for Linux по сравнению с его виндовым собратом. Очевидно, что виндовый может все.
| Event ID | Название | Встретишь в Linux | Примечание |
|---|---|---|---|
| 1 | Создание процесса | + | |
| 2 | Изменение временных меток файла | – | |
| 3 | Сетевое соединение | + | TCP + UDP |
| 4 | Изменено состояние службы Sysmon | + | |
| 5 | Процесс завершен | + | |
| 6 | Драйвер загружен | – | |
| 7 | Образ загружен | – | |
| 8 | Создание удаленного потока | – | Использует процедуру из Win32 API |
| 9 | Прямое чтение | + | |
| 10 | Доступ к процессу | + | |
| 11 | Файл создан | + | Частично опирается на WinAPI |
| 12 | Создание/удаление объекта в реестре | – | Ну какой тебе реестр! |
| 13 | Установлено значение параметра реестра | – | — |
| 14 | Переименование объекта реестра | – | — |
| 15 | Создан файловый поток | – | |
| 16 | Изменение конфигурации Sysmon | + | |
| 17 | Именованный канал создан | – | |
| 18 | Подключение к именованному каналу | – | |
| 19 | WMI-фильтр | – | Создан, изменен, удален (WMI в Linux нет) |
| 20 | Потребитель WMI | – | Создан, изменен, удален |
| 21 | Фильтр WMI связан с потребителем | – | — |
| 22 | DNS-запрос | – | Основан на обращениях к dnsapi.dll |
| 23 | Файл удален с созданием копии | + | |
| 24 | Обновлен буфер обмена | – | Работает для текста |
| 25 | Изменен образ процесса | – | |
| 26 | Файл удален | – | WinAPI |
| 27 | Блокировка исполняемого файла | – | Опирается на WinAPI |
| 28 | Блокировка поблочного удаления файла | – | Опирается на WinAPI |
| 29 | Исполняемый файл удален | – | |
| 255 | Ошибка | – |
Да, инструмент ограниченный, но иногда и не нужно большего — главное, чтобы быстро!
Если чуть серьезнее, то большая часть возможностей Sysmon завязана на проприетарные виндовые фичи — WinAPI, WMI, особенности NTFS, которых в Linux, очевидно, мало или они вовсе отсутствуют, как, например, реестр.
В сухом остатке мы должны увидеть хорошо структурированные базовые события: создание и завершение процесса, сетевые соединения, создание и удаление файлов, прямое чтение с диска, получение доступа к процессу. Есть собственный аудит (изменение конфигурации Sysmon).
Настройка
Что ж, давай настроим инструмент, научим его логировать что‑то полезное и проверим Sysmon for Linux в действии.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
