
Ez a cikk a Sysmon fenyegetésekkel kapcsolatos elemzés sorozatának első része. A sorozat többi része:
1. rész. Bevezetés a Sysmon naplók elemzésébe (itt vagyunk)
2. rész. A Sysmon eseményekből származó adatok felhasználása a fenyegetések azonosításához
3. rész. Mélyreható elemzés Sysmon fenyegetésekről gráfok segítségével
Ha informatikai biztonsággal foglalkozik, valószínűleg gyakran találkozik a folyamatban lévő támadásokkal. Ha már van tapasztalata, kereshet szokatlan tevékenységeket a „nyers” feldolgozatlan naplókban – mondjuk, egy PowerShell-szkript, amely a vagy egy VBS-szkript, amely Word fájlként álcázza magát, – egyszerűen átlapozva az utolsó tevékenységet a Windows eseménynaplójában. De ez valóban nagy fejfájást jelent. Szerencsére a Microsoft létrehozta a Sysmont, amely jelentősen megkönnyíti a támadások elemzését.
Szeretné megérteni a Sysmon naplóiban megjelenő fenyegetések alapvető elveit? Töltse le útmutatónkat és megérti, hogyan figyelhetik meg észrevétlenül a munkatársakat az illetéktelenek. A Windows eseménynaplójának kezelésének fő problémája az szülő folyamatok hiánya, azaz nem lehet megérteni a folyamatok hierarchiáját. A Sysmon naplóbejegyzéseiben ugyanakkor megtalálhatók a szülő folyamat azonosítója, neve és a futtatott parancssor. Köszönjük, Microsoft.
Sorozatunk első részében megvizsgáljuk, mit lehet tenni az alapvető Sysmon információkkal. A második részben teljes mértékben kihasználjuk a szülő folyamatok adatait, hogy komplexebb megfelelőségi struktúrákat hozzunk létre, amelyeket fenyegetési gráfoknak nevezünk. A harmadik részben megvizsgálunk egy egyszerű algoritmust, amely a fenyegetési gráfot szkennelve keresi a szokatlan tevékenységeket a gráf ’súlyának’ elemzésével. A végén pedig egy tiszta (és érthető) valószínűségi módszer várja az Ön fenyegetés-észlelését.
1. rész: Bevezetés a Sysmon naplók elemzésébe
Mi segít megérteni az eseménynaplók bonyodalmait? Végső soron – a SIEM. Ez normalizálja az eseményeket és megkönnyíti a további elemzésüket. De nem szükséges ilyen messzire mennünk, legalábbis kezdetben. Az SIEM alapelveinek megértéséhez elegendő lesz kipróbálni a csodálatos ingyenes Sysmon eszközt. Ráadásul meglepően könnyű vele dolgozni. Csak így tovább, Microsoft!
Milyen lehetőségei vannak a Sysmonnak?
Röviden – hasznos és olvasható információk a folyamatokról (lásd az alábbi képeket). Sok hasznos részletet fognak felfedezni, amelyek nincsenek a Windows eseménynaplójában, de ami a legfontosabb – a következő mezők:
- A folyamat azonosítója (decimális formában, nem hexadecimálisan!)
- A szülőfolyamat azonosítója
- A folyamat parancssora
- A szülőfolyamat parancssora
- A fájl képének hash-e
- A fájl képeinek nevei
A Sysmon egyszerre települ eszköz-illesztőprogramként és szolgáltatásként – továbbiak Kulcsfontosságú előnye, hogy képes naplókat elemezni több forrásból, az információk korrelálása és a eredményértékek egy eseménynapló mappába történő kiírása, amely az alábbi úton található Microsoft -> Windows -> Sysmon -> Operatív. A saját Windows naplóim nyomozása során, amiktől égnek áll a hajam, állandóan váltanom kellett mondjuk a PowerShell naplók mappája és a "Biztonság" mappa között, lapozva az eseménynaplókat hősies kísérletben, hogy valahogyan össze tudjam hasonlítani az értékeket közöttük. Ez egyáltalán nem könnyű feladat, és ahogy később rájöttem, jobb lett volna, ha előre beszerzek egy fájdalomcsillapítót.
A Sysmon viszont egy minőségi előrelépést biztosít, értékes (vagy ahogy a gyártók mondják – hatékony) információt nyújtva, hogy segítse megérteni az alapvető folyamatokat. Például elindítottam egy rejtett ülést , ami egy okos belső ember hálózaton belüli mozgását szimulálja. Így néz ki, amikor ezt látja a Windows eseménynaplóban:

A Windows naplóban valamilyen folyamatinformáció látható, de az nem túl hasznos. Plusz a folyamatazonosítók hexadecimális formában???
Egy szakmai IT-szakembernek, aki érti a hackelés alapjait, gyanút kell, hogy keltsen a parancssor. A cmd.exe használata más parancs utólagos végrehajtására, a kimenet átirányításával egy furcsa nevű fájlba – ez egyértelműen a vezérlő és irányító szoftverek tevékenységére hasonlít. : ezzel a módszerrel WMI-szolgáltatások segítségével pseudo-shell jön létre.
Most nézzük meg a Sysmon-ból származó bejegyzés megfelelőjét, figyelmesen azzal, hogy mennyi további információt ad nekünk:

A Sysmon lehetőségei egy képernyőn: részletes információ a folyamatról olvasható formában
Nem csak a parancssort látja, hanem a fájl nevét, az végrehajtó alkalmazás útvonalát, amit a Windows tud róla (“Windows Command Processor”), az azonosítót szülő folyamat, a parancssor szülőt, amely cmd-shellt indított, és a szülő folyamat valódi fájnevével. Mindez egy helyen, végre!
A Sysmon naplóból arra a következtetésre jutottunk, hogy nagy valószínűséggel ez a gyanús parancssor, amelyet a „nyers” naplókban láttunk, nem a munkavállaló normál tevékenysége. Ellenkezőleg, ezt egy C2-jellegű folyamat generálta – wmiexec, ahogy korábban említettem – és közvetlenül a WMI szolgáltatás (WmiPrvSe) folyamatából származott. Most van egy indikátorunk, hogy a távoli támadó vagy belsős próbálja tesztelni a vállalati infrastruktúrát.
Bemutatjuk a Get-Sysmonlogs-t
Természetesen csodálatos, amikor a Sysmon naplók egy helyen vannak. De talán még jobb lenne, ha programozott módon hozzáférhetnénk az egyes naplószettekhez – például PowerShell parancsokon keresztül. Ebben az esetben írhattunk volna egy kis PowerShell szkriptet, amely automatizálja a potenciális fenyegetések keresését!
Nem csak nekem jutott eszembe ez az ötlet. És örömteli, hogy néhány fórum- és GitHub-bejegyzésben már megmagyarázták, hogyan használhatjuk a PowerShell-t a Sysmon-napló elemzésére. Az én esetemben szerettem volna elkerülni, hogy külön parsnin-szkript sorokat írjak minden Sysmon mezőhöz. Így a lusták elvét használtam, és véleményem szerint eredményeként valami érdekeset találtam ki.
Az első fontos szempont, hogy a parancs olvassa a Sysmon naplókat, kiszűri a szükséges eseményeket és kimenti az eredményt egy PS változóba, mint itt:
$events = Get-WinEvent -LogName "Microsoft-Windows-Sysmon/Operational" | where { $_.id -eq 1 -or $_.id -eq 11}
Ha a csapat munkáját szeretné önállóan ellenőrizni, az $events tömb első elemében megjelenő tartalom, $events[0].Message segítségével egy sor egyszerű formátumú szöveges sor kinyerhető: Sysmon mező neve, kettőspont, majd az érték önmagában.

Hurrá! A Sysmon napló kimenete JSON formátumba állítva
Ugyanarra gondol, mint én? Még egy kis erőfeszítéssel a kimenetet JSON formátumú szöveggé alakíthatjuk, és közvetlenül betölthetjük egy PS-objektumba egy erőteljes parancs segítségével. .
Megmutatom a PowerShell kódot a konvertáláshoz — nagyon egyszerű — a következő részben. De addig nézzük meg, mit tud a Get-Sysmonlogs nevű új csapatom, amelyet PS-módulként telepítettem.
Ahelyett, hogy a Sysmon naplóknak a kényelmetlen eseménynapló felületén keresnénk az elemzését, könnyedén kereshetjük az inkrementális aktivitást közvetlenül a PowerShell munkamenetből, valamint használhatjuk a PS parancsot (alias – „?”) a találati eredmények szűkítésére:

WMI-n keresztül futtatott cmd-shells listája. Fenyegetésanalízis olcsón a saját Get-Sysmonlogs parancsunkkal
Meglepetés! Olyan Sysmon naplólekérdező eszközt készítettem, mintha egy adatbázis lenne. A cikkünkben a megemlítették, hogy ezt a funkciót a leírt szupereszköz fogja végrehajtani, bár formálisan valójában egy SQL-szerű felületen keresztül. Igen, az EQL elegáns, de erről a harmadik részben fogunk beszélni.
Sysmon és grafikonanalízis
Abstraháljunk, és gondoljuk át, mit hoztunk létre. Lényegében most már van egy Windows eseményadatbázisunk, amely PowerShellen keresztül elérhető. Ahogy korábban említettem, a bejegyzések között kapcsolat vagy összefüggés van — a ParentProcessId által — így teljes folyamat hierarchia kinyerhető.
Ha elolvasta a sorozatot akkor tudja, hogy a hackerek szeretik a bonyolult, többlépcsős támadásokat létrehozni, ahol minden egyes folyamat egy kis szerepet játszik, és előkészíti a következő lépést. Az ilyen dolgokat rendkívül nehéz felfedezni egyszerűen a „nyers” napló alapján.
De a Get-Sysmonlogs csapatommal és azzal a további adatszerkezettel, amelyet a következőkben megbeszélünk (természetesen ez grafikon), praktikus módot kapunk a fenyegetések felfedezésére – mindössze annyit kell tennünk, hogy helyesen keresünk a csúcsok között.
Ahogy mindig a DYI blogprojektjeinkben, minél többet dolgozik a fenyegetések részleteinek elemzésén kisméretű környezetben, annál jobban realizálja, mennyire bonyolult a fenyegetések észlelése a szervezeti szinten. Ez a tudat rendkívül fontos szempont.
Első érdekes bonyodalmakra a cikk második részében találkozunk, ahol a Sysmon-eseményeket sokkal összetettebb struktúrákba kezdjük el összekapcsolni.
Forrás: habr.com
