Sysmon Threat Analysis Guide -opas, osa 1

Sysmon Threat Analysis Guide -opas, osa 1

Tämä artikkeli on Sysmonin uhka-analyysin sarjan ensimmäinen osa. Kaikki muut sarjan osat:

Osa 1: Sysmon-lokianalyysin esittely (Olemme täällä)
Osa 2: Sysmon-tapahtumatietojen käyttäminen uhkien tunnistamiseen
Osa 3. Sysmon-uhkien syvällinen analyysi kaavioiden avulla

Jos työskentelet tietoturva-alalla, sinun on luultavasti usein ymmärrettävä meneillään olevat hyökkäykset. Jos sinulla on jo koulutettu silmä, voit etsiä ei-standardista toimintaa "raaka" käsittelemättömästä lokista - esimerkiksi PowerShell-skripti käynnissä DownloadString-komennolla tai VBS-skripti, joka teeskentelee olevansa Word-tiedosto – selaa vain viimeisintä toimintaa Windowsin tapahtumalokissa. Mutta tämä on todella suuri päänsärky. Onneksi Microsoft loi Sysmonin, mikä tekee hyökkäysten analysoinnista paljon helpompaa.

Haluatko ymmärtää Sysmon-lokissa näkyvien uhkien taustalla olevat perusajatukset? Lataa oppaamme WMI-tapahtumat vakoilukeinona ja ymmärrät kuinka sisäpiiriläiset voivat salaa tarkkailla muita työntekijöitä. Suurin ongelma Windowsin tapahtumalokin kanssa työskentelyssä on tiedon puute emoprosesseista, ts. siitä on mahdotonta ymmärtää prosessien hierarkiaa. Sysmon-lokimerkinnät puolestaan ​​sisältävät pääprosessin tunnuksen, sen nimen ja käynnistettävän komentorivin. Kiitos, Microsoft.

Sarjamme ensimmäisessä osassa tarkastellaan, mitä voit tehdä Sysmonin perustiedoilla. Osassa XNUMX hyödynnämme täysimääräisesti pääprosessin tietoja luodaksemme monimutkaisempia vaatimustenmukaisuusrakenteita, joita kutsutaan uhkakaavioiksi. Kolmannessa osassa tarkastellaan yksinkertaista algoritmia, joka skannaa uhkakuvaajan ja etsii epätavallista toimintaa analysoimalla kaavion "painoa". Ja lopuksi sinut palkitaan siistillä (ja ymmärrettävällä) todennäköisyyspohjaisella uhkien havaitsemismenetelmällä.

Osa 1: Sysmon-lokianalyysin esittely

Mikä voi auttaa sinua ymmärtämään tapahtumalokin monimutkaisuuden? Lopulta - SIEM. Se normalisoi tapahtumat ja yksinkertaistaa niiden myöhempää analysointia. Mutta meidän ei tarvitse mennä niin pitkälle, ainakaan aluksi. Alussa SIEM:n periaatteiden ymmärtämiseksi riittää kokeilla upeaa ilmaista Sysmon-apuohjelmaa. Ja hänen kanssaan on yllättävän helppo työskennellä. Jatka samaan malliin, Microsoft!

Mitä ominaisuuksia Sysmonilla on?

Lyhyesti sanottuna - hyödyllistä ja luettavaa tietoa prosesseista (katso kuvat alla). Löydät joukon hyödyllisiä tietoja, jotka eivät ole Windowsin tapahtumalokissa, mutta tärkeimmät ovat seuraavat kentät:

  • Prosessin tunnus (desimaalilukuina, ei heksadesimaalilukuina!)
  • Pääprosessin tunnus
  • Käsittele komentorivi
  • Pääprosessin komentorivi
  • Tiedoston kuvan hash
  • Tiedostojen kuvien nimet

