Ghid de analiză a amenințărilor Sysmon, partea 1

Ghid de analiză a amenințărilor Sysmon, partea 1

Acest articol este prima parte a unei serii despre analiza amenințărilor Sysmon. Toate celelalte părți ale seriei:

Partea 1: Introducere în Sysmon Log Analysis (noi suntem aici)
Partea 2: Utilizarea datelor de evenimente Sysmon pentru a identifica amenințările
Partea 3. Analiza aprofundată a amenințărilor Sysmon folosind grafice

Dacă lucrați în securitatea informațiilor, probabil că deseori trebuie să înțelegeți atacurile în curs. Dacă aveți deja un ochi instruit, puteți căuta activități non-standard în jurnalele „brute” neprocesate - de exemplu, un script PowerShell care rulează cu comanda DownloadString sau un script VBS care se pretinde a fi un fișier Word - pur și simplu derulând cea mai recentă activitate din jurnalul de evenimente Windows. Dar aceasta este o durere de cap foarte mare. Din fericire, Microsoft a creat Sysmon, ceea ce face analiza atacurilor mult mai ușoară.

Doriți să înțelegeți ideile de bază din spatele amenințărilor afișate în jurnalul Sysmon? Descărcați ghidul nostru Evenimente WMI ca mijloc de spionaj și îți dai seama cum cei din interior pot observa în mod secret pe alți angajați. Principala problemă în lucrul cu jurnalul de evenimente Windows este lipsa de informații despre procesele părinte, de exemplu. este imposibil de înțeles ierarhia proceselor din aceasta. Intrările de jurnal Sysmon, pe de altă parte, conțin ID-ul procesului părinte, numele acestuia și linia de comandă care urmează să fie lansată. Mulțumesc, Microsoft.

În prima parte a seriei noastre, ne vom uita la ce puteți face cu informațiile de bază de la Sysmon. În partea a XNUMX-a, vom profita din plin de informațiile procesului părinte pentru a crea structuri de conformitate mai complexe cunoscute sub numele de grafice de amenințare. În a treia parte, ne vom uita la un algoritm simplu care scanează un grafic de amenințare pentru a căuta activități neobișnuite, analizând „greutatea” graficului. Și la sfârșit, vei fi răsplătit cu o metodă probabilistică de detectare a amenințărilor îngrijită (și ușor de înțeles).

Partea 1: Introducere în Sysmon Log Analysis

Ce vă poate ajuta să înțelegeți complexitatea jurnalului de evenimente? În cele din urmă - SIEM. Normalizează evenimentele și simplifică analiza lor ulterioară. Dar nu trebuie să mergem atât de departe, cel puțin nu la început. La început, pentru a înțelege principiile SIEM, va fi suficient să încerci minunatul utilitar gratuit Sysmon. Și este surprinzător de ușor să lucrezi cu ea. Tine-o tot asa, Microsoft!

Ce caracteristici are Sysmon?

Pe scurt - informații utile și lizibile despre procese (vezi imaginile de mai jos). Veți găsi o mulțime de detalii utile care nu sunt în jurnalul de evenimente Windows, dar cele mai importante sunt următoarele câmpuri:

  • ID proces (în zecimală, nu hexadecimal!)
  • ID-ul procesului părinte
  • Procesează linia de comandă
  • Linia de comandă a procesului părinte
  • Hash imagine fișier
  • Nume de imagini ale fișierelor

Sysmon este instalat atât ca driver de dispozitiv, cât și ca serviciu - mai multe detalii aici. Avantajul său cheie este capacitatea de a analiza jurnalele din câteva sursele, corelarea informațiilor și ieșirea valorilor rezultate într-un folder de jurnal de evenimente situat de-a lungul căii Microsoft -> Windows -> Sysmon -> Operațional. În propriile mele investigații uimitoare asupra jurnalelor Windows, m-am trezit în mod constant nevoit să comut între, să zicem, folderul jurnalele PowerShell și folderul Securitate, răsfoind jurnalele de evenimente într-o încercare curajoasă de a corela cumva valorile dintre cele două. . Aceasta nu este niciodată o sarcină ușoară și, după cum mi-am dat seama mai târziu, era mai bine să vă aprovizionați imediat cu aspirină.

Sysmon face un salt cuantic înainte prin furnizarea de informații utile (sau, după cum le place să spună furnizorii, acționabile) pentru a ajuta la înțelegerea proceselor subiacente. De exemplu, am început o sesiune secretă wmiexec, simulând mișcarea unui insider inteligent în cadrul rețelei. Iată ce veți vedea în jurnalul de evenimente Windows:

Ghid de analiză a amenințărilor Sysmon, partea 1

Jurnalul Windows arată câteva informații despre proces, dar este de puțin folos. Plus ID-uri de proces în hexazecimal???

Pentru un profesionist IT care înțelege elementele de bază ale hackingului, linia de comandă ar trebui să fie suspectă. Utilizarea cmd.exe pentru a rula apoi o altă comandă și a redirecționa rezultatul către un fișier cu un nume ciudat este în mod clar similar cu acțiunile software-ului de monitorizare și control comandă și control (C2): În acest fel, un pseudo-shell este creat folosind serviciile WMI.
Acum să aruncăm o privire la echivalentul intrării Sysmon, observând câte informații suplimentare ne oferă:

