Sysmon draudu analīzes rokasgrāmata, 1. daļa

Sysmon draudu analīzes rokasgrāmata, 1. daļa

Šis raksts ir Sysmon draudu analīzes sērijas pirmā daļa. Visas pārējās sērijas daļas:

1. daļa: Ievads Sysmon žurnālu analÄ«zē (Mēs esam Å”eit)
2. daļa: Sysmon notikumu datu izmantoÅ”ana draudu identificÄ“Å”anai
3. daļa. Sysmon draudu padziļināta analīze, izmantojot grafikus

Ja strādājat informācijas droŔības jomā, jums, iespējams, bieži ir jāsaprot notiekoÅ”ie uzbrukumi. Ja jums jau ir apmācÄ«ta acs, varat meklēt nestandarta darbÄ«bas neapstrādātajos neapstrādātajos žurnālos ā€” piemēram, PowerShell skripts darbojas. ar komandu DownloadString vai VBS skripts, kas izliekas par Word failu ā€” vienkārÅ”i ritiniet jaunāko darbÄ«bu Windows notikumu žurnālā. Bet Ŕīs tieŔām ir lielas galvassāpes. Par laimi Microsoft izveidoja Sysmon, kas ievērojami atvieglo uzbrukumu analÄ«zi.

Vai vēlaties izprast Sysmon žurnālā parādÄ«to draudu pamatidejas? Lejupielādējiet mÅ«su ceļvedi WMI notikumi kā spiegoÅ”anas lÄ«dzeklis un jÅ«s saprotat, kā iekŔējās personas var slepus novērot citus darbiniekus. Galvenā problēma darbā ar Windows notikumu žurnālu ir informācijas trÅ«kums par vecāku procesiem, t.i. no tā nav iespējams saprast procesu hierarhiju. No otras puses, Sysmon žurnāla ieraksti satur vecākprocesa ID, tā nosaukumu un palaižamo komandrindu. Paldies, Microsoft.

MÅ«su sērijas pirmajā daļā mēs apskatÄ«sim, ko varat darÄ«t ar pamatinformāciju no Sysmon. XNUMX. daļā mēs pilnÄ«bā izmantosim vecāku procesa informāciju, lai izveidotu sarežģītākas atbilstÄ«bas struktÅ«ras, kas pazÄ«stamas kā draudu diagrammas. TreÅ”ajā daļā mēs apskatÄ«sim vienkārÅ”u algoritmu, kas skenē draudu grafiku, lai meklētu neparastu darbÄ«bu, analizējot diagrammas ā€œsvaruā€. Un beigās jÅ«s saņemsiet glÄ«tu (un saprotamu) varbÅ«tÄ«bas draudu noteikÅ”anas metodi.

1. daļa: Ievads Sysmon žurnālu analīzē

Kas var palÄ«dzēt izprast notikumu žurnāla sarežģītÄ«bu? Galu galā - SIEM. Tas normalizē notikumus un vienkārÅ”o to turpmāko analÄ«zi. Bet mums nav jāiet tik tālu, vismaz ne sākumā. Sākumā, lai saprastu SIEM principus, pietiks izmēģināt brÄ«niŔķīgo bezmaksas Sysmon utilÄ«tu. Un ar viņu ir pārsteidzoÅ”i viegli strādāt. Tā turpināt, Microsoft!

Kādas funkcijas ir Sysmon?

ÄŖsāk sakot - noderÄ«ga un lasāma informācija par procesiem (skat. attēlus zemāk). JÅ«s atradÄ«siet virkni noderÄ«gas informācijas, kas nav Windows notikumu žurnālā, taču vissvarÄ«gākie ir Ŕādi lauki:

  • Procesa ID (decimāldaļās, nevis heksades zÄ«mēs!)
  • Vecāku procesa ID
  • Apstrādājiet komandrindu
  • Vecāku procesa komandrinda
  • Faila attēla jaukÅ”ana
  • Failu attēlu nosaukumi

Sysmon ir instalēts gan kā ierÄ«ces draiveris, gan kā pakalpojums - sÄ«kāka informācija Å”eit. Tās galvenā priekÅ”rocÄ«ba ir iespēja analizēt žurnālus no daži avoti, informācijas korelācija un iegÅ«to vērtÄ«bu izvade vienā notikumu žurnāla mapē, kas atrodas gar ceļu Microsoft -> Windows -> Sysmon -> Operational. Izpētot Windows žurnālus, es atklāju, ka man pastāvÄ«gi ir jāpārslēdzas, piemēram, PowerShell žurnālu mape uz mapi DroŔība, pārlÅ«kojot notikumu žurnālus, lai drosmÄ«gi mēģinātu kaut kādā veidā saistÄ«t vērtÄ«bas starp abiem. . Tas nekad nav viegls uzdevums, un, kā es vēlāk sapratu, labāk bija nekavējoties uzkrāt aspirÄ«nu.

Sysmon veic milzÄ«gu lēcienu uz priekÅ”u, sniedzot noderÄ«gu (vai, kā pārdevējiem patÄ«k teikt, praktisku) informāciju, kas palÄ«dz izprast pamatā esoÅ”os procesus. Piemēram, es sāku slepenu sesiju wmiexec, simulējot viedās iekŔējās informācijas kustÄ«bu tÄ«klā. Tas ir tas, ko redzēsit Windows notikumu žurnālā:

Sysmon draudu analīzes rokasgrāmata, 1. daļa

Windows žurnālā ir redzama informācija par procesu, taču no tā ir maza nozīme. Plus procesa ID heksadecimālā???

Profesionālam IT speciālistam, kurÅ” saprot uzlauÅ”anas pamatus, komandrindai vajadzētu bÅ«t aizdomÄ«gai. Izmantojot cmd.exe, lai pēc tam palaistu citu komandu un novirzÄ«tu izvadi uz failu ar dÄ«vainu nosaukumu, ir nepārprotami lÄ«dzÄ«ga uzraudzÄ«bas un vadÄ«bas programmatÅ«ras darbÄ«bām. komandÄ“Å”ana un kontrole (C2): Tādā veidā, izmantojot WMI pakalpojumus, tiek izveidots pseidoapvalks.
Tagad apskatīsim Sysmon ieraksta ekvivalentu, pamanot, cik daudz papildu informācijas tas mums sniedz:

Sysmon draudu analīzes rokasgrāmata, 1. daļa

Sysmon funkcijas vienā ekrānuzņēmumā: detalizēta informācija par procesu lasāmā formā

JÅ«s redzat ne tikai komandrindu, bet arÄ« faila nosaukumu, ceļu uz izpildāmo lietojumprogrammu, to, ko Windows par to zina (ā€œWindows Command Processorā€), identifikatoru vecāku process, komandrinda vecāks, kas palaida cmd apvalku, kā arÄ« vecāku procesa Ä«sto faila nosaukumu. Viss vienuviet, beidzot!
No Sysmon žurnāla varam secināt, ka ar lielu varbÅ«tÄ«bas pakāpi Ŕī aizdomÄ«gā komandrinda, ko redzējām ā€œneapstrādātajosā€ žurnālos, nav darbinieka parastā darba rezultāts. Gluži pretēji, to Ä£enerēja C2 lÄ«dzÄ«gs process - wmiexec, kā jau minēju iepriekÅ” -, un to tieÅ”i radÄ«ja WMI pakalpojumu process (WmiPrvSe). Tagad mums ir rādÄ«tājs, ka attālais uzbrucējs vai iekŔējās personas pārbauda korporatÄ«vo infrastruktÅ«ru.

Iepazīstinām ar Get-Sysmonlogs

Protams, tas ir lieliski, kad Sysmon saliek baļķus vienuviet. Bet droÅ”i vien bÅ«tu vēl labāk, ja mēs varētu piekļūt atseviŔķiem žurnāla laukiem programmatiski, piemēram, izmantojot PowerShell komandas. Å ajā gadÄ«jumā jÅ«s varētu uzrakstÄ«t nelielu PowerShell skriptu, kas automatizētu iespējamo apdraudējumu meklÄ“Å”anu!
Es nebiju pirmais, kam tāda doma radās. Un tas ir labi, ka dažos foruma ziņojumos un GitHub projektus Jau ir paskaidrots, kā izmantot PowerShell, lai parsētu Sysmon žurnālu. Manā gadÄ«jumā es gribēju izvairÄ«ties no nepiecieÅ”amÄ«bas rakstÄ«t atseviŔķas parsÄ“Å”anas skripta rindas katram Sysmon laukam. Tāpēc es izmantoju slinkā cilvēka principu un, manuprāt, rezultātā es izdomāju kaut ko interesantu.
Pirmais svarÄ«gais punkts ir komandas varÄ“Å”ana Get-WinEvent izlasiet Sysmon žurnālus, filtrējiet nepiecieÅ”amos notikumus un izvadiet rezultātu uz PS mainÄ«go, piemēram, Å”eit:

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

Ja vēlaties pats pārbaudÄ«t komandu, parādot saturu $events masÄ«va pirmajā elementā $events[0].Ziņojums, izvade var bÅ«t teksta virkņu sērija ar ļoti vienkārÅ”u formātu: Sysmon lauks, kols un pēc tam pati vērtÄ«ba.

Sysmon draudu analīzes rokasgrāmata, 1. daļa

Urrā! Sysmon pieteikŔanās izvadīŔana JSON gatavā formātā

Vai tu domā to paÅ”u ko es? Ar nedaudz vairāk pūļu varat pārvērst izvadi JSON formatētā virknē un pēc tam ielādēt to tieÅ”i PS objektā, izmantojot spēcÄ«gu komandu. ConvertFrom-Json .
Es parādÄ«Å”u PowerShell kodu konvertÄ“Å”anai - tas ir ļoti vienkārÅ”i - nākamajā daļā. Pagaidām apskatÄ«sim, ko spēj mana jaunā komanda get-sysmonlogs, kuru es instalēju kā PS moduli.
Tā vietā, lai iedziļināties Sysmon žurnāla analÄ«zē, izmantojot neērtu notikumu žurnāla interfeisu, mēs varam bez piepÅ«les meklēt pakāpenisku darbÄ«bu tieÅ”i no PowerShell sesijas, kā arÄ« izmantot PS komandu. kur (alias ā€“ ā€œ?ā€), lai saÄ«sinātu meklÄ“Å”anas rezultātus:

Sysmon draudu analīzes rokasgrāmata, 1. daļa

To cmd čaulu saraksts, kas palaists, izmantojot WMI. Lēti draudu analÄ«ze, izmantojot mÅ«su paÅ”u Get-Sysmonlogs komandu

BrÄ«niŔķīgi! Es izveidoju rÄ«ku Sysmon žurnāla aptaujai tā, it kā tā bÅ«tu datu bāze. MÅ«su rakstā par EQ paplaÅ”inājums tika atzÄ«mēts, ka Å”o funkciju veiks tajā aprakstÄ«tā forŔā utilÄ«ta, lai gan formāli joprojām caur Ä«stu SQL lÄ«dzÄ«gu interfeisu. Jā, EQL elegants, bet mēs tam pieskarsimies treÅ”ajā daļā.

Sismonu un grafiku analīze

Atkāpsimies un padomāsim par to, ko tikko radÄ«jām. BÅ«tÄ«bā mums tagad ir Windows notikumu datu bāze, kas pieejama, izmantojot PowerShell. Kā jau minēju iepriekÅ”, starp ierakstiem pastāv savienojumi vai attiecÄ«bas, izmantojot ParentProcessId, tāpēc var iegÅ«t pilnÄ«gu procesu hierarhiju.

Ja esat lasÄ«jis sēriju "Netveramās ļaunprogrammatÅ«ras piedzÄ«vojumi" jÅ«s zināt, ka hakeriem patÄ«k radÄ«t sarežģītus daudzpakāpju uzbrukumus, kuros katrs process spēlē savu mazo lomu un sagatavo tramplÄ«nu nākamajam solim. Tādas lietas ir ārkārtÄ«gi grÅ«ti noÄ·ert vienkārÅ”i no ā€œneapstrādātaā€ baļķa.
Bet ar manu Get-Sysmonlogs komandu un papildu datu struktÅ«ru, ko mēs aplÅ«kosim vēlāk tekstā (protams, diagramma), mums ir praktisks veids, kā noteikt draudus ā€” tam ir nepiecieÅ”ams veikt pareizo virsotņu meklÄ“Å”anu.
Kā vienmēr ar mÅ«su DYI emuāru projektiem, jo ā€‹ā€‹vairāk jÅ«s strādājat, lai analizētu informāciju par draudiem nelielā mērogā, jo vairāk jÅ«s sapratÄ«sit, cik sarežģīta ir draudu noteikÅ”ana uzņēmuma lÄ«menÄ«. Un Ŕī apziņa ir ārkārtÄ«gi liela svarÄ«gs punkts.

Ar pirmajiem interesantajiem sarežģījumiem mēs saskarsimies raksta otrajā daļā, kur sāksim savienot Sysmon notikumus savā starpā daudz sarežģītākās struktūrās.

Avots: www.habr.com

Pievieno komentāru