
Ky artikull është pjesa e parë e një serie për analizën e kërcënimeve me Sysmon. Të gjitha pjesët e tjera të serialit:
Pjesa 1. Njoftimi me analizën e logëve Sysmon (ne jemi këtu)
Pjesa 2. Shfrytëzimi i të dhënave nga ngjarjet e Sysmon për identifikimin e kërcënimeve
Pjesa 3. Analiza e thelluar e kërcënimeve Sysmon me anë të grafëve
Nëse merresh me sigurinë informative, me siguri shpesh do të duhet të analizosh sulmet në zhvillim. Nëse ke një sy të mprehtë, mund të provosh të gjesh aktivitet të pazakontë në "logët" e papërpunuara - për shembull, një skenar PowerShell që ekzekuton apo një skenar VBS që bën sikur është një skedë Word - thjesht duke u shfletuar në aktivitetin e fundit në regjistrin e ngjarjeve të Windows. Por kjo në të vërtetë është një dhimbje e madhe koke. Fatmirësisht, Microsoft ka krijuar Sysmon, i cili e bën analizën e sulmeve shumë më të thjeshtë.
Dëshironi të kuptoni idetë bazë pas kërcënimeve që shfaqen në logun e Sysmon? Shkarkoni udhëzuesin tonë dhe do të kuptoni se si insajderët mund të vëzhgojnë pa u vënë re kolegët e tyre. Problemi kryesor me regjistrin e ngjarjeve të Windows është mungesa e informacionit mbi proceset prind, pra nuk mund të kuptohet hierarkia e proceseve. Ndërsa në të dhënat e logut të Sysmon, përkundrazi, përfshihen identifikuesi i procesit prind, emri i tij dhe komanda e ekzekutuar. Faleminderit Microsoft.
Në pjesën e parë të serisë tonë do të shohim se çfarë mund të bëjmë me informacionin bazik nga Sysmon. Në pjesën e dytë ne do të shfrytëzojmë të gjithë informacionin mbi proceset prind për të ndërtuar struktura më komplekse të përputhjes, të njohura si grafë kërcënimesh. Në pjesën e tretë do të shqyrtojmë një algoritëm të thjeshtë që skanon grafët e kërcënimeve për të kërkuar aktivitet të pazakontë përmes analizës së "peshës" së grafit. Dhe në fund, si shpërblim, do të merrni një metodë të pastër (dhe të kuptueshme) probabiliste për zbulimin e kërcënimeve.
Pjesa 1: Njoftimi me analizën e logëve Sysmon
ĂfarĂ« do t'ju ndihmojĂ« tĂ« kuptoni vĂ«shtirĂ«sitĂ« e revistĂ«s sĂ« ngjarjeve? NĂ« fund tĂ« fundit â SIEM. Ajo prodhon normalizimin e ngjarjeve dhe thjeshton analizĂ«n e tyre tĂ« mĂ«vonshme. Por nuk Ă«shtĂ« e nevojshme tĂ« shkojmĂ« aq larg, tĂ« paktĂ«n pĂ«r fillimin. Fillimisht, pĂ«r tĂ« kuptuar parimet e SIEM, mjafton tĂ« provoni mjetin e mrekullueshĂ«m falas Sysmon. Dhe me tĂ«, punĂ«t shkojnĂ« befas lehtĂ«. E mira, Microsoft!
ĂfarĂ« mundĂ«sish ka Sysmon?
NĂ«se e shikoni shkurt, informacion i dobishĂ«m dhe i lexueshĂ«m nĂ« lidhje me proceset (shihni fotografitĂ« mĂ« poshtĂ«). Do tĂ« zbuloni shumĂ« detaje tĂ« dobishme, tĂ« cilat nuk gjenden nĂ« revistĂ«n e ngjarjeve tĂ« Windows, por mĂ« e rĂ«ndĂ«sishmja â fushat nĂ« vazhdim:
- ID e procesit (në formë dekimale, jo hex!)
- ID e procesit prind
- Komanda e procesit
- Komanda e procesit prind
- Hashi i imazhit të skedarit
- Emrat e imazheve të skedarëve
Sysmon instalohet dhe si njĂ« drejtues pajisjeje, dhe si shĂ«rbim â mĂ« shumĂ« nĂ« detaje Avantazhi i saj kryesor Ă«shtĂ« mundĂ«sia e analizĂ«s sĂ« logjeve nga pĂ«r disa burimet, korrelacioni i informacionit dhe nxjerrja e vlerave rezultuese nĂ« njĂ« dosje logjike, e cila ndodhet nĂ« rrugĂ«n Microsoft -> Windows -> Sysmon -> Operational. NĂ« hetimet e mia pĂ«r logjet e Windows, tĂ« cilat i japin flokĂ«t nĂ« kĂ«mbĂ«, unĂ« vazhdimisht kisha nevojĂ« tĂ« kaloj nga, le tĂ« themi, dosja e logjeve tĂ« PowerShell nĂ« dosjen 'Siguria', duke i rrahur logjet e ngjarjeve nĂ« njĂ« pĂ«rpjekje heroike pĂ«r tĂ« lidhur ndonjĂ«herĂ« vlerat midis tyre. Kjo nuk Ă«shtĂ« aspak njĂ« detyrĂ« e lehtĂ« dhe siç e kuptova mĂ« vonĂ«, ishte mĂ« mirĂ« tĂ« merrja aspirin.
MegjithatĂ«, Sysmon bĂ«n njĂ« kĂ«rcim cilĂ«sor pĂ«rpara, duke ofruar informacion tĂ« dobishĂ«m (ose siç e thonĂ« shpesh furnizuesit â tĂ« efektshĂ«m) pĂ«r tĂ« ndihmuar nĂ« kuptimin e proceseve themelore. PĂ«r shembull, unĂ« fillova njĂ« seancĂ« tĂ« fshehtĂ« , simuluese e lĂ«vizjes sĂ« njĂ« ndihmĂ«s tĂ« zgjuar brenda rrjetit. KĂ«tu Ă«shtĂ« se çfarĂ« do tĂ« shihni nĂ« revistĂ«n e ngjarjeve tĂ« Windows:

Në revistën e Windows shihet ndonjë informacion në lidhje me procesin, por që është pak i dobishëm. Për më tepër, identifikuesit e proceseve në formë heksadele???
NjĂ« profesionist i IT-sĂ« me kuptimin e bazave tĂ« hakimit duhet tĂ« ketĂ« dyshime mbi komandĂ«n e linjĂ«s. PĂ«rdorimi i cmd.exe pĂ«r tĂ« nxjerrĂ« njĂ« komandĂ« tjetĂ«r me redirektim tĂ« daljes nĂ« njĂ« skedar me njĂ« emĂ«r tĂ« çuditshĂ«m â duket qartĂ« si veprimet e software-it pĂ«r kontrollin dhe menaxhimin : nĂ« kĂ«tĂ« mĂ«nyrĂ« krijohet njĂ« pseudo-shell pĂ«rmes shĂ«rbimeve WMI.
Tani le të shohim ekvivalentin e shënimit nga Sysmon, duke i kushtuar vëmendje se sa informacion shtesë na jep:

Kapacitetet e Sysmon në një ekran: informacion të detajuar mbi procesin në një formë të lexueshme
Nuk shihni vetĂ«m komandĂ«n e linjĂ«s, por gjithashtu emrin e skedarit, rrugĂ«n deri te aplikacioni ekzekutiv, atĂ« qĂ« Windows e di rreth tij (âWindows Command Processorâ), identifikuesin e procesit prind, komandĂ«n e linjĂ«s e prindit, qĂ« ka nisur shell-in cmd, si dhe emrin e vĂ«rtetĂ« tĂ« skedarit tĂ« procesit prind. TĂ« gjitha nĂ« njĂ« vend, mĂ« nĂ« fund!
Nga logu i Sysmon mund tĂ« pĂ«rfundojmĂ« se me njĂ« probabilitet tĂ« lartĂ« kjo komandĂ« e dyshimtĂ« e linjĂ«s, qĂ« e pamĂ« nĂ« âlogĂ«t e papĂ«rpunuaraâ, nuk Ă«shtĂ« rezultat i punĂ«s normale tĂ« njĂ« punonjĂ«si. MĂ« shumĂ«, ajo Ă«shtĂ« gjeneruar nga njĂ« proces i ngjashĂ«m me C2 â wmiexec, siç e pĂ«rmenda mĂ« parĂ« â dhe Ă«shtĂ« krijuar drejtpĂ«rdrejt nga procesi WMI shĂ«rbimit (WmiPrvSe). Tani kemi njĂ« tregues se njĂ« sulmues i largĂ«t ose njĂ« brendĂ«sisĂ« po provon infrastrukturĂ«n korporative.
Prezantojmë Get-Sysmonlogs
Sigurisht qĂ« Ă«shtĂ« e shkĂ«lqyer kur Sysmon ka logĂ«t nĂ« njĂ« vend. Por, ndoshta do tĂ« ishte edhe mĂ« mirĂ« nĂ«se do tĂ« mundnim tĂ« qasnim nĂ« fushat individuale tĂ« logut nĂ« mĂ«nyrĂ« programore â pĂ«r shembull, pĂ«rmes komandave PowerShell. NĂ« kĂ«tĂ« rast, mund tĂ« shkruajmĂ« njĂ« skenar tĂ« vogĂ«l PowerShell qĂ« do tĂ« automatizonte kĂ«rkimin pĂ«r kĂ«rcĂ«nime potenciale!
Nuk jam i pari që kam pasur një ide të tillë. Dhe është mirë që në disa postime në forume dhe projekte GitHub tashmë është shpjeguar se si të përdorin PowerShell për të parser logun e Sysmon. Në rastin tim dëshiroja të shmangia nevojën për të shkruar rreshta të ndara për skenarin e parser-it për çdo fushë të Sysmon. Prandaj kam përdorur parimin e njeriut që punon me lenesi dhe, siç mendoj, në rezultatin përfundimtar shpika diçka interesante.
Pika e parë e rëndësishme është aftësia e komandës për të lexuar logët e Sysmon, për të filtruar ngjarjet e nevojshme dhe për të nxjerrë rezultatin në një variabël PS, si këtu:
$events = Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" | where { $_.id -eq 1 -or $_.id -eq 11}
Nëse dëshironi të kontrolloni vetë funksionimin e ekipit, atëherë përmes prezantimit të përmbajtjes në elementin e parë të masës $events, $events[0].Message, mund të merrni një seri vargjesh tekstual me një format shumë të thjeshtë: emri i fushës Sysmon, dy pika dhe pastaj vlera e saj.

Hurrah! Nxjerrja e logut Sysmon në format të gatshëm për JSON
A mendoni për të njëjtën gjë si unë? Duke shtuar edhe pak përpjekje, mund ta konvertojmë daljen në një varg të formatizuar në JSON dhe pastaj ta ngarkojmë atë direkt në PS-objekt me komandën e fuqishme .
Do tâju tregoj kodin PowerShell pĂ«r konvertimin â Ă«shtĂ« shumĂ« i thjeshtĂ« â nĂ« pjesĂ«n e ardhshme. Por tani le tĂ« shohim se çfarĂ« mund tĂ« bĂ«jĂ« ekipi im tĂ« ri i quajtur get-sysmonlogs, tĂ« cilin e kam instaluar si PS-modul.
NĂ« vend qĂ« tĂ« thellohemi nĂ« analizĂ«n e logeve Sysmon pĂ«rmes njĂ« ndĂ«rfaqeje tĂ« papĂ«rshtatshme tĂ« regjistrit tĂ« ngjarjeve, ne mund tĂ« kĂ«rkojmĂ« pa pĂ«rpjekje aktivitetin inkremental direkt nga sesioni PowerShell, si dhe tĂ« pĂ«rdorim komandĂ«n PS (aliasi â â?â) pĂ«r tĂ« shkurtuar rezultatet e nxjerrjes:

Lista e cmd-shell-ve, të ekzekutuara përmes WMI. Analiza e kërcënimeve me kosto të ulët përmes komandës sonë Get-Sysmonlogs
ĂshtĂ« e habitshme! Krijova njĂ« mjet pĂ«r pyetje nĂ« logun Sysmon, siç do tĂ« ishte njĂ« bazĂ« tĂ« dhĂ«nash. NĂ« artikullin tonĂ« pĂ«r u pĂ«rmend se kjo funksion do tĂ« realizohet nga mjeti i shkĂ«lqyer pĂ«r tĂ« cilin flitet, megjithĂ«se formalizmi gjithsesi pĂ«rmes njĂ« ndĂ«rfaqe SQL-mĂ« tĂ« ngjashme. Po, EQL Ă«shtĂ« elegant, por do tĂ« merremi me tĂ« nĂ« pjesĂ«n e tretĂ«.
Sysmon dhe analiza e grafikëve
Le tĂ« abstrahohemi dhe tĂ« mendojmĂ« se çfarĂ« sapo kemi krijuar. NĂ« thelb, tani kemi njĂ« bazĂ« tĂ« dhĂ«nash pĂ«r ngjarjet Windows, tĂ« aksesueshme pĂ«rmes PowerShell. Siç e pĂ«rmenda mĂ« parĂ«, ekzistojnĂ« lidhje ose lidhĂ«si midis regjistrimeve â pĂ«rmes ParentProcessId â kĂ«shtu qĂ« mund tĂ« merret hierarkia e plotĂ« e proceseve.
Nëse keni lexuar serinë atëherë e dini se hakerët duan të krijojnë sulme komplekse me shumë hapa, ku çdo proces luan rolin e tij të vogël dhe përgatit terrenin për hapin tjetër. Të tilla gjëra janë shumë të vështira për t'u kapur thjesht nga logu 'i papërpunuar'.
Por me komandën time Get-Sysmonlogs dhe strukturën shtesë të të dhënave që do të shqyrtojmë më vonë (sigurisht, kjo është një grafik), do të kemi një mënyrë praktike për të zbuluar kërcënimet - për këtë, nevojitet vetëm të kryejmë kërkimin e duhur në majat.
Si gjithmonë në projektet tona të blogjeve DYI, sa më shumë të punoni në analizën e detajeve të kërcënimeve në një shkallë të vogël, aq më mirë kuptoni se sa e komplikuar është zbulimi i kërcënimeve në nivel organizate. Dhe kjo vetëdije është jashtëzakonisht e rëndësishme.
Do të hasim sfidat e para interesante në pjesën e dytë të artikullit, ku do të fillojmë të lidhim ngjarjet Sysmon në struktura shumë më komplekse.
Burimi: habr.com
