Tento článok je prvou časťou série o analýze hrozieb Sysmon. Všetky ostatné diely seriálu:
Časť 1: Úvod do Sysmon Log Analysis (Sme tu)
Časť 2: Použitie údajov udalostí systému Sysmon na identifikáciu hrozieb
Časť 3. Hĺbková analýza hrozieb Sysmon pomocou grafov
Ak pracujete v informačnej bezpečnosti, pravdepodobne musíte často rozumieť prebiehajúcim útokom. Ak už máte trénované oko, môžete v „surových“ nespracovaných protokoloch hľadať neštandardnú aktivitu – povedzme spustený skript PowerShell
Chcete pochopiť základné myšlienky hrozieb zobrazených v protokole Sysmon? Stiahnite si nášho sprievodcu
V prvej časti našej série sa pozrieme na to, čo môžete robiť so základnými informáciami od Sysmon. V časti XNUMX naplno využijeme informácie o nadradenom procese na vytvorenie zložitejších štruktúr dodržiavania predpisov známych ako grafy hrozieb. V tretej časti sa pozrieme na jednoduchý algoritmus, ktorý skenuje graf hrozby a hľadá nezvyčajnú aktivitu analýzou „váhy“ grafu. A na konci budete odmenení úhľadnou (a zrozumiteľnou) pravdepodobnostnou metódou detekcie hrozieb.
Časť 1: Úvod do Sysmon Log Analysis
Čo vám môže pomôcť pochopiť zložitosť denníka udalostí? Nakoniec - SIEM. Normalizuje udalosti a zjednodušuje ich následnú analýzu. Ale nemusíme ísť tak ďaleko, aspoň nie na začiatku. Na začiatku, aby ste pochopili princípy SIEM, bude stačiť vyskúšať úžasnú bezplatnú utilitu Sysmon. A pracuje sa s ňou prekvapivo ľahko. Len tak ďalej, Microsoft!
Aké funkcie má Sysmon?
Stručne povedané - užitočné a čitateľné informácie o procesoch (pozri obrázky nižšie). Nájdete tu množstvo užitočných podrobností, ktoré nie sú v denníku udalostí systému Windows, ale najdôležitejšie sú nasledujúce polia:
- ID procesu (v desiatkovej sústave, nie hex!)
- ID rodičovského procesu
- Spracujte príkazový riadok
- Príkazový riadok nadradeného procesu
- Hash obrázka súboru
- Názvy obrázkov súborov
Sysmon sa inštaluje ako ovládač zariadenia aj ako služba - ďalšie podrobnosti
Sysmon robí kvantový skok vpred tým, že poskytuje užitočné (alebo ako dodávatelia radi hovoria, použiteľné) informácie, ktoré pomáhajú pochopiť základné procesy. Napríklad som začal tajnú reláciu
Denník systému Windows zobrazuje niektoré informácie o procese, ale je málo užitočný. Plus ID procesov v šestnástkovej sústave???
Pre profesionálneho IT profesionála, ktorý rozumie základom hackovania, by mal byť príkazový riadok podozrivý. Použitie cmd.exe na následné spustenie iného príkazu a presmerovanie výstupu do súboru s podivným názvom je jasne podobné akciám monitorovacieho a riadiaceho softvéru
Teraz sa pozrime na ekvivalent položky Sysmon a všimnime si, koľko ďalších informácií nám poskytuje:
Funkcie sysmon na jednej snímke obrazovky: podrobné informácie o procese v čitateľnej forme
Nevidíte len príkazový riadok, ale aj názov súboru, cestu k spustiteľnej aplikácii, čo o nej vie Windows („Windows Command Processor“), identifikátor rodičovský proces, príkazový riadok rodič, ktorý spustil shell cmd, ako aj skutočný názov súboru nadradeného procesu. Všetko na jednom mieste, konečne!
Z protokolu Sysmon môžeme usúdiť, že s vysokou pravdepodobnosťou tento podozrivý príkazový riadok, ktorý sme videli v „surových“ protokoloch, nie je výsledkom bežnej práce zamestnanca. Práve naopak, bol generovaný procesom podobným C2 - wmiexec, ako som už spomenul - a bol priamo splodený procesom služby WMI (WmiPrvSe). Teraz máme indikátor, že vzdialený útočník alebo zasvätenec testuje podnikovú infraštruktúru.
Predstavujeme Get-Sysmonlogs
Samozrejme je skvelé, keď Sysmon ukladá protokoly na jedno miesto. Ale ešte lepšie by asi bolo, keby sme k jednotlivým poliam logov mohli pristupovať programovo – napríklad cez príkazy PowerShellu. V tomto prípade by ste mohli napísať malý skript PowerShell, ktorý by zautomatizoval vyhľadávanie potenciálnych hrozieb!
Nebol som prvý, kto mal takýto nápad. A je dobré, že v niektorých príspevkoch na fóre a GitHub
Prvým dôležitým bodom sú schopnosti tímu
$events = Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" | where { $_.id -eq 1 -or $_.id -eq 11}
Ak chcete príkaz otestovať sami, zobrazením obsahu v prvom prvku poľa $events, $events[0]. Správa, výstupom môže byť séria textových reťazcov s veľmi jednoduchým formátom: názov Pole Sysmon, dvojbodka a potom samotná hodnota.
Hurá! Výstup prihlásenia Sysmon do formátu pripraveného na JSON
Myslíš na to isté čo ja? S trochou väčšieho úsilia môžete výstup previesť na reťazec vo formáte JSON a potom ho načítať priamo do objektu PS pomocou výkonného príkazu
Kód PowerShell na konverziu – je to veľmi jednoduché – ukážem v ďalšej časti. Zatiaľ sa pozrime, čo dokáže môj nový príkaz s názvom get-sysmonlogs, ktorý som nainštaloval ako modul PS.
Namiesto toho, aby sme sa ponorili hlboko do analýzy protokolu Sysmon prostredníctvom nepohodlného rozhrania protokolu udalostí, môžeme bez námahy vyhľadať prírastkovú aktivitu priamo z relácie PowerShell, ako aj použiť príkaz PS.
Zoznam shellov cmd spustených cez WMI. Lacná analýza hrozieb s naším vlastným tímom Get-Sysmonlogs
Podivuhodný! Vytvoril som nástroj na prieskum protokolu Sysmon, ako keby to bola databáza. V našom článku o
Analýza systémov a grafov
Vráťme sa späť a zamyslime sa nad tým, čo sme práve vytvorili. V podstate máme teraz databázu udalostí Windows prístupnú cez PowerShell. Ako som už skôr poznamenal, medzi záznamami existujú prepojenia alebo vzťahy – cez ParentProcessId – takže je možné získať kompletnú hierarchiu procesov.
Ak ste čítali sériu
Ale s mojím príkazom Get-Sysmonlogs a dodatočnou dátovou štruktúrou, na ktorú sa pozrieme neskôr v texte (samozrejme graf), máme praktický spôsob, ako odhaliť hrozby – čo si vyžaduje len správne vyhľadávanie vrcholov.
Ako vždy v prípade našich blogových projektov DYI, čím viac budete pracovať na analýze detailov hrozieb v malom rozsahu, tým viac si uvedomíte, aká zložitá je detekcia hrozieb na podnikovej úrovni. A toto vedomie je mimoriadne dôležitý bod.
Na prvé zaujímavé komplikácie narazíme v druhej časti článku, kde začneme Sysmon udalosti navzájom spájať do oveľa zložitejších štruktúr.
Zdroj: hab.com