Elastic Windows Event Log Beats-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Elastic Windows Event Log Beats-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.

Winlogbeat ist der Windows-spezifische Event-Log-Versand-Agent von Elastic, der Windows-Ereignisprotokolle erfasst und an verschiedene Ziele weiterleitet. Er wird als Windows-Dienst auf Windows-Systemen ausgeführt und kann Ereignisse aus den Windows-Ereignisprotokollkanälen „Anwendung“, „Sicherheit“, „System“ und anderen Kanälen erfassen.

Hinweise

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder ein Linux-Host mit systemd zum Ausführen des BindPlane-Agents
  • Netzwerkverbindung zwischen dem Bindplane-Agent und dem Logstash-Server
  • Netzwerkverbindung zwischen Logstash und dem Bindplane-Agent
  • Wenn Sie den Agent hinter einem Proxy ausführen, achten Sie darauf, dass die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sind.
  • Windows-Systeme, auf denen Winlogbeat installiert wird, um Ereignisprotokolle zu erfassen
  • Administratorzugriff auf Windows-Systeme für die Winlogbeat-Installation
  • Logstash-Server (Version 7.x oder 8.x) für die Zwischenverarbeitung

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Aufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Profile auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.

Fenstereinbau

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sc query observiq-otel-collector
    

    Der Dienststatus sollte RUNNING lauten.

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
  2. Führen Sie dazu diesen Befehl aus:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sudo systemctl status observiq-otel-collector
    

    Der Dienststatus sollte active (running) lauten.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

Konfigurationsdatei suchen

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Konfigurationsdatei bearbeiten

  1. Ersetzen Sie den gesamten Inhalt von config.yaml durch die folgende Konfiguration:

    receivers:
        tcplog:
            listen_address: "0.0.0.0:1514"
    
    exporters:
        chronicle/winlogbeat:
            compression: gzip
            creds_file_path: '<CREDS_FILE_PATH>'
            customer_id: '<CUSTOMER_ID>'
            endpoint: <REGION_ENDPOINT>
            log_type: ELASTIC_WINLOGBEAT
            raw_log_field: body
            ingestion_labels:
                env: production
                source: winlogbeat
    
    service:
        pipelines:
            logs/winlogbeat_to_chronicle:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/winlogbeat
    
  2. Ersetzen Sie die folgenden Platzhalter:

    • Empfängerkonfiguration:

      • listen_address: Auf 0.0.0.0:1514 gesetzt, um an allen Schnittstellen auf Port 1514 (TCP) zu lauschen. Sie können die Portnummer bei Bedarf ändern. Sie muss jedoch mit der Logstash-Syslog-Ausgabekonfiguration übereinstimmen.
    • Exporter-Konfiguration:

      • <CREDS_FILE_PATH>: Vollständiger Pfad zur Datei für die Authentifizierung bei der Aufnahme:

        • Linux: /etc/bindplane-agent/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • <CUSTOMER_ID>: Kunden-ID aus dem vorherigen Schritt

      • <REGION_ENDPOINT>: Regionale Endpunkt-URL:

        • USA: malachiteingestion-pa.googleapis.com
        • Europa: europe-malachiteingestion-pa.googleapis.com
        • Asien: asia-southeast1-malachiteingestion-pa.googleapis.com
        • Eine vollständige Liste finden Sie unter Regionale Endpunkte.

Konfigurationsbeispiel:

  • receivers:
      tcplog:
        listen_address: "0.0.0.0:1514"
    
    exporters:
      chronicle/winlogbeat:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: ELASTIC_WINLOGBEAT
        raw_log_field: body
        ingestion_labels:
          env: production
          source: winlogbeat
    
    service:
      pipelines:
        logs/winlogbeat_to_chronicle:
          receivers:
            - tcplog
          exporters:
            - chronicle/winlogbeat
    

Konfigurationsdatei speichern

Speichern Sie die Datei nach der Bearbeitung:

  • Linux: Drücken Sie Ctrl+O, dann Enter und dann Ctrl+X.
  • Windows: Klicken Sie auf Datei > Speichern.

Bindplane-Agent neu starten, um die Änderungen zu übernehmen

  • So starten Sie den Bindplane-Agent unter Linux neu:

    1. Führen Sie dazu diesen Befehl aus:

      sudo systemctl restart observiq-otel-collector
      
    2. Prüfen Sie, ob der Dienst ausgeführt wird:

      sudo systemctl status observiq-otel-collector
      
    3. Logs auf Fehler prüfen:

      sudo journalctl -u observiq-otel-collector -f
      
  • So starten Sie den Bindplane-Agent unter Windows neu:

    1. Wählen Sie eine der folgenden Optionen aus:

      • Eingabeaufforderung oder PowerShell als Administrator:

        net stop observiq-otel-collector && net start observiq-otel-collector
        
      • Services-Konsole:

        1. Drücken Sie Win+R, geben Sie services.msc ein und drücken Sie die Eingabetaste.
        2. Suchen Sie nach observIQ OpenTelemetry Collector.
        3. Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
    2. Prüfen Sie, ob der Dienst ausgeführt wird:

      sc query observiq-otel-collector
      
    3. Logs auf Fehler prüfen:

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      

