Sysmon-ohvude analĂŒĂŒsi juhend, osa 1

Sysmon-ohvude analĂŒĂŒsi juhend, osa 1

See artikkel on esimene osa Sysmon-ohvude analĂŒĂŒsi seeriast. KĂ”ik teised seeria osad:

Osa 1. Tutvumine Sysmon logide analĂŒĂŒsiga (me siin)
Osa 2. Sysmoni sĂŒndmuste andmete kasutamine ohtude tuvastamiseks
Osa 3. SĂŒvitsi minev analĂŒĂŒs Sysmon-ohvudest graafide abil

Kui tegelete kĂŒberohutusega, peate tĂ”enĂ€oliselt tihti tegelema toimuva rĂŒnnaku uurimisega. Kui olete piisavalt kogenud, vĂ”ite proovida otsida ebatavalist tegevust "toorelt" töötlemata logidelt — nĂ€iteks PowerShelli skripti, millel on kĂ€ivitunud DownloadString vĂ”i VBS-skripti, mis teeseldab, et on Wordi fail, — lihtsalt kerides viimast tegevust Windowsi sĂŒndmuste logis. Kuid see on tĂ”eliselt suur peavalu. Õnneks on Microsoft loonud Sysmoni, mis muudab rĂŒnnakute analĂŒĂŒsi palju lihtsamaks.

Kas soovite mĂ”ista pĂ”hilisi ideid, mis seisavad Sysmoni logis nĂ€htud ohtude taga? Laadige alla meie juhend WMI sĂŒndmused spioneerimise vahendina ja mĂ”istate, kuidas sisehĂ€dasid vĂ”ivad vaikselt teisi töötajaid jĂ€lgida. Windowsi sĂŒndmuste logiga töötamisel on peamine probleem vanemate protsesside teabe puudumine, st sellest ei saa aru protsesside hierarhiad. Sysmoni logikannetes on seevastu vanemate protsessi identifikaator, selle nimi ja kĂ€ivitamise kĂ€sk. AitĂ€h, Microsoft.

Meie seeria esimeses osas vaatame, mida saab teha Sysmonist saadud pĂ”hiteabega. Teises osas kasutame tĂ€ielikult Ă€ra vanemate protsesside teavet, et luua keerukamaid vastavuse struktuure, mida tuntakse kui ohugraafikud. Kolmandas osas kĂ€sitleme lihtsat algoritmi, mis skaneerib ohugraafikut ebatavalise tegevuse otsimiseks, analĂŒĂŒsides graafiku "kaalu". Ja lĂ”puks ootab teid auhinna nĂ€ol kena (ja arusaadav) tĂ”enĂ€osusmeetod ohtude tuvastamiseks.

Osa 1: Tutvumine Sysmon logide analĂŒĂŒsiga

Mis aitab mĂ”ista sĂŒndmuste ĆŸurnali keerukust? LĂ”ppkokkuvĂ”ttes – SIEM. See normaliseerib sĂŒndmusi ja lihtsustab nende edasist analĂŒĂŒsi. Kuid meil pole tingimata vaja nii kaugele minna, vĂ€hemalt alguses. Alguses piisab SIEMi pĂ”himĂ”tete mĂ”istmiseks, kui proovida imelist tasuta utiliiti Sysmon. Ja sellega on ĂŒllatavalt lihtne töötada. Nii edasi, Microsoft!

Millised vÔimalused on Sysmonil?

KokkuvĂ”ttes – kasulik ja loetav teave protsesside kohta (vt allolevaid pilte). Te avastate hulgaliselt kasulikke detaile, mida Windowsi sĂŒndmuste ĆŸurnaalis pole, kuid kĂ”ige tĂ€htsamad on jĂ€rgmised vĂ€ljad:

  • Protsessi ID (dekimaalses vormis, mitte hex!)
  • Vanema protsessi ID
  • Protsessi kĂ€surea
  • Vanema protsessi kĂ€surea
  • Faili pildi rĂ€sikood
  • Faili piltide nimed

Sysmon installitakse samal ajal seadme draivina ja teenusena – lĂ€hemalt siit. JĂ”udluse vĂ”ti on logide analĂŒĂŒs mitmest allikast, teabe korrelatsioon ja tulemuste edastamine ĂŒhte sĂŒndmuste ĆŸurnali kausta, mis asub teel Microsoft -> Windows -> Sysmon -> Operational. Minu oma Windowsi logide uurimistes, mis tekitavad juustes pĂŒksi, pidin pidevalt lĂŒlituma nĂ€iteks PowerShelli logide kausta ja kausta "Turve", kerides sĂŒndmuste ĆŸurnaleid heroiliselt, et ĂŒhtegi vÀÀrtust omavahel seostada. See ei ole sugugi lihtne ĂŒlesanne ja nagu ma hiljem mĂ”istsin, oleks parem kohe aspiriini varuda.

Sysmon seevastu teeb kvaliteetse hĂŒppe edasi, pakkudes kasulikku (vĂ”i nagu mĂŒĂŒjad armastavad öelda – tĂ”husat) teavet, et aidata mĂ”ista pĂ”hiprotsesse. NĂ€iteks kĂ€ivitasin varjatud seansi wmiexec, simuleerides nutika siseringi liikme liikumist andmevĂ”rgus. Siin on, mida te Windowsi sĂŒndmuste ĆŸurnalist nĂ€ete:

Sysmon-ohvude analĂŒĂŒsi juhend, osa 1

Windowsi ĆŸurnalist on nĂ€htav mingi teave protsessi kohta, kuid see on vĂ€hekasulik. Pluss, protsessi identifikaatorid on kuueteistkĂŒmnendas formaadis???

Professionaalsel IT-spetsialistil, kes mĂ”istab hĂ€kkimise aluseid, peaks kĂ€surea kasutamine kahtlusi tekitama. cmd.exe kasutamine jĂ€rgmise kĂ€su kĂ€ivitamiseks, suunates vĂ€ljundi faili kummalise nimega – see tundub selgelt juhitava ja haldava tarkvara tegevusena. kĂ€sk-and-control (C2): sel viisil luuakse vale-shelly WMI teenuste abil.
NĂŒĂŒd vaatame Sysmoni vastandkirjet, pöörates tĂ€helepanu sellele, kui palju lisainfot see meile annab:

Sysmon-ohvude analĂŒĂŒsi juhend, osa 1

Sysmoni vĂ”imalused ĂŒhel ekraanipildil: protsessi ĂŒksikasjalik teave loetavas vormis

Te nĂ€ete mitte ainult kĂ€surea, vaid ka faili nime, tĂ€itva rakenduse teed, mida Windows sellest teab ("Windows Command Processor"), identifikaator vanem protsess, kĂ€surea vanem, mis kĂ€ivitas cmd-shelly, samuti tegelik vanema protsessi faili nimi. KĂ”ik on ĂŒhes kohas, lĂ”puks!
Sysmoni logist saame jĂ€reldada, et suur tĂ”enĂ€osus on, et see kahtlane kĂ€surida, mida me nĂ€gime "toores" logides, ei ole normaalse töötaja tegevuse tulemus. Pigem vastupidi, see oli genereeritud C2-sarnase protsessi — wmiexec, nagu ma varem mainisin — ja see oli otse loodud WMI teenuse protsessi (WmiPrvSe) poolt. NĂŒĂŒd on meil nĂ€itaja, et kauge rĂŒndaja vĂ”i sisemistest ohtudest huvitatud isik proovib ettevĂ”tte infrastruktuuri.

Esitleme Get-Sysmonlogs

Muidugi on suurepĂ€rane, kui Sysmon kogub logid ĂŒhte kohta. Kuid vĂ”ib-olla oleks veel parem, kui saaksime juurdepÀÀsu individuaalsetele logivĂ€ljadele programmeerimise teel – nĂ€iteks PowerShelli kĂ€skude kaudu. Sel juhul vĂ”iksime kirjutada vĂ€ikese PowerShelli skripti, mis automatiseerib potentsiaalsete ohtude otsimise!
See idee ei tulnud mulle esimesena. Ja on tore, et mÔnedes foorumi postitustes ja GitHubi projektides on juba selgitatud, kuidas kasutada PowerShelli Sysmon-logi töötlemiseks. Minu puhul tahtsin vÀltida igasuguseid eraldi parsingu skripti ridu iga Sysmoni vÀlja jaoks. Seega kasutasin laisa inimese pÔhimÔtet ja minu arvates tuli vÀlja midagi huvitavat.
Esimene oluline punkt on kĂ€sku Get-WinEvent Sysmoni logide lugemise, vajalike sĂŒndmuste filtreerimise ja tulemuse kuvamise vĂ”imalus PS muutujas, nagu siin:

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

Kui soovite meeskonna tööd ise kontrollida, saate kontentide kuvamise kaudu esimeses massiivi elemendis $events, $events[0].Message, tulemuseks saada rida tekstireale vÀga lihtsas formaadis: Sysmoni vÀlja nimi, koolon ja seejÀrel ise vÀÀrtus.

Sysmon-ohvude analĂŒĂŒsi juhend, osa 1

Hurraa! Sysmoni logi vÀljund valmis JSON-formaati

Kas mÔtlete samale, mida mina? Veel veidi pingutades saame vÀljundi konverteerida JSON-iformaadis stringiks ja seejÀrel otse PS-objekti laadida vÔimsa kÀsuga ConvertFrom-Json .
Ma nĂ€itan PowerShelli koodi konverteerimiseks — see on vĂ€ga lihtne — jĂ€rgmises osas. Aga enne vaatame, mida minu uus kĂ€sk nimega get-sysmonlogs teha suudab, mille ma installisin PS-moodulina.
Selle asemel, et sĂŒveneda Sysmoni logide analĂŒĂŒsi ebamugavas sĂŒndmuste logi liideses, saame jĂ”udumööda otsida inkrementeerivat tegevust otse PowerShelli sessioonist ning kasutada PS-kĂ€sku where (alias – „?“) tulemuste vĂ€hendamiseks:

Sysmon-ohvude analĂŒĂŒsi juhend, osa 1

WMI kaudu kĂ€ivitatud cmd-shellide nimekiri. Ohu analĂŒĂŒs odavalt meie enda kĂ€su Get-Sysmonlogs abil

Imeline! Loon Sysmon-logi kĂŒsitluse tööriista, nagu oleks see andmebaas. Meie artiklis EQL on mainitud, et see funktsioon viiakse ellu selles kirjeldatud Ă€geda tööriista abil, kuigi formaalselt siiski lĂ€bi reaalse SQL-taolise liidese. Jah, EQL on elegantne, aga kĂ€sitleme seda kolmandas osas.

Sysmon ja graafide analĂŒĂŒs

LĂ€hme abstraktsesse mĂ”tteviisi ja mĂ”tleme, 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 mainisin, on kirjete vahel seosed vĂ”i sidemed — ParentProcessId kaudu — seega saame kogu protsessihierarhia.

Kui olete lugenud seeriat „Peidetud pahavara seiklused“, siis teate, et hĂ€kkerid armastavad luua keerulisi mitmeastmelisi rĂŒnnakuid, kus iga protsess tĂ€idab oma vĂ€ikese rolli ja valmistab ette jĂ€rgmiseks sammuks. Sellega on ÀÀrmiselt keeruline lihtsalt „toores“ logi kaudu kinni pĂŒĂŒda.
Aga koos minu kĂ€su Get-Sysmonlogs ja lisandstruktuuriga, mida me hiljem kĂ€sitleme (muidugi on see graaf), saame praktilise viisi ohtude avastamiseks – selleks piisab vaid Ă”ige tippude otsingu tegemisest.
Nagu alati meie DIY blogiprojektides, mida rohkem te töötate vĂ€ikeste mastaapide ohtude analĂŒĂŒsiga, seda paremini mĂ”istate, kui keeruline on ohtude tuvastamine organisatsiooni tasandil. Ja see teadlikkus on ÀÀrmiselt oluline punkt.

Kohtame esimesed huvitavad raskused artikli teises osas, kus hakkame Siduma Sysmoni sĂŒndmusi palju keerukamatesse struktuuridesse.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster