Sysmon Vodič za analizu prijetnji, 1. dio

Sysmon Vodič za analizu prijetnji, 1. dio

Ovaj je članak prvi dio serije o analizi prijetnji Sysmona. Svi ostali dijelovi serije:

Dio 1: Uvod u Sysmonovu analizu dnevnika (mi smo ovdje)
Dio 2: Korištenje Sysmon podataka o događajima za prepoznavanje prijetnji
Dio 3. Detaljna analiza prijetnji Sysmona korištenjem grafikona

Ako radite u informacijskoj sigurnosti, vjerojatno često morate razumjeti stalne napade. Ako već imate izvježbano oko, možete potražiti nestandardnu ​​aktivnost u "sirovim" neobrađenim zapisima - recimo, pokrenutu skriptu PowerShell naredbom DownloadString ili VBS skripta koja se pretvara da je Word datoteka - jednostavno listanje kroz najnoviju aktivnost u Windows zapisniku događaja. Ali ovo je stvarno velika glavobolja. Srećom, Microsoft je napravio Sysmon, koji čini analizu napada puno lakšom.

Želite li razumjeti osnovne ideje koje stoje iza prijetnji prikazanih u zapisniku Sysmona? Preuzmite naš vodič WMI događaji kao sredstvo špijuniranja i shvatite kako insajderi mogu potajno promatrati druge zaposlenike. Glavni problem u radu s Windows zapisnikom događaja je nedostatak informacija o nadređenim procesima, tj. iz njega je nemoguće razumjeti hijerarhiju procesa. S druge strane, unosi Sysmonovog dnevnika sadrže ID nadređenog procesa, njegov naziv i naredbeni redak koji se pokreće. Hvala, Microsoft.

U prvom dijelu naše serije, pogledat ćemo što možete učiniti s osnovnim informacijama iz Sysmona. U XNUMX. dijelu ćemo u potpunosti iskoristiti informacije o nadređenom procesu za stvaranje složenijih struktura usklađenosti poznatih kao grafikoni prijetnji. U trećem ćemo dijelu pogledati jednostavan algoritam koji skenira graf prijetnji u potrazi za neuobičajenom aktivnošću analizirajući "težinu" grafa. I na kraju ćete biti nagrađeni urednom (i razumljivom) metodom probabilističkog otkrivanja prijetnji.

Dio 1: Uvod u Sysmonovu analizu dnevnika

Što vam može pomoći da razumijete složenost dnevnika događaja? U konačnici - SIEM. Normalizira događaje i pojednostavljuje njihovu naknadnu analizu. Ali ne moramo ići tako daleko, barem ne u početku. U početku, da biste razumjeli principe SIEM-a, bit će dovoljno isprobati prekrasan besplatni uslužni program Sysmon. I iznenađujuće je lako raditi s njom. Samo tako nastavi, Microsoft!

Koje značajke ima Sysmon?

Ukratko – korisne i čitljive informacije o procesima (vidi slike ispod). Pronaći ćete hrpu korisnih detalja kojih nema u zapisniku događaja u sustavu Windows, ali najvažnija su sljedeća polja:

  • ID procesa (u decimalnom, ne heksadecimalnom!)
  • ID nadređenog procesa
  • Obradi naredbeni redak
  • Naredbeni redak nadređenog procesa
  • Hash slike datoteke
  • Nazivi slika datoteka

Sysmon je instaliran i kao upravljački program uređaja i kao servis - više detalja ovdje. Njegova ključna prednost je mogućnost analize zapisa iz nekoliko izvore, korelaciju informacija i izlaz dobivenih vrijednosti u jednu mapu dnevnika događaja koja se nalazi duž putanje Microsoft -> Windows -> Sysmon -> Operational. U mojim vlastitim istragama Windows zapisnika od kojih se diže dlaka, zatekao sam se kako stalno moram prelaziti između, recimo, mape zapisnika PowerShell-a i mape Sigurnost, listajući zapisnike događaja u hrabrom pokušaju da nekako povežem vrijednosti između dvije . To nikad nije lak zadatak, a kako sam kasnije shvatio, bilo je bolje odmah se opskrbiti aspirinom.

Sysmon čini kvantni skok naprijed pružajući korisne (ili kako proizvođači vole reći, djelotvorne) informacije koje pomažu u razumijevanju temeljnih procesa. Na primjer, započeo sam tajnu sesiju wmiexec, simulirajući kretanje pametnog insajdera unutar mreže. Ovo je ono što ćete vidjeti u Windows zapisniku događaja:

Sysmon Vodič za analizu prijetnji, 1. dio

Dnevnik sustava Windows prikazuje neke informacije o procesu, ali je od male koristi. Plus ID-ovi procesa u heksadecimalnom obliku???

Za profesionalnog IT stručnjaka koji razumije osnove hakiranja, naredbeni redak trebao bi biti sumnjiv. Korištenje cmd.exe za pokretanje druge naredbe i preusmjeravanje izlaza u datoteku s čudnim nazivom očito je slično radnjama softvera za nadzor i kontrolu zapovijedanje i upravljanje (C2): Na ovaj način se stvara pseudo-ljuska korištenjem WMI usluga.
Sada pogledajmo ekvivalent unosa u Sysmonu, primijetivši koliko nam dodatnih informacija daje:

Sysmon Vodič za analizu prijetnji, 1. dio

Značajke Sysmona u jednoj snimci zaslona: detaljne informacije o procesu u čitljivom obliku

Ne vidite samo naredbeni redak, već i naziv datoteke, put do izvršne aplikacije, što Windows zna o njoj ("Windows naredbeni procesor"), identifikator roditeljski proces, naredbeni redak roditelj, koji je pokrenuo cmd shell, kao i pravi naziv datoteke nadređenog procesa. Napokon sve na jednom mjestu!
Iz Sysmon log-a možemo zaključiti da s velikim stupnjem vjerojatnosti ova sumnjiva naredbena linija koju smo vidjeli u “sirovim” logovima nije rezultat normalnog rada zaposlenika. Upravo suprotno, generirao ga je proces sličan C2 - wmiexec, kao što sam ranije spomenuo - i izravno ga je iznjedrio WMI servisni proces (WmiPrvSe). Sada imamo indikator da udaljeni napadač ili insajder testira korporativnu infrastrukturu.

Predstavljamo Get-Sysmonlogs

Naravno da je super kada Sysmon stavi zapise na jedno mjesto. Ali vjerojatno bi bilo još bolje kada bismo mogli pristupiti pojedinim poljima dnevnika programski - na primjer, putem PowerShell naredbi. U ovom slučaju, mogli biste napisati malu PowerShell skriptu koja bi automatizirala traženje potencijalnih prijetnji!
Nisam bio prvi koji je imao takvu ideju. I dobro je to u nekim postovima na forumu i GitHubu projekti Već je objašnjeno kako koristiti PowerShell za analiziranje Sysmon dnevnika. U mom slučaju, želio sam izbjeći pisanje zasebnih redaka skripte za raščlanjivanje za svako polje Sysmona. Pa sam se poslužio principom lijenog čovjeka i mislim da sam kao rezultat smislio nešto zanimljivo.
Prva važna točka je sposobnost momčadi Get-WinEvent pročitajte Sysmonove zapise, filtrirajte potrebne događaje i ispišite rezultat u PS varijablu, kao ovdje:

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

Ako želite sami testirati naredbu, prikazivanjem sadržaja u prvom elementu niza $events, $events[0].Message, izlaz može biti niz tekstualnih nizova s ​​vrlo jednostavnim formatom: naziv Sysmonovo polje, dvotočka, a zatim sama vrijednost.

Sysmon Vodič za analizu prijetnji, 1. dio

hura! Ispis Sysmonovog dnevnika u formatu spremnom za JSON

Misliš li isto što i ja? Uz malo više truda, možete pretvoriti izlaz u JSON formatirani niz i zatim ga učitati izravno u PS objekt pomoću moćne naredbe Pretvori iz-Json .
Pokazat ću PowerShell kod za pretvorbu - vrlo je jednostavan - u sljedećem dijelu. Za sada, da vidimo što može učiniti moja nova naredba pod nazivom get-sysmonlogs, koju sam instalirao kao PS modul.
Umjesto dubokog poniranja u analizu zapisnika Sysmona kroz nezgodno sučelje zapisnika događaja, možemo bez napora pretraživati ​​inkrementalne aktivnosti izravno iz PowerShell sesije, kao i koristiti PS naredbu gdje (alias – “?”) da skratite rezultate pretraživanja:

Sysmon Vodič za analizu prijetnji, 1. dio

Popis cmd ljuski pokrenutih putem WMI-ja. Analiza prijetnji jeftino s našim vlastitim Get-Sysmonlogs timom

Predivno! Napravio sam alat za ispitivanje Sysmonovog dnevnika kao da je baza podataka. U našem članku o kvocijent inteligencije primijećeno je da će ovu funkciju obavljati cool uslužni program opisan u njemu, iako formalno još uvijek kroz pravo sučelje nalik SQL-u. Da, EQL elegantan, no njega ćemo se dotaknuti u trećem dijelu.

Sysmon i analiza grafova

Odmaknimo se i razmislimo o onome što smo upravo stvorili. U biti, sada imamo Windows bazu podataka događaja dostupnu putem PowerShell-a. Kao što sam ranije primijetio, postoje veze ili odnosi između zapisa - putem ParentProcessId-a - tako da se može dobiti potpuna hijerarhija procesa.

Ako ste čitali seriju "Avanture nedostižnog zlonamjernog softvera" znate da hakeri vole stvarati složene napade u više faza, u kojima svaki proces igra svoju malu ulogu i priprema odskočnu dasku za sljedeći korak. Iznimno je teško uhvatiti takve stvari jednostavno iz "sirovog" dnevnika.
Ali s mojom naredbom Get-Sysmonlogs i dodatnom strukturom podataka koju ćemo pogledati kasnije u tekstu (naravno, grafikonom), imamo praktičan način otkrivanja prijetnji - što samo zahtijeva ispravno pretraživanje vrhova.
Kao i uvijek s našim DYI blog projektima, što više radite na analizi detalja prijetnji u maloj mjeri, to ćete više shvatiti koliko je otkrivanje prijetnji složeno na razini poduzeća. A ova svijest je izuzetno velika važna točka.

S prvim zanimljivim komplikacijama naići ćemo u drugom dijelu članka, gdje ćemo početi međusobno povezivati ​​Sysmonove događaje u mnogo složenije strukture.

Izvor: www.habr.com

Dodajte komentar