Logstash installieren und konfigurieren

Logstash ist als Vermittler erforderlich, um Ereignisse von Winlogbeat zu empfangen und über Syslog an den Bindplane-Agent weiterzuleiten. Winlogbeat bietet keine native Syslog-Ausgabefunktion.

Logstash installieren

  1. Laden Sie Logstash von der Elastic-Downloadseite herunter.
  2. Logstash auf einem Windows- oder Linux-Server installieren:
  • Linux (Debian/Ubuntu):

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    sudo apt-get install apt-transport-https
    echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
    sudo apt-get update && sudo apt-get install logstash
    
  • Linux (RHEL/CentOS):

    sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    sudo tee /etc/yum.repos.d/logstash.repo <<EOF
    [logstash-8.x]
    name=Elastic repository for 8.x packages
    baseurl=https://artifacts.elastic.co/packages/8.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md
    EOF
    sudo yum install logstash
    
  • Windows:

    1. Laden Sie die ZIP-Datei von der Elastic-Downloadseite herunter.
    2. Extrahieren nach C:\logstash.

Logstash-Pipeline konfigurieren

  1. Neue Pipeline-Konfigurationsdatei erstellen:

    • Linux:

      sudo nano /etc/logstash/conf.d/winlogbeat-to-syslog.conf
      
    • Windows:

      notepad "C:\logstash\config\winlogbeat-to-syslog.conf"
      
  2. Fügen Sie die folgende Konfiguration hinzu:

    input {
        beats {
            port => 5044
        }
    }
    
    output {
        syslog {
            host => "<BINDPLANE_AGENT_IP>"
            port => 1514
            protocol => "tcp"
            rfc => "rfc5424"
            appname => "winlogbeat"
            facility => "user-level"
            severity => "informational"
        }
    }
    
  3. Ersetzen Sie <BINDPLANE_AGENT_IP> durch die IP-Adresse des Servers, auf dem der Bindplane-Agent ausgeführt wird.

Beispiel für die Logstash-Konfiguration

  • input {
        beats {
            port => 5044
        }
    }
    
    output {
        syslog {
            host => "192.168.1.100"
            port => 1514
            protocol => "tcp"
            rfc => "rfc5424"
            appname => "winlogbeat"
            facility => "user-level"
            severity => "informational"
        }
    }
    

Logstash starten

  • Linux:

    1. Starten Sie Logstash:

      sudo systemctl start logstash
      sudo systemctl enable logstash
      
    2. Prüfen Sie, ob Logstash ausgeführt wird:

      sudo systemctl status logstash
      
    3. Logstash-Logs prüfen:

      sudo tail -f /var/log/logstash/logstash-plain.log
      
  • Windows:

    cd C:\logstash\bin
    logstash.bat -f C:\logstash\config\winlogbeat-to-syslog.conf
    

    Für die Produktion sollten Sie Logstash als Windows-Dienst mit NSSM oder ähnlichen Tools installieren.

Winlogbeat auf Windows-Systemen installieren

Winlogbeat herunterladen

  1. Laden Sie Winlogbeat von der Elastic-Downloadseite herunter.
  2. Wählen Sie das ZIP- oder MSI-Installationsprogramm für Windows aus.

Winlogbeat installieren

  • MSI-Installationsprogramm verwenden:

    1. Führen Sie das MSI-Installationsprogramm aus.
    2. Folgen Sie dem Installationsassistenten.
    3. Am Standardspeicherort installieren: C:\Program Files\Winlogbeat.
  • ZIP-Datei verwenden:

    1. Extrahieren Sie die ZIP-Datei nach C:\Program Files\Winlogbeat.
    2. Öffnen Sie PowerShell als Administrator.
    3. Rufen Sie das Winlogbeat-Verzeichnis auf:

      cd 'C:\Program Files\Winlogbeat'
      
    4. Führen Sie das Installationsskript aus:

      .\install-service-winlogbeat.ps1
      

Winlogbeat so konfigurieren, dass Logs an Logstash gesendet werden

  1. Öffnen Sie die Winlogbeat-Konfigurationsdatei:

    notepad "C:\Program Files\Winlogbeat\winlogbeat.yml"
    
  2. Konfigurieren Sie die zu erfassenden Ereignisprotokolle. Suchen Sie den Abschnitt winlogbeat.event_logs und konfigurieren Sie ihn so:

    winlogbeat.event_logs:
      - name: Application
        ignore_older: 72h
      - name: System
      - name: Security
      - name: Microsoft-Windows-Sysmon/Operational
        ignore_older: 72h
      - name: Windows PowerShell
        event_id: 400, 403, 600, 800
      - name: Microsoft-Windows-PowerShell/Operational
        event_id: 4103, 4104, 4105, 4106
      - name: ForwardedEvents
        tags: [forwarded]
    
  3. Kommentieren Sie den Elasticsearch-Ausgabeabschnitt aus, indem Sie am Anfang jeder Zeile # hinzufügen:

    #output.elasticsearch:
    #  hosts: ["localhost:9200"]
    
  4. Heben Sie die Auskommentierung des Logstash-Ausgabeabschnitts auf und konfigurieren Sie ihn:

    output.logstash:
      hosts: ["<LOGSTASH_SERVER_IP>:5044"]
    
  5. Ersetzen Sie <LOGSTASH_SERVER_IP> durch die IP-Adresse Ihres Logstash-Servers.

Beispiel für die Winlogbeat-Konfiguration

  • winlogbeat.event_logs:
      - name: Application
        ignore_older: 72h
      - name: System
      - name: Security
      - name: Microsoft-Windows-Sysmon/Operational
        ignore_older: 72h
    
    output.logstash:
      hosts: ["192.168.1.50:5044"]
    

Konfigurationsdatei speichern

Speichern und schließen Sie die Datei.

Winlogbeat-Dienst starten

  1. Öffnen Sie PowerShell als Administrator.
  2. Starten Sie den Winlogbeat-Dienst:

    Start-Service winlogbeat
    
  3. Prüfen Sie, ob der Dienst ausgeführt wird:

    Get-Service winlogbeat
    

    Der Status sollte Wird ausgeführt lauten.

  4. Winlogbeat-Logs auf Fehler prüfen:

    Get-Content "C:\ProgramData\winlogbeat\Logs\winlogbeat" -Tail 50
    

Logfluss prüfen

Winlogbeat-zu-Logstash-Verbindung prüfen

  1. Prüfen Sie auf dem Logstash-Server die Logstash-Logs:

    • Linux:

      sudo tail -f /var/log/logstash/logstash-plain.log
      
    • Windows:

      type C:\logstash\logs\logstash-plain.log
      
  2. Suchen Sie nach Nachrichten, die auf Beats-Verbindungen hinweisen:

    [INFO ][logstash.inputs.beats] Beats inputs: Starting input listener {:address=>"0.0.0.0:5044"}
    

Verbindung zwischen Logstash und Bindplane-Agent prüfen

  1. Prüfen Sie auf dem BindPlane-Agent-Server die Agent-Logs:

    • Linux:

      sudo journalctl -u observiq-otel-collector -f
      
    • Windows:

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      
  2. Suchen Sie nach Meldungen, die auf eine erfolgreiche Aufnahme von Logs hinweisen.

Logs in Google SecOps prüfen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die Suche auf.
  3. Führen Sie eine Suchanfrage aus, um zu prüfen, ob Winlogbeat-Logs aufgenommen werden:

    metadata.log_type = "ELASTIC_WINLOGBEAT"
    
  4. Prüfen Sie, ob Windows-Ereignisprotokolle in den Suchergebnissen angezeigt werden.

Fehlerbehebung

Winlogbeat stellt keine Verbindung zu Logstash her

  • Prüfen Sie die Netzwerkverbindung zwischen Winlogbeat und Logstash:

    Test-NetConnection -ComputerName <LOGSTASH_IP> -Port 5044
    
  • Prüfen Sie, ob die Windows-Firewallregeln ausgehende Verbindungen an Port 5044 zulassen.

  • Prüfen Sie, ob Logstash Port 5044 überwacht:

    • Linux:

      sudo netstat -tulpn | grep 5044
      
    • Windows:

      netstat -an | findstr 5044
      

Logstash leitet nicht an den Bindplane-Agent weiter

  • Netzwerkverbindung zwischen Logstash und Bindplane-Agent prüfen:

    • Linux:

      telnet <BINDPLANE_IP> 1514
      
    • Windows:

      Test-NetConnection -ComputerName <BINDPLANE_IP> -Port 1514
      
  • Prüfen Sie, ob Firewallregeln TCP-Verbindungen über Port 1514 zulassen.

  • Prüfen Sie, ob der Bindplane-Agent den Port 1514 überwacht:

    • Linux:

      sudo netstat -tulpn | grep 1514
      
    • Windows:

      netstat -an | findstr 1514
      

Logs werden nicht in Google SecOps angezeigt

  • Prüfen Sie, ob die Kundennummer und die Datei für die Authentifizierung der Aufnahme korrekt sind.
  • Prüfen Sie die Bindplane-Agent-Logs auf Authentifizierungsfehler.
  • Prüfen Sie, ob der regionale Endpunkt mit der Region Ihrer Google SecOps-Instanz übereinstimmt.
  • Achten Sie darauf, dass log_type genau wie dargestellt auf ELASTIC_WINLOGBEAT eingestellt ist.

UDM-Zuordnungstabelle

Für diesen Parser sind keine Informationen zur Feldzuordnung verfügbar.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten