Sprievodca analýzou hrozieb sysmon, časť 1

Sprievodca analýzou hrozieb sysmon, časť 1

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 pomocou príkazu DownloadString alebo skript VBS, ktorý sa tvári, že je súborom programu Word – jednoducho prechádzajte najnovšou aktivitou v protokole udalostí systému Windows. Ale toto je naozaj veľká bolesť hlavy. Našťastie Microsoft vytvoril Sysmon, ktorý značne uľahčuje analýzu útokov.

Chcete pochopiť základné myšlienky hrozieb zobrazených v protokole Sysmon? Stiahnite si nášho sprievodcu Udalosti WMI ako prostriedok špionáže a uvedomíte si, ako môžu zasvätení tajne pozorovať ostatných zamestnancov. Hlavným problémom práce s denníkom udalostí Windows je nedostatok informácií o nadradených procesoch, t.j. nedá sa z neho pochopiť hierarchia procesov. Na druhej strane položky protokolu Sysmon obsahujú ID nadradeného procesu, jeho názov a príkazový riadok, ktorý sa má spustiť. Ďakujem, Microsoft.

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 tu. Jeho kľúčovou výhodou je schopnosť analyzovať protokoly z z mála zdrojov, korelácia informácií a výstup výsledných hodnôt do jedného priečinka protokolu udalostí umiestneného pozdĺž cesty Microsoft -> Windows -> Sysmon -> Operačný. Pri vlastnom prieskume denníkov systému Windows som zistil, že neustále musím prepínať medzi, povedzme, priečinkom protokolov PowerShell a priečinkom Zabezpečenie, listovaním cez protokoly udalostí v statočnom pokuse nejako korelovať hodnoty medzi týmito dvoma. . Toto nie je nikdy ľahká úloha a ako som si neskôr uvedomil, bolo lepšie okamžite zásobiť aspirínom.

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 wmiexec, simulujúci pohyb inteligentného insidera v rámci siete. Toto uvidíte v denníku udalostí systému Windows:

Sprievodca analýzou hrozieb sysmon, časť 1

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 príkaz a ovládanie (C2): Týmto spôsobom sa pomocou služieb WMI vytvorí pseudo-shell.
Teraz sa pozrime na ekvivalent položky Sysmon a všimnime si, koľko ďalších informácií nám poskytuje:

Sprievodca analýzou hrozieb sysmon, časť 1

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 projektov Už bolo vysvetlené, ako používať PowerShell na analýzu denníka Sysmon. V mojom prípade som sa chcel vyhnúť nutnosti písať samostatné riadky skriptu analýzy pre každé pole Sysmon. Použil som teda princíp lenivého muža a myslím, že som vo výsledku prišiel s niečím zaujímavým.
Prvým dôležitým bodom sú schopnosti tímu Get-WinEvent prečítajte si protokoly Sysmon, filtrujte potrebné udalosti a výsledok vypíšte do premennej PS, ako napríklad tu:

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

Sprievodca analýzou hrozieb sysmon, časť 1

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 ConvertFrom-Json .
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. kde (alias – „?“), ak chcete skrátiť výsledky vyhľadávania:

Sprievodca analýzou hrozieb sysmon, časť 1

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 IQ bolo poznamenané, že túto funkciu bude vykonávať skvelý nástroj, ktorý je v ňom opísaný, hoci formálne stále cez skutočné rozhranie podobné SQL. Áno, EQL elegantný, ale toho sa dotkneme v tretej časti.

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 „Dobrodružstvá nepolapiteľného malvéru“ viete, že hackeri milujú vytváranie zložitých viacstupňových útokov, v ktorých každý proces zohráva svoju malú úlohu a pripravuje odrazový mostík pre ďalší krok. Je mimoriadne ťažké chytiť takéto veci jednoducho zo „surového“ denníka.
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

Pridať komentár