System Monitor (Sysmon) to wszechstronne narzędzie diagnostyczne i bezpieczeństwa opracowane przez Microsoft, zaprojektowane do szczegółowego śledzenia zdarzeń na poziomie systemu operacyjnego. Działa jako usługa systemowa i sterownik urządzenia, rejestrując kluczowe zdarzenia związane z tworzeniem procesów, połączeniami sieciowymi, modyfikacjami plików oraz aktywnością rejestru. Jego architektura opiera się na mechanizmach kernel-mode i user-mode, co pozwala na przechwytywanie danych nawet podczas wczesnych etapów rozruchu systemu.

Architektura i mechanizmy działania Sysmon

Komponenty systemowe

Sysmon składa się z dwóch głównych elementów: sterownika urządzenia (driver) działającego w trybie jądra oraz usługi systemowej (service) działającej w trybie użytkownika. Sterownik przechwytuje zdarzenia na niskim poziomie, takie jak operacje na procesach czy dostęp do dysku, podczas gdy usługa odpowiada za przetwarzanie i zapisywanie tych zdarzeń w dzienniku zdarzeń Windows (Event Log).

Integracja z jądrem systemu

Sterownik Sysmon wykorzystuje mechanizmy Event Tracing for Windows (ETW) oraz filtering platform do monitorowania wywołań systemowych. Przechwytuje takie zdarzenia jak:

  • NtCreateProcess – tworzenie nowych procesów,
  • NtCreateFile – operacje na plikach,
  • NtDeviceIoControlFile – komunikacja z urządzeniami.

Dane te są przekazywane do usługi poprzez Alpc porty, zapewniając izolację od potencjalnych manipulacji ze strony oprogramowania działającego w trybie użytkownika.

Proces rejestracji zdarzeń

Każde zdarzenie generowane przez Sysmon zawiera rozbudowane metadane, w tym:

  • Identyfikator GUID procesu – umożliwia śledzenie relacji rodzic-dziecko nawet przy ponownym wykorzystaniu PID,
  • Skróty kryptograficzne (SHA1, SHA256) plików wykonywalnych,
  • Sygnatury cyfrowe modułów ładowanych do pamięci.

Przykładowy schemat zdarzenia procesu:
„`xml 1 {5A72C7B0-2F4A-5EF3-8C45-AA0100000000} notepad.exe C:\text.txt SHA256=9F86D081884C7D659A2FEAA0C55FD…

 ## Kluczowe funkcje monitorowania ### Śledzenie tworzenia procesów (Event ID 1) Sysmon rejestruje każdy nowy proces z pełną ścieżką wykonywalną, argumentami wiersza poleceń oraz skrótami kryptograficznymi. Pozwala to na wykrywanie: - **Iniekcji kodu** poprzez analizę niestandardowych ścieżek rodzic-dziecko, - **Living-off-the-land** (LOLBin) – wykorzystania legalnych narzędzi systemowych do złośliwych celów, - **Podmianę plików wykonywalnych** poprzez porównanie skrótów z bazą znanych wartości. ### Monitorowanie połączeń sieciowych (Event ID 3) Narzędzie rejestruje: - Adresy IP źródłowe i docelowe, - Numery portów z odwzorowaniem na nazwy usług (np. 443 → HTTPS), - Identyfikator procesu inicjującego połączenie. Dane te umożliwiają wykrywanie komunikacji z podejrzanymi domenami C2 (Command and Control) oraz analizę ruchu lateralnego w sieci. ### Detekcja manipulacji plikami (Event ID 2, 11) Sysmon identyfikuje: - Zmiany znaczników czasowych plików (timestamp forgery), - Tworzenie plików w lokalizacjach systemowych, - Operacje zapisu do pamięci masowej z pominięciem cache (raw disk access). ### Nadzór nad rejestrem systemowym (Event ID 12-14) Monitorowane klucze rejestru obejmują: - `HKLM\Software\Microsoft\Windows\CurrentVersion\Run` – autostart aplikacji, - `HKCR\batfile\shell\open\command` – asocjacje plików, - `HKLM\SYSTEM\CurrentControlSet\Services` – sterowniki kernel-mode. ## Konfiguracja i dostosowywanie ### Schemat pliku XML Konfiguracja Sysmon opiera się na pliku XML zdefiniowanym zgodnie ze schematem: 

xml * chrome.exe

 #### Operatory filtrowania - **contains** – częściowe dopasowanie ciągu znaków, - **begin with** – prefiks, - **end with** – sufiks, - **is** – dokładne dopasowanie, - **any** – lista wartości rozdzielonych przecinkami. ### Implementacja zaawansowanych reguł Przykład reguły wykrywającej podejrzane aktywności: 

xml -nop -exec bypass powershell.exe 1024 rundll32.exe

 ## Integracja z systemami SIEM ### Parsowanie danych w Splunku Przykład transformacji danych dla Splunk: 

sql index=epintel EventID=1 | eval ProcessGuid=substr(ProcessGuid, 2, 36) | lookup process_mapping.csv ProcessGuid OUTPUT ParentProcessGuid | stats count by Image, CommandLine

 ### Korelacja zdarzeń w ELK Stack Filtry Logstash dla Sysmon: 

ruby filter { if [event][dataset] == „sysmon” { grok { match => { „message” => „%{SYSMONEVENT}” } } fingerprint { source => „[process][hash]” target => „[process][hashfp]” method => „SHA256” } } } „`

Analiza przypadków użycia

Wykrywanie ataków ransomware

  1. Monitorowanie masowego tworzenia plików z rozszerzeniem .encrypted (Event ID 11),
  2. Identyfikacja procesów modyfikujących MFT (Master File Table),
  3. Korelacja z połączeniami do TOR exit nodes (Event ID 3).

Badanie incydentów APT

  1. Rekonstrukcja łańcucha procesów z wykorzystaniem ProcessGuid,
  2. Analiza czasowa zdarzeń z wykorzystaniem SessionGuid,
  3. Wykrywanie DLL side-loading poprzez Event ID 7.

Ograniczenia i środki zaradcze

Ryzyka związane z wydajnością

  • Nadmierne wykorzystanie CPU przy>50,000 zdarzeń/minutę – rozwiązanie: optymalizacja reguł filtrowania,
  • Wzrost rozmiaru dzienników >10 GB/dzień – implementacja rotacji plików EVTX.

Techniki unikania wykrycia

  • Manipulacja Event Tracing poprzez narzędzia typu TamperETW,
  • Usuwanie sterownika Sysmon z użyciem rootkitów kernel-mode – przeciwdziałanie: tryb Protected Process.

Perspektywy rozwojowe

Rozszerzenia dla systemu Linux

Wersja Sysmon dla Linux wykorzystuje framework eBPF do monitorowania:

  • Wywołań systemowych (syscall hooking),
  • Operacji na namespace’ach kontenerów,
  • Modyfikacji plików konfiguracyjnych systemu.

Integracja z chmurą hybrydową

  • Logowanie zdarzeń z maszyn wirtualnych Azure/AWS do centralnego SIEM,
  • Korelacja z danymi z usług cloudowych (Azure Activity Log, AWS CloudTrail).

Podsumowanie

Sysmon stanowi kluczowy element współczesnych systemów wykrywania i reagowania na incydenty (EDR). Jego zdolność do rejestrowania szczegółowych danych o aktywności systemowej, połączona z elastycznymi mechanizmami konfiguracyjnymi, czyni go niezastąpionym narzędziem w arsenale specjalistów bezpieczeństwa. Wdrożenie efektywnej strategii monitorowania wymaga jednak głębokiego zrozumienia zarówno możliwości samego narzędzia, jak i specyfiki badanych środowisk IT.

Autor
Adam M.
Pasjonat cyberbezpieczeństwa z 20-letnim stażem w branży IT. Swoją przygodę rozpoczynał od legendarnego mks_vir, a dziś odpowiada za ochronę systemów w renomowanej polskiej instytucji finansowej. Specjalizuje się w analizie zagrożeń i wdrażaniu polityk bezpieczeństwa. Ceni prywatność, dlatego o szczegółach mówi niewiele – woli, aby przemawiały za niego publikacje i wyniki pracy.