3. Elastic stack: analyse af sikkerhedslogs. Dashboards

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

I tidligere artikler har vi kort været inde på ELK-stakken og opsætningen af konfigurationsfilen Logstash til logparseren. I denne artikel går vi videre til det mest vigtige fra et analytisk synspunkt, det som du ønsker at se fra systemet, og som hele dette er skabt for — det er grafer og tabeller samlet i dashboards. I dag vil vi se nærmere på visualiseringssystemet Kibana, og vi vil se på, hvordan man opretter grafer og tabeller, og til sidst bygger vi et simpelt dashboard baseret på logs fra Check Point-firewallen.

Det første skridt i arbejdet med Kibana er oprettelsen af indexmønster, som logisk set er en database af indekser defineret efter et bestemt princip. Selvfølgelig er dette udelukkende en opsætning, så Kibana lettere kan søge information på tværs af alle indekser på én gang. Det fastsættes ved at matche en streng, for eksempel "checkpoint-*" og navnet på indekset. For eksempel passer "checkpoint-2019.12.05" til mønsteret, men bare "checkpoint" gør ikke. Det er også værd at nævne, at man ikke kan søge information på tværs af forskellige indeksmønstre samtidig - senere i artiklerne vil vi se, at API-anmodninger enten gøres efter indeksets navn eller netop efter et enkelt mønster, billedet er klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Derefter kontrollerer vi i menuen Discover, om alle logs indekseres, og om den rigtige parser er konfigureret. Hvis der opdages uoverensstemmelser, for eksempel hvis datatypen skal ændres fra en streng til et heltal, skal konfigurationsfilen Logstash redigeres, så de nye logs bliver registreret korrekt. For at sikre, at de gamle logs får den nødvendige form, hjælper kun processen med reindeksering. I de kommende artikler vil denne operation blive gennemgået mere detaljeret. Lad os sikre os, at alt er i orden, billedet er klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Logs er på plads, så vi kan begynde at opbygge dashboards. Baseret på analysen af dashboards fra sikkerhedsprodukter kan man forstå tilstanden for informationssikkerhed i organisationen, visuelt se svage punkter i den nuværende politik og derefter udvikle metoder til at adressere dem. Lad os bygge et lille dashboard ved hjælp af flere visualiseringsmidler. Dashboardet vil bestå af 5 komponenter:

  1. en tabel til beregning af det samlede antal logs efter blades
  2. en tabel over kritiske IPS-signaturer
  3. et cirkeldiagram over hændelser i Threat Prevention
  4. diagram over de mest populære besøgte websteder
  5. diagram over brugen af de mest farlige applikationer

For at oprette visualiseringsfigurer skal du gå til menuen Visualiser, og vælge den ønskede figur, som vi vil opbygge! Lad os tage det step for step.

Tabel til at tælle det samlede antal logs pr. blade

For dette vælger vi figuren Datatabel, vi går ind i værktøjet til at oprette grafer, til venstre indstilles figurens indstillinger, til højre vises, hvordan den vil se ud med de nuværende indstillinger. Først viser jeg, hvordan den færdige tabel vil se ud, derefter går vi gennem indstillingerne, billedet er klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Mere detaljerede indstillinger for figuren, billedet er klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Lad os gennemgå indstillingerne.

Først indstilles metrik, denne værdi, som alle felter vil blive aggregeret efter. Metrikker beregnes baseret på værdier, der er udtrukket på den ene eller anden måde fra dokumenterne. Værdier udtrækkes typisk fra felter i dokumentet, men kan også genereres ved hjælp af scripts. I dette tilfælde indstiller vi Aggregation: Count (samlet antal logs).

Derefter dividerer vi tabellen efter segmenter (felter), hvorefter metrikken skal beregnes. Denne funktion udføres af indstillingen Buckets, som i sin tur består af 2 indstillingsmuligheder:

  1. split rows — tilføjelse af kolonner og derefter opdeling af tabellen i rækker
  2. split table — opdeling i flere tabeller baseret på værdierne af et bestemt felt.

I buckets du kan tilføje flere opdelinger for at skabe flere kolonner eller tabeller, begrænsningerne her er primært logiske. I aggregation kan du vælge, hvilken metode der vil blive brugt til segmentopdelingen: ipv4 range, date range, Terms osv. Det mest interessante valg er faktisk Terms og Significant Terms, opdelingen i segmenter sker baseret på værdierne af et bestemt indeksfelt, forskellen mellem dem ligger i antallet af returnerede værdier og deres visning. Da vi ønsker at opdele tabellen efter navnet på blade, vælger vi feltet — product.keyword og angiver størrelsen til 25 returnerede værdier.

I stedet for rækker anvendes der i Elasticsearch 2 typer data — text og nøgleord. Hvis du vil udføre en fuldtekstsøgefunktion, skal du bruge typen text, hvilket er meget nyttigt, når du skriver din egen søgeservice, f.eks. søger du efter nævnelsen af et ord i en bestemt betydning af feltet (teksten). Hvis du ønsker kun nøjagtige match, skal du bruge typen keyword. Desuden bør datatypen keyword bruges til felter, der kræver sortering eller aggregat, som i vores tilfælde.

Som resultat tæller Elasticsearch antallet af logs for en given tidsperiode ved at aggregere efter værdien i feltet produkt. I Custom Label angiver vi navnet på kolonnen, som vil blive vist i tabellen, vi angiver den periode, hvor vi indsamler logs, starter visualiseringen — Kibana sender anmodningen til Elasticsearch, venter på svar og visualiserer derefter de modtagne data. Tabellen er klar!

Cirkeldiagram over hændelser i Trusselsforebyggelse

En bestemt interesse repræsenterer informationen om, hvor mange reaktioner der overhovedet er i procentvis forhold. detect og prevent til hændelserne i den nuværende sikkerhedspolitik. Til denne situation er et cirkeldiagram meget velegnet. Vi vælger i Visualize — Pie chart. Desuden angiver vi aggregeringen i metriiken baseret på antallet af logs. I buckets sætter vi Terms => action.

Det virker som om, alt er korrekt, men resultatet viser værdier for alle blades, så vi skal filtrere for kun de blades der arbejder inden for Trusselsforebyggelse. Derfor sikrer vi at filteret for at søge information kun om blades der er ansvarlige for hændelser i cybersikkerhed — produkt: («Anti-Bot» OR «New Anti-Virus» OR «DDoS Protector» OR «SmartDefense» OR «Threat Emulation»). Billedet er klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Og mere detaljerede indstillinger, billedet er klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Tabel over hændelser i IPS

Derefter er det meget vigtigt ud fra cybersikkerhedssynspunktet at se og tjekke hændelserne for blade IPS og Trusselsemlation, som ikke blokeres af den nuværende politik, så det i fremtiden enten kan overføre signaturen til prevent, eller hvis trafikken er valide — ikke tjekke signaturen. Vi opretter tabellen ligesom i det første eksempel, men med den forskel, at vi opretter flere kolonner: protections.keyword, severity.keyword, product.keyword, originsicname.keyword. Vi sikrer at opsætte filteret for at søge information kun om blades der er ansvarlige for hændelser i cybersikkerhed — produkt: ( «SmartDefense» OR «Threat Emulation»). Billedet er klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Mere detaljerede indstillinger, billedet er klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Diagrammer over de mest populære besøgte websteder

For dette opretter vi en figur - Vertikal Bar. Vi bruger også metrikken count (Y-akse), og på X-aksen vil vi bruge navnet på de besøgte websteder - “appi_name”. Der er en lille finesse; hvis vi kører indstillingerne i den nuværende version, vil alle websteder blive markeret med én farve på grafen. For at gøre dem farverige bruger vi den ekstra indstilling - “split series”, som gør det muligt at opdele den allerede færdige kolonne i flere værdier, afhængigt af det valgte felt, selvfølgelig! Denne opdeling kan bruges som én farverig kolonne i stacked-tilstand eller i normal tilstand for at skabe flere kolonner efter en bestemt værdi på X-aksen. I dette tilfælde bruger vi den samme værdi som på X-aksen, hvilket giver mulighed for at gøre alle søjlerne farverige, og de vil blive angivet med farver øverst til højre. I filteret sætter vi - product:«URL Filtering» for kun at se oplysninger om de besøgte websteder, billedet er klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Indstillinger:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Diagram over brugen af de mest farlige applikationer

For dette opretter vi en figur - Vertikal Bar. Vi bruger også metrikken count (Y-akse), og på X-aksen vil vi bruge navnet på de anvendte applikationer - “appi_name”. Det vigtigste er at angive filteret - product: «Application Control» AND app_risk: (4 OR 5 OR 3) AND action: «accept». Vi filtrerer loggene efter bladet Application Control, og tager kun de websites, der er kategoriseret som websteder med risiko for kritisk, høj, medium, og kun hvis adgangen til disse websites er tilladt. Billedet er klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Indstillinger, klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Dashboard

Visning og oprettelse af dashboards findes i en separat menu - Dashboard. Her er det enkelt, et nyt dashboard oprettes, visualiseringen tilføjes, og det arrangeres, og så er det hele klar!

Vi opretter et dashboard, der gør det muligt at forstå den grundlæggende situation for informationssikkerheden i organisationen, dog kun på Check Point-niveau, billedet er klikbart:

3. Elastic stack: analyse af sikkerhedslogs. Dashboards

Baseret på disse grafer kan vi forstå, hvilke kritiske signaturer der ikke blokeres på firewall'en, hvor brugerne bevæger sig hen, og hvilke de mest farlige applikationer de bruger.

Konklusion

Vi har undersøgt mulighederne for grundlæggende visualisering i Kibana og bygget et dashboard, men det er blot en lille del. I det følgende kapitel vil vi kigge nærmere på konfiguration af kort, arbejde med Elasticsearch-systemet, lære API-forespørgsler at kende, automatisering og meget mere!

Så hold øje med opdateringer (Telegram, Facebook, VK, TS Solution Blog), Yandex.Zen.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster