
In früheren Artikeln haben wir uns ein wenig mit dem ELK-Stack und der Konfiguration von Logstash für den Log-Parser vertraut gemacht. In diesem Artikel wenden wir uns dem Wichtigsten aus analytischer Sicht zu, dem, was Sie von dem System erwarten und wofür alles geschaffen wurde – Grafiken und Tabellen, die in Dashboardszusammengeführt werden. Heute werden wir uns näher mit dem Visualisierungssystem Kibanabefassen, sehen uns an, wie man Grafiken und Tabellen erstellt, und schließlich werden wir ein einfaches Dashboard basierend auf den Logs der Check Point-Firewall erstellen.
Der erste Schritt bei der Arbeit mit Kibana besteht darin, ein Indexmusterzu erstellen, das logisch eine Gruppe von Indizes darstellt, die nach einem bestimmten Prinzip zusammengefasst sind. Natürlich ist dies hauptsächlich eine Einstellung, um Kibana zu ermöglichen, Informationen komfortabler über alle Indizes gleichzeitig zu suchen. Es wird durch das Matching einer Zeichenkette, z.B. „checkpoint-*“ und dem Namen des Indexes festgelegt. Zum Beispiel passt „checkpoint-2019.12.05“ zu dem Muster, während „checkpoint“ es nicht tut. Es sei erwähnt, dass man in der Suche nicht gleichzeitig Informationen über verschiedene Indexmuster abrufen kann. In späteren Artikeln werden wir sehen, dass API-Anfragen entweder nach dem Namen des Indexes oder exakt nach einem Muster, wie oben erwähnt, erfolgen. Das Bild ist klickbar:
Nach diesem Schritt überprüfen wir im Menü Discover, ob alle Logs indexiert werden und der richtige Parser eingestellt ist. Falls es irgendwelche Abweichungen gibt, beispielsweise Typänderungen von String auf Integer, muss die Konfigurationsdatei von Logstash bearbeitet werden, damit neue Logs korrekt geschrieben werden. Um sicherzustellen, dass alte Logs vor der Änderung das gewünschte Format annehmen, hilft nur der Reindexierungsprozess. In späteren Artikeln wird dieser Vorgang ausführlicher behandelt. Lassen Sie uns sicherstellen, dass alles in Ordnung ist; das Bild ist klickbar:
Die Logs sind vorhanden; daher können wir mit dem Aufbau von Dashboards beginnen. Anhand der Analysen der Dashboards von Sicherheitsprodukten lässt sich der Stand der Informationssicherheit in der Organisation erkennen, und man kann die anfälligen Stellen der aktuellen Politik deutlich sehen und anschließend Maßnahmen zu deren Behebung entwickeln. Lassen Sie uns ein einfaches Dashboard erstellen, indem wir mehrere Visualisierungstools verwenden. Das Dashboard wird aus 5 Komponenten bestehen:
- einer Tabelle zur Berechnung der Gesamtanzahl der Logs nach Blades
- einer Tabelle über kritische IPS-Signaturen
- Kreisdiagramm zu den Ereignissen der Bedrohungsprävention
- Diagramm der meistbesuchten Websites
- Diagramm zur Nutzung der gefährlichsten Anwendungen
Um Visualisierungsfiguren zu erstellen, müssen Sie in das Menü gehen Visualisieren, und die gewünschte Figur auswählen, die wir erstellen möchten! Lassen Sie uns der Reihenfolge nach vorgehen.
Tabelle zur Zählung der Gesamtzahl der Protokolle nach Blades
Dafür wählen wir die Figur Datentabelle, wir gelangen zum Tool zur Erstellung von Grafiken, auf der linken Seite werden die Figureneinstellungen vorgenommen, rechts, wie sie in den aktuellen Einstellungen aussehen wird. Zuerst zeige ich, wie die fertige Tabelle aussehen wird, danach gehen wir die Einstellungen durch, das Bild ist klickbar:
Detailliertere Einstellungen der Figur, das Bild ist klickbar:
Lassen Sie uns die Einstellungen durchgehen.
Zunächst wird eingestellt Metrik, dies ist der Wert, nach dem alle Felder aggregiert werden. Metriken werden basierend auf Werten berechnet, die auf unterschiedliche Weise aus Dokumenten extrahiert werden. Werte werden normalerweise aus Feldern des Dokuments extrahiert, können jedoch auch mit Skripten generiert werden. In diesem Fall setzen wir auf Aggregation: Anzahl (Gesamtzahl der Protokolle).
Nach diesem Schritt teilen wir die Tabelle nach Segmenten (Feldern), nach denen die Metrik ermittelt wird. Diese Funktion wird durch die Einstellung Buckets erfüllt, die wiederum aus 2 Varianten der Einstellung besteht:
- Aufteilen von Zeilen — Hinzufügen von Spalten und anschließendes Teilen der Tabelle in Zeilen
- Aufteilen der Tabelle — Aufteilen in mehrere Tabellen nach Werten eines bestimmten Feldes.
Im buckets Es können mehrere Teilungen hinzugefügt werden, um mehrere Spalten oder Tabellen zu erstellen; hier sind die Einschränkungen eher logisch. In der Aggregation kann ausgewählt werden, nach welchem Verfahren die Teilung in Segmente erfolgen soll: ipv4-Bereich, Datumsbereich, Begriffe usw. Die interessanteste Auswahl ist Begriffe und Signifikante Begriffe, wobei die Teilung in Segmente nach Werten eines bestimmten Indexfeldes erfolgt; der Unterschied zwischen ihnen besteht in der Anzahl der zurückgegebenen Werte und ihrer Anzeige. Da wir die Tabelle nach den Namen der Blades aufteilen möchten, wählen wir das Feld — product.keyword und legen die Größe auf 25 zurückgegebene Werte fest.
Anstelle von Zeilen werden in Elasticsearch 2 Datentypen verwendet — text und keyword. Wenn Sie eine Volltextsuche durchführen möchten, müssen Sie den Typ text verwenden, der beim Erstellen Ihres eigenen Suchdienstes sehr praktisch ist, zum Beispiel um nach einer Erwähnung eines Wortes im bestimmten Feldwert (Text) zu suchen. Wenn Sie nur eine exakte Übereinstimmung suchen, sollten Sie den Typ keyword verwenden. Der Datentyp keyword sollte auch für Felder verwendet werden, die eine Sortierung oder Aggregation erfordern, also in unserem Fall.
Infolgedessen zählt Elasticsearch die Anzahl der Protokolle über einen bestimmten Zeitraum mit Aggregation nach dem Wert im Feld product. Im benutzerdefinierten Label geben wir den Namen der Spalte an, die in der Tabelle angezeigt werden soll, legen die Zeit fest, über die wir Protokolle sammeln, starten das Rendering – Kibana sendet die Anfrage an Elasticsearch, wartet auf die Antwort und visualisiert die empfangenen Daten danach. Die Tabelle ist bereit!
Kreisdiagramm zu den Ereignissen der Bedrohungsabwehr
Besonders interessant sind die Informationen, wie viele Reaktionen insgesamt prozentual vorhanden sind. detect und prevent auf die Sicherheitsvorfälle in der aktuellen Sicherheitsrichtlinie. Für einen solchen Fall eignet sich gut ein Kreisdiagramm. Wählen Sie in Visualize – Kreisdiagramm. Außerdem legen wir in der Metrik die Aggregation nach der Anzahl der Protokolle fest. In Buckets setzen wir Terms => action.
Sieht alles richtig aus, aber letztendlich werden die Werte für alle Blades angezeigt, es ist notwendig, nur nach den Blades zu filtern, die im Rahmen der Bedrohungsabwehr arbeiten. Daher müssen wir unbedingt einstellen den Filter um Informationen nur über Blades zu suchen, die für Sicherheitsvorfälle verantwortlich sind – product: ("Anti-Bot" OR "New Anti-Virus" OR "DDoS Protector" OR "SmartDefense" OR "Threat Emulation"). Das Bild ist klickbar:
Und detailliertere Einstellungen, das Bild ist klickbar:
Tabelle zu den IPS-Ereignissen
Ein weiterer sehr wichtiger Aspekt aus Sicht der IT-Sicherheit ist die Überprüfung und Überwachung der Ereignisse pro Blade IPS und Threat Emulation, die nicht blockiert werden durch die aktuelle Politik, um in der Folge entweder die Signatur in den Prevent-Modus zu versetzen oder, wenn der Verkehr gültig ist, die Signatur nicht zu überprüfen. Die Tabelle erstellen wir ebenso wie im ersten Beispiel, nur mit dem Unterschied, dass wir mehrere Spalten erstellen: protections.keyword, severity.keyword, product.keyword, originsicname.keyword. Wir müssen unbedingt einen Filter einrichten, um Informationen nur über Blades zu suchen, die für Sicherheitsvorfälle verantwortlich sind – product: ("SmartDefense" OR "Threat Emulation"). Das Bild ist klickbar:
Detailliertere Einstellungen, das Bild ist klickbar:
Diagramme der beliebtesten besuchten Webseiten
Dafür erstellen wir eine Figur — Vertical Bar. Die Metrik verwenden wir ebenfalls count (Achse Y), während wir auf der Achse X die Namen der besuchten Webseiten — “appi_name” — verwenden. Hier gibt es einen kleinen Trick: Wenn wir die Einstellungen in der aktuellen Variante starten, werden alle Webseiten auf dem Diagramm in einer Farbe angezeigt. Um sie bunt zu gestalten, verwenden wir eine zusätzliche Einstellung — “split series”, die es ermöglicht, die bereits vorhandene Spalte in mehrere Werte zu unterteilen, je nach dem gewählten Feld! Diese Teilung kann entweder als eine bunte Spalte im gestapelten Modus verwendet werden, oder im normalen Modus, um mehrere Spalten zu bestimmten Werten auf der Achse X zu erstellen. In diesem Fall verwenden wir denselben Wert wie auf der Achse X, was es ermöglicht, alle Spalten bunt darzustellen, rechts oben werden diese durch Farben angezeigt. Im Filter setzen wir — product:«URL Filtering», um Informationen nur zu den besuchten Webseiten zu sehen, das Bild ist klickbar:
Einstellungen:
Diagramm zur Nutzung der gefährlichsten Anwendungen
Dafür erstellen wir eine Figur — Vertikale Säule. Die Metrik verwenden wir ebenfalls count (Achse Y), während wir auf der Achse X die Namen der verwendeten Anwendungen — “appi_name” — verwenden. Am wichtigsten ist die Filterdefinition — product: «Application Control» AND app_risk: (4 OR 5 OR 3) AND action:«accept». Wir filtern die Protokolle anhand des Blades Application Control und nehmen nur die Webseiten, die als Webseiten mit Risiko hoch eingestuft sind: Critical, High, Medium und nur, wenn der Zugriff auf diese Webseiten erlaubt ist. Das Bild ist klickbar:
Einstellungen, klickbar:
Dashboard
Die Ansicht und Erstellung von Dashboards erfolgt im separaten Menüpunkt — Dashboard. Hier ist alles einfach, ein neues Dashboard wird erstellt, darin wird die Visualisierung hinzugefügt, an die Plätze verteilt und fertig!
Wir erstellen ein Dashboard, anhand dessen man die grundlegende Situation des Status der IT-Sicherheit in der Organisation verstehen kann, klar, nur auf der Check Point Ebene, das Bild ist klickbar:
Anhand dieser Diagramme können wir erkennen, welche kritischen Signaturen nicht an der Firewall blockiert werden, wohin die Nutzer gehen und welche gefährlichen Anwendungen sie verwenden.
Fazit
Wir haben die Möglichkeiten der grundlegenden Visualisierung in Kibana untersucht und ein Dashboard erstellt, aber das ist nur ein kleiner Teil. Im weiteren Verlauf des Kurses werden wir die Einrichtung von Karten, die Arbeit mit dem ElasticSearch-System, API-Anfragen, Automatisierung und vieles mehr im Detail behandeln!
Also haltet euch über die Updates auf dem Laufenden (, , , ), .
Quelle: habr.com
