Sysmon fenyegetéselemzési útmutató, 1. rész

Sysmon fenyegetéselemzési útmutató, 1. rész

Ez a cikk a Sysmon fenyegetések elemzésével foglalkozó sorozat első része. A sorozat összes többi része:

1. rész: Bevezetés a Sysmon Log Analysisbe (itt vagyunk)
2. rész: Sysmon eseményadatok használata fenyegetések azonosítására
3. rész Sysmon fenyegetések mélyreható elemzése grafikonok segítségével

Ha információbiztonsággal foglalkozik, valószínűleg gyakran meg kell értenie a folyamatban lévő támadásokat. Ha már van egy gyakorlott szemed, kereshetsz nem szabványos tevékenységeket a „nyers” feldolgozatlan naplókban – mondjuk egy futó PowerShell-szkriptet. a DownloadString paranccsal vagy egy Word-fájlnak kiáltó VBS-szkript – egyszerűen görgesse végig a legfrissebb tevékenységet a Windows eseménynaplójában. De ez tényleg nagy fejfájás. Szerencsére a Microsoft létrehozta a Sysmon-t, ami sokkal könnyebbé teszi a támadáselemzést.

Szeretné megérteni a Sysmon naplójában megjelenő fenyegetések mögött meghúzódó alapvető gondolatokat? Töltse le útmutatónkat WMI események, mint a kémkedés eszköze és rájössz, hogy a bennfentesek hogyan tudnak titokban megfigyelni más alkalmazottakat. A Windows eseménynaplóval való munka során a fő probléma a szülőfolyamatok információhiánya, pl. lehetetlen megérteni belőle a folyamatok hierarchiáját. A Sysmon naplóbejegyzései viszont a szülőfolyamat azonosítóját, a nevét és az indítandó parancssort tartalmazzák. Köszönöm, Microsoft.

Sorozatunk első részében megvizsgáljuk, mit tehet a Sysmon alapvető információival. A XNUMX. részben teljes mértékben kihasználjuk a szülőfolyamat-információkat, hogy bonyolultabb megfelelőségi struktúrákat hozzunk létre, amelyeket fenyegetési grafikonoknak nevezünk. A harmadik részben egy egyszerű algoritmust fogunk megvizsgálni, amely a fenyegetési grafikonon szkennelve keresi a szokatlan tevékenységet a gráf „súlyának” elemzésével. A végén pedig egy ügyes (és érthető) valószínűségi fenyegetésészlelési módszerrel jutalmazzuk.

1. rész: Bevezetés a Sysmon Log Analysisbe

Mi segíthet megérteni az eseménynapló összetettségét? Végső soron - SIEM. Normalizálja az eseményeket és leegyszerűsíti a későbbi elemzésüket. De nem kell olyan messzire mennünk, legalábbis eleinte nem. Kezdetben a SIEM elveinek megértéséhez elég lesz kipróbálni a csodálatos ingyenes Sysmon segédprogramot. És meglepően könnyű vele dolgozni. Csak így tovább, Microsoft!

Milyen funkciókkal rendelkezik a Sysmon?

Röviden - hasznos és olvasható információk a folyamatokról (lásd a lenti képeket). Számos hasznos részletet talál, amelyek nem szerepelnek a Windows eseménynaplójában, de a legfontosabbak a következő mezők:

  • Folyamatazonosító (tizedes, nem hexadecimális!)
  • Szülő folyamatazonosító
  • Parancssor feldolgozása
  • A szülőfolyamat parancssora
  • Fájlkép hash
  • Fájlképnevek

A Sysmon eszközillesztőként és szolgáltatásként is telepítve van - további részletek itt. Legfontosabb előnye a naplók elemzésének képessége számos források, az információk korrelációja és a kapott értékek kimenete az útvonal mentén található eseménynapló mappába Microsoft -> Windows -> Sysmon -> Működési. A Windows-naplókkal kapcsolatos saját hajmeresztő vizsgálataim során azon kaptam magam, hogy állandóan váltogatnom kell mondjuk a PowerShell naplók mappája és a Biztonsági mappa között, és az eseménynaplókat lapozgatva próbáltam valahogy összefüggésbe hozni a kettő közötti értékeket. . Ez soha nem könnyű feladat, és mint később rájöttem, jobb volt azonnal felhalmozni az aszpirint.

A Sysmon nagy ugrást tesz előre azzal, hogy hasznos (vagy ahogy a szállítók szeretik mondani, használható) információkat szolgáltat a mögöttes folyamatok megértéséhez. Például elindítottam egy titkos ülést wmiexec, szimulálja egy intelligens bennfentes mozgását a hálózaton belül. Ezt fogja látni a Windows eseménynaplójában:

Sysmon fenyegetéselemzési útmutató, 1. rész

A Windows naplója bizonyos információkat mutat a folyamatról, de nem sok haszna van. Plusz folyamatazonosítók hexadecimálisban???

Egy profi informatikus számára, aki érti a hackelés alapjait, a parancssornak gyanúsnak kell lennie. A cmd.exe használatával egy másik parancs futtatása és a kimenet átirányítása egy furcsa nevű fájlra egyértelműen hasonlít a megfigyelő és vezérlő szoftver műveleteihez. parancs és vezérlés (C2): Ily módon egy pszeudo shell jön létre a WMI szolgáltatások segítségével.
Most vessünk egy pillantást a Sysmon bejegyzés megfelelőjére, és figyeljük meg, mennyi további információt ad nekünk:

Sysmon fenyegetéselemzési útmutató, 1. rész

A Sysmon funkciói egy képernyőképen: részletes információk a folyamatról, olvasható formában

Nemcsak a parancssort látja, hanem a fájl nevét, a futtatható alkalmazás elérési útját, azt, amit a Windows tud róla („Windows Command Processor”), az azonosítót szülői folyamat, parancssor szülő, amely elindította a cmd parancsértelmezőt, valamint a szülőfolyamat valódi fájlnevét. Végre minden egy helyen!
A Sysmon naplóból azt a következtetést vonhatjuk le, hogy nagy valószínűséggel ez a gyanús parancssor, amit a „nyers” naplókban láttunk, nem a dolgozó normál munkájának eredménye. Éppen ellenkezőleg, egy C2-szerű folyamat hozta létre - a wmiexec, ahogy korábban említettem -, és közvetlenül a WMI szolgáltatási folyamat (WmiPrvSe) hozta létre. Most már van egy jelzőnk, amely szerint egy távoli támadó vagy bennfentes teszteli a vállalati infrastruktúrát.

Bemutatkozik a Get-Sysmonlogs

Természetesen nagyszerű, ha a Sysmon egy helyre rakja a naplókat. De valószínűleg még jobb lenne, ha az egyes naplómezőket programozottan is elérhetnénk – például PowerShell-parancsokon keresztül. Ebben az esetben írhat egy kis PowerShell-szkriptet, amely automatizálná a potenciális fenyegetések keresését!
Nem én voltam az első, akinek ilyen ötletem támadt. És jó, hogy néhány fórumbejegyzésben és a GitHubban projektek Már elmagyaráztuk, hogyan használható a PowerShell a Sysmon napló elemzéséhez. Az én esetemben szerettem volna elkerülni, hogy minden Sysmon-mezőhöz külön sorokat kelljen elemző szkriptet írni. Tehát a lusta ember elvét alkalmaztam, és azt hiszem, ennek eredményeként valami érdekesre jutottam.
Az első fontos szempont a csapat képessége Get-WinEvent olvassa el a Sysmon naplókat, szűrje ki a szükséges eseményeket, és adja ki az eredményt a PS változóba, például itt:

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

Ha saját kezűleg szeretné tesztelni a parancsot, az $events tömb első elemében, az $events[0].Message tartalmának megjelenítésével a kimenet szöveges karakterláncok sorozata lehet nagyon egyszerű formátummal: a Sysmon mező, kettőspont, majd maga az érték.

Sysmon fenyegetéselemzési útmutató, 1. rész

Hurrá! A Sysmon bejelentkezés JSON-kompatibilis formátumba történő kiadása

Ugyanarra gondolsz, mint én? Egy kis erőfeszítéssel a kimenetet JSON formátumú karakterláncokká alakíthatja, majd egy hatékony paranccsal közvetlenül betöltheti egy PS-objektumba. ConvertFrom-Json .
A konvertálás PowerShell kódját - ez nagyon egyszerű - a következő részben mutatom meg. Egyelőre lássuk, mire képes az új, get-sysmonlogs nevű parancsom, amelyet PS-modulként telepítettem.
Ahelyett, hogy egy kényelmetlen eseménynapló-felületen keresztül mélyen belemerülnénk a Sysmon naplóelemzésébe, könnyedén kereshetünk növekményes tevékenységeket közvetlenül a PowerShell-munkamenetből, és használhatjuk a PS parancsot. ahol (alias – „?”) a keresési eredmények lerövidítéséhez:

Sysmon fenyegetéselemzési útmutató, 1. rész

A WMI-n keresztül elindított cmd-héjak listája. Fenyegetéselemzés olcsón a saját Get-Sysmonlogs csapatunkkal

Csodálatos! Létrehoztam egy eszközt a Sysmon napló lekérdezéséhez, mintha az adatbázis lenne. Cikkünkben arról IQ megjegyezték, hogy ezt a funkciót a benne leírt cool segédprogram fogja ellátni, bár formálisan még egy valódi SQL-szerű felületen keresztül. Igen, EQL elegáns, de a harmadik részben érintjük.

Sysmon és gráfelemzés

Lépjünk hátrébb, és gondoljuk át, mit hoztunk létre. Lényegében most már van egy Windows eseményadatbázisunk, amely a PowerShell-en keresztül érhető el. Ahogy korábban megjegyeztem, a rekordok között - a ParentProcessId-n keresztül - vannak kapcsolatok vagy kapcsolatok, így a folyamatok teljes hierarchiája érhető el.

Ha olvastad a sorozatot "The Adventures of the Elusive Malware" tudja, hogy a hackerek szeretnek összetett, többlépcsős támadásokat létrehozni, amelyekben minden folyamat a saját kis szerepét tölti be, és ugródeszkát készít a következő lépéshez. Rendkívül nehéz ilyen dolgokat egyszerűen a „nyers” naplóból kifogni.
De a Get-Sysmonlogs parancsommal és egy további adatszerkezettel, amelyet a szövegben később fogunk megnézni (természetesen egy grafikonon), van egy praktikus módszerünk a fenyegetések észlelésére – amihez csak a megfelelő csúcskeresés elvégzése szükséges.
Mint mindig DYI blogprojektjeink esetében, minél többet dolgozik a fenyegetések részleteinek kis léptékű elemzésén, annál inkább rájön, hogy a fenyegetésészlelés mennyire összetett vállalati szinten. És ez a tudatosság rendkívüli fontos pont.

Az első érdekes bonyodalmakkal a cikk második részében fogunk találkozni, ahol elkezdjük összekapcsolni a Sysmon eseményeket egymással sokkal összetettebb struktúrákká.

Forrás: will.com

Hozzászólás