Softwareentwicklung

Winlogbeat: Windows-Ereignisprotokolle analysieren und verwalten

Funktionen und Vorteile von Winlogbeat

Winlogbeat ist ein leichtgewichtiger Datenerfassungsagent der Firma Elastic, der speziell für die Erfassung und Weiterleitung von Windows-Ereignisprotokollen entwickelt wurde. Winlogbeat bietet u.a. folgende Vorteile und Mehrwerte:

  • Zentralisierte Protokollverwaltung
    Winlogbeat ermöglicht es, Ereignisprotokolle von mehreren Windows-Systemen zentral zu sammeln und zu verwalten. Dies erleichtert die Überwachung und Analyse von Systemereignissen, da alle Protokolle an einem Ort konsolidiert werden.
  • Integration mit dem Elastic Stack
    Winlogbeat ist nahtlos in den Elastic Stack (Elasticsearch, Logstash, Kibana) integriert. Dies ermöglicht leistungsstarke Such-, Analyse- und Visualisierungsfunktionen für Windows-Ereignisprotokolle. Mit Kibana können Anwender benutzerdefinierte Dashboards erstellen und Ereignisprotokolle in Echtzeit visualisieren.
  • Echtzeitüberwachung und -alarmierung
    Durch die Integration mit Elasticsearch können Benutzer Echtzeit-Überwachungs- und Alarmierungsregeln konfigurieren. Dies ermöglicht eine sofortige Benachrichtigung bei bestimmten Ereignissen oder Anomalien, was besonders für die Sicherheitsüberwachung und die Reaktion auf Vorfälle wertvoll ist.
  • Flexibilität und Anpassbarkeit
    Winlogbeat bietet viele Konfigurationsoptionen, um genau festzulegen, welche Ereignisprotokolle gesammelt und wie sie verarbeitet werden sollen. Benutzer können beispielsweise bestimmte Ereignistypen oder -quellen filtern und auswählen, welche Daten weitergeleitet werden sollen.
  • Sicherheit
    Winlogbeat unterstützt die Verschlüsselung und Authentifizierung für die Datenübertragung. Damit wird sichergestellt, dass die gesammelten Protokolldaten sicher an Elasticsearch oder Logstash übertragen werden.
  • Unterstützung verschiedener Windows-Versionen
    Winlogbeat unterstützt eine Vielzahl von Windows-Versionen und ist damit flexibel und vielseitig einsetzbar, unabhängig davon, welche Windows-Versionen in der Infrastruktur eingesetzt werden.
  • Open Source und Community Unterstützung
    Als Teil des Elastic Stack ist Winlogbeat Open Source, das bedeutet es ist frei verfügbar und wird von einer großen Community unterstützt. Anwender profitieren von regelmäßigen Updates, Verbesserungen und einer Vielzahl von Community-Ressourcen.
  • Vereinfachte Compliance
    Durch die Zentralisierung und Analyse von Windows-Ereignisprotokollen kann Winlogbeat Organisationen helfen, Compliance-Anforderungen zu erfüllen, indem es eine umfassende Protokollierung und Überwachung sicherstellt.

Zusammenfassend bietet Winlogbeat eine effiziente, flexible und sichere Möglichkeit, Windows-Ereignisprotokolle zu sammeln und zu analysieren. Es verbessert die Transparenz und Kontrolle von Windows-Umgebungen und ist ein wertvolles Werkzeug für Systemadministratoren, Sicherheitsanalysten und Compliance-Teams.

Integration von Windows Security Events in Elasticsearch Winlogbeat und Logstash

Immer mehr Unternehmen sichern und überwachen ihre Server und Anwendungen mit einer SIEM-Lösung (Securit-Information Event Management). Die von den Betriebssystemen generierten Events in Form von Logdateien sollen möglichst zentral überwacht werden. Auf dem Markt gibt es verschiedene kommerzielle Anbieter deren Lösungen entsprechend teuer sind. Hier soll anhand eines einfachen Beispiels gezeigt werden, wie Windows Server (Domain Controller) Security Events mit Hilfe der Produkte von Elastic in einer produktiven Umgebung installiert und konfiguriert werden können.

In diesem Beispiel werden die folgenden Produkte in der freien Version von Elastic verwendet:

  • Elasticsearch als Datenbank
  • Logstash als Forwarder (empfängt die Events und leitet sie an Elasticsearch weiter)
  • Winlogbeat zum Auslesen und Weiterleiten der Windows-Events (Security-, Applikation-, System-Events)
  • Kibana für die Visualisierung (Dashboards) und das Monitoring

 Eine Architektur sieht beispielsweise wie folgt aus:

