Guia d'anàlisi d'amenaces de Sysmon, part 1

Guia d'anàlisi d'amenaces de Sysmon, part 1

Aquest article és la primera part d'una sèrie sobre l'anàlisi de les amenaces de Sysmon. Totes les altres parts de la sèrie:

Part 1: Introducció a l'anàlisi de registres de Sysmon (estem aquí)
Part 2: Ús de dades d'esdeveniments de Sysmon per identificar amenaces
Part 3. Anàlisi en profunditat de les amenaces Sysmon mitjançant gràfics

Si treballeu en seguretat de la informació, probablement sovint haureu d'entendre els atacs en curs. Si ja teniu un ull entrenat, podeu cercar activitats no estàndard als registres "crues" no processats, per exemple, un script de PowerShell en execució. amb l'ordre DownloadString o un script VBS que pretén ser un fitxer de Word, simplement desplaçant-se per l'última activitat al registre d'esdeveniments de Windows. Però això és un maldecap molt gran. Afortunadament, Microsoft va crear Sysmon, que facilita molt l'anàlisi d'atacs.

Voleu entendre les idees bàsiques darrere de les amenaces que es mostren al registre de Sysmon? Descarrega la nostra guia Esdeveniments WMI com a mitjà d'espionatge i t'adones de com els usuaris poden observar subrepticiament altres empleats. El principal problema de treballar amb el registre d'esdeveniments de Windows és la manca d'informació sobre els processos principals, és a dir. és impossible entendre'n la jerarquia dels processos. Les entrades de registre de Sysmon, d'altra banda, contenen l'ID del procés pare, el seu nom i la línia d'ordres que es va iniciar. Gràcies, Microsoft.

A la primera part de la nostra sèrie, veurem què podeu fer amb la informació bàsica de Sysmon. A la part 2, aprofitarem al màxim la informació del procés principal per crear estructures de compliment més complexes conegudes com a gràfics d'amenaça. A la tercera part, analitzarem un algorisme senzill que escaneja un gràfic d'amenaces per buscar activitats inusuals mitjançant l'anàlisi del "pes" del gràfic. I al final, se us recompensarà amb un mètode de detecció d'amenaces probabilistes net (i comprensible).

Part 1: Introducció a l'anàlisi de registres de Sysmon

Què us pot ajudar a entendre la complexitat del registre d'esdeveniments? En definitiva - SIEM. Normalitza els esdeveniments i simplifica la seva anàlisi posterior. Però no hem d'anar tan lluny, almenys no al principi. Al principi, per entendre els principis de SIEM, n'hi haurà prou amb provar la meravellosa utilitat gratuïta Sysmon. I és sorprenentment fàcil treballar amb ella. Segueix així, Microsoft!

Quines característiques té Sysmon?

En resum: informació útil i llegible sobre els processos (vegeu imatges a continuació). Trobareu un munt de detalls útils que no es troben al registre d'esdeveniments de Windows, però els més importants són els camps següents:

  • ID de procés (en decimal, no hexadecimal!)
  • Identificador del procés principal
  • Línia d'ordres del procés
  • Línia d'ordres del procés pare
  • Hash d'imatge de fitxer
  • Noms de les imatges dels fitxers

Sysmon s'instal·la com a controlador de dispositiu i com a servei: més detalls aquí. El seu avantatge clau és la capacitat d'analitzar registres des diverses fonts, correlació d'informació i sortida dels valors resultants a una carpeta de registre d'esdeveniments situada al llarg del camí Microsoft -> Windows -> Sysmon -> Operatiu. En les meves pròpies investigacions sobre els registres de Windows, em vaig trobar constantment havent de canviar entre, per exemple, la carpeta de registres de PowerShell i la carpeta Seguretat, llegint els registres d'esdeveniments en un valent intent de correlacionar d'alguna manera els valors entre els dos. . Aquesta mai no és una tasca fàcil i, com em vaig adonar més tard, era millor abastir-se immediatament d'aspirina.

Sysmon fa un gran salt endavant proporcionant informació útil (o com diuen els venedors, accionable) per ajudar a entendre els processos subjacents. Per exemple, vaig començar una sessió secreta wmiexec, simulant el moviment d'un intel·ligent dins de la xarxa. Això és el que veureu al registre d'esdeveniments de Windows:

Guia d'anàlisi d'amenaces de Sysmon, part 1

El registre de Windows mostra informació sobre el procés, però és de poca utilitat. A més els ID de procés en hexadecimal???

Per a un professional informàtic amb coneixements bàsics de la pirateria informàtica, la línia d'ordres hauria de ser sospitosa. L'ús de cmd.exe per executar una altra ordre i redirigir la sortida a un fitxer amb un nom estrany és clarament similar a les accions del programari de supervisió i control. comandament i control (C2): D'aquesta manera, es crea un pseudo-shell utilitzant serveis WMI.
Ara donem una ullada a l'equivalent a l'entrada de Sysmon, observant quanta informació addicional ens proporciona:

Guia d'anàlisi d'amenaces de Sysmon, part 1

Característiques de Sysmon en una captura de pantalla: informació detallada sobre el procés en forma llegible

No només veuràs la línia d'ordres, sinó també el nom del fitxer, la ruta a l'aplicació executable, el que Windows sap sobre ella ("Windows Command Processor"), l'identificador parental procés, línia d'ordres pare, que va llançar l'intèrpret d'ordres cmd, així com el nom del fitxer real del procés principal. Tot en un sol lloc, per fi!
Del registre de Sysmon podem concloure que amb un alt grau de probabilitat aquesta línia d'ordres sospitosa que vam veure als registres "crues" no és el resultat del treball normal de l'empleat. Ben al contrari, va ser generat per un procés semblant a C2 - wmiexec, com he esmentat anteriorment - i va ser generat directament pel procés de servei WMI (WmiPrvSe). Ara tenim un indicador que un atacant remot o una persona privilegiada està provant la infraestructura corporativa.

Presentació de Get-Sysmonlogs

Per descomptat, és fantàstic quan Sysmon posa els registres en un sol lloc. Però probablement seria encara millor si poguéssim accedir a camps de registre individuals mitjançant programació, per exemple, mitjançant ordres de PowerShell. En aquest cas, podríeu escriure un petit script de PowerShell que automatitzés la cerca d'amenaces potencials.
No vaig ser el primer a tenir una idea així. I és bo que en algunes publicacions del fòrum i GitHub projectes Ja s'ha explicat com utilitzar PowerShell per analitzar el registre de Sysmon. En el meu cas, volia evitar haver d'escriure línies separades d'script d'anàlisi per a cada camp Sysmon. Així que vaig utilitzar el principi de l'home mandrós i crec que com a resultat vaig tenir alguna cosa interessant.
El primer punt important és la capacitat de l'equip Get-WinEvent llegiu els registres de Sysmon, filtreu els esdeveniments necessaris i envieu el resultat a la variable PS, com aquí:

$events = Get-WinEvent  -LogName "Microsoft-Windows-Sysmon/Operational" | where { $_.id -eq 1 -or $_.id -eq 11}

Si voleu provar l'ordre vosaltres mateixos, mostrant el contingut al primer element de la matriu $events, $events[0].Message, la sortida pot ser una sèrie de cadenes de text amb un format molt senzill: el nom del Camp Sysmon, dos punts i després el valor en si.

Guia d'anàlisi d'amenaces de Sysmon, part 1

Hura! Emet el registre de Sysmon en format preparat per a JSON

Estàs pensant el mateix que jo? Amb una mica més d'esforç, podeu convertir la sortida en una cadena amb format JSON i després carregar-la directament en un objecte PS mitjançant una ordre potent ConvertFrom-Json .
Mostraré el codi de PowerShell per a la conversió, és molt senzill, a la part següent. De moment, vegem què pot fer la meva nova ordre anomenada get-sysmonlogs, que vaig instal·lar com a mòdul PS.
En lloc d'aprofundir en l'anàlisi del registre de Sysmon mitjançant una interfície de registre d'esdeveniments incòmode, podem cercar sense esforç l'activitat incremental directament des d'una sessió de PowerShell, així com utilitzar l'ordre PS where (àlies – “?”) per escurçar els resultats de la cerca:

Guia d'anàlisi d'amenaces de Sysmon, part 1

Llista de shells de cmd llançats mitjançant WMI. Anàlisi de l'amenaça barata amb el nostre propi equip Get-Sysmonlogs

Meravellós! Vaig crear una eina per enquestar el registre de Sysmon com si fos una base de dades. En el nostre article sobre coeficient intel·lectual es va assenyalar que aquesta funció serà realitzada per l'utilitat genial que s'hi descriu, encara que formalment encara a través d'una interfície semblant a SQL real. Sí, EQL elegant, però ho tocarem a la tercera part.

Anàlisi de Sysmon i gràfics

Fem un pas enrere i pensem en el que acabem de crear. Bàsicament, ara tenim una base de dades d'esdeveniments de Windows accessible a través de PowerShell. Com he assenyalat anteriorment, hi ha connexions o relacions entre registres, mitjançant el ParentProcessId, de manera que es pot obtenir una jerarquia completa de processos.

Si has llegit la sèrie "Les aventures del programari maliciós esquivant" ja sabeu que als pirates informàtics els encanta crear atacs complexos en diverses etapes, en què cada procés juga el seu petit paper i prepara un trampolí per al següent pas. És extremadament difícil capturar aquestes coses simplement des del registre "cru".
Però amb la meva comanda Get-Sysmonlogs i una estructura de dades addicional que veurem més endavant al text (un gràfic, per descomptat), tenim una manera pràctica de detectar amenaces, que només requereix fer la cerca de vèrtex correcta.
Com sempre amb els nostres projectes de bloc DYI, com més treballeu analitzant els detalls de les amenaces a petita escala, més us adonareu de la complexitat que és la detecció d'amenaces a nivell empresarial. I aquesta consciència és extremadament punt important.

Ens trobarem amb les primeres complicacions interessants a la segona part de l'article, on començarem a connectar els esdeveniments Sysmon entre si en estructures molt més complexes.

Font: www.habr.com

Afegeix comentari