1.Elastisk stak: analyse af sikkerhedslogfiler. Introduktion

1.Elastisk stak: analyse af sikkerhedslogfiler. Introduktion

I forbindelse med afslutningen af ​​salget i Rusland af Splunk log- og analysesystemet opstod spørgsmålet: hvad kan denne løsning erstattes med? Efter at have brugt tid på at sætte mig ind i forskellige løsninger, besluttede jeg mig for en løsning til en rigtig mand - "ELK stack". Dette system tager tid at sætte op, men som et resultat kan du få et meget kraftfuldt system til at analysere status og hurtigt reagere på informationssikkerhedshændelser i organisationen. I denne serie af artikler vil vi se på de grundlæggende (eller måske ikke) muligheder i ELK-stakken, overveje, hvordan du kan parse logfiler, hvordan man bygger grafer og dashboards, og hvilke interessante funktioner der kan udføres ved at bruge eksemplet med logs fra Check Point-firewallen eller OpenVas-sikkerhedsscanneren. Lad os til at begynde med se på, hvad det er - ELK-stakken, og hvilke komponenter den består af.

"ELK stack" er et akronym for tre open source-projekter: Elasticsearch, Logstash и Kibana. Udviklet af Elastic sammen med alle relaterede projekter. Elasticsearch er kernen i hele systemet, som kombinerer funktionerne i en database, søge- og analysesystem. Logstash er en databehandlingspipeline på serversiden, der modtager data fra flere kilder samtidigt, analyserer loggen og derefter sender den til en Elasticsearch-database. Kibana giver brugerne mulighed for at visualisere data ved hjælp af diagrammer og grafer i Elasticsearch. Du kan også administrere databasen gennem Kibana. Dernæst vil vi overveje hvert system separat mere detaljeret.

1.Elastisk stak: analyse af sikkerhedslogfiler. Introduktion

Logstash

Logstash er et værktøj til at behandle loghændelser fra forskellige kilder, hvormed du kan vælge felter og deres værdier i en besked, og du kan også konfigurere datafiltrering og redigering. Efter alle manipulationer omdirigerer Logstash hændelser til det endelige datalager. Hjælpeprogrammet konfigureres kun gennem konfigurationsfiler.
En typisk logstash-konfiguration er en fil(er) bestående af flere indgående informationsstrømme (input), flere filtre for denne information (filter) og flere udgående strømme (output). Det ligner en eller flere konfigurationsfiler, som i den enkleste version (som slet ikke gør noget) ser sådan ud:

input {
}

filter {
}

output {
}

I INPUT konfigurerer vi hvilken port logfilerne sendes til og gennem hvilken protokol, eller fra hvilken mappe der skal læses nye eller konstant opdaterede filer. I FILTER konfigurerer vi log-parseren: parsing af felter, redigering af værdier, tilføjelse af nye parametre eller sletning af dem. FILTER er et felt til at administrere den besked, der kommer til Logstash med en masse redigeringsmuligheder. I output konfigurerer vi, hvor vi sender den allerede parsede log, hvis det er elasticsearch, sendes en JSON-anmodning, hvori felter med værdier sendes, eller som en del af fejlretningen kan den udsendes til stdout eller skrives til en fil.

1.Elastisk stak: analyse af sikkerhedslogfiler. Introduktion

Elasticsearch

Elasticsearch er i første omgang en løsning til fuldtekstsøgning, men med yderligere faciliteter som nem skalering, replikering og andre ting, som gjorde produktet meget praktisk og en god løsning til højbelastningsprojekter med store datamængder. Elasticsearch er en ikke-relationel (NoSQL) JSON dokumentbutik og søgemaskine baseret på Lucene fuldtekstsøgning. Hardwareplatformen er Java Virtual Machine, så systemet kræver en stor mængde processor- og RAM-ressourcer for at fungere.
Hver indkommende besked, enten med Logstash eller ved hjælp af forespørgsels-API'en, indekseres som et "dokument" - analogt med en tabel i relationel SQL. Alle dokumenter er gemt i et indeks - en analog af en database i SQL.

Eksempel på et 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",
    ]
}

Alt arbejde med databasen er baseret på JSON-anmodninger ved hjælp af REST API, som enten producerer dokumenter efter indeks eller nogle statistikker i formatet: spørgsmål - svar. For at visualisere alle svar på forespørgsler blev Kibana skrevet, som er en webtjeneste.

Kibana

Kibana giver dig mulighed for at søge, hente data og forespørge om statistik fra elasticsearch-databasen, men mange flotte grafer og dashboards er bygget på baggrund af svarene. Systemet har også elasticsearch-databaseadministrationsfunktionalitet; i efterfølgende artikler vil vi se nærmere på denne service. Lad os nu vise et eksempel på dashboards til Check Point firewallen og OpenVas sårbarhedsscanneren, der kan bygges.

Et eksempel på et dashboard til Check Point, billedet er klikbart:

1.Elastisk stak: analyse af sikkerhedslogfiler. Introduktion

Et eksempel på et dashboard til OpenVas, billedet er klikbart:

1.Elastisk stak: analyse af sikkerhedslogfiler. Introduktion

Konklusion

Vi har set på, hvad det består af ELK stak, vi stiftede lidt bekendtskab med hovedprodukterne, senere i forløbet vil vi separat overveje at skrive en Logstash konfigurationsfil, opsætte dashboards på Kibana, stifte bekendtskab med API anmodninger, automatisering og meget mere!

Så følg med (Telegram, Facebook, VK, TS Solution Blog), Yandex Zen.

Kilde: www.habr.com

Tilføj en kommentar