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.
Kas soovite mõista Sysmoni logis kuvatavate ohtude põhiideid? Laadige alla meie juhend
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
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
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
Vaatame nüüd Sysmoni kirje ekvivalenti, pannes tähele, kui palju lisateavet see meile annab:
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
Esimene oluline punkt on meeskonna võimekus
$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.
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.
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.
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
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
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