Sysmoni ohuanalüüsi juhend, 1. osa

Sysmoni ohuanalüüsi juhend, 1. osa

See artikkel on Sysmoni ohuanalüüsi sarja esimene osa. Kõik teised sarja osad:

1. osa: Sysmoni logi analüüsi sissejuhatus (Me oleme siin)
2. osa: Sysmoni sündmuste andmete kasutamine ohtude tuvastamiseks
Osa 3. Sysmoni ohtude süvaanalüüs graafikute abil

Kui töötate infoturbe alal, peate tõenäoliselt sageli mõistma käimasolevaid rünnakuid. Kui teil on juba haritud silm, võite otsida ebastandardseid tegevusi töötlemata logidest – näiteks töötavat PowerShelli skripti. käsuga DownloadString või VBS-i skript, mis teeskleb Wordi failina – lihtsalt kerige läbi Windowsi sündmuste logi viimast tegevust. Aga see on tõesti suur peavalu. Õnneks lõi Microsoft Sysmoni, mis muudab rünnakute analüüsi palju lihtsamaks.

Kas soovite mõista Sysmoni logis kuvatavate ohtude põhiideid? Laadige alla meie juhend WMI sündmused luuramise vahendina ja mõistate, kuidas siseringi inimesed saavad teisi töötajaid varjatult jälgida. Peamine probleem Windowsi sündmuste logiga töötamisel on info puudumine vanemprotsesside kohta, st. sellest on võimatu aru saada protsesside hierarhiast. Sysmoni logikirjed aga sisaldavad emaprotsessi ID-d, selle nime ja käivitatavat käsurida. Aitäh, Microsoft.

Meie sarja esimeses osas vaatleme, mida saate Sysmoni põhiteabega teha. XNUMX. osas kasutame täielikult ära emaprotsessiteavet, et luua keerukamaid vastavusstruktuure, mida nimetatakse ohugraafikuteks. Kolmandas osas vaatleme lihtsat algoritmi, mis skannib ohugraafikut, et otsida ebatavalist tegevust, analüüsides graafiku “kaalu”. Ja lõpuks premeeritakse teid korraliku (ja arusaadava) tõenäosusliku ohutuvastusmeetodiga.

1. osa: Sysmoni logi analüüsi sissejuhatus

Mis aitab teil mõista sündmuste logi keerukust? Lõppkokkuvõttes - SIEM. See normaliseerib sündmusi ja lihtsustab nende edasist analüüsi. Kuid me ei pea nii kaugele minema, vähemalt mitte esialgu. Alguses piisab SIEM-i põhimõtete mõistmiseks imelise tasuta Sysmoni utiliidi proovimisest. Ja temaga on üllatavalt lihtne töötada. Jätka samamoodi, Microsoft!

Millised funktsioonid Sysmonil on?

Ühesõnaga – kasulik ja loetav info protsesside kohta (vt pilte allpool). Leiate hulga kasulikke üksikasju, mida Windowsi sündmuste logis pole, kuid kõige olulisemad on järgmised väljad.

  • Protsessi ID (kümnend, mitte kuueteistkümnend!)
  • Vanemprotsessi ID
  • Töötle käsurida
  • Vanemprotsessi käsurida
  • Faili kujutise räsi
  • Failipiltide nimed

Sysmon installitakse nii seadme draiverina kui ka teenusena - täpsemalt siia. Selle peamine eelis on võimalus logisid analüüsida mitu allikad, teabe korrelatsioon ja saadud väärtuste väljund ühte tee ääres asuvasse sündmuste logi kausta Microsoft -> Windows -> Sysmon -> Operational. Windowsi logide uurimisel avastasin, et pean pidevalt lülituma näiteks PowerShelli logide kausta ja turvakausta vahel, sirvides sündmuste logisid, püüdes nende kahe väärtusi kuidagi korreleerida. . See pole kunagi kerge ülesanne ja nagu hiljem aru sain, oli parem kohe aspiriini varuda.

Sysmon teeb suure hüppe edasi, pakkudes kasulikku (või nagu müüjad armastavad öelda, rakendatavat) teavet, mis aitab mõista aluseks olevaid protsesse. Näiteks alustasin salaseanssi wmiexec, mis simuleerib nutika siseringi liikumist võrgus. Windowsi sündmuste logis näete järgmist:

Sysmoni ohuanalüüsi juhend, 1. osa

Windowsi logi näitab protsessi kohta veidi teavet, kuid sellest on vähe kasu. Pluss protsessi ID-d kuueteistkümnendsüsteemis???

Häkkimise põhitõdedest aru saanud professionaalse IT-professionaali jaoks peaks käsurida kahtlane olema. Cmd.exe kasutamine teise käsu käivitamiseks ja väljundi ümbersuunamine võõra nimega faili on selgelt sarnane jälgimis- ja juhtimistarkvara toimingutega käsud ja juhtimine (C2): Sel viisil luuakse WMI-teenuste abil pseudo-shell.
Vaatame nüüd Sysmoni kirje ekvivalenti, pannes tähele, kui palju lisateavet see meile annab:

Sysmoni ohuanalüüsi juhend, 1. osa

Sysmoni funktsioonid ühes ekraanipildis: üksikasjalik teave protsessi kohta loetaval kujul

