Citrix StoreFront-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Citrix StoreFront-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser extrahiert Felder aus Logs, die im Windows-Ereignisprotokoll von Citrix StoreFront formatiert sind. Dabei wird die Windows-Ereignisprotokollsammlung verwendet, um die Protokollnachricht zu parsen. Anschließend werden diese Werte dem Unified Data Model (UDM) zugeordnet. Außerdem werden Standardmetadatenwerte für die Ereignisquelle und den Ereignistyp festgelegt. Der Parser extrahiert Daten aus Citrix StoreFront-JSON-Logs, indem er das Feld „message“ mithilfe einer Reihe von grok-Mustern in einzelne Einheiten wie Session, User, AppInstance, App, Connection und Machine aufteilt. Anschließend werden die extrahierten Felder einer UDM-Struktur (Unified Data Model) zugeordnet und anhand von bedingter Logik und Datentransformationen mit Informationen zu Netzwerk, Auftraggeber, Vermittler und Ziel angereichert.

Hinweise

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

  • Eine Google SecOps-Instanz.
  • Ein Host mit Windows 2016 oder höher mit systemd, auf dem Bindplane installiert wird
  • 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 den Citrix StoreFront-Server und die Verwaltungskonsole
  • Administratorzugriff auf den Windows-Server, auf dem StoreFront gehostet wird

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
    

Zusätzliche Installationsressourcen

BindPlane-Agent zum Erfassen von Windows-Ereignisprotokollen und Senden an Google SecOps konfigurieren

  1. Konfigurationsdatei aufrufen:

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

    receivers:
      windowseventlog/storefront:
        channel: Application
        operators:
          - type: filter
            expr: 'record["source_name"] matches "^Citrix"'
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: 'C:/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: CUSTOMER_ID_PLACEHOLDER
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'CITRIX_STOREFRONT'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/storefront:
          receivers:
            - windowseventlog/storefront
          exporters:
            - chronicle/chronicle_w_labels
    
    • Ersetzen Sie CUSTOMER_ID_PLACEHOLDER durch die tatsächliche Kundennummer.
    • 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

  1. Um den BindPlane-Agenten in Windows neu zu starten, können Sie entweder die Konsole Dienste verwenden oder den folgenden Befehl eingeben:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

StoreFront-Ereignisprotokollierung konfigurieren

  1. Melden Sie sich mit Administratorberechtigungen auf dem StoreFront-Server an.
  2. Öffnen Sie PowerShell als Administrator.
  3. Laden Sie das StoreFront-PowerShell-Modul:

    Add-PSSnapin Citrix.DeliveryServices.Framework.Commands
    
  4. Ausführliches Logging zur Fehlerbehebung aktivieren (optional):

    Set-STFDiagnostics -All -TraceLevel "Info" -confirm:$False
    
  5. Prüfen Sie, ob die Windows-Ereignisprotokollierung aktiviert ist:

    • Öffnen Sie die Ereignisanzeige auf dem StoreFront-Server.
    • Gehen Sie zu Anwendungs- und Dienstprotokolle>Citrix Delivery Services.
    • Prüfen Sie, ob Ereignisse für den Authentifizierungsdienst, die Stores und Receiver für Websites protokolliert werden.

Optional: Drosselung von Ereignisprotokollen konfigurieren

  1. Rufen Sie die StoreFront-Konfigurationsverzeichnisse auf:
    • Authentifizierungsdienst: C:/inetpub/wwwroot/Citrix/Authentication
    • Händler: C:/inetpub/wwwroot/Citrixstorename
    • Empfänger für Website: C:/inetpub/wwwroot/Citrixstorename/Web
  2. Öffnen Sie die Datei web.config in jedem Verzeichnis mit einem Texteditor.
  3. Suchen Sie das Logger-Element und konfigurieren Sie es nach Bedarf:

    <logger duplicateInterval="00:01:00" duplicateLimit="10">
    
  4. duplicateInterval: Legen Sie den Zeitraum in Stunden, Minuten und Sekunden fest, in dem doppelte Logeinträge überwacht werden.

  5. duplicateLimit: Legen Sie die Anzahl der doppelten Einträge fest, die innerhalb des angegebenen Zeitintervalls protokolliert werden müssen, um die Protokolldrosselung auszulösen.

  6. Speichern Sie die Konfigurationsdateien.

Logerfassung prüfen

  1. Öffnen Sie die Windows-Ereignisanzeige auf dem StoreFront-Server.
  2. Gehen Sie zu Windows-Protokolle> Anwendung oder Anwendungs- und Dienstprotokolle> Citrix Delivery Services.
  3. Prüfen Sie, ob StoreFront-Ereignisse generiert werden.
  4. Prüfen Sie die Bindplane-Agent-Logs, um zu bestätigen, dass Logs an Google SecOps weitergeleitet werden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
App.PublishedName _principal.application Der Wert wird aus dem Feld „App.PublishedName“ übernommen.
Connection.ClientAddress _principal.asset.ip Der Wert wird aus dem Feld „Connection.ClientAddress“ übernommen.
Connection.ClientName _principal.asset.hostname Der Wert wird aus dem Feld „Connection.ClientName“ übernommen.
Connection.ClientPlatform _principal.asset.platform_software.platform Der Wert wird aus dem Feld „Connection.ClientPlatform“ übernommen und in Großbuchstaben umgewandelt. Wenn der Wert „WINDOWS“, „MAC“ oder „LINUX“ ist, wird er direkt verwendet. Andernfalls wird der Wert auf „UNKNOWN_PLATFORM“ gesetzt.
Connection.ConnectedViaHostName src.hostname Der Wert stammt aus dem Feld „Connection.ConnectedViaHostName“.
Connection.LaunchedViaHostName _intermediary.hostname Der Wert wird aus dem Feld „Connection.LaunchedViaHostName“ übernommen. Der Namespace ist auf „StoreFront-Server“ festgelegt.
Connection.LaunchedViaIPAddress _intermediary.ip Der Wert wird aus dem Feld „Connection.LaunchedViaIPAddress“ übernommen.
Connection.Protocol network.application_protocol Der Wert wird aus dem Feld „Connection.Protocol“ übernommen. Wenn der Wert „HDX“ ist, wird er auf „UNKNOWN_APPLICATION_PROTOCOL“ gesetzt.
Machine.AgentVersion metadata.product_version Der Wert wird aus dem Feld „Machine.AgentVersion“ übernommen.
Machine.AssociatedUserNames _intermediary.user.userid Der Wert wird aus dem Feld „Machine.AssociatedUserNames“ übernommen. Jeder Name wird extrahiert und als User-ID für ein zwischengeschaltetes Nutzerobjekt verwendet.
Machine.AssociatedUserUPNs _target.group.email_addresses Der Wert wird aus dem Feld „Machine.AssociatedUserUPNs“ übernommen. Jede E-Mail-Adresse wird extrahiert und dem Feld „email_addresses“ der Zielgruppe hinzugefügt.
Machine.ControllerDnsName _intermediary.hostname Der Wert wird aus dem Feld „Machine.ControllerDnsName“ übernommen. Der Namespace ist auf „Controller“ festgelegt.
Machine.CreatedDate _target.asset.attribute.creation_time Der Wert wird aus dem Feld „Machine.CreatedDate“ übernommen und in einen Zeitstempel konvertiert.
Machine.DesktopGroupId _target.group.product_object_id Der Wert wird aus dem Feld „Machine.DesktopGroupId“ übernommen.
Machine.DnsName _target.asset.network_domain Der Wert wird aus dem Feld „Machine.DnsName“ übernommen.
Machine.HostedMachineName _target.asset.hostname Der Wert wird aus dem Feld „Machine.HostedMachineName“ übernommen.
Machine.HostingServerName _intermediary.hostname Der Wert wird aus dem Feld „Machine.HostingServerName“ übernommen. Der Namespace ist auf „Hypervisor“ festgelegt.
Machine.IPAddress _target.asset.ip Der Wert wird aus dem Feld „Machine.IPAddress“ übernommen.
Machine.LastDeregisteredDate _target.asset.last_discover_time Der Wert wird aus dem Feld „Machine.LastDeregisteredDate“ übernommen und in einen Zeitstempel konvertiert.
Machine.ModifiedDate _target.asset.system_last_update_time Der Wert wird aus dem Feld „Machine.ModifiedDate“ übernommen und in einen Zeitstempel konvertiert.
Machine.Name _target.asset.asset_id, _target.administrative_domain Der Wert wird aus dem Feld „Machine.Name“ übernommen und in Domain- und Asset-Teile aufgeteilt. Der Domainteil wird als administrative Zieldomain und der Asset-Teil zum Erstellen der Ziel-Asset-ID im Format „machine:“ verwendet.
Machine.OSType _target.asset.platform_software.platform_version Der Wert wird aus dem Feld „Machine.OSType“ übernommen.
Machine.PoweredOnDate _target.asset.last_boot_time Der Wert wird aus dem Feld „Machine.PoweredOnDate“ übernommen und in einen Zeitstempel konvertiert.
Machine.RegistrationStateChangeDate _target.asset.first_discover_time Der Wert wird aus dem Feld „Machine.RegistrationStateChangeDate“ übernommen und in einen Zeitstempel konvertiert.
Session.EndDate _vulns.last_found Der Wert wird aus dem Feld „Session.EndDate“ übernommen und in einen Zeitstempel konvertiert.
Session.LifecycleState extensions.auth.auth_details Der Wert wird aus dem Feld „Session.LifecycleState“ übernommen. Wenn der Wert 0 ist, wird er auf „ACTIVE“ gesetzt. Wenn der Wert 1 ist, wird er auf „DELETED“ gesetzt. Wenn der Wert 2 oder 3 ist, wird er auf „UNKNOWN_AUTHENTICATION_STATUS“ festgelegt.
Session.LogOnDuration network.session_duration.seconds Der Wert wird aus dem Feld „Session.LogOnDuration“ übernommen und in eine Ganzzahl konvertiert.
Session.SessionKey network.session_id Der Wert wird aus dem Feld „Session.SessionKey“ übernommen.
Session.StartDate _vulns.first_found Der Wert wird aus dem Feld „Session.StartDate“ übernommen und in einen Zeitstempel konvertiert.
User.Domain _principal.user.company_name, _principal.administrative_domain Der Wert wird aus dem Feld „User.Domain“ übernommen und sowohl als Unternehmensname des Hauptnutzers als auch als primäre Administratordomain verwendet.
User.FullName _principal.user.user_display_name Der Wert wird aus dem Feld „User.FullName“ übernommen.
User.Sid _principal.user.windows_sid Der Wert wird aus dem Feld „User.Sid“ übernommen.
User.Upn _principal.user.email_addresses Der Wert wird aus dem Feld „User.Upn“ übernommen und dem Feld „email_addresses“ des Hauptnutzers hinzugefügt.
User.UserName _principal.user.userid Der Wert wird aus dem Feld „User.UserName“ übernommen.
metadata.event_type Der Wert ist auf „USER_LOGIN“ festgelegt.
metadata.vendor_name Der Wert wird auf „Citrix“ festgelegt.
metadata.product_name Der Wert ist auf „Monitor Service OData“ festgelegt.
extensions.auth.type Der Wert ist auf „MACHINE“ festgelegt.
_intermediary.namespace Der Wert wird je nach Zwischenobjekt auf „StoreFront server“, „Controller“ oder „Hypervisor“ festgelegt.
_target.asset.type Der Wert ist auf „WORKSTATION“ festgelegt.

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