Omnissa Horizon-Logs (früher VMware Horizon) 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.

Omnissa Horizon ist eine VDI-Plattform (Virtual Desktop Infrastructure), die Endnutzern virtuelle Desktops und Anwendungen zur Verfügung stellt. Sie bietet eine zentrale Verwaltung von virtuellen Maschinen, Sitzungsüberwachung und Richtliniendurchsetzung in lokalen und Hybrid-Cloud-Umgebungen. Der Parser extrahiert Felder aus Syslog-Rohdaten mithilfe von regulären Ausdrücken (Grok-Mustern) und ordnet sie dem Unified Data Model (UDM) zu.

Hinweis

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

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder Linux-Host mit systemd
  • Netzwerkverbindung zwischen dem Bindplane-Agent und dem Omnissa Horizon Connection Server
  • Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Privilegierter Zugriff auf die Omnissa Horizon Console (Administratorrolle)

Authentifizierungsdatei für die Google SecOps-Datenaufnahme 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](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 Dienst sollte als RUNNING (Wird ausgeführt) angezeigt werden.

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](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 Dienst sollte als aktiv (wird ausgeführt) angezeigt werden.

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

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

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/vmware_horizon:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: VMWARE_HORIZON
            raw_log_field: body
    
    service:
        pipelines:
            logs/vmware_horizon_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/vmware_horizon
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • listen_address: IP-Adresse und Port, auf dem gelauscht werden soll:

      • 0.0.0.0, um alle Schnittstellen zu überwachen (empfohlen)
      • Port 514 ist der Standard-Syslog-Port (erfordert Root unter Linux; verwenden Sie 1514 für Nicht-Root).
  • 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: Die Kundennummer, die aus der Google SecOps Console kopiert wurde

    • 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.

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
    
    • Dienste-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"
    

Syslog-Weiterleitung in Omnissa Horizon (früher VMware Horizon) konfigurieren

  1. Melden Sie sich mit einem Administratorkonto in der Omnissa Horizon Console an.
  2. Rufen Sie die Einstellungen > Ereigniskonfiguration auf.
  3. Klicken Sie im Bereich An Syslog-Server senden auf Hinzufügen.

  4. Geben Sie die folgenden Konfigurationsdetails an:

    • Serveradresse: Geben Sie die IP-Adresse des BindPlane-Agent-Hosts ein (z. B. 192.168.1.100).
    • Port: Geben Sie 514 ein.
    • Protokoll: Wählen Sie UDP aus.
  5. Klicken Sie auf Speichern.

  6. Prüfen Sie anhand der Bindplane-Agent-Logs, ob Ereignisse weitergeleitet werden.

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 konvertiert 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 umgewandelt, generischen Schweregraden und dann security_result.severity zugeordnet.
timestamp metadata.event_timestamp Der Wert von timestamp aus dem Rohlog wird in das entsprechende 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 additional.fields-Array hinzugefügt.
extensions.auth.type Der Wert wird auf „SSO“ gesetzt, 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 „AGENT_STARTUP“ oder „BROKER_LMV_REMOTE_POD_DESKTOP_LAUNCH“ ist, 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.
SecurityID event.idm.read_only_udm.principal.user.windows_sid Aus dem Änderungsprotokoll zugeordnet
AccountName event.idm.read_only_udm.principal.user.userid Aus dem Änderungsprotokoll zugeordnet
AccountDomain event.idm.read_only_udm.principal.administrative_domain Aus dem Änderungsprotokoll zugeordnet
ObjectServer event.idm.read_only_udm.target.application Aus dem Änderungsprotokoll zugeordnet
ObjectName event.idm.read_only_udm.target.user.windows_sid Aus dem Änderungsprotokoll zugeordnet
HandleID event.idm.read_only_udm.target.resource.product_object_id Aus dem Änderungsprotokoll zugeordnet
ProcessID event.idm.read_only_udm.principal.process.pid Aus dem Änderungsprotokoll zugeordnet
ProcessName event.idm.read_only_udm.principal.process.file.full_path Aus dem Änderungsprotokoll zugeordnet
LogonID event.idm.read_only_udm.principal.user.attribute.labels Aus dem Änderungsprotokoll zugeordnet
ObjectType event.idm.read_only_udm.target.resource.attribute.labels Aus dem Änderungsprotokoll zugeordnet
AccessMask event.idm.read_only_udm.security_result.detection_fields Aus dem Änderungsprotokoll zugeordnet
TransactionID event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
PrivilegesUsedforAccessCheck event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
Accesses event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
AccessReasons event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
Properties event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
RestrictedSIDCount event.idm.read_only_udm.additional.fields Aus dem Änderungsprotokoll zugeordnet
usr target.user.userid Aus dem Änderungsprotokoll zugeordnet
MachineId principal.asset.asset_id Aus dem Änderungsprotokoll zugeordnet
int_host intermediary.hostname Aus dem Änderungsprotokoll zugeordnet
ip_1 principal.ip Aus dem Änderungsprotokoll zugeordnet
port_number principal.port Aus dem Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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