
Tento článek je první částí série o analýze hrozeb Sysmon. Všechny další díly seriálu:
Část 1. Úvod do analýzy protokolů Sysmon (Jsme zde)
Část 2: Použití dat událostí systému Sysmon k identifikaci hrozeb
Část 3: Hluboká analýza hrozeb systému s grafy
Pokud pracujete v informační bezpečnosti, pravděpodobně často musíte rozumět probíhajícím útokům. Pokud již máte trénované oko, můžete v „surových“ nezpracovaných protokolech hledat nestandardní aktivitu – řekněme běžící skript PowerShellu nebo VBS skript maskovaný jako soubor Wordu - jednoduše procházením nejnovější aktivity v protokolu událostí WindowsAle tohle je pořádná komplikace. Naštěstí Microsoft vytvořil Sysmon, který analýzu útoků výrazně usnadňuje.
Chcete porozumět základním myšlenkám za hrozbami zobrazenými v protokolu Sysmon? Stáhněte si našeho průvodce a uvědomíte si, jak mohou zasvěcenci tajně sledovat ostatní zaměstnance. Hlavní problém s prací s protokolem událostí Windows Problém je v nedostatku informací o nadřazených procesech, což znamená, že je nemožné pochopit hierarchii procesů. Záznamy protokolu Sysmon naopak obsahují ID nadřazeného procesu, jeho název a spouštěný příkazový řádek. Děkujeme, Microsoft.
V prvním díle našeho seriálu uvidíme, co dokážeme se základními informacemi od Sysmonu. Ve druhé části plně využijeme informace nadřazeného procesu k vytvoření složitějších struktur dodržování předpisů známých jako grafy hrozeb. Ve třetí části se podíváme na jednoduchý algoritmus, který pomocí analýzy „váhy“ grafu skenuje graf hrozeb na nestandardní aktivitu. A nakonec za odměnu najdete úhlednou (a srozumitelnou) pravděpodobnostní metodu pro odhalování hrozeb.
Část 1: Úvod do Sysmon Log Analysis
Co vám může pomoci pochopit složitost protokolu událostí? Nakonec - SIEM. Normalizuje události a zjednodušuje jejich následnou analýzu. Ale nemusíme chodit tak daleko, alespoň ne zpočátku. Na začátku, abyste pochopili principy SIEM, bude stačit vyzkoušet úžasnou bezplatnou utilitu Sysmon. A překvapivě snadno se s ní pracuje. Jen tak dál, Microsoft!
Jaké jsou vlastnosti systému Sysmon?
Stručně řečeno, poskytuje užitečné a čitelné informace o procesech (viz obrázky níže). Najdete zde spoustu užitečných podrobností, které v protokolu událostí nenajdete. Windows, ale nejdůležitější jsou následující pole:
- ID procesu (v desítkové soustavě, nikoli hex!)
- ID nadřazeného procesu
- Zpracovat příkazový řádek
- Příkazový řádek nadřazeného procesu
- Soubor hash obrázku
- Názvy obrázků souborů
Sysmon se instaluje jako ovladač zařízení i služba současně – zjistěte více Jeho klíčovou výhodou je schopnost analyzovat logy z několik zdroje, korelace informací a výstup výsledných hodnot v jedné složce protokolu událostí umístěné podél cesty Microsoft -> Windows -> Sysmon -> ProvozníV mých vlastních protokolových vyšetřováních WindowsKvůli takovým otřesným chybám jsem musel neustále přepínat například mezi složkou protokolů PowerShellu a složkou Zabezpečení a procházet protokoly událostí v hrdinské snaze nějakým způsobem propojit hodnoty mezi nimi. To nikdy není snadný úkol a jak jsem si později uvědomil, bylo by lepší se hned zásobit aspirinem.
Na druhou stranu Sysmon dělá kvalitativní skok vpřed tím, že poskytuje užitečné (nebo, jak dodavatelé rádi říkají, použitelné) informace, které vám pomohou pochopit základní procesy. Například jsem zahájil skrytou relaci , simulující pohyb inteligentního insidera v síti. Toto uvidíte v protokolu událostí. Windows:

V časopise Windows Některé informace o procesech jsou viditelné, ale nejsou moc užitečné. Také ID procesů v hexadecimálním tvaru?
Pro profesionálního IT profesionála, který rozumí základům hackování, by měl být příkazový řádek podezřelý. Použití cmd.exe k následnému spuštění dalšího příkazu a přesměrování výstupu do souboru s podivným názvem je jasně podobné akcím monitorovacího a ovládacího softwaru : Tímto způsobem je pomocí služeb WMI vytvořen pseudo shell.
Nyní se podívejme na ekvivalent položky Sysmon a všimněme si, kolik dalších informací nám poskytuje:

