A Windows biztonsági naplók rendkívül hasznos eszközként szolgálnak a rendszer eseményeinek nyomon követésére és az esetleges biztonsági fenyegetések azonosítására. A Sysmon, a Microsoft által kifejlesztett kiterjesztett biztonsági naplózó eszköz, alapértelmezés szerint nincs telepítve a Windows rendszereken, azonban rendkívül hasznos információkat szolgáltathat, ha a telepítése megtörténik. A Sysmon képes nyomon követni a szülő-gyermek folyamat kapcsolatokat, a hálózati kapcsolatokat és DNS kéréseket, a rendszerleíró adatbázis és fájlok változásait, valamint új végrehajtható fájlok létrehozását és sok más hasznos eseményt. A Sysmon telepítése és megfelelő konfigurálása nélkülözhetetlen a Windows alapú rendszerek biztonsági monitorozásában.

A Microsoft kifejezetten ajánlja a Sysmon telepítését a rendszerek figyelésére, mivel ez egy alapvető információforrást nyújt a rendszer biztonságának biztosításában. A Sysmon használatával könnyedén detektálhatók a ritka, vagy még soha nem látott folyamatok, brute-force bejelentkezések és illegális fájlátvételek. Azonban nem elég csupán a Sysmon naplóit gyűjteni; a Windows alapértelmezett biztonsági naplóit is figyelemmel kell kísérni.

A Windows Defender egy másik kulcsfontosságú naplóforrás, amely a Microsoft beépített biztonsági eszköze. A Defender naplói hasznos információkat nyújtanak a detektált fenyegetésekről, a karanténba helyezett fájlokról, és a sikeres vagy sikertelen frissítésekről. Még akkor is ajánlott ezeket a naplókat gyűjteni, ha harmadik féltől származó biztonsági ügynököket futtatunk, mivel a Defender a rendszer szerves része, és képes felismerni azokat a fenyegetéseket, amelyeket más eszközök esetleg nem észlelnének.

A PowerShell naplók szintén kiemelkedő fontossággal bírnak, különösen mivel a rosszindulatú szereplők széles körben alkalmazzák ezt az eszközt. A PowerShell parancsokat és a képernyőn megjelenő kimenetet alapértelmezés szerint nem naplózza a rendszer, de ezek a naplók rendkívül fontosak a támadások nyomon követésében. A PowerShell eseménynaplóban rögzíthetjük azokat az eseményeket, amelyek a PowerShell parancsok futtatásával kapcsolatosak, mint például a parancsok végrehajtásának részleteit vagy a kódok végrehajtásához szükséges paramétereket. A PowerShell naplók gyűjtését tehát a legfontosabb prioritások közé kell sorolni, mivel ezek segíthetnek a támadók azonosításában és a támadások megelőzésében.

A Windows rendszerek másik lehetséges naplóforrása a Background Intelligent Transfer Service (BITS), amely egy beépített letöltő és feltöltő eszköz. Bár a BITS alapvetően fejlesztői célokra van használva, gyakran alkalmazzák rosszindulatú szereplők is fájlok letöltésére, különösen a "living off the land" (LOL) típusú támadások során. A BITS naplók értékes forenzikus információkat tartalmaznak, mivel az HTTP HEAD és GET kéréseken keresztül rögzíthetők azok a fájlok, amelyeket a támadók letöltenek. Azonban, mivel a BITS a Windows rendszerében rendkívül gyakran használatos, a naplók összegyűjtése alapos finomhangolást igényel ahhoz, hogy valóban hasznosak legyenek.

A Winlogbeat, egy nyílt forráskódú eszköz, amely segít a Windows naplók gyűjtésében és továbbításában, elengedhetetlen ahhoz, hogy hatékonyan monitorozzuk a rendszert. A Winlogbeat telepítése egyszerű, és elérhető a ZIP és MSI formátumban is. A telepítés után a winlogbeat.yml konfigurációs fájlban meg kell határozni azokat az eseménynaplókat, amelyeket gyűjteni szeretnénk, és amelyeket a Logstash-ba küldhetünk tovább.

Az egyik legfontosabb biztonsági intézkedés a TLS titkosítás használata, amely segít biztosítani a biztonságos kapcsolatokat a különböző eszközök között. A TLS tanúsítványok és kulcsok generálása fontos szerepet játszik a rendszer védelmében, mivel ezek biztosítják, hogy a naplózott adatokat titkosított formában továbbítsuk, így azok védve vannak a kíváncsi szemek elől.

A naplók és biztonsági információk gyűjtésének kulcsfontosságú része a megfelelő konfigurációk alkalmazása. A különböző naplóforrások összegyűjtése és feldolgozása segít a rendszerek védelmében és a fenyegetések időben történő felismerésében. Azonban a naplók gyűjtése önmagában nem elég; az elemzésük és a megfelelő válaszintézkedések alkalmazása is szükséges a hatékony védelmi rendszer kialakításához.

A rendszeres naplógyűjtés nem csupán a fenyegetések észlelésére szolgál, hanem elősegíti a rendszer teljesítményének nyomon követését is, így biztosítható, hogy minden egyes komponens megfelelően működik. Az adatok összegyűjtése és elemzése révén nemcsak a meglévő támadásokat lehet felismerni, hanem a potenciális jövőbeli fenyegetéseket is előre jelezhetjük.

Hogyan hasonlítsuk össze a mezők értékeit és végezzünk szűréseket a Logstash-ban?

A Logstash egy rendkívül hasznos eszköz a naplók és események adatainak feldolgozására és elemzésére. Az adatok szűrése, a mezők értékeinek összehasonlítása és a kívánt adatok kinyerése alapvető készséget igényel minden Logstash felhasználó számára. A következő szakaszban különféle technikákat mutatunk be, amelyek segítenek a Logstash-ban végzett szűrési műveletek hatékonyabbá tételében.

A Logstash-ban gyakran használt operátorok közé tartozik az in és a not in, amelyeket mezők értékeinek tömbökhöz való viszonyítására használhatunk. Ezek segítségével egyszerűen ellenőrizhetjük, hogy egy mező értéke szerepel-e egy előre meghatározott értéksorozatban, vagy sem. Például, ha a host.name mező egy adott hosztnevet tartalmaz, a következő módon vizsgálhatjuk meg, hogy a mező értéke szerepel-e egy adott listában:

plaintext
[host][name] in ["MyHostname", "MyOtherHostname", "YetAnotherHostname"]

Ha az érték nem szerepel a listában, a not in operátort használhatjuk:

plaintext
[host][name] not in ["NotMyServer", "AlsoNotMyServer"]

Fontos azonban megjegyezni, hogy az in operátor akkor működik, ha a tömb legalább két elemet tartalmaz. Egyetlen elemű tömb esetén a következő kód nem fog működni:

plaintext
[host][name] in ["MyHostname"]

Ha ragaszkodunk a tömb használatához egyetlen érték ellenőrzésére, akkor az adott értéket kétszer kell szerepeltetnünk a tömbben, de ez általában nem ajánlott. Ilyenkor inkább egy egyszerűbb szöveg vagy reguláris kifejezés alapú összehasonlítást érdemes alkalmazni.

Tömbökhöz hasonlóan nem lehet egy mezőt egy másik mezőhöz vagy tömbhöz hasonlítani közvetlenül. Például, ha a host.ip mező több IP-címet tartalmaz, nem használhatjuk az in operátort az alábbi módon:

plaintext
[host][ip] in ["192.168.99.99", "fe80::1234:5678:1a:2bcd"]

Ebben az esetben más módszert kell alkalmaznunk, például Ruby szkriptet a tömbök összehasonlítására.

A sztringek és mezők összehasonlítása során használhatjuk az in operátort annak ellenőrzésére, hogy egy szöveg részét képezik-e egy mező értékének. Az alábbiakban példát találunk, amikor ellenőrizzük, hogy a "JamesB" szó szerepel-e a user.name mezőben:

plaintext
"JamesB" in [user][name]

Hasonlóképpen ellenőrizhetjük, hogy egy mező értéke szerepel-e egy másik mező értékében vagy egy tömbben:

plaintext
[user][name] in [source][user][name]

Ezek a módszerek sztringekre alkalmazhatók, de számok, beleértve az egész számokat és a törteket, nem ellenőrizhetők az in operátorral. Számok esetén az egyenlőség (==), a különbség (!=), illetve az összehasonlító operátorok, mint a kisebb mint (<), nagyobb mint (>), kisebb vagy egyenlő (<=) és nagyobb vagy egyenlő (>=), használhatók.

A Logstash lehetőséget biztosít reguláris kifejezések használatára is, hogy összetett szűréseket végezzünk. A reguláris kifejezések hatékony eszközként alkalmazhatók, de ügyelni kell arra, hogy ne túl bonyolult vagy hibás kifejezéseket alkalmazzunk, mivel ezek jelentős feldolgozási költségeket eredményezhetnek. A reguláris kifejezések kezelésére az =~ operátort használhatjuk, és a kifejezéseket // karakterek közé kell tenni. Az alábbi példában megvizsgáljuk, hogy egy mező tartalmazza-e az auth.log vagy ufw.log kifejezést:

plaintext
[log][file][path] =~ /auth\.log|ufw\.log/

A reguláris kifejezéseknél gyakran hasznos a (?i) kapcsoló, amely lehetővé teszi a kis- és nagybetűk érzéketlen összehasonlítását. Ezt a következő módon használhatjuk:

plaintext
[message] =~ /(?i)HeLlO|WORLD/

Ezek a technikák a Logstash erőteljes és rugalmas szűrési lehetőségeit biztosítják, de fontos, hogy a felhasználó jól ismerje a mezők típusait és a megfelelő operátorok alkalmazását a kívánt eredmények elérése érdekében.

Az adatfeldolgozás során a következő szempontokat érdemes szem előtt tartani:

  • A megfelelő operátorok választása elengedhetetlen a szűrés hatékonyságának növelésében. Az in és not in operátorok ideálisak egyes értékek vagy tömbök összehasonlításához, de a reguláris kifejezésekkel való kombinációk adhatják meg a legnagyobb rugalmasságot.

  • A komplex reguláris kifejezések alkalmazása esetén fontos, hogy azokat alaposan teszteljük, mivel a hibásan megírt kifejezések jelentős teljesítménybeli problémákat okozhatnak.

  • A Windows rendszerekkel kapcsolatos adatfeldolgozás során gyakran találkozunk backslash karakterekkel. A megfelelő escape karakterek használata kritikus fontosságú, hogy a szűrési műveletek hibamentesen működjenek.

Endtext