Te ei näe mitte ainult käsurida, vaid ka failinime, käivitatava rakenduse teed, seda, mida Windows selle kohta teab (“Windowsi käsuprotsessor”), identifikaatorit vanemlik protsess, käsurida lapsevanem, mis käivitas cmd-kesta ja ka vanemprotsessi tegeliku failinime. Kõik ühes kohas, lõpuks!
Sysmoni logist võime järeldada, et suure tõenäosusega ei ole see kahtlane käsurida, mida nägime “toores” logides, töötaja tavatöö tulemus. Vastupidi, selle genereeris C2-laadne protsess - wmiexec, nagu ma varem mainisin - ja selle tekitas otseselt WMI teenuseprotsess (WmiPrvSe). Nüüd on meil indikaator, et kaugründaja või insaider testib ettevõtte infrastruktuuri.

Tutvustame Get-Sysmonlogsi

Muidugi on tore, kui Sysmon palgid ühte kohta paneb. Kuid ilmselt oleks veelgi parem, kui saaksime programmiliselt juurdepääsu üksikutele logiväljadele – näiteks PowerShelli käskude kaudu. Sel juhul võiksite kirjutada väikese PowerShelli skripti, mis automatiseeriks potentsiaalsete ohtude otsimise!
Ma ei olnud esimene, kellel selline mõte tekkis. Ja see on hea, et mõnes foorumipostituses ja GitHubis projektid On juba selgitatud, kuidas kasutada PowerShelli Sysmoni logi sõelumiseks. Minu puhul tahtsin vältida iga Sysmoni välja jaoks eraldi sõelumisskripti ridade kirjutamist. Seega kasutasin laisa mehe põhimõtet ja arvan, et tulemuseks tuli mul midagi huvitavat.
Esimene oluline punkt on meeskonna võimekus Get-WinEvent lugege Sysmoni logisid, filtreerige vajalikud sündmused ja väljastage tulemus PS muutujasse, nagu siin:

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

Kui soovite käsku ise testida, kuvades sisu massiivi $events esimeses elemendis $events[0].Sõnum, võib väljundiks olla väga lihtsa vorminguga tekstistringide seeria: faili nimi. Sysmoni väli, koolon ja seejärel väärtus ise.

Sysmoni ohuanalüüsi juhend, 1. osa

Hurraa! Sysmoni logi väljastamine JSON-valmis vormingusse

Kas sa mõtled sama asja, mis mina? Veidi suurema vaevaga saate väljundi teisendada JSON-vormingus stringiks ja seejärel võimsa käsu abil otse PS-objekti laadida. TeisendaFrom-Json .
Järgmises osas näitan teisenduse PowerShelli koodi – see on väga lihtne. Praegu vaatame, mida suudab teha minu uus käsk get-sysmonlogs, mille installisin PS-moodulina.
Selle asemel, et süveneda Sysmoni logi analüüsi ebamugava sündmustelogi liidese kaudu, saame hõlpsalt otsida täiendavaid tegevusi otse PowerShelli seansist ja kasutada käsku PS. kus (alias – "?") otsingutulemuste lühendamiseks:

Sysmoni ohuanalüüsi juhend, 1. osa

WMI kaudu käivitatud cmd-kestade loend. Ohtude analüüs odavalt meie enda Get-Sysmonlogsi meeskonnaga

Imeline! Lõin tööriista Sysmoni logi küsitlemiseks nii, nagu see oleks andmebaas. Meie artiklis umbes IQ märgiti, et seda funktsiooni hakkab täitma selles kirjeldatud lahe utiliit, kuigi formaalselt ikka päris SQL-laadse liidese kaudu. Jah, EQL elegantne, kuid me käsitleme seda kolmandas osas.

Sysmoni ja graafiku analüüs

Astugem tagasi ja mõelgem sellele, mida me just lõime. Põhimõtteliselt on meil nüüd Windowsi sündmuste andmebaas, millele pääseb juurde PowerShelli kaudu. Nagu ma varem märkisin, on kirjete vahel ühendused või seosed - ParentProcessId kaudu -, nii et on võimalik saada täielik protsesside hierarhia.

Kui olete sarja lugenud "Tabamatu pahavara seiklused" teate, et häkkerid armastavad luua keerulisi mitmeastmelisi rünnakuid, milles iga protsess mängib oma väikest rolli ja valmistab ette hüppelaua järgmiseks sammuks. Selliseid asju lihtsalt “toorest” palgist on äärmiselt raske tabada.
Kuid minu käsuga Get-Sysmonlogs ja täiendava andmestruktuuriga, mida me hiljem tekstis vaatleme (muidugi graafik), on meil praktiline viis ohtude tuvastamiseks – see nõuab lihtsalt õige tipuotsingu tegemist.
Nagu alati meie DYI ajaveebiprojektide puhul, mida rohkem töötate ohtude üksikasjade väikesemahulise analüüsiga, seda rohkem mõistate, kui keeruline on ohtude tuvastamine ettevõtte tasandil. Ja see teadlikkus on ülimalt suur oluline punkt.

Esimesi huvitavaid komplikatsioone kohtame artikli teises osas, kus hakkame Sysmoni sündmusi omavahel palju keerulisemateks struktuurideks siduma.

Allikas: www.habr.com

Lisa kommentaar