VMware Horizon-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Omnissa Horizon-Logs (früher VMware Horizon) mit Bindplane in Google Security Operations aufnehmen. Der Parser verwendet zuerst reguläre Ausdrücke (Grok-Muster), um Felder aus rohen Syslog-Nachrichten zu extrahieren. Anschließend werden die extrahierten Felder den entsprechenden Feldern im Chronicle UDM-Schema zugeordnet und die Daten für die Analyse normalisiert und strukturiert.

Hinweise

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

  • Google SecOps-Instanz
  • Windows 2016 oder höher oder ein Linux-Host mit systemd
  • Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
  • Privilegierter Zugriff auf Omnissa Horizon 8

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie 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 > „Profil“ 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
    

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
    

Zusätzliche Installationsressourcen

Weitere Installationsoptionen finden Sie im Installationsleitfaden.

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

  1. Rufen Sie die Konfigurationsdatei auf:
    • Suchen Sie die Datei config.yaml. Normalerweise befindet sie sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    • Öffnen Sie die Datei mit einem Texteditor (z. B. nano, vi oder Notepad).
  2. Bearbeiten Sie die Datei config.yamlso:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'VMWARE_HORIZON'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
    • Ersetzen Sie <customer_id> durch die tatsächliche Kunden-ID.
    • Aktualisieren Sie /path/to/ingestion-authentication-file.json auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Google SecOps-Aufnahmeauthentifizierungsdatei abrufen gespeichert wurde.

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

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:

    sudo systemctl restart bindplane-agent
    
  • Wenn Sie den Bindplane-Agent unter Windows neu starten möchten, können Sie entweder die Konsole Dienste verwenden oder den folgenden Befehl eingeben:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Syslog für Omnissa Horizon (früher VMware Horizon) konfigurieren

  1. Melden Sie sich in der Onmissa Horizon-Web-UI an.
  2. Rufen Sie die Einstellungen>Event-Konfiguration auf.
  3. Klicken Sie im Bereich An Syslog-Server senden auf Hinzufügen.
  4. Geben Sie die IP-Adresse und Portnummer des Bindplane-Agents ein. Das Bindplane-Protokoll muss als UDP konfiguriert sein.
  5. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
ActionId metadata.product_log_id Der Wert von „ActionId“ aus dem Rohlog wird „metadata.product_log_id“ zugeordnet.
admin_domain principal.administrative_domain Der Wert von „admin_domain“ aus dem Rohlog wird „principal.administrative_domain“ zugeordnet.
BrokerName principal.hostname Der Wert von „BrokerName“ aus dem Rohlog wird „principal.hostname“ zugeordnet.
BrokerSessionId network.session_id Der Wert von „BrokerSessionId“ aus dem Rohlog wird „network.session_id“ zugeordnet.
ClientIpAddress principal.ip Der Wert von „ClientIpAddress“ aus dem Rohlog wird „principal.ip“ zugeordnet.
CurrentSessionLength network.session_duration.seconds Der Wert von „CurrentSessionLength“ aus dem Rohlog wird in eine Ganzzahl umgewandelt und dann „network.session_duration.seconds“ zugeordnet.
description metadata.description Der Wert von „description“ aus dem Rohlog wird „metadata.description“ zugeordnet.
DesktopDisplayName principal.hostname Der Wert von „DesktopDisplayName“ aus dem Rohlog wird „principal.hostname“ zugeordnet.
EventType metadata.product_event_type Der Wert von „EventType“ aus dem Rohlog wird „metadata.product_event_type“ zugeordnet.
ForwardedClientIpAddress principal.nat_ip Der Wert von „ForwardedClientIpAddress“ aus dem Rohlog wird „principal.nat_ip“ zugeordnet.
GlobalEntitlementName target.user.group_identifiers Der Wert von „GlobalEntitlementName“ aus dem Rohlog wird „target.user.group_identifiers“ zugeordnet.
host principal.hostname Der Wert von „host“ aus dem Rohlog wird „principal.hostname“ zugeordnet.
MachineDnsName principal.url Der Wert von „MachineDnsName“ aus dem Rohlog wird „principal.url“ zugeordnet.
MachineName intermediary.hostname Der Wert von „MachineName“ aus dem Rohlog wird „intermediary.hostname“ zugeordnet.
Module additional.fields Der Schlüssel „Module“ mit dem Wert „Module“ aus dem Rohlog wird dem Array „additional.fields“ hinzugefügt.
pid principal.process.pid Der Wert von „pid“ aus dem Rohlog wird „principal.process.pid“ zugeordnet.
PoolId additional.fields Der Schlüssel „PoolId“ mit dem Wert „PoolId“ aus dem Rohlog wird dem Array „additional.fields“ hinzugefügt.
program principal.application Der Wert von „program“ aus dem Rohlog wird „principal.application“ zugeordnet.
SessionType additional.fields Der Schlüssel „SessionType“ mit dem Wert „SessionType“ aus dem Rohlog wird dem Array „additional.fields“ hinzugefügt.
Severity security_result.severity Der Wert von „Severity“ aus dem Rohlog wird in Großbuchstaben angegeben, generischen Chronicle-Schweregraden zugeordnet und dann „security_result.severity“ zugeordnet.
timestamp metadata.event_timestamp Der Wert von „timestamp“ aus dem Rohlog wird in das Chronicle-Format konvertiert und dann „metadata.event_timestamp“ zugeordnet.
UserDisplayName target.user.user_display_name Der Wert von „UserDisplayName“ aus dem Rohlog wird „target.user.user_display_name“ zugeordnet.
UserName target.user.userid Der Wert von „UserName“ aus dem Rohlog wird „target.user.userid“ zugeordnet.
UserSID target.user.windows_sid Der Wert von „UserSID“ aus dem Rohlog wird „target.user.windows_sid“ zugeordnet.
ViewApiMethodName additional.fields Der Schlüssel „ViewApiMethodName“ mit dem Wert „ViewApiMethodName“ aus dem Rohlog wird dem Array „additional.fields“ hinzugefügt.
ViewApiServiceName additional.fields Der Schlüssel „ViewApiServiceName“ mit dem Wert „ViewApiServiceName“ aus dem Rohlog wird dem Array „additional.fields“ hinzugefügt.
extensions.auth.type Der Wert wird auf „SSO“ festgelegt, wenn das Feld „EventType“ einen der folgenden Werte hat: „ADMIN_USERLOGGEDOUT“, „AGENT_CONNECTED“, „AGENT_DISCONNECTED“, „AGENT_ENDED“, „AGENT_PENDING“, „AGENT_PENDING_EXPIRED“, „AGENT_RECONNECTED“, „BROKER_DESKTOP_REQUEST“, „BROKER_LMV_REMOTE_POD_DESKTOP_LAUNCH“, „BROKER_MACHINE_ALLOCATED“, „BROKER_USER_AUTHFAILED_BAD_USER_PASSWORD“, „BROKER_USER_LOCK_SSO“, „BROKER_USERLOGGEDIN“, „BROKER_USERLOGGEDOUT“, „VLSI_USERLOGGEDIN“, „VLSI_INSUFFICIENT_PERMISSION“, „VLSI_USERLOGGEDIN_REST“, „TIMING_PROFILER_TUNNEL_CONNECTION“, „TIMING_PROFILER_GET_LAUNCH_ITEMS“, „TIMING_PROFILER_USER_AUTHENTICATION“.
metadata.event_type Der Wert wird durch das Feld „EventType“ bestimmt. Wenn „EventType“ einer der folgenden Werte ist: „ADMIN_USERLOGGEDOUT“, „AGENT_DISCONNECTED“, „AGENT_ENDED“, „AGENT_PENDING_EXPIRED“, „BROKER_USER_LOCK_SSO“, „BROKER_USERLOGGEDOUT“, dann ist „metadata.event_type“ „USER_LOGOUT“. Wenn „EventType“ einer der folgenden Werte ist: „AGENT_CONNECTED“, „AGENT_PENDING“, „AGENT_RECONNECTED“, „BROKER_USERLOGGEDIN“, „VLSI_USERLOGGEDIN“, „VLSI_INSUFFICIENT_PERMISSION“, „VLSI_USERLOGGEDIN_REST“, dann ist „metadata.event_type“ „USER_LOGIN“. Wenn „EventType“ „TIMING_PROFILER_GET_LAUNCH_ITEMS“ ist, ist „metadata.event_type“ „STATUS_UNCATEGORIZED“. Wenn „EventType“ „AGENT_SHUTDOWN“ ist, ist „metadata.event_type“ „STATUS_SHUTDOWN“. Wenn „EventType“ einer der folgenden Werte ist: „AGENT_STARTUP“, „BROKER_LMV_REMOTE_POD_DESKTOP_LAUNCH“, dann ist „metadata.event_type“ „STATUS_STARTUP“. Andernfalls ist „metadata.event_type“ „GENERIC_EVENT“.
metadata.log_type Der Wert ist auf „VMWARE_HORIZON“ festgelegt.
metadata.product_name Der Wert ist auf „HORIZON“ festgelegt.
metadata.vendor_name Der Wert ist auf „VMWARE“ festgelegt.

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