Číst v angličtině

Sdílet prostřednictvím


Sysmon v15.15

Podle Mark Russinovich a Thomas Garnier

Publikováno: 23. července 2024

StáhnoutStá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 hodnot 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 v každé události, který umožňuje korelaci událostí ve stejné přihlašovací relaci.
  • Zaznamenává načítání ovladačů nebo knihoven DLL s jejich podpisy a hodnotami hash.
  • Otevře se protokoly pro nezpracovaný přístup ke č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.

Screenshoty

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 provést 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 odinstalace způsobí pokračování i v případě, že 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šší. Hodnota hash je úplná hodnota hash souboru s algoritmy v HashType poli.

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

Událost čas vytvoření souboru změn 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 obsahuje také ip adresy IP adres zdrojového a cílového hostitele, čí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.

Proces ukončí sestavy událostí při ukončení procesu. Poskytuje a UtcTimeProcessGuid ProcessId proces.

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 hash jsou k dispozici i 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

Image načtená událost protokoluje při načtení modulu do určité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 StartModule pole jsou StartFunction odvozena, mohou být prázdná, pokud je počáteční adresa 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í \\.\ poznámek. 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

Proces přistupuje k událostem sestavy, když proces otevře jiný proces, operaci, která často následuje dotazy 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í umístění automatického startu, jako je složka Po spuštění, a také dočasných a stažených adresářů, což jsou běžná místa poklesu malwaru během počáteční infekce.

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

Klíč registru a hodnota vytvoření a odstranění operací mapuje na tento typ události, což může být užitečné pro monitorování změn v umístěních automatického spuštění registru nebo konkrétních úprav registru malwaru.

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 registru a hodnoty se mapuje na tento typ události a zaznamenávají nový název klíče nebo hodnoty, které byly přejmenovány.

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é odstraňují jejich spustitelné soubory nebo nastavení konfigurace prostřednictvím stahování prohlížeče, a tato událost je zaměřena na zachycení toho, že na základě prohlížeče připojí Zone.Identifier "značku webového" datového proudu.

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ál)

Tato událost 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 (připojení kanálu)

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

ID události 19: Aktivita WmiEvent (zjištěná aktivita 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: FileDelete (archivovaný soubor)

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: SchránkaChange (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 "duté" nebo "herpaderp".

ID události 26: FileDeleteDeteDetected (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 shredding souborů z nástrojů, jako je 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 nebo přes Twitter (@markrussinovich).

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ázev adresářů v kořenech svazku, do kterých se přesunou soubory 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
CheckRevocation Logická hodnota Řídí kontroly odvolání podpisu. Výchozí: True
CopyOnDeletePE Logická hodnota Zachová odstraněné spustitelné soubory obrázků. Výchozí: False
Identifikátory CopyOnDeleteSID Řetězce Čárkami oddělený seznam identifikátorů SID účtu, pro které se zachovají odstranění souboru.
CopyOnDeleteExtensions Řetězce Rozšíření pro soubory, které se při odstranění zachovají.
CopyOnDeleteProcesses Řetězce Názvy procesů, pro které se odstraní soubor, se zachovají.
DnsLookup Logická hodnota Řídí reverzní vyhledávání DNS. Výchozí: True
DriverName String Používá zadaný název pro image ovladačů a služeb.
HashAlgorithms Ř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é na základě značky. Pokud přepínač příkazového řádku také povolí událost, musí být nakonfigurovaný, i když má značku filtru. Přepínač můžete určit -s , aby sysmon vytiskl ú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. Výstup na hostiteli můžete filtrovat a snížit tak shromažďování 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 FileCreateTime Č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 Načtený ovladač
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 RegistryEvent Přidání nebo odstranění objektu registru
13 RegistryEvent Sada hodnot registru
14 RegistryEvent 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 rozhraní WMI
20 WmiEvent Příjemce rozhraní WMI
21 WmiEvent Filtr příjemce rozhraní WMI
22 DNSQuery Dotaz DNS
23 FileDelete Archivované odstranění souboru
24 SchránkaChange Nový obsah ve schránce
25 Zpracování Změna obrázku procesu
26 FileDeleteDeteDeteCted Zaprotokolované odstranění souboru
27 FileBlockExecutable Spustitelný soubor bloku souboru
28 FileBlockShredding Shredding bloku souboru
29 FileExecutableDetected 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 nastavená na "exclude", událost bude zahrnuta s výjimkou případu, kdy se pravidlo shoduje. Můžete zadat sadu filtrů zahrnutí i sadu filtrů vyloučení pro každé ID události, kde mají přednost vyloučení shody.

Každý filtr může obsahovat nula nebo více pravidel. Každá značka pod značkou filtru 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í (nerozlišují velká a malá písmena):

Condition (Podmínka) Popis
is Výchozí hodnota je rovna hodnotám
je libovolná Pole je jednou z ; hodnot s oddělovači.
není Hodnoty se liší.
obsahuje Pole obsahuje tuto hodnotu.
obsahuje všechny Pole obsahuje některou ; z hodnot s oddělovači.
obsahuje vše Pole obsahuje všechny ; hodnoty s oddělovači.
vylučuje Pole neobsahuje tuto hodnotu.
vyloučí všechny Pole neobsahuje jednu nebo více ; hodnot s oddělovači.
vyloučí všechny Pole neobsahuje žádné hodnoty ; s oddělovači.
začněte na Pole začíná touto hodnotou.
end with Pole končí touto hodnotou.
nezačíná na Pole nezačíná touto hodnotou.
nekončí na Pole nekončí touto hodnotou.
méně než Lexikografické porovnání je menší než nula.
víc než Lexikografické porovnání je více než nula
image Porovná cestu k obrázku (úplná cesta nebo jenom název image). 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ů s iexplore.exe v cestě:

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

Pokud chcete mít sestavu Sysmon, která shoda pravidel způsobila protokolová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 chování OR.

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 kombinovat typ pravidla pro jednu nebo více událostí explicitně nastavena na AND nebo OR.

Následující příklad ukazuje toto použití. V první skupině pravidel se vygeneruje událost vytvoření procesu při timeout.exe spuštění pouze s argumentem příkazového 100řádku , ale proces ukončení události se vygeneruje 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áhnoutStáhnout Sysmon (4,6 MB)

Běží na:

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