Erst kürzlich habe ich mich mit einem Kunden unterhalten, der mithilfe von Splunk eine Suchanfrage durchführen wollte. Ziel war es, Ereignisse zu identifizieren, die mit einer ihm zuvor bereitgestellten Microsoft Excel Kalkulationstabelle mit verschiedenen IP-Adressen übereinstimmen. Dabei setzte er für die Durchführung seiner Suchanfrage jedes einzelne Element aus der Tabelle in eine separate Suche ein. Ein sehr mühsamer und vor allem zeitraubender Aufwand.
In Splunk gibt es hierfür eine deutlich bessere Möglichkeit.
Als ehemaliger Sicherheitsexperte war ich in der Vergangenheit mit ähnlichen Situationen konfrontiert. Erörtern wir daher einige Punkte, wie ihr mithilfe von Splunk solche Vorhaben in Zukunft kinderleicht erledigen könnt.
Darum geht's in diesem Beitrag:
Grafische Benutzeroberfläche zum Bearbeiten und Importieren von Dateien
Zunächst empfehle ich Euch, die Lookup-Editor-App einmal genauer anzusehen. Diese App ist kostenlos und macht es möglichh, neue Lookup-Dateien zu erstellen und diese auf einer ansprechenden Oberfläche zu bearbeiten. Wenn Ihr eine Kalkulationstabelle aus Excel importieren wollt, braucht Ihr diese lediglich als CSV-Datei zu speichern und anschließend mithilfe der App zu importieren.
Hierfür einfach den Lookup-Editor öffnen und auf die Schaltfläche „Neu" klicken. Anschließend oben rechts auf „Aus einer CSV-Datei importieren" klicken und die gewünschte Datei auswählen, wodurch die Inhalte der Lookup-Datei direkt in die Ansicht importiert werden. Per Klick auf „Speichern" steht Euch die Datei dauerhaft zur Verfügung.
Bearbeiten von Lookup-Dateien in der Suche
Neben der mühsamen Übertragung der einzelnen Suchanfragen erwähnte der Kunde im Gespräch auch noch einen weiteren Punkt: Demnach musste er in der Lookup-Datei einige Dinge erst bereinigen und korrigieren, bevor diese weiterverwendet werden konnte. Hierfür nahm er die Änderungen manuell vor, obwohl die Suchoberfläche von Splunk optimale Möglichkeiten zur Anpassung von CSV-Dateien bietet.
Betrachten wir ein Beispiel, bei dem ich das E-Mail-Adressfeld in einer CSV-Datei in separate Felder für die Domänen- und die lokale Adresse aufteilen möchte (d. h., ich möchte aus „john.doe@gmail.com" „john.doe" und „gmail.com" erhalten). Zunächst zeige ich die Lookup-Datei in der Suche an, indem ich den inputlookup-Suchbefehl verwende (ausgehend von der Annahme, dass sie bereits mithilfe der Lookup-Editor-App importiert wurde):
| inputlookup email_addresses.csv append=t
Dies führt zu einer Ausgabe, die wie folgt aussieht:
first_name | last_name | |
---|---|---|
jdoe@gmail.com | James | Doe |
josephine_darakjy@darakjy.org | Josephine | Darakjy |
Anschließend verwende ich den rex-Suchbefehl, um den lokalen und den Domänen-Anteil voneinander zu trennen:
| inputlookup email_addresses.csv append=t | rex field=email "(?<local_portion>.*)@(?<domain_portion>.*)"
Dieser Vorgang ergibt dann die folgende Ausgabe:
first_name | last_name | local_portion | domain_portion | |
---|---|---|---|---|
jdoe@gmail.com | James | Doe | jdoe | gmail.com |
josephine_darakjy@darakjy.org | Josephine | Darakjy | josephine_darakjy | darakjy.org |
Da mir die Ausgabe jetzt gewünschter Form zur Verfügung steht, kann ich diese mithilfe von outputlookup in eine neue Lookup-Datei (email_addresses_2.csv) überschreiben:
| inputlookup email_addresses.csv append=t | rex field=email "(?.*)@(?.*)" | outputlookup email_addresses_2.csv
Darüber hinaus stehen Euch aber noch viele weitere Möglichkeiten offen, um Suchsprache zu verwenden oder CSV-Files zu bearbeiten (bspw. Entfernen von Zeilen und Spalten, Umformatierung von Zellen, etc.). Lasst Eurer Kreativität also freien Lauf.
Suche mithilfe von Lookup-Dateien
Nun könnt Ihr die Lookup-Datei für die Suche nach Ereignisse nutzen, die mit der angegebenen Lookup-Datei übereinstimmen. Um entsprechende Ereignisse herauszufiltern, verwende ich den join-Befehl:
| search * | join domain [| inputlookup append=t email_addresses.csv | eval domain=domain_portion]
Achtet dabei darauf, den Befehl „| search *” in der Form zu ändern, dass dieser auch tatsächlich zu den von Euch gesuchten Ereignissen passt. Denn schließlich ist eine „*”-Suche wohl ziemlich überflüssig.
Fazit
Auch wenn Ihr nichts Neues aus diesem Artikel mitnehmen solltet, eines steht jedenfalls fest: Splunk kann mit Lookups einige verrückte Dinge anstellen. Falls Ihr bei der Verwendung von Lookup-Dateien mit jeder Menge manuellem Aufwand konfrontiert seid, solltet Ihr definitiv nach einem besseren Weg suchen. Findet Ihr in diesem Zusammenhang keine adäquate Option, könnt Ihr Eure Fragen jederzeit auf answers.splunk.com veröffentlichen. Wir versuchen Euch dann gerne weiterzuhelfen.
----------------------------------------------------
Vielen Dank!
Luke Murphey
*Dieser Artikel wurde aus dem Englischen übersetzt und editiert. Den Originalblogpost findet ihr hier.
Die Splunk-Plattform beseitigt die Hürden zwischen Daten und Handlungen, damit Observability-, IT- und Security-Teams in ihren Unternehmen für Sicherheit, Resilienz und Innovation sorgen können.
Splunk wurde 2003 gegründet und ist ein globales Unternehmen – mit mehr als 7.500 Mitarbeitern, derzeit über 1.020 Patenten und einer Verfügbarkeit in 21 Regionen rund um den Globus. Mit seiner offenen, erweiterbaren Datenplattform, die die gemeinsame Nutzung von Daten in beliebigen Umgebungen unterstützt, bietet Splunk allen Teams im Unternehmen für jede Interaktion und jeden Geschäftsprozess End-to-End-Transparenz mit Kontext. Bauen auch Sie eine starke Datenbasis auf – mit Splunk.