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
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:
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 UtcTimeProcessGuidProcessId 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
Čá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:
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ě:
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.