
S ohledem na ukončení prodeje systému pro logování a analýzu Splunk v Rusku se objevila otázka, čím lze toto řešení nahradit. Po věnování času zkoumání různých řešení jsem se rozhodl pro řešení pro opravdového muže — „ELK stack“. Tento systém vyžaduje čas na jeho nastavení, ale výsledkem může být velmi výkonný systém pro analýzu stavu a operační reakce na incidenty v oblasti informační bezpečnosti v organizaci. V této sérii článků se podíváme na základní (a možná i ne) možnosti ELK stacku, prozkoumáme, jak parsat logy, jak vytvářet grafy a dashboardy a jaké zajímavé funkce lze udělat na příkladu logů z firewallu Check Point nebo bezpečnostního skeneru OpenVas. Nejprve se podívejme, co to vlastně je — ELK stack a z jakých komponentů se skládá.
„ELK stack“ — je zkratka tří projektů s otevřeným zdrojovým kódem: Elasticsearch, Logstash a Kibana. Vyvíjí společnost Elastic spolu se všemi souvisejícími projekty. Elasticsearch je jádro celého systému, který kombinuje funkce databáze, vyhledávacího a analytického systému. Logstash je datový zpracovatelský kontejner na straně serveru, který získává data z několika zdrojů současně, parsuje logy a poté je posílá do databáze Elasticsearch. Kibana umožňuje uživatelům vizualizovat data pomocí diagramů a grafů v Elasticsearch. Také přes Kibanu lze spravovat databázi. Následně podrobněji prozkoumáme každý systém zvlášť.

Logstash
Logstash – je utilita pro zpracování logů událostí z různých zdrojů, s jejíž pomocí lze extrahovat pole a jejich hodnoty ve zprávě, také je možné nastavit filtrování a úpravu dat. Po všech manipulacích Logstash přesměrovává události do konečného úložiště dat. Utilita se nastavuje pouze pomocí konfiguračních souborů.
Typická konfigurace Logstash se skládá ze souboru(s) skládajícího se z několika vstupních informačních kanálů (input), několika filtrů pro tyto informace (filter) a několika výstupních kanálů (output). Vypadá to jako jeden nebo více konfiguračních souborů, které v nejjednodušší variantě (která vlastně nedělá vůbec nic) vypadají takto:
input {
}
filter {
}
output {
}
V INPUT nastavujeme, na který port budou přicházet logy a podle jakého protokolu, nebo ze které složky číst nové nebo neustále zapisované soubory. V FILTER nastavujeme parser logů: rozbor polí, úprava hodnot, přidání nových parametrů nebo odstranění. FILTER je pole pro řízení zprávy, která přichází na Logstash s mnoha možnostmi úprav. V output nastavujeme, kam odesíláme již zpracovaný log. V případě, že se jedná o Elasticsearch, se odesílá JSON dotaz, ve kterém se posílají pole s hodnotami, nebo v rámci ladění lze vyvést do stdout nebo zapsat do souboru.

ElasticSearch
Původně byl Elasticsearch řešení pro fulltextové vyhledávání, ale s dalšími výhodami, jako je snadná škálovatelnost, replikace a další, což učinilo produkt velmi praktickým a dobrým řešením pro vysoce zatížené projekty s velkými objemy dat. Elasticsearch je nerelationalní úložiště (NoSQL) dokumentů ve formátu JSON a vyhledávací systém založený na fulltextovém vyhledávání Lucene. Hardwarová platforma — Java Virtual Machine, proto systém vyžaduje velké množství procesorových a paměťových zdrojů pro svou činnost.
Každá přicházející zpráva, ať už z Logstash nebo prostřednictvím API dotazu, je indexována jako "dokument" — analog tabulky v relačním SQL. Všechny dokumenty jsou uloženy v indexu — analog databáze v SQL.
Příklad dokumentu v databázi:
{
"_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",
]
}
Veškerá práce s databází se provádí pomocí JSON dotazů pomocí REST API, které buď vracejí dokumenty podle indexu, nebo nějakou statistiku ve formátu: otázka — odpověď. Aby byly všechny odpovědi na dotazy vizualizovány, byla vytvořena Kibana, což je webový servis.
Kibana
Kibana umožňuje vyhledávat data a dotazovat statistiky z databáze Elasticsearch, na základě odpovědí se sestavuje celá řada krásných grafů a dashboardů. Systém také obsahuje funkce pro správu databáze Elasticsearch. V následujících článcích se podrobněji seznámíme s touto službou. A nyní ukážeme příklad dashboardů pro firewall Check Point a skener zranitelností OpenVas, které je možné vytvořit.
Příklad dashboardu pro Check Point, obrázek je klikací:
Příklad dashboardu pro OpenVas, obrázek je klikací:
Závěr
Podívali jsme se, z čeho se skládá ELK stack, trochu jsme se seznámili se základními produkty. Dále v kurzu se budeme samostatně zabývat psaním konfiguračního souboru Logstash, nastavením dashboardů v Kibana, seznámíme se s API dotazy, automatizací a mnoha dalšími tématy!
Tak sledujte aktualizace (, , , ), .
Zdroj: habr.com
