Системный монитор (Sysmon) — это служба и драйвер, который после установки в системе остается резидентным для отслеживания и регистрации активности системы в журнале событий.
Установка репозитория Microsoft
Перед началом установки Sysmon, необходимо установить репозиторий Microsoft с необходимыми библиотеками и пакетами.
1 2 | wget https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm rpm -i packages-microsoft-prod.rpm |
Установка пакетов и библиотек
устанавливаем пакеты
1 2 | yum install sysinternalsebpf yum install sysmonforlinux |
Устанавливаем библиотеки EBPF командой
1 | /opt/sysinternalsEBPF/libsysinternalsEBPFinstaller |
Установка службы Sysmon в CentOS
Скачиваем базовую конфигурацию собирающую всю доступную активность
и устанавливаем в системе
1 | sysmon -accepteula –i SysmonForLinux-CollectAll-Config.xml |
Решение проблем с установкой службы
В случае если служба падает, сразу после установки со следующим сообщением
1 2 3 4 5 6 7 8 9 10 | Feb 11 09:32:10 server sysmon[1710]: Using EBPF object: .//sysmonEBPFkern4.17-5.1.o Feb 11 09:32:12 server sysmon[1710]: Discovering offsets...tty offset not found (5) Feb 11 09:32:12 server sysmon[1710]: Get Offsets Error: Discovery - could not find the TTY offsets Feb 11 09:32:12 server sysmon[1710]: Could not automatically discover kernel offsets. Feb 11 09:32:12 server sysmon[1710]: Build and run the get_offsets module to generate the offsets config file: Feb 11 09:32:12 server sysmon[1710]: /opt/sysinternalsEBPF/sysinternalsEBPF_offsets.conf Feb 11 09:32:12 server systemd[1]: sysmon.service: Control process exited, code=exited status=13 Feb 11 09:32:12 server sysmon[1710]: Telemetry failed to start: Configuration could not be loaded Feb 11 09:32:12 server systemd[1]: sysmon.service: Failed with result 'exit-code'. Feb 11 09:32:12 server systemd[1]: Failed to start Sysmon event logger. |
просто создаем пустой файл конфигурации
1 | > /opt/sysinternalsEBPF/sysinternalsEBPF_offsets.conf |
Просмотр журналов Sysmon в CentOS
Sysmon записывает всю активность в журнал /var/log/messages
Просмотреть можно командой
1 | tail -f /var/log/messages|grep sysmon |
Пример лога:
1 2 | Feb 11 09:50:57 server sysmon[3864]: <Event><System><Provider Name="Linux-Sysmon" Guid="{ff032593-a8d3-4f13-b0d6-01fc615a0f97}"/><EventID>1</EventID><Version>5</Version><Level>4</Level><Task>1</Task><Opcode>0</Opcode><Keywords>0x8000000000000000</Keywords><TimeCreated SystemTime="2022-02-11T14:50:57.521965000Z"/><EventRecordID>255</EventRecordID><Correlation/><Execution ProcessID="3864" ThreadID="3864"/><Channel>Linux-Sysmon/Operational</Channel><Computer>server</Computer><Security UserId="0"/></System><EventData><Data Name="RuleName">-</Data><Data Name="UtcTime">2022-02-11 14:29:13.862</Data><Data Name="ProcessGuid">{d9065f19-72b9-6206-0000-000000000000}</Data><Data Name="ProcessId">3942</Data><Data Name="Image">-</Data><Data Name="FileVersion">-</Data><Data Name="Description">-</Data><Data Name="Product">-</Data><Data Name="Company">-</Data><Data Name="OriginalFileName">-</Data><Data Name="CommandLine">-</Data><Data Name="CurrentDirectory">-</Data><Data Name="User">-</Data><Data Name="LogonGuid">{d9065f19-0000-0000-ffff-ffffffffffff}</Data><Data Name="LogonId">65535</Data><Data Name="TerminalSessionId">0</Data><Data Name="IntegrityLevel">no level</Data><Data Name="Hashes">-</Data><Data Name="ParentProcessGuid">{00000000-0000-0000-0000-000000000000}</Data><Data Name="ParentProcessId">0</Data><Data Name="ParentImage">-</Data><Data Name="ParentCommandLine">-</Data><Data Name="ParentUser">-</Data></EventData></Event> Feb 11 09:50:59 server sysmon[3864]: <Event><System><Provider Name="Linux-Sysmon" Guid="{ff032593-a8d3-4f13-b0d6-01fc615a0f97}"/><EventID>5</EventID><Version>3</Version><Level>4</Level><Task>5</Task><Opcode>0</Opcode><Keywords>0x8000000000000000</Keywords><TimeCreated SystemTime="2022-02-11T14:50:59.935271000Z"/><EventRecordID>256</EventRecordID><Correlation/><Execution ProcessID="3864" ThreadID="3864"/><Channel>Linux-Sysmon/Operational</Channel><Computer>server</Computer><Security UserId="0"/></System><EventData><Data Name="RuleName">-</Data><Data Name="UtcTime">2022-02-11 14:50:59.943</Data><Data Name="ProcessGuid">{d9065f19-72c9-6206-e049-0ed35c550000}</Data><Data Name="ProcessId">1096</Data><Data Name="Image">/usr/bin/python3.8</Data><Data Name="User">root</Data></EventData></Event> |