Zwischen dem Windows Domain Controller und dem Logstash Server befindet sich in der Regel eine Firewall. Der Domain Controller hat keinen direkten Zugriff auf den Elasticsearch Server (Datenbank). Der Kibana Service ist auf dem Application Layer installiert. Somit befindet sich zwischen allen Komponenten eine Firewall.

Download

Virtuelle Umgebung und Betriebssysteme

Das Beispiel kann mit den folgenden Downloads werden:

Hinweis: Die Installationseinstellungen müssen in den meisten Fällen in Englisch (US) sein, denn häufig funktioniert amerikanische Software nur, wenn Region, Zeichensatz, Zahlenformate und Sprache auf Englisch (US) eingestellt sind. Erst bei der Installation wird die deutsche Tastatur ausgewählt.  Mit dem folgenden Powershell-Befehl können die aktuellen NLS-Parameter angezeigt werden.

  • Get-ItemProperty
    HKLM:\SYSTEM\CurrentControlSet\Control\Nls\CodePage | Select-Object OEMCP, ACP
    OEMCP ACP
    —– —
    437   1252

Bei einem deutschen Betriebssystem ist es OEMCP=850.

Download Elastic Stack

Installation und Konfiguration von Winlogbeat

Zur Installation von Winlogbeat wird die ZIP-Datei einfach in ein Verzeichnis entpackt.
Danach sind folgende Schritte notwendig:

  • Konfiguration in der winlogbeat.yml Datei anpassen.
  • Konfiguration testen.
  • Laden der Indexe bzw. Indextemplates,  Lifecycle-Policy und Dashboards (Grafiken) in Kibana. Dieser Schritt erfordert eine direkte Verbindung von Winlogbeat zu Elasticsearch und Kibana. Das ist in der Regel in einer produktiven Umgebung meistens nicht gegeben.
  • Winlogbeat als Service einrichten.
  • Falls das Ausführen von Skripten auf dem Windows-System verhindert wird, muss folgender Powershell-Befehl zwingend mit “-ExecutionPolicy UnRestricted“ ausgeführt werden:
    PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1.

Danach ist Winlogbeat als Service in der Computerverwaltung > Services (Dienste) sichtbar.

Windows-Dienste mit markiertem Winlogbeat

Die beiden Dateien

  • winlogbeat.yml und
  • winlogbeat.reference.yml

sind hier wichtig. Die aktive Konfiguration ist in winlogbeat.yml gespeichert. Die möglichen bzw. alle Konfigurationsoptionen befinden sich in der Datei winlogbeat.reference.yml.

Die Datei winlogbeat.yml wird zuerst verwendet, um die Dashboards, Indexe etc. initial zu laden. Danach wird sie umkonfiguriert, um die Events via Logstash in Elasticsearch zu speichern.

Die Winlogbeat Konfiguration kann mit folgendem Kommando überprüft werden.

  • .\winlogbeat.exe test config -c .\winlogbeat.yml -e 

Der folgende Screenshot zeigt den erfolgreichen Output:

Konsolenausgabe eines Winlogbeat-Konfigurationstests

Für die initiale Einrichtung der vom Hersteller bereitgestellten Dashboard, Indextemplates, Index usw. wird nur einmal das folgende Kommando verwendet:

  • \winlogbeat.exe setup -e

Zuvor müssen in der Datei winlogbeat.yml die Abschnitte setup.kibana und output.elasticsearch wie in dem folgenden Screenshot konfiguriert werden. Der Benutzer „elastic“ ist der initiale Benutzer mit allen Berechtigungen. Es kann aber auch vorher ein anderer Benutzer mit entsprechenden Berechtigungen angelegt werden, der dann für die Konfiguration verwendet wird.

Winlogbeat-Konfiguration für Kibana und Elasticsearch

Wenn die Dashboards und der Index erfolgreich angelegt wurden, müssen die beiden Abschnitte setup.kibana und output.logstash komplett auskommentiert werden und im Abschnitt für den Logstash die IP (oder Host) und der Port eingetragen werden:

Logstash-Ausgabe in Winlogbeat-Konfiguration

Die Applikation Logs sind für eine SIEM-Lösung in der Regel uninteressant und wurden daher auskommentiert:

Winlogbeat-Konfiguration mit Event-Logs

Hat etwas nicht geklappt? Die vollständige Installationsanleitung des Herstellers finden Sie hier:
https://www.elastic.co/guide/en/beats/winlogbeat/current/winlogbeat-installation-configuration.html

Screenshots für diesen Text

Winlogbeat legt folgende Dashboards in Kibana an.

Kibana-Dashboardliste für Winlogbeat-Daten

Es wird entsprechend der Winlogbeat Version folgender Index angelegt.

Elasticsearch Index Management mit Winlogbeat-Index

Die initialen „Failed Logins“.

Kibana-Dashboard zu fehlgeschlagenen Anmeldungen

 „Failed Login“ in Echtzeit.

Kibana-Dashboard mit fehlgeschlagenen Logins

Alle konfigurierten Aktivitäten werden in Echtzeit angezeigt.

Kibana-Dashboard für Benutzeranmeldungen
Kibana-Dashboard zu Benutzerverwaltungsereignissen
Kibana-Dashboard zu fehlgeschlagenen Anmeldungen
Kibana-Dashboard zu Gruppenverwaltungsereignissen

Kibana bietet auch die Suche in den Events (Discover). Hier ein Beispiel.

Kibana Discover mit fehlgeschlagenen Anmeldungen
Kibana Discover mit fehlgeschlagenen Logon-Ereignissen

Der Logstash Output zu einem „Failed Login“ auf der Konsole. Für Logstash können mehrere Outputs gleichzeitig konfiguriert werden.

Logausgabe eines fehlgeschlagenen Windows-Logons
Strukturierter Windows-Logon-Event im Terminal

Die Integration von Windows-Sicherheitsereignissen in Elasticsearch mit Winlogbeat ist ein leistungsfähiger Ansatz, um Sicherheitsprotokolle zentral zu sammeln, zu analysieren und zu visualisieren.

Wenn keine direkte Verbindung von Winlogbeat auf Elasticsearch möglich ist, können die relevanten Objekte (Dashboard, Indexe u.s.w.) exportiert und wieder importiert werden (siehe Stack Management->Saved Objects). Für den automatisierten Export und Import kann die REST API von Kibana genutzt werden.

Beispiel: Export Import Saved Objects

Im Stackmanagement -> Saved Objects können alle notwendigen Objekte für WinlogBeat exportiert werden.
Hier wird das Objekt winlogbeat* (mit allen Abhängigkeiten) exportiert von Server mit IP 192.168.56.20

Kibana Saved Objects mit winlogbeat-Indexmuster

Der folgende Screenshot zeigt den fertigen Import auf einem anderen Server mit der IP 192.168.56.117. Der Export/Import kann ebenfalls über die REST API gemacht werden. Der automatisierte Export und Import ist damit möglich.

Kibana Saved Objects mit Importübersicht

Beispiel: Failed Login Windows und Elastic

Der folgende Screenshot zeigt einen „Failed Login“ im Windows Server Security Event.

Windows Ereignisanzeige mit Logon-Fehlern

Das gleiche Event wird in nahezu Echtzeit via Logstash in zwei verschiedene Elasticsearch Server gespeichert. Die nachfolgenden Screenshots zeigen die gezielte Suche nach diesem Event mit Hilfe von Kibana für 2 verschiedene Elasticsearch Instanzen (unterschiedliche IP).
Das Event von der Elasticsearch Instanz auf dem Host mit der IP 192.168.56.117.

Kibana Discover mit fehlgeschlagenem Logon

Das Event von der Elasticsearch Instanz auf dem Host mit der IP 192.168.56.20

Kibana Discover mit fehlgeschlagenem Logon-Ereignis

Die Logstash Konfiguration sieht wie folgt aus.

Die Events werden vom Windows Server an einen Logstash Server weitergeleitet, der sie an zwei verschiedene Elasticsearch Instanzen weiterleitet. Eine Instanz wurde verwendet, um die initiale Konfiguration von Winlogbeat in Kibana und Elasticsearch zu speichern, was wiederum die Development Umgebung simuliert. Die zweite Instanz auf einem anderen Server wurde für den Import der Winlogbeat Objekte benötigt. Der anschließende Test zeigt, dass beide Instanzen die Daten empfangen und speichern. Logstash kann gleichzeitig mehrere Outputs zu verschiedenen Systemen wie Elasticsearch, Kafka, Dateisystem usw. enthalten.

Logstash-Konfiguration für Beats und Elasticsearch

Kontakt

Sie suchen einen erfahrenen und zuverlässigen IT-Partner?

Wir bieten Ihnen individuelle Lösungen für Ihre Anliegen – von Beratung, über Entwicklung, Integration, bis hin zum Betrieb.

Jetzt kontaktieren