Sdílet prostřednictvím


Sysmon v15.2

Podle Mark Russinovich a Thomas Garnier

Publikováno: 26. března 2026

Stáhnout Stáhnout Sysmon(4,6 MB)

Stáhnout Sysmon pro Linux (GitHub)

Úvod

System Monitor (Sysmon) je systémová služba systému Windows a ovladač zařízení, který po instalaci v systému zůstává rezidentem při restartování systému, aby monitoroval a protokoloval systémovou aktivitu do protokolu událostí Systému Windows. Poskytuje podrobné informace o vytváření procesů, síťových připojeních a změnách času vytváření souborů. Shromažďováním událostí generovaných pomocí kolekce událostí systému Windows nebo agentů SIEM a následnou analýzou událostí můžete identifikovat škodlivou nebo neobvyklou aktivitu a porozumět tomu, jak ve vaší síti fungují útočníky a malware. Služba běží jako chráněný proces, takže nepovoluje širokou škálu interakcí v uživatelském režimu.

Všimněte si, že Sysmon neposkytuje analýzu událostí, které generuje, ani se nepokoušá se skrýt před útočníky.

Přehled možností sysmonu

Sysmon zahrnuje následující funkce:

  • Zaznamenává vytváření procesů pomocí úplného příkazového řádku pro aktuální i nadřazené procesy.
  • Zaznamenává hodnotu hash procesních souborů obrázků pomocí SHA1 (výchozí), MD5, SHA256 nebo IMPHASH.
  • Současně lze použít více hashů.
  • Zahrnuje identifikátor GUID procesu v procesu vytváření událostí, které umožňují korelaci událostí i v případě, že Systém Windows znovu používá ID procesů.
  • Obsahuje identifikátor GUID relace u každé události, který umožňuje korelaci událostí v rámci stejné přihlašovací relace.
  • Zaznamenává načítání ovladačů nebo knihoven DLL s jejich podpisy a hodnotami hash.
  • Otevírají se protokoly pro surový přístup pro čtení disků a svazků.
  • Volitelně protokoluje síťová připojení, včetně zdrojového procesu každého připojení, IP adres, čísel portů, názvů hostitelů a názvů portů.
  • Detekuje změny v době vytvoření souboru, aby porozuměla tomu, kdy byl soubor skutečně vytvořen. Úprava časových razítek vytvoření souboru je technika, kterou malware běžně používá k pokrytí jeho stop.
  • Automaticky znovu načtěte konfiguraci, pokud se změnila v registru.
  • Filtrování pravidel pro dynamické zahrnutí nebo vyloučení určitých událostí
  • Generuje události z počátku procesu spouštění za účelem zachycení aktivity vytvořené dokonce sofistikovaným malwarem v režimu jádra.

Snímky obrazovky

EventViewer

Využití

Běžné použití s jednoduchými možnostmi příkazového řádku k instalaci a odinstalaci nástroje Sysmon a také ke kontrole a úpravě konfigurace:

Nainstalovat: sysmon64 -i [<configfile>]
Konfigurace aktualizace: sysmon64 -c [<configfile>]
Instalace manifestu události: sysmon64 -m
Schéma tisku: sysmon64 -s
Odinstalovat: sysmon64 -u [force]

Parametr Popis
-i Nainstalujte službu a ovladač. Volitelně můžete použít konfigurační soubor.
-c Aktualizace konfigurace nainstalovaného ovladače Sysmon nebo výpis aktuální konfigurace, pokud není k dispozici žádný jiný argument. Volitelně se používá konfigurační soubor.
-m Nainstalujte manifest události (implicitně se provádí také při instalaci služby).
-s Vytiskněte definici schématu konfigurace.
-u Odinstalujte službu a ovladač. Použití -u force způsobí, že proces odinstalace pokračuje, i když některé součásti nejsou nainstalovány.

Služba protokoluje události okamžitě a ovladač se nainstaluje jako spouštěcí ovladač pro zaznamenání aktivity z počátku spuštění, které služba při spuštění zapíše do protokolu událostí.

V systému Vista a vyšších jsou události uloženy v Applications and Services Logs/Microsoft/Windows/Sysmon/Operational. Ve starších systémech se události zapisují do System protokolu událostí.

Pokud potřebujete další informace o konfiguračních souborech, použijte -? config příkaz.

Zadejte -accepteula , aby automaticky přijímala smlouvu EULA při instalaci, jinak budete interaktivně vyzváni k jeho přijetí.

Instalace ani odinstalace nevyžaduje restartování.

Příklady

Instalace s výchozím nastavením (zpracování obrázků hashovaných pomocí SHA1 a bez monitorování sítě)

sysmon -accepteula -i

Nainstalujte sysmon s konfiguračním souborem (jak je popsáno níže).

sysmon -accepteula -i c:\windows\config.xml

Odinstalace produktu

sysmon -u

Výpis aktuální konfigurace

sysmon -c

Změna konfigurace aktivního sysmonu pomocí konfiguračního souboru (jak je popsáno níže)

sysmon -c c:\windows\config.xml

Změna konfigurace na výchozí nastavení

sysmon -c --

Zobrazení schématu konfigurace

sysmon -s

Události

V systému Vista a vyšších jsou události uloženy v Applications and Services Logs/Microsoft/Windows/Sysmon/Operationala ve starších systémech události se zapisují do System protokolu událostí. Časová razítka událostí jsou ve standardním čase UTC.

Následují příklady jednotlivých typů událostí, které Sysmon generuje.

ID události 1: Vytvoření procesu

Událost vytvoření procesu poskytuje rozšířené informace o nově vytvořeném procesu. Úplný příkazový řádek poskytuje kontext při provádění procesu. Pole ProcessGUID je jedinečná hodnota pro tento proces v rámci domény, aby byla korelace událostí jednodušší. Hash je úplným hashem souboru za použití algoritmů v HashType poli.

ID události 2: Proces změnil čas vytvoření souboru.

Událost změny času vytvoření souboru se zaregistruje, když proces explicitně upraví čas vytvoření souboru. Tato událost pomáhá sledovat čas vytvoření souboru v reálném čase. Útočníci můžou změnit čas vytvoření souboru backdooru tak, aby vypadal jako nainstalovaný v operačním systému. Všimněte si, že mnoho procesů oprávněně mění čas vytvoření souboru; nemusí nutně znamenat škodlivou aktivitu.

ID události 3: Síťové připojení

Událost síťového připojení protokoluje připojení TCP/UDP na počítači. Ve výchozím nastavení je zakázaná. Každé připojení je propojeno s procesem prostřednictvím ProcessId polí a ProcessGuid polí. Událost také obsahuje názvy zdrojového a cílového hostitele, IP adresy, čísla portů a stav protokolu IPv6.

ID události 4: Změna stavu služby Sysmon

Událost změny stavu služby hlásí stav služby Sysmon (spuštěno nebo zastaveno).

ID události 5: Proces byl ukončen.

K události hlášení o ukončení procesu dochází, když proces skončí. Poskytuje UtcTime, ProcessGuid a ProcessId procesu.

ID události 6: Načtený ovladač

Události načtení ovladače poskytují informace o ovladači, který se načítá v systému. Nakonfigurované hodnoty hashovací funkce jsou k dispozici, stejně jako informace o podpisu. Podpis se vytváří asynchronně z důvodů výkonu a označuje, jestli byl soubor po načtení odebrán.

ID události 7: Načtený obrázek

Událost načtení obrazu protokoluje, když je modul načten do konkrétního procesu. Tato událost je ve výchozím nastavení zakázaná a je potřeba ji nakonfigurovat pomocí možnosti "–l". Označuje proces, ve kterém je modul načten, hodnoty hash a informace o podpisu. Podpis se vytváří asynchronně z důvodů výkonu a označuje, jestli byl soubor po načtení odebrán. Tato událost by se měla nakonfigurovat pečlivě, protože monitorování všech událostí načítání obrázků vygeneruje značné množství protokolování.

ID události 8: CreateRemoteThread

Událost CreateRemoteThread zjistí, kdy proces vytvoří vlákno v jiném procesu. Tuto techniku používá malware k vložení kódu a skrytí v jiných procesech. Událost označuje zdrojový a cílový proces. Poskytuje informace o kódu, který bude spuštěn v novém vlákně: StartAddressStartModule a StartFunction. Všimněte si, že pole StartModule a StartFunction jsou odvozena; mohou být prázdná, pokud počáteční adresa leží mimo načtené moduly nebo známé exportované funkce.

ID události 9: RawAccessRead

Událost RawAccessRead zjistí, kdy proces provádí operace čtení z jednotky pomocí označení \\.\. Tato technika se často používá malwarem pro exfiltraci dat souborů, které jsou uzamčeny pro čtení, a také k zabránění nástrojům pro auditování přístupu k souborům. Událost označuje zdrojový proces a cílové zařízení.

ID události 10: ProcessAccess

Zaznamenaná událost přístupu k procesu nastane, když se proces otevře jiným procesem, což často následuje dotazování na informace nebo čtení a zápis adresního prostoru cílového procesu. To umožňuje detekci hackingových nástrojů, které čtou obsah paměti procesů, jako je místní bezpečnostní autorita (Lsass.exe), aby ukradly přihlašovací údaje pro použití v útokůch Pass-the-Hash. Povolení může generovat značné množství protokolování, pokud jsou aktivní diagnostické nástroje, které opakovaně otevírají procesy pro dotazování jejich stavu, takže obecně by se mělo provádět pouze s filtry, které odeberou očekávané přístupy.

ID události 11: FileCreate

Operace vytváření souborů se protokolují při vytvoření nebo přepsání souboru. Tato událost je užitečná pro monitorování lokací automatického spuštění, jako je složka Po spuštění, a také dočasných a stažených adresářů, které jsou běžná místa, kam malware často padá během počáteční infekce.

ID události 12: RegistryEvent (vytvoření a odstranění objektu)

Klíč a hodnota registru pro operace vytvoření a odstranění se mapují na tento typ události, což může být užitečné pro sledování změn v automatickém spouštění v registru nebo úprav registru způsobených malwarem.

Sysmon používá zkrácené verze názvů kořenových klíčů registru s následujícími mapováními:

Název klíče Zkratka
HKEY_LOCAL_MACHINE HKLM
HKEY_USERS HKU
HKEY_LOCAL_MACHINE\System\ControlSet00x HKLM\System\CurrentControlSet
HKEY_LOCAL_MACHINE\Classes HKCR

ID události 13: RegistryEvent (sada hodnot)

Tento typ události registru identifikuje úpravy hodnot registru. Událost zaznamenává hodnotu zapsanou pro hodnoty registru typu DWORD a QWORD.

ID události 14: RegistryEvent (přejmenování klíče a hodnoty)

Operace přejmenování klíče a hodnoty registru je mapována na tento typ události, zaznamenává nový název přejmenovaného klíče nebo hodnoty.

ID události 15: FileCreateStreamHash

Tato událost zaznamená, když se vytvoří pojmenovaný datový proud souboru, a vygeneruje události, které protokolují hodnotu hash obsahu souboru, ke kterému je datový proud přiřazen (nepojmenovaný datový proud), a také obsah pojmenovaného streamu. Existují varianty malwaru, které ukládají své spustitelné soubory nebo nastavení konfigurace prostřednictvím stahování prohlížeče. Tato událost se zaměřuje na jejich zachycení na základě toho, že prohlížeč připojí Zone.Identifier "značku webu" stream.

ID události 16: ServiceConfigurationChange

Tato událost zaznamenává změny v konfiguraci sysmonu – například při aktualizaci pravidel filtrování.

ID události 17: PipeEvent (vytvoření kanálu)

Tato událost se generuje při vytvoření pojmenovaného kanálu. Malware často používá pojmenované kanály pro komunikaci mezi procesy.

ID události 18: PipeEvent (spojení potrubí)

Tato událost protokoluje, když se vytvoří připojení pojmenovaného kanálu mezi klientem a serverem.

ID události 19: WmiEvent (Detekována aktivita filtru WmiEventFilter)

Při registraci filtru událostí rozhraní WMI, což je metoda používaná malwarem ke spuštění, tato událost zaznamená obor názvů rozhraní WMI, název filtru a výraz filtru.

ID události 20: WmiEvent (zjištěná aktivita WmiEventConsumer)

Tato událost zaznamená registraci příjemců rozhraní WMI, zaznamenává název příjemce, protokol a cíl.

ID události 21: Zjištěna aktivita WmiEvent (WmiEventConsumerToFilter)

Když příjemce vytvoří vazbu na filtr, tato událost zaznamená název příjemce a cestu filtru.

ID události 22: DNSEvent (dotaz DNS)

Tato událost se vygeneruje, když proces spustí dotaz DNS, ať už je výsledek úspěšný nebo neúspěšný, uložený v mezipaměti nebo ne. Telemetrie pro tuto událost byla přidána pro Windows 8.1, takže není k dispozici ve Windows 7 a starších verzích.

ID události 23: OdstraněníSouboru (soubor odstraněn a archivován)

Soubor byl odstraněn. Kromě protokolování události se odstraněný soubor uloží také do ArchiveDirectory souboru (který je C:\Sysmon ve výchozím nastavení). Za normálních provozních podmínek se tento adresář může zvětšit na nepřiměřenou velikost – viz ID události 26: podobné chování, FileDeleteDetected ale bez uložení odstraněných souborů.

ID události 24: Změna schránky (nový obsah ve schránce)

Tato událost se vygeneruje při změně obsahu schránky systému.

ID události 25: ProcessTampering (změna obrázku procesu)

Tato událost se vygeneruje, když se zjistí techniky skrytí procesů, jako je "hollowing" nebo "herpaderp".

ID události 26: FileDeleteDetected (zaprotokolováno odstranění souboru)

Soubor byl odstraněn.

ID události 27: FileBlockExecutable

Tato událost se vygeneruje, když Sysmon zjistí a blokuje vytváření spustitelných souborů (formát PE).

ID události 28: FileBlockShredding

Tato událost se vygeneruje, když Sysmon zjistí a zablokuje skartaci souborů z nástrojů, jako je například SDelete.

ID události 29: FileExecutableDetected

Tato událost se vygeneruje, když Sysmon zjistí vytvoření nového spustitelného souboru (formát PE).

ID události 255: Chyba

Tato událost se vygeneruje, když došlo k chybě v nástroji Sysmon. K nim může dojít v případě, že je systém zatížený a některé úlohy nelze provést nebo ve službě Sysmon existuje chyba nebo i v případě, že nejsou splněny určité podmínky zabezpečení a integrity. Jakékoli chyby můžete nahlásit na fóru Sysinternals.

Konfigurační soubory

Konfigurační soubory lze zadat po přepínačích konfigurace -i (instalace) nebo -c (instalace). Usnadňují nasazení přednastavené konfigurace a filtrování zachycených událostí.

Jednoduchý konfigurační soubor XML vypadá takto:

<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>

Konfigurační soubor obsahuje atribut schemaversion na značce Sysmon. Tato verze je nezávislá na binární verzi Sysmon a umožňuje parsování starších konfiguračních souborů. Aktuální verzi schématu můžete získat pomocí příkazového řádku "-? config". Položky konfigurace jsou přímo pod značkou Sysmon a filtry jsou pod značkou EventFiltering .

Položky konfigurace

Položky konfigurace jsou podobné přepínačům příkazového řádku a zahrnují následující:

Položky konfigurace zahrnují následující položky:

Položka Hodnota Popis
ArchiveDirectory String Názvy adresářů v kořenech svazku, do kterých se přesunou soubory při operaci copy-on-delete. Adresář je chráněný systémovým seznamem ACL (k přístupu k adresáři můžete použít PsExec ze služby Sysinternals pomocí psexec -sid cmd). Výchozí: Sysmon
KontrolaOdvolání logický Řídí kontroly odvolání podpisu. Výchozí: True
CopyOnDeletePE logický Zachová odstraněné spustitelné soubory obrázků. Výchozí: False
CopyOnDeleteSID identifikátory Řetězce Čárkami oddělený seznam SID účtů, pro něž budou zachována odstranění souborů.
CopyOnDeleteExtensions Řetězce Rozšíření pro soubory, které se při odstranění zachovají.
Kopírování při mazání procesů Řetězce Názvy procesů, pro které se odstraní soubor, se zachovají.
DnsLookup logický Řídí reverzní vyhledávání DNS. Výchozí: True
NázevOvladače String Používá zadaný název pro obrázky ovladačů a služeb.
Hashovací algoritmy Řetězce Hashovací algoritmy, které se mají použít pro hashování Mezi podporované algoritmy patří MD5, SHA1, SHA256, IMPHASH a * (vše). Výchozí: None

Přepínače příkazového řádku mají svoji položku konfigurace popsanou ve výstupu použití sysmonu. Parametry jsou volitelné v závislosti na značce. Pokud přepínač příkazového řádku také povolí událost, musí být nakonfigurován prostřednictvím své značky filtru. Můžete zadat přepínač -s, aby Sysmon zobrazil úplné schéma konfigurace, včetně značek událostí a názvů polí a typů pro každou událost. Tady je například schéma pro RawAccessRead typ události:

<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>  

Položky filtrování událostí

Filtrování událostí umožňuje filtrovat vygenerované události. V mnoha případech můžou být události hlučné a shromažďování všeho není možné. Například můžete mít zájem o síťová připojení jenom pro určitý proces, ale ne všechny. Na hostiteli můžete filtrovat výstup, čímž snížíte množství shromažďovaných dat.

Každá událost má v konfiguračním souboru vlastní značku filtru v uzlu EventFiltering:

ID Značka Událost
1 ProcessCreate Vytvoření procesu
2 Čas vytvoření souboru Čas vytvoření souboru
3 NetworkConnect Zjistilo se síťové připojení
4 Není k dispozici Změna stavu služby Sysmon (nelze filtrovat)
5 ProcessTerminate Proces byl ukončen.
6 DriverLoad Ovladač načten
7 ImageLoad Obrázek načtený
8 CreateRemoteThread Byl zjištěn CreateRemoteThread.
9 RawAccessRead Byla zjištěna funkce RawAccessRead.
10 ProcessAccess Přístup k procesu
11 Vytvoření souboru Vytvořený soubor
12 Událost registru Přidání nebo odstranění objektu registru
13 Událost registru Sada hodnot registru
14 Událost registru Přejmenování objektu registru
15 FileCreateStreamHash Vytvořený datový proud souborů
16 Není k dispozici Změna konfigurace sysmonu (nelze filtrovat)
17 PipeEvent Vytvoření pojmenovaného kanálu
18 PipeEvent Pojmenovaná trubka připojená
19 WmiEvent Filtr WMI
20 WmiEvent Příjemce rozhraní WMI
21 WmiEvent Filtr příjemce rozhraní WMI
22 DnsQuery dotaz DNS
23 FileDelete Smazání archivu souborů
24 SchránkaZměna Nový obsah ve schránce
25 Zásah do procesu Změna obrázku procesu
26 OdstraněníSouboruZjištěno Zaprotokolované odstranění souboru
27 FileBlockExecutable Blokovat spustitelné soubory
28 SkartováníBlokuSouborů Skartace bloků souborů
29 Detekován spustitelný soubor Zjištěný spustitelný soubor

Tyto značky můžete najít také v prohlížeči událostí v názvu úkolu.

Filtr onmatch se použije, pokud se události shodují. Dá se změnit pomocí atributu onmatch pro značku filtru. Pokud je "include"hodnota , znamená to, že se zahrnou pouze odpovídající události. Pokud je nastavena na "exclude", událost bude zahrnuta, kromě případu, kdy se nějaké pravidlo shoduje. Můžete zadat jak zahrnující sadu filtrů, tak vylučovací sadu filtrů pro každé ID události, kde vyloučení mají přednost.

Každý filtr může obsahovat nula nebo více pravidel. Každý tag pod filtrovým tagem je název pole z události. Pravidla, která určují podmínku pro stejný název pole, se chovají jako podmínky OR a ty, které určují jiný název pole, se chovají jako podmínky AND. Pravidla polí můžou také použít podmínky, které odpovídají hodnotě. Podmínky jsou následující (nezáleží na velikosti písmen):

Condition (Podmínka) Popis
is Ve výchozím nastavení jsou hodnoty rovny
je libovolná Pole je jednou z ; hodnot oddělených pomocí oddělovačů.
není Hodnoty se liší.
obsahuje Pole obsahuje tuto hodnotu.
obsahuje všechny Pole obsahuje kteroukoli z hodnot ; oddělených oddělovačem.
obsahuje vše Pole obsahuje všechny ; oddělené hodnoty.
vylučuje Pole neobsahuje tuto hodnotu.
vyloučí všechny Pole neobsahuje jednu nebo více hodnot oddělených oddělovačem ;.
vyloučí všechny Pole neobsahuje žádné z ; oddělených hodnot.
začněte s Pole začíná touto hodnotou.
končit s Pole končí touto hodnotou.
nezačíná s Pole nezačíná touto hodnotou.
nekončí s Pole není omezeno touto hodnotou.
méně než Lexikografické porovnání má hodnotu menší než nula.
víc než Výsledek lexikografického porovnání je větší než nula.
image Porovná cestu k obrázku (úplná cesta nebo jenom název obrázku). Příklad: bude odpovídat: lsass.exec:\windows\system32\lsass.exe

Jinou podmínku můžete použít tak, že ji zadáte jako atribut. Tím se vyloučí síťová aktivita z procesů, které mají ve své cestě soubor iexplore.exe.

<NetworkConnect onmatch="exclude">
  <Image condition="contains">iexplore.exe</Image>
</NetworkConnect>

Aby Sysmon hlásil, které pravidlo způsobilo zaznamenání události, přidejte do pravidel názvy:

<NetworkConnect onmatch="exclude">
  <Image name="network iexplore" condition="contains">iexplore.exe</Image>
</NetworkConnect>

Pravidla zahrnutí i vyloučení můžete použít pro stejnou značku, kde pravidla vyloučení přepíší pravidla zahrnutí. V pravidle mají podmínky filtru buď-anebo chování.

V ukázkové konfiguraci uvedené výše používá síťový filtr pravidlo zahrnutí i vyloučení k zaznamenání aktivity na portu 80 a 443 všemi procesy s výjimkou těch, které mají iexplore.exe ve svém názvu.

Je také možné přepsat způsob, jakým jsou pravidla kombinována, pomocí skupiny pravidel, která umožňuje nastavit typ kombinace pravidla pro jednu nebo více událostí explicitně na AND nebo OR.

Následující příklad ukazuje toto použití. V první skupině pravidel bude vygenerována událost vytvoření procesu při spuštění timeout.exe pouze s příkazovým argumentem 100, ale událost ukončení procesu bude vygenerována pro ukončení ping.exe a 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>

Stáhnout Stáhnout Sysmon(4,6 MB)

Běží na:

  • Klient: Windows 10 a vyšší.
  • Server: Windows Server 2016 a novější.