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ă
Doriți să înțelegeți ideile de bază din spatele amenințărilor afișate în jurnalul Sysmon? Descărcați ghidul nostru
Î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
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ă
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
Acum să aruncăm o privire la echivalentul intrării Sysmon, observând câte informații suplimentare ne oferă:
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
Primul punct important este capacitatea echipei
$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.
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ă
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
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
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
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