Funkce sysmon na jednom snímku obrazovky: podrobné informace o procesu v čitelné podobě
Nevidíte jen příkazový řádek, ale také název souboru, cestu ke spustitelnému souboru aplikace, který Windows ví o tom („Windows identifikátor procesoru příkazů rodičovský proces, příkazový řádek rodič, který spustil shell cmd, a také skutečný název souboru nadřazeného procesu. Konečně vše na jednom místě!
Ze Sysmon logu můžeme usoudit, že s vysokou mírou pravděpodobnosti tento podezřelý příkazový řádek, který jsme viděli v „surových“ logech, není výsledkem běžné práce zaměstnance. Spíše byl generován procesem podobným C2 - wmiexec, jak jsem již zmínil - a byl přímo vytvořen procesem WMI služby (WmiPrvSe). Nyní máme indikátor, že vzdálený útočník nebo zasvěcenec zkouší firemní infrastrukturu na zub.
Představujeme Get-Sysmonlogs
Samozřejmě je skvělé, když Sysmon ukládá protokoly na jedno místo. Ještě lepší by ale asi bylo, kdybychom mohli k jednotlivým polím logu přistupovat programově – například přes příkazy PowerShellu. V tomto případě byste mohli napsat malý skript PowerShell, který by automatizoval vyhledávání potenciálních hrozeb!
Nebyl jsem první, kdo měl tento nápad. A je dobře, že v některých příspěvcích na fóru a GitHubu Již bylo vysvětleno, jak použít PowerShell k analýze protokolu Sysmon. V mém případě jsem se chtěl vyhnout nutnosti psát samostatné řádky skriptu analýzy pro každé pole Sysmon. Použil jsem tedy princip lenocha a myslím, že jsem ve výsledku přišel s něčím zajímavým.
Prvním důležitým bodem je schopnost příkazu čtěte protokoly Sysmon, filtrujte potřebné události a zobrazte výsledek v proměnné PS, jako je tato:
$events = Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" | where { $_.id -eq 1 -or $_.id -eq 11}
Pokud chcete příkaz sami otestovat, zobrazením obsahu v prvním prvku pole $events, $events[0]. Zpráva, výstupem může být řada textových řetězců ve velmi jednoduchém formátu: název Pole sysmon, dvojtečka a pak samotná hodnota.

Hurá! Výstup protokolu sysmon ve formátu připraveném na JSON
Myslíš na to samé co já? S trochou většího úsilí můžete výstup převést na řetězec ve formátu JSON a poté jej načíst přímo do objektu PS pomocí výkonného příkazu .
Kód PowerShellu pro převod – je to velmi jednoduché – ukážu v příštím díle. Prozatím se podívejme, co umí můj nový příkaz s názvem get-sysmonlogs, který jsem nainstaloval jako modul PS.
Namísto toho, abychom se hlouběji zabývali analýzou protokolů Sysmon prostřednictvím nepohodlného rozhraní protokolu událostí, můžeme bez námahy vyhledávat přírůstkovou aktivitu přímo z relace PowerShellu a také použít příkaz PS. (alias - "?"), chcete-li zkrátit výsledky vyhledávání:

Seznam shellů cmd spuštěných přes WMI. Analýza hrozeb levně s naším vlastním týmem Get-Sysmonlogs
Úžasné! Vytvořil jsem nástroj pro dotazování protokolu Sysmon, jako by to byla databáze. V našem článku o bylo poznamenáno, že tuto funkci bude provádět cool utilita v ní popsaná, i když formálně přes skutečné rozhraní podobné SQL. Ano, ECL elegantní, ale toho se dotkneme až ve třetím díle.
Systémová a grafová analýza
Udělejme krok zpět a zamysleme se nad tím, co jsme právě vytvořili. V podstatě nyní máme databázi událostí. Windows, přístupný přes PowerShell. Jak jsem již poznamenal, mezi záznamy existují propojení nebo vztahy – prostřednictvím ParentProcessId – takže můžete načíst celou hierarchii procesů.
Pokud jste četli sérii pak víte, že hackeři rádi vytvářejí složité vícefázové útoky, ve kterých každý proces hraje svou malou roli a připravuje odrazový můstek pro další krok. Takové věci se jen ze „syrové“ klády chytají extrémně těžko.
Ale s mým příkazem Get-Sysmonlogs a další datovou strukturou, na kterou se podíváme později v textu (samozřejmě graf), máme praktický způsob, jak detekovat hrozby – vše, co je potřeba, je provést řádné vyhledávání vrcholů. .
Jako vždy u našich blogových projektů DYI, čím více budete pracovat na analýze detailů hrozeb v malém měřítku, tím více si uvědomíte, jak složitá je detekce hrozeb na podnikové úrovni. A toto vědomí je extrémně důležitý bod.
Na první zajímavé složitosti narazíme v druhé části článku, kde začneme Sysmon události vzájemně propojovat do mnohem složitějších struktur.
Zdroj: www.habr.com