Sysmon asennetaan sekä laiteajurina että palveluna - lisätietoja täällä. Sen tärkein etu on kyky analysoida lokeja Muutaman lähteet, tietojen korrelaatio ja tuloksena olevien arvojen tulostus yhteen tapahtumalokikansioon, joka sijaitsee polun varrella Microsoft -> Windows -> Sysmon -> Toiminta. Omissa Windows-lokeja koskevissa tutkimuksissani huomasin joutuneeni jatkuvasti vaihtamaan esimerkiksi PowerShell-lokikansion ja suojauskansion välillä, selaamalla tapahtumalokeja yrittäen urheasti korreloida näiden kahden välisiä arvoja. . Tämä ei ole koskaan helppo tehtävä, ja kuten myöhemmin tajusin, oli parempi hankkia aspiriinia heti varastoon.

Sysmon ottaa suuren harppauksen eteenpäin tarjoamalla hyödyllistä (tai kuten myyjät haluavat sanoa, toimivaa) tietoa, joka auttaa ymmärtämään taustalla olevia prosesseja. Aloitin esimerkiksi salaisen istunnon wmiexec, simuloi älykkään sisäpiiriläisen liikettä verkossa. Tämä näkyy Windowsin tapahtumalokissa:

Sysmon Threat Analysis Guide -opas, osa 1

Windowsin loki näyttää joitain tietoja prosessista, mutta siitä on vain vähän hyötyä. Plus prosessitunnukset heksadesimaalimuodossa???

Ammattimaiselle IT-ammattilaiselle, joka ymmärtää hakkeroinnin perusteet, komentorivin pitäisi olla epäilyttävä. Cmd.exe-tiedoston käyttäminen toisen komennon suorittamiseen ja tulosteen uudelleenohjaamiseen oudolla nimellä on selvästi samanlainen kuin valvonta- ja ohjausohjelmiston toiminnot. komento ja ohjaus (C2): Tällä tavalla luodaan pseudo-kuori käyttämällä WMI-palveluita.
Katsotaanpa nyt Sysmon-merkinnän vastinetta ja huomaa kuinka paljon lisätietoa se antaa meille:

Sysmon Threat Analysis Guide -opas, osa 1

Sysmonin ominaisuudet yhdessä kuvakaappauksessa: yksityiskohtaista tietoa prosessista luettavassa muodossa

Et näe vain komentoriviä, vaan myös tiedoston nimen, polun suoritettavaan sovellukseen, mitä Windows tietää siitä ("Windows Command Processor"), tunnisteen vanhempien prosessi, komentorivi vanhempi, joka käynnisti cmd-kuoren, sekä emoprosessin oikean tiedostonimen. Kaikki yhdessä paikassa, vihdoin!
Sysmon-lokista voimme päätellä, että suurella todennäköisyydellä tämä epäilyttävä komentorivi, jonka näimme "raakoissa" lokeissa, ei ole seurausta työntekijän normaalista työstä. Päinvastoin, se on luotu C2:n kaltaisella prosessilla - wmiexec, kuten aiemmin mainitsin - ja sen synnytti suoraan WMI-palveluprosessi (WmiPrvSe). Nyt meillä on osoitus siitä, että etähyökkääjä tai sisäpiiriläinen testaa yrityksen infrastruktuuria.

Esittelyssä Get-Sysmonlogs

Tietysti on hienoa, kun Sysmon laittaa lokit yhteen paikkaan. Mutta luultavasti olisi vielä parempi, jos voisimme käyttää yksittäisiä lokikenttiä ohjelmallisesti - esimerkiksi PowerShell-komentojen kautta. Tässä tapauksessa voit kirjoittaa pienen PowerShell-komentosarjan, joka automatisoi mahdollisten uhkien etsimisen!
En ollut ensimmäinen, jolla oli tällainen ajatus. Ja on hyvä, että joissakin foorumiviesteissä ja GitHubissa hankkeita On jo selitetty PowerShellin käyttäminen Sysmon-lokin jäsentämiseen. Minun tapauksessani halusin välttää kirjoittamasta erillisiä jäsennysskriptirivejä jokaiselle Sysmon-kentälle. Joten käytin laiska miehen periaatetta ja mielestäni sain tuloksena jotain mielenkiintoista.
Ensimmäinen tärkeä asia on joukkueen kyky Hanki-WinEvent lue Sysmon-lokit, suodata tarvittavat tapahtumat ja tulosta tulos PS-muuttujaan, kuten tässä:

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

Jos haluat testata komentoa itse, näyttämällä sisällön $events-taulukon ensimmäisessä elementissä $events[0]. Viesti, tulos voi olla sarja tekstijonoja hyvin yksinkertaisessa muodossa: Sysmon-kenttä, kaksoispiste ja sitten itse arvo.

Sysmon Threat Analysis Guide -opas, osa 1

Hurraa! Sysmon-login tulostaminen JSON-valmiiseen muotoon

Ajatteletko samaa kuin minä? Pienellä vaivalla voit muuntaa lähdön JSON-muotoiseksi merkkijonoksi ja ladata sen sitten suoraan PS-objektiin tehokkaalla komennolla. MuunnaFrom-Json .
Näytän PowerShell-koodin muunnokselle - se on hyvin yksinkertainen - seuraavassa osassa. Katsotaan nyt, mitä uusi komento get-sysmonlogs, jonka asensin PS-moduuliksi, voi tehdä.
Sen sijaan, että sukeltamme syvälle Sysmon-lokianalyysiin hankalan tapahtumalokirajapinnan kautta, voimme vaivattomasti etsiä lisätoimintoja suoraan PowerShell-istunnosta sekä käyttää PS-komentoa. jossa (alias – "?") lyhentääksesi hakutuloksia:

Sysmon Threat Analysis Guide -opas, osa 1

Luettelo WMI:n kautta käynnistetyistä cmd-kuorista. Uhka-analyysi halvalla oman Get-Sysmonlogs-tiimimme avulla

Mahtavaa! Loin työkalun Sysmon-lokin kyselyyn ikään kuin se olisi tietokanta. Artikkelissamme aiheesta EQ laajennus todettiin, että tämä toiminto suorittaa siinä kuvattu cool apuohjelma, vaikka muodollisesti vielä todellisen SQL:n kaltaisen käyttöliittymän kautta. Kyllä, EQL tyylikäs, mutta käsittelemme sitä kolmannessa osassa.

Sysmon- ja graafianalyysi

Astutaan taaksepäin ja mietitään, mitä juuri loimme. Käytännössä meillä on nyt Windows-tapahtumatietokanta, johon pääsee PowerShellin kautta. Kuten aiemmin totesin, tietueiden välillä on yhteyksiä tai suhteita - ParentProcessId:n kautta - joten täydellinen prosessihierarkia voidaan saada.

Jos olet lukenut sarjan "Tavattoman haittaohjelman seikkailut" tiedät, että hakkerit rakastavat monimutkaisten monivaiheisten hyökkäysten luomista, joissa jokaisella prosessilla on oma pieni roolinsa ja jotka valmistelevat ponnahduslautaa seuraavaan vaiheeseen. Tällaisia ​​asioita on äärimmäisen vaikea saada kiinni yksinkertaisesti "raakasta" lokista.
Mutta Get-Sysmonlogs-komennollani ja lisätietorakenteella, jota tarkastelemme myöhemmin tekstissä (tietenkin kaavio), meillä on käytännöllinen tapa havaita uhkia - mikä vaatii vain oikean vertex-haun.
Kuten aina DYI-blogiprojekteissamme, mitä enemmän työskentelet uhkien yksityiskohtien analysoimiseksi pienessä mittakaavassa, sitä paremmin ymmärrät, kuinka monimutkaista uhkien havaitseminen on yritystasolla. Ja tämä tietoisuus on äärimmäistä tärkeä pointti.

Ensimmäiset mielenkiintoiset komplikaatiot kohtaamme artikkelin toisessa osassa, jossa alamme yhdistää Sysmon-tapahtumia toisiinsa paljon monimutkaisemmiksi rakenteiksi.

Lähde: will.com

Lisää kommentti