1. Elastic stack: biztonsági naplók elemzése. Bevezetés

1. Elastic stack: biztonsági naplók elemzése. Bevezetés

A Splunk naplózási és elemzési rendszer Oroszországban történt értékesítésének megszűnése miatt felmerült a kérdés, hogy mivel lehet ezt a megoldást helyettesíteni? Miután eltöltöttem egy kis időt különböző megoldások megismerésével, egy igazi férfias megoldásra esett a választásom — „ELK stack”. Ez a rendszer beállítása időt igényel, de végül egy rendkívül hatékony rendszer állítható elő az információbiztonsági incidensek állapotának elemzésére és a gyors reagálásra a szervezetekben. Ebben a cikksorozatban megvizsgáljuk az ELK stack alapvető (vagy talán nem is annyira alapvető) képességeit, azt, hogyan lehet naplókat elemezni, grafikonokat és irányítópultokat készíteni, valamint hogy milyen érdekes funkciókat lehet megvalósítani a Check Point tűzfal vagy az OpenVas biztonsági szkenner naplóinak példáján keresztül. Kezdjük azzal, hogy mi is az ELK stack és milyen komponensekből áll.

„ELK stack” — három, nyílt forráskódú projekt rövidítése: Elasticsearch, Logstash és Kibana. Az Elastic cég fejlesztette ki, a többi kapcsolódó projekttel együtt. Az Elasticsearch a rendszer központi eleme, amely ötvözi az adatbázis, a kereső- és elemző rendszer funkcióit. A Logstash egy adatfeldolgozó munkafolyamat a szerveroldalon, amely egyszerre kap adatokat több forrásból, elemzi a naplót, majd az Elasticsearch adatbázisba küldi. A Kibana lehetővé teszi a felhasználók számára, hogy vizualizálják az Elasticsearch adatait diagramok és grafikonok segítségével. A Kibana-n keresztül az adatbázis is adminisztrálható. Később részletesebben áttekintjük mindegyik rendszert külön-külön.

1. Elastic stack: biztonsági naplók elemzése. Bevezetés

Logstash

A Logstash egy olyan szerszám, amely különböző forrásokból származó eseménynaplók feldolgozására szolgál, lehetővé téve a mezők és az értékek kiemelését az üzenetekben, emellett beállítható a szűrés és az adatok szerkesztése is. Mindezek után a Logstash átirányítja az eseményeket a végső adathordozóra. Az eszközt kizárólag konfigurációs fájlokon keresztül lehet beállítani.
A tipikus logstash konfiguráció egy vagy több fájl, amely több bemeneti adatfolyamból (input), számos szűrőből (filter) és több kimeneti adatfolyamból (output) áll. Ez egy vagy több konfigurációs fájlként jelenik meg, amely a legegyszerűbb változatában (ami egyáltalán nem csinál semmit) így néz ki:

input {
}

filter {
}

output {
}

Az INPUT-ben beállítjuk, hogy melyik porton érkezzenek a naplók és milyen protokollon, vagy melyik mappából olvassuk az új vagy folyamatosan bővülő fájlokat. A FILTER-ben a naplóelemzőt állítjuk be: a mezők elemzése, a változók szerkesztése, új paraméterek hozzáadása vagy eltávolítása. A FILTER olyan mező, amely kezeli a Logstash-be érkező üzeneteket, számos szerkesztési lehetőséggel. Az output-ban beállítjuk, hogy hová küldjük az elemzett naplót; ha ez Elasticsearch, akkor egy JSON kérést küldünk, amely tartalmazza a mezőket értékekkel, vagy a hibaelhárítás keretében a stdout-ra is kivihetjük, vagy fájlba rögzíthetjük.

1. Elastic stack: biztonsági naplók elemzése. Bevezetés

ElasticSearch

Eredetileg az Elasticsearch egy teljes szöveg keresési megoldás, de további kényelmi funkciókkal, mint például a könnyű skálázhatóság, replikáció és egyebek, amelyek kényelmessé és jó megoldássá tették a magas terhelésű projektekhez nagy adatmennyiségek kezelésére. Az Elasticsearch nem relációs (NoSQL) dokumentumtároló JSON formátumban, és egy teljes szöveg kereső rendszer a Lucene alapján. Hardverplatformja a Java Virtual Machine, így a rendszernek jelentős mennyiségű processzor- és memóriakapacitásra van szüksége a működéshez.
Minden beérkező üzenet, akár Logstash-on keresztül, akár API kérésen keresztül érkezik, 'dokumentumként' indexelődik, ami egyenértékű egy relációs SQL táblával. Minden dokumentum egy indexben tárolódik, ami SQL-ben az adatbázisnak felel meg.

Példa egy dokumentumra az adatbázisban:

{
  "_index": "checkpoint-2019.10.10",
  "_type": "_doc",
  "_id": "yvNZcWwBygXz5W1aycBy",
  "_version": 1,
  "_score": null,
  "_source": {
	"layer_uuid": [
      "dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0",
      "dbee3718-cf2f-4de0-8681-529cb75be9a6"
	],
	"outzone": "External",
	"layer_name": [
  	"TSS-Standard Security",
  	"TSS-Standard Application"
	],
	"time": "1565269565",
	"dst": "103.5.198.210",
	"parent_rule": "0",
	"host": "10.10.10.250",
	"ifname": "eth6",
    ]
}

Az adatbázissal való munka JSON kéréseknél REST API-n keresztül történik, amelyek vagy dokumentumokat szolgáltatnak az index alapján, vagy statisztikát adnak a következő formátumban: kérdés – válasz. Annak érdekében, hogy az összes válasz vizualizálható legyen, a Kibana webszolgáltatást fejlesztették ki, amely egy webszolgáltatásként működik.

Kibana

A Kibana lehetővé teszi, hogy adatokat keressünk és statisztikákat kérjünk le az Elasticsearch adatbázisból, amely alapján számos szép grafikon és irányítópult építhető. A rendszer emellett rendelkezik az Elasticsearch adatbázis adminisztrációs funkcióival is, amelyeket későbbi cikkekben részletesebben megvizsgálunk. Most pedig bemutatunk egy példát a Check Point tűzfal és az OpenVas sebezhetőség-elemző irányítópultjaira, amelyeket létre lehet hozni.

Példa Check Point irányítópultra, a kép kattintható:

1. Elastic stack: biztonsági naplók elemzése. Bevezetés

Példa OpenVas irányítópultra, a kép kattintható:

1. Elastic stack: biztonsági naplók elemzése. Bevezetés

Zárás

Megvizsgáltuk, hogy miből áll ELK stack, kicsit megismertük az alapvető termékeket, később a kurzus során külön foglalkozunk a Logstash konfigurációs fájl írásával, a Kibana irányítópultok beállításával, megismerkedünk az API lekérésekkel, az automatizálással és még sok mással!

Úgyhogy kövessétek az frissítéseket (Telegram, Facebook, VK, TS Solution Blog), Yandex.Zen.

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster