
In früheren Artikeln haben wir uns kurz mit dem ELK-Stack und der Konfiguration von Logstash für die Protokollanalyse vertraut gemacht. In diesem Artikel konzentrieren wir uns auf das Wichtigste aus analytischer Sicht: die Grafiken und Tabellen, die Sie vom System erwarten, und der Grund, warum alles erstellt wurde — diese sind in Dashboards. Heute werden wir uns näher mit der Visualisierungssoftware Kibanabefassen, sehen uns an, wie man Grafiken und Tabellen erstellt, und schließlich erstellen wir ein einfaches Dashboard basierend auf den Protokollen der Checkpoint-Firewall.
Der erste Schritt zum Arbeiten mit Kibana ist die Erstellung eines Indexmusters, logisch gesehen handelt es sich um eine Basis für Indizes, die nach einem bestimmten Prinzip einheitlich sind. Selbstverständlich handelt es sich hierbei um eine Konfiguration, um Kibana die gleichzeitige Suche nach Informationen in allen Indizes zu erleichtern. Diese wird durch die Zuordnung einer Zeichenfolge, beispielsweise „checkpoint-*“, und dem Namen des Index festgelegt. Zum Beispiel passt „checkpoint-2019.12.05“ zu diesem Muster, während einfach „checkpoint“ nicht passt. Es ist erwähnenswert, dass man in der Suche nicht gleichzeitig nach Informationen in verschiedenen Indexmustern suchen kann; später in den kommenden Artikeln werden wir sehen, dass API-Anfragen entweder nach dem Namen des Index oder nach einer einzigen Zeichenfolgenvorlage gemacht werden.
Danach überprüfen wir im Menü „Discover“, ob alle Protokolle indiziert werden und der richtige Parser eingerichtet ist. Falls Unstimmigkeiten auftreten, wie zum Beispiel die Änderung des Datentyps von String auf Integer, muss die Konfigurationsdatei von Logstash bearbeitet werden, damit die neuen Protokolle korrekt aufgezeichnet werden. Um sicherzustellen, dass die alten Protokolle vor der Änderung das gewünschte Format annehmen, hilft nur der Reindexierungsprozess. In zukünftigen Artikeln werden wir diese Operation detaillierter behandeln. Stellen wir sicher, dass alles in Ordnung ist, das Bild ist anklickbar:
Die Protokolle sind an ihrem Platz, daher können wir mit dem Aufbau von Dashboards beginnen. Anhand der Analysen der Dashboards von Sicherheitsprodukten lässt sich der Zustand der Informationssicherheit in der Organisation erkennen, die Schwachstellen der aktuellen Politik visuell darstellen und zukünftige Maßnahmen zu deren Beseitigung entwickeln. Wir erstellen ein kleines Dashboard, das aus mehreren Visualisierungstools besteht. Das Dashboard wird aus 5 Komponenten bestehen:
- Tabelle zur Zählung der Gesamtzahl der Protokolle nach Blades
- Tabelle zu kritischen IPS-Signaturen
- Kreisdiagramm zu Threat Prevention-Ereignissen
- Diagramm der meistbesuchten Websites
- Diagramm zur Nutzung der gefährlichsten Anwendungen
Um Visualisierungsfiguren zu erstellen, müssen Sie im Menü Visualisieren, die gewünschte Figur auswählen, die wir erstellen möchten! Lassen Sie uns Schritt für Schritt vorgehen.
Tabelle zur Zählung der Gesamtzahl der Protokolle nach Blades
Dafür wählen wir die Figur Daten Tabelle, gehen zur Werkzeugkonsole zum Erstellen von Grafiken, auf der linken Seite werden die Figureneinstellungen festgelegt, 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:
Ausführlichere die Einstellungen der Figur, das Bild ist klickbar:
Lassen Sie uns die Einstellungen durchgehen.
Zuerst wird die Metrik, der Wert, nach dem alle Felder aggregiert werden. Metriken werden basierend auf Werten berechnet, die auf verschiedene Weise aus Dokumenten extrahiert wurden. Die Werte werden normalerweise aus den Feldern des Dokuments extrahiert, können aber auch mit Skripten generiert werden. In diesem Fall setzen wir auf Aggregation: Zählen (Gesamtanzahl der Protokolle).
Danach teilen wir die Tabelle in Segmente (Felder), anhand derer die Metrik berechnet wird. Diese Funktion wird durch die Einstellung von Buckets ausgeführt, die ihrerseits aus zwei Konfigurationsvarianten besteht:
- split rows — Hinzufügen von Spalten und anschließende Unterteilung der Tabelle in Zeilen
- split table — Unterteilung in mehrere Tabellen nach den Werten eines bestimmten Feldes.
In buckets Es können mehrere Unterteilungen hinzugefügt werden, um mehrere Spalten oder Tabellen zu erstellen; die Einschränkungen sind hier eher logisch. Bei der Aggregation kann ausgewählt werden, nach welcher Methode die Segmentierung stattfinden soll: ipv4 range, date range, Terms usw. Die interessanteste Wahl ist Terms und Significant Terms, die Segmentierung erfolgt nach den Werten eines bestimmten Indexfeldes, der Unterschied zwischen ihnen liegt in der Anzahl der zurückgegebenen Werte und deren Anzeige. Da wir die Tabelle nach den Namen der Blades teilen möchten, wählen wir das Feld — product.keyword und legen die Größe auf 25 zurückgegebene Werte fest.
Anstelle von Zeilen verwendet Elasticsearch zwei Datentypen — text und keyword. Wenn Sie eine Volltextsuche durchführen möchten, sollten Sie den Typ text verwenden, was sehr praktisch ist, wenn Sie Ihren eigenen Suchdienst erstellen, zum Beispiel um nach einem bestimmten Wort in einem bestimmten Feld (Text) zu suchen. Wenn Sie nur eine genaue Übereinstimmung benötigen, sollten Sie den Typ keyword verwenden. Der Datentyp keyword eignet sich auch für Felder, die eine Sortierung oder Aggregation erfordern, also in unserem Fall.
Elasticsearch zählt die Anzahl der Logs über einen bestimmten Zeitraum und aggregiert dabei nach dem Wert des Feldes product. Im Custom Label definieren wir den Namen der Spalte, die in der Tabelle angezeigt wird, legen die Zeit fest, für die wir die Logs sammeln, und starten das Rendering - Kibana sendet eine Anfrage an Elasticsearch, wartet auf die Antwort und visualisiert die erhaltenen Daten. Die Tabelle ist fertig!
Kreisdiagramm zu Ereignissen der Bedrohungsabwehr
Besonders interessant ist die Information, wie hoch der prozentuale Anteil an Reaktionen insgesamt ist detect und prevent auf Vorfälle in der IT-Sicherheit in der aktuellen Sicherheitsrichtlinie. In diesem Fall eignet sich ein Kreisdiagramm gut. Wählen Sie in Visualize — Kreisdiagramm. In der Metrik legen wir auch die Aggregation nach der Anzahl der Logs fest. In den Buckets setzen wir Terms => action.
Es scheint alles richtig zu sein, aber im Ergebnis werden Werte für alle Blades angezeigt. Wir müssen nur die Blades filtern, die im Rahmen der Bedrohungsverhinderung arbeiten. Daher stellen wir sicher, dass wir den Filter einrichten, um Informationen nur für die Blades zu suchen, die für die IT-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 IPS-Ereignissen
Ein weiterer wichtiger Punkt aus der Sicht der IT-Sicherheit ist die Überprüfung und Kontrolle der Ereignisse nach Blade IPS und Threat Emulation, die nicht von der aktuellen Politik blockiert werden, um später entweder die Signatur auf "Prevent" zu setzen oder, wenn der Traffic gültig ist — die Signatur nicht zu überprüfen. Die Tabelle erstellen wir ähnlich wie im ersten Beispiel, mit dem Unterschied, dass wir mehrere Spalten erstellen: protections.keyword, severity.keyword, product.keyword, originsicname.keyword. Wir richten unbedingt den Filter ein, um Informationen nur für die Blades zu suchen, die für die IT-Sicherheitsvorfälle verantwortlich sind — product: ("SmartDefense" OR "Threat Emulation"). Das Bild ist klickbar: Die aktuelle Politik sieht vor, dass wir entweder die Signatur auf "prevent" umstellen oder, wenn der Traffic gültig ist, die Signatur nicht überprüfen. Die Tabelle erstellen wir ebenso wie im ersten Beispiel, nur mit dem Unterschied, dass wir mehrere Spalten anlegen: protections.keyword, severity.keyword, product.keyword, originsicname.keyword. Wir stellen unbedingt einen Filter ein, um Informationen nur über die Blade-Produkte zu suchen, die für Sicherheitsvorfälle zuständig sind — product: ("SmartDefense" OR "Threat Emulation"). Das Bild ist klickbar:
Detailliertere Einstellungen, das Bild ist klickbar:
Diagramme der am häufigsten besuchten Websites
Dazu erstellen wir eine Figur — Vertical Bar. Wir verwenden auch die Metrik count (Y-Achse), und auf der X-Achse verwenden wir die Namen der besuchten Websites — "appi_name". Es gibt einen kleinen Trick: Wenn Sie die Einstellungen in der aktuellen Variante ausführen, werden alle Websites auf dem Diagramm in einer Farbe angezeigt. Um sie unterschiedlich farbig darzustellen, verwenden wir eine zusätzliche Einstellung — "split series", die es uns ermöglicht, die bereits vorhandene Spalte in mehrere Werte zu unterteilen, abhängig vom gewählten Feld! Diese Unterteilung kann entweder als eine mehrfarbige Spalte im gestapelten Modus oder im normalen Modus verwendet werden, um mehrere Spalten basierend auf dem gewählten Wert der X-Achse zu erstellen. In diesem Fall verwenden wir den gleichen Wert wie auf der X-Achse, was es ermöglicht, alle Spalten mehrfarbig darzustellen; oben rechts werden sie durch Farben angezeigt. Wir setzen im Filter — product: "URL Filtering", um Informationen nur zu den besuchten Websites anzuzeigen, das Bild ist klickbar:
Einstellungen:
Diagramm zur Nutzung der gefährlichsten Anwendungen
Dazu erstellen wir eine Figur – Vertical Bar. Als Metrik verwenden wir ebenfalls einen Count (Y-Achse), und auf der X-Achse verwenden wir die Namen der genutzten Anwendungen – "appi_name". Entscheidend ist die Festlegung des Filters – product: "Application Control" AND app_risk: (4 OR 5 OR 3) AND action: "accept". Wir filtern die Protokolle nach dem Blade Application Control, nehmen nur die Websites, die als kritisch, hoch oder mittel kategorisiert sind, und nur wenn der Zugriff auf diese Seiten erlaubt ist. Das Bild ist klickbar:
Einstellungen, klickbar:
Dashboard
Die Ansicht und Erstellung von Dashboards befindet sich in einem separaten Menüpunkt – Instrumententafel. Hier ist alles einfach; ein neues Dashboard wird erstellt, eine Visualisierung hinzugefügt, alles an die richtigen Plätze geschoben, und das war's!
Wir erstellen ein Dashboard, um die grundlegende Situation der Informationssicherheit in der Organisation zu verstehen, klarerweise nur auf der Check Point Ebene, das Bild ist klickbar:
Anhand dieser Grafiken können wir verstehen, welche kritischen Signaturen nicht von der Firewall blockiert werden, wohin die Benutzer surfen und welche der gefährlichsten Anwendungen sie verwenden.
Fazit
Wir haben die Grundlagen der Visualisierung in Kibana betrachtet und ein Dashboard erstellt, aber das ist nur ein kleiner Teil. Im weiteren Verlauf des Kurses werden wir uns speziell mit der Konfiguration von Karten, der Arbeit mit Elasticsearch, API-Anfragen, Automatisierung und vielem mehr beschäftigen!
Also bleiben Sie dran für Updates (, , , ), .
Quelle: habr.com
