A Winlogbeat egy hatékony eszköz, amely lehetővé teszi a Windows rendszerek eseménynaplóinak gyűjtését és továbbítását JSON formátumban. Az alapbeállítások után fontos, hogy a rendszergazdák és biztonsági szakemberek figyelmesen konfigurálják a logolást, hogy a lehető legtöbb információt észleljék a rendszer működéséről, hibáiról, valamint a biztonsági eseményekről. A Windows PowerShell és a Sysmon naplók integrálása, valamint a különféle eseményforrások hozzáadása jelentősen javítja az átláthatóságot és segít a potenciális fenyegetések gyors azonosításában.

Miután bekapcsoltuk a PowerShell script blokk és modul naplózást, érdemes felfedezni a további elérhető Windows eseménynaplókat. A PowerShell segítségével két egyszerű parancs segítségével megtekinthetjük az összes rendelkezésre álló naplóforrást, valamint azokat, amelyekben több mint nulla esemény található:

powershell
PS> Get-WinEvent -ListLog * PS> Get-WinEvent -ListLog * | where RecordCount -gt 0 | sort -descending -property RecordCount

Ezáltal egy átfogó képet kapunk az összes naplóforrásról, és lehetőségünk van további logokat, például a Windows Defender vagy a BITS naplókat hozzáadni a Winlogbeat konfigurációs fájljához. Az új naplóforrások integrálása különösen hasznos lehet a biztonsági események részletesebb monitorozásához.

A Winlogbeat, a Filebeat és az Elastic Agent használata során fontos megérteni a processzorok szerepét. A processzorok olyan eszközök, amelyek lehetővé teszik a naplók előfeldolgozását, például címkék hozzáadását, mezők eltávolítását vagy szkriptek futtatását. Ezek a feldolgozási műveletek rugalmasabbá teszik az adatkezelést, és biztosítják, hogy csak a szükséges információkat továbbítsuk.

Például ha a BITS események közvetlenül a Microsoft hivatalos URL-jeihez kapcsolódnak, célszerű ezeket kizárni a naplókból, hogy csökkentsük a tárolt adatok mennyiségét. A következő példában egy olyan processzort láthatunk, amely eltávolítja azokat az eseményeket, amelyek a Microsoft URL-t tartalmazzák:

yaml
processors: - drop_event: when: or: - contains: winlog.event_data.url: "https://g​.live​.com​/" - equals: event​.code: 12345 - range: event​.code​.gte: 0 event​.code​.lte: 999

Miután hozzáadtuk ezeket a szabályokat, újra kell indítani a Winlogbeat szolgáltatást, hogy a változtatások érvénybe lépjenek.

A Winlogbeat konfigurálása után célszerű a beállításokat biztonságos módon tárolni. A Git használata lehetővé teszi, hogy minden módosítást verziókövetéssel rögzítsünk, így a konfigurációk mindig elérhetők és visszaállíthatók. A következő lépések segítségével biztosíthatjuk, hogy a Winlogbeat konfigurációs fájlok ne vesszenek el, és nyomon követhessük a változtatásokat:

powershell
PS> git add . PS> git commit -a -m "added Winlogbeat files" PS> git push

Ezek után a konfigurációs fájlok tárolása és kezelése egy központi helyről történhet, ami különösen hasznos lehet a nagyobb vállalatok számára, ahol több gépen és különböző környezetekben futtatnak Winlogbeat-et.

A Winlogbeat beállítása után számos további konfigurációs lehetőség áll rendelkezésre a naplózás finomhangolására. A naplózás részletei közvetlenül befolyásolják a rendszer biztonságát és teljesítményét, így a különböző események és források kezelése elengedhetetlen a sikeres naplózási stratégia kialakításához. Fontos megérteni, hogy a naplókban tárolt információk nemcsak a rendszer működésének állapotát tükrözik, hanem a potenciális támadások jeleit is, amelyek segítségével időben reagálhatunk a biztonsági fenyegetésekre.

Az Elastic Agent bevezetése és a különböző loggyűjtő eszközök összehangolt használata lehetőséget biztosít arra, hogy az adatokat központilag kezeljük és hatékonyan elemezzük. Az Elastic Agent révén a különböző loggyűjtő eszközöket egyetlen felületen keresztül menedzselhetjük, és könnyedén alkalmazhatjuk a szükséges biztonsági szabályokat. Az egyszerűsíthető loggyűjtési infrastruktúra lehetővé teszi a különböző rendszerek és alkalmazások átfogó monitorozását és gyors reakciókat biztosít a potenciális problémák esetén.

Hogyan konfiguráljuk és használjuk a Logstash-ot a fenyegetettségi adatok lekérdezésére és tárolására

A fenyegetettségi intelligenciát (CTI) a kibertámadások gyors azonosítása és megelőzése érdekében használnak. Az adatkezelési és szűrési rendszerek, mint a Logstash, kulcsszerepet játszanak abban, hogy a fenyegetettségi adatokat valós időben feldolgozzák és továbbítsák a megfelelő rendszerek felé. Az alábbiakban bemutatjuk, hogyan konfigurálhatjuk a Redis és a Logstash rendszereket annak érdekében, hogy a fenyegetettségi indikátorok gyorsan és hatékonyan áramoljanak az adatcsatornákon keresztül.

A konfigurációs fájlok beállítása a Redis másodlagos példányainál kezdődik, amelyek TLS kapcsolaton keresztül kommunikálnak a mester szerverrel. Az alábbi paraméterek például a másodlagos Redis példány konfigurációjában szerepelnek:

swift
tls-key-file /etc/ssl/bookproject/wildcard.local.flex.key.nopass.pem
tls-ca-cert-file /etc/ssl/bookproject/ca-chain.cert.pem tls-replication yes supervised systemd replicaof 192.168.8.130 6379 masterauth ZtyziOSFGAcbGy807nY6Ap21Qd42SJa7Uthsfly9S1LbvflkevvDvTGRBC69qatZGQo= requirepass ZtyziOSFGAcbGy807nY6Ap21Qd42SJa7Uthsfly9S1LbvflkevvDvTGRBC69qatZGQo=

Ezek az opciók lényegében megegyeznek a mester Redis konfigurációval, de néhány módosítással. A követők csak a localhoston hallgatnak, TLS-t és Unix socketet használnak. A replicaof utasítás a vezető Redis IP-címét és portját használja, így biztosítva, hogy a követő példány minden kulcsot másoljon a vezetőtől. A masterauth paraméter pedig a mester node requirepass értékét tartalmazza, amely a mester konfigurációban van beállítva.

Ezután a Redis újraindítása szükséges, majd a következő parancsokkal engedélyezhetjük a rendszerindításkor történő automatikus elindulást:

pgsql
$ sudo systemctl restart redis-server && systemctl status redis-server
$ sudo systemctl enable redis-server

Ezen lépések elvégzése után a cyber fenyegetettségi és adatcsomópontok mindegyikén használjuk a következő parancsot a Redis replikációs státuszának megtekintésére:

swift
$ redis-cli -s /var/run/redis/redis-server.sock > auth default ZtyziOSFGAcbGy807... > info replication

Miután a Redis beállításai helyesek, a következő lépés a Logstash adatcsomópont konfigurálása. A Logstash segítségével ellenőrizhetjük a Redis-ban tárolt értékeket és generálhatunk riasztásokat a fenyegetettségi adatok alapján. Ehhez egy konfigurációs fájlt kell létrehoznunk, amely az adatcsomópontokon futó Logstash pipeline-ok számára szükséges szűrőket tartalmazza.

A következő konfigurációs fájlban a Logstash használatával a fenyegetettségi adatokhoz tartozó események gazdagíthatók, és riasztások generálhatók:

wasm
filter { ruby { id => "ruby_redis_get" init => ' require "redis" redis_socket = "/var/run/redis/redis-server.sock" redis_requirepass = "ZtyziOSFGAcbGy807n..." # Dedikált kapcsolat minden mező ellenőrzéséhez
$r_domain = Redis.new(path: redis_socket, db: 0, password: redis_requirepass)
$r_sourceip = Redis.new(path: redis_socket, db: 0, password: redis_requirepass)
$r_destinationip = Redis.new(path: redis_socket, db: 0, password: redis_requirepass)
' code => ' arr = [
"cti_match"] if event.get("[destination][domain]") hit = $r_domain.get(event.get("[destination][domain]").downcase) if hit event.set("[labels][cti_message]", hit) arr.append("cti_destination.domain") end end if event.get("[source][ip]")
hit = $r_sourceip.get(event.get("[source][ip]").downcase)
if hit event.set("[labels][cti_message]", hit) arr.append("cti_source.ip") end end if event.get("[destination][ip]") hit = $r_destinationip.get(event.get("[destination][ip]").downcase) if hit event.set("[labels][cti_message]", hit) arr.append("cti_destination.ip") end end if arr.length > 1 if not event.get("[tags]") event.set("[tags]", []) end arr.each do |item|
event.set("[tags]", event.get("[tags]") << item)
end end ' } }

Ez a konfiguráció biztosítja, hogy a Logstash szűrői folyamatosan ellenőrizzék a kívánt mezőket, és ha találkoznak fenyegetettségi adatokkal, akkor azokat hozzáadják a megfelelő eseményekhez. A tags mező segítségével könnyen automatizálhatók további műveletek, például a következő elemzéshez szükséges adatok szűrése.

A Logstash konfigurálásának következő lépése a duplikált címkék eltávolítása és az események gazdagítása. A következő Ruby kódrészlet eltávolítja a duplikált címkéket a tags mezőből:

arduino
filter {
ruby { id => "ruby_tag_dedup" code => ' if event.get("[tags]") event.set("[tags]", event.get("[tags]").uniq) end ' } }

A következő filter hozzáadja a Logstash szerver hostname-jét, amely az eseményekhez egy új mezőt rendel, hogy jobban nyomon követhessük, melyik Logstash példány dolgozta fel az eseményt:

swift
filter {
ruby { id => "ruby_add_agentforwarder" init => ' require "socket" @@hostname = Socket.gethostname ' code => ' event.set("[agent][forwarder]", @@hostname) ' } }

Miután a konfigurációs fájlok készen állnak, teszteljük a Logstash konfigurációját a következő parancs használatával:

swift
$ sudo /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/redis-get-indicators.conf --config.test_and_exit

Ha a teszt sikeres, indítsuk el a Logstash szolgáltatást:

shell
$ sudo systemctl start logstash && systemctl status logstash
$ sudo systemctl enable logstash

A Logstash szolgáltatás beindítása után a fenyegetettségi indikátorok azonnal elérhetővé válnak az adatcsatornákban, lehetővé téve a gyors reagálást és az incidenskezelési folyamatok gyorsabb végrehajtását.

Fontos, hogy a konfigurációk folyamatosan tesztelve és optimalizálva legyenek annak érdekében, hogy biztosítsák a megfelelő adatáramlást és a legjobb teljesítményt a rendszerben. A Redis és Logstash rendszerek integrációja és a fenyegetettségi indikátorok gyors feldolgozása alapvető a modern kiberbiztonsági rendszerekben.