1.Elastisk stack: analys av säkerhetsloggar. Introduktion

1.Elastisk stack: analys av säkerhetsloggar. Introduktion

I samband med slutet av försäljningen i Ryssland av Splunk-loggnings- och analyssystemet uppstod frågan: vad kan ersätta denna lösning med? Efter att ha tillbringat tid med att bekanta mig med olika lösningar bestämde jag mig för en lösning för en riktig man - "ELK stack". Detta system tar tid att installera, men som ett resultat kan du få ett mycket kraftfullt system för att analysera status och snabbt svara på informationssäkerhetsincidenter i organisationen. I den här artikelserien kommer vi att titta på de grundläggande (eller kanske inte) funktionerna i ELK-stacken, överväga hur du kan analysera loggar, hur man bygger grafer och instrumentpaneler och vilka intressanta funktioner som kan göras med exemplet med loggar från Check Point-brandväggen eller OpenVas-säkerhetsskannern. Till att börja med, låt oss titta på vad det är - ELK-stacken, och vilka komponenter den består av.

"ELK stack" är en akronym för tre öppen källkodsprojekt: Elasticsearch, Logstash и Kibana. Utvecklad av Elastic tillsammans med alla relaterade projekt. Elasticsearch är kärnan i hela systemet, som kombinerar funktionerna i en databas, sök- och analyssystem. Logstash är en databehandlingspipeline på serversidan som tar emot data från flera källor samtidigt, analyserar loggen och sedan skickar den till en Elasticsearch-databas. Kibana låter användare visualisera data med hjälp av diagram och grafer i Elasticsearch. Du kan också administrera databasen genom Kibana. Därefter kommer vi att överväga varje system separat mer i detalj.

1.Elastisk stack: analys av säkerhetsloggar. Introduktion

Logstash

Logstash är ett verktyg för att bearbeta logghändelser från olika källor, med vilket du kan välja fält och deras värden i ett meddelande, och du kan även konfigurera datafiltrering och redigering. Efter alla manipulationer omdirigerar Logstash händelser till det slutliga datalagret. Verktyget konfigureras endast genom konfigurationsfiler.
En typisk logstash-konfiguration är en fil(er) som består av flera inkommande informationsströmmar (indata), flera filter för denna information (filter) och flera utgående strömmar (output). Det ser ut som en eller flera konfigurationsfiler, som i den enklaste versionen (som inte gör något alls) ser ut så här:

input {
}

filter {
}

output {
}

I INPUT konfigurerar vi vilken port loggarna ska skickas till och genom vilket protokoll, eller från vilken mapp som ska läsas nya eller ständigt uppdaterade filer. I FILTER konfigurerar vi logparsern: analysera fält, redigera värden, lägga till nya parametrar eller ta bort dem. FILTER är ett fält för att hantera meddelandet som kommer till Logstash med många redigeringsalternativ. I output konfigurerar vi vart vi skickar den redan analyserade loggen, om det är elasticsearch skickas en JSON-förfrågan där fält med värden skickas, eller som en del av felsökningen kan den matas ut till stdout eller skrivas till en fil.

1.Elastisk stack: analys av säkerhetsloggar. Introduktion

Elasticsearch

Inledningsvis är Elasticsearch en lösning för fulltextsökning, men med ytterligare bekvämligheter som enkel skalning, replikering och annat, vilket gjorde produkten väldigt bekväm och en bra lösning för högbelastningsprojekt med stora datamängder. Elasticsearch är en icke-relationell (NoSQL) JSON-dokumentbutik och sökmotor baserad på Lucene-fulltextsökning. Hårdvaruplattformen är Java Virtual Machine, så systemet kräver en stor mängd processor- och RAM-resurser för att fungera.
Varje inkommande meddelande, antingen med Logstash eller med hjälp av fråge-API, indexeras som ett "dokument" - analogt med en tabell i relationell SQL. Alla dokument lagras i ett index - en analog av en databas i SQL.

Exempel på ett dokument i databasen:

{
  "_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",
    ]
}

Allt arbete med databasen är baserat på JSON-förfrågningar med hjälp av REST API, som antingen producerar dokument genom index eller viss statistik i formatet: fråga - svar. För att visualisera alla svar på förfrågningar skrevs Kibana, som är en webbtjänst.

Kibana

Kibana låter dig söka, hämta data och fråga statistik från elasticsearch-databasen, men många vackra grafer och instrumentpaneler är byggda utifrån svaren. Systemet har även elasticsearch-databasadministrationsfunktionalitet, i efterföljande artiklar kommer vi att titta på denna tjänst mer i detalj. Låt oss nu visa ett exempel på instrumentpaneler för Check Point-brandväggen och OpenVas sårbarhetsskanner som kan byggas.

Ett exempel på en instrumentpanel för Check Point, bilden är klickbar:

1.Elastisk stack: analys av säkerhetsloggar. Introduktion

Ett exempel på en instrumentpanel för OpenVas, bilden är klickbar:

1.Elastisk stack: analys av säkerhetsloggar. Introduktion

Slutsats

Vi tittade på vad den består av ELK-stack, vi bekantade oss lite med huvudprodukterna, senare i kursen kommer vi separat att överväga att skriva en Logstash-konfigurationsfil, sätta upp dashboards på Kibana, bekanta oss med API-förfrågningar, automatisering och mycket mer!

Så håll utkik (Telegram, Facebook, VK, TS Lösningsblogg), Yandex.Zen.

Källa: will.com

Lägg en kommentar