Ghid de analiză a amenințărilor Sysmon, partea 1

Caracteristicile Sysmon într-o singură captură de ecran: informații detaliate despre proces într-o formă care poate fi citită

Nu vedeți doar linia de comandă, ci și numele fișierului, calea către aplicația executabilă, ceea ce Windows știe despre aceasta („Windows Command Processor”), identificatorul părintească proces, linie de comandă mamă, care a lansat cmd shell, precum și numele real al fișierului procesului părinte. Totul într-un singur loc, în sfârșit!
Din jurnalul Sysmon putem concluziona că, cu un grad ridicat de probabilitate, această linie de comandă suspectă pe care am văzut-o în jurnalele „brute” nu este rezultatul muncii normale a angajatului. Dimpotrivă, a fost generat de un proces asemănător C2 - wmiexec, așa cum am menționat mai devreme - și a fost generat direct de procesul de serviciu WMI (WmiPrvSe). Acum avem un indicator că un atacator de la distanță sau din interior testează infrastructura corporativă.

Vă prezentăm Get-Sysmonlogs

Desigur, este grozav când Sysmon pune jurnalele într-un singur loc. Dar probabil că ar fi și mai bine dacă am putea accesa câmpurile de jurnal individuale în mod programatic - de exemplu, prin comenzile PowerShell. În acest caz, puteți scrie un mic script PowerShell care ar automatiza căutarea potențialelor amenințări!
Nu am fost primul care a avut o asemenea idee. Și este bine că în unele postări de pe forum și GitHub proiecte S-a explicat deja cum să utilizați PowerShell pentru a analiza jurnalul Sysmon. În cazul meu, am vrut să evit să scriu linii separate de script de analiză pentru fiecare câmp Sysmon. Așa că am folosit principiul omului leneș și cred că am venit cu ceva interesant ca urmare.
Primul punct important este capacitatea echipei Get-WinEvent citiți jurnalele Sysmon, filtrați evenimentele necesare și scoateți rezultatul în variabila PS, ca aici:

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

Dacă doriți să testați singur comanda, prin afișarea conținutului în primul element al matricei $events, $events[0].Message, rezultatul poate fi o serie de șiruri de text cu un format foarte simplu: numele Câmp Sysmon, două puncte și apoi valoarea în sine.

Ghid de analiză a amenințărilor Sysmon, partea 1

Ura! Ieșirea jurnalului Sysmon în format pregătit pentru JSON

Te gândești la același lucru ca și mine? Cu puțin mai mult efort, puteți converti rezultatul într-un șir formatat JSON și apoi îl puteți încărca direct într-un obiect PS folosind o comandă puternică ConvertFrom-Json .
Voi arăta codul PowerShell pentru conversie - este foarte simplu - în partea următoare. Deocamdată, să vedem ce poate face noua mea comandă numită get-sysmonlogs, pe care am instalat-o ca modul PS.
În loc să ne scufundăm adânc în analiza jurnalului Sysmon printr-o interfață incomodă de jurnal de evenimente, putem căuta fără efort o activitate incrementală direct dintr-o sesiune PowerShell, precum și să folosim comanda PS Unde (alias – „?”) pentru a scurta rezultatele căutării:

Ghid de analiză a amenințărilor Sysmon, partea 1

Lista de shell-uri cmd lansate prin WMI. Analiza amenințărilor la ieftin cu propria noastră echipă Get-Sysmonlogs

Minunat! Am creat un instrument pentru a sonda jurnalul Sysmon ca și cum ar fi o bază de date. În articolul nostru despre EQL s-a remarcat că această funcție va fi realizată de utilitarul cool descris în ea, deși formal încă printr-o interfață reală asemănătoare SQL. Da, EQL elegant, dar îl vom atinge în partea a treia.

Analiza Sysmon și grafică

Să ne dăm înapoi și să ne gândim la ceea ce tocmai am creat. În esență, avem acum o bază de date de evenimente Windows accesibilă prin PowerShell. După cum am observat mai devreme, există conexiuni sau relații între înregistrări - prin ParentProcessId - astfel încât se poate obține o ierarhie completă a proceselor.

Dacă ai citit serialul „Aventurile malware-ului evaziv” știi că hackerilor le place să creeze atacuri complexe în mai multe etape, în care fiecare proces își joacă rolul său mic și pregătește o rampă de lansare pentru următorul pas. Este extrem de dificil să prinzi astfel de lucruri pur și simplu din jurnalul „brut”.
Dar cu comanda mea Get-Sysmonlogs și cu o structură de date suplimentară pe care o vom analiza mai târziu în text (un grafic, desigur), avem o modalitate practică de a detecta amenințările - care necesită doar să facem căutarea corectă a vârfurilor.
Ca întotdeauna în proiectele noastre de blog DYI, cu cât lucrați mai mult la analizarea detaliilor amenințărilor la scară mică, cu atât vă veți da seama cât de complexă este detectarea amenințărilor la nivel de întreprindere. Și această conștientizare este extrem de punct important.

Primele complicații interesante le vom întâlni în a doua parte a articolului, unde vom începe să conectăm evenimentele Sysmon între ele în structuri mult mai complexe.

Sursa: www.habr.com

Adauga un comentariu