LogonBox-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie LogonBox-Logs mit Bindplane in Google Security Operations aufnehmen.

LogonBox ist eine Self-Service-Plattform für die Passwortverwaltung und Identitätsüberprüfung. Es werden Audit-Logs für das Zurücksetzen von Passwörtern, Ereignisse zur Identitätsbestätigung und Administratoraktionen generiert. Der Parser ordnet LogonBox-Audit-Daten dem Unified Data Model (UDM) zu und erfasst Nutzeridentitäten, Authentifizierungsereignisse, Ressourcenänderungen und Gruppenverwaltungsvorgänge.

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 LogonBox-Server
  • Wenn der Agent hinter einem Proxy ausgeführt wird, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Privilegierter Zugriff auf die LogonBox-Verwaltungskonsole

Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen

Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agent bei Google SecOps zu authentifizieren:

  • Neue Deployments: Verwenden Sie die Chronicle API (Option 1).
  • Legacy-Bereitstellungen: Verwenden Sie die Authentifizierungsdatei für die Datenaufnahme (Option 2) weiter, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
  1. Melden Sie sich in der Google Cloud Console an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
  2. Rufen Sie IAM & Verwaltung > Dienstkonten auf.
  3. Klicken Sie auf Dienstkonto erstellen.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Name des Dienstkontos: Geben Sie einen Namen für das Konto ein, z. B. bindplane-ingest.
    • Dienstkontobeschreibung: Geben Sie eine Beschreibung ein (z. B. Bindplane agent log ingestion).
  5. Klicken Sie auf Erstellen und fortfahren.
  6. Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle Editor aus.
  7. Klicken Sie auf Weiter und dann auf Fertig.
  8. Klicken Sie auf das erstellte Dienstkonto und rufen Sie dann den Tab Schlüssel auf.
  9. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
  10. Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
  11. Speichern Sie die Schlüsseldatei als ingestion-auth.json im Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.json unter Linux oder C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json unter Windows) oder aktualisieren Sie creds_file_path in config.yaml, damit der Pfad mit dem Pfad übereinstimmt, in dem Sie die Datei speichern.
  12. Rufen Sie IAM und Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Exporter-Konfiguration.

Option 2: Authentifizierungsdatei für die Aufnahme herunterladen (Legacy)

  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.
  4. Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert werden soll.

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 Kundennummer aus dem Bereich Organization Details (Organisationsdetails).

Bindplane-Agent installieren

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

Windows-Installation

  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. Warte, 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)" install_unix.sh
    
  3. Warte, 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 Problembehebung finden Sie im Installationsanleitung für den Bindplane-Agent.

Bindplane-Agent so konfigurieren, dass Syslog-Daten aufgenommen und an Google SecOps gesendet werden

Konfigurationsdatei suchen

  • Linux:

    sudo nano /opt/observiq-otel-collector/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/logonbox:
        protocol: https
        # Region of your instance, for example us, europe, asia-southeast1
        location: <LOCATION>
        # Project number of the Google Cloud project linked to the instance
        project: '<PROJECT_NUMBER>'
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: chronicle.googleapis.com
        log_type: LOGONBOX
        raw_log_field: body
    
    service:
      pipelines:
        logs/logonbox:
          receivers:
            - udplog
          exporters:
            - chronicle/logonbox
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • udplog: Der Empfängertyp basierend auf dem Protokoll:
      • udplog für UDP-Syslog
      • tcplog für TCP-Syslog
      • syslog für RFC 3164/5424-Syslog
    • 0.0.0.0: IP-Adresse, auf der gelauscht werden soll:
      • 0.0.0.0, um auf allen Schnittstellen zu lauschen (empfohlen)
      • Bestimmte IP-Adresse für die Überwachung einer Schnittstelle
    • 514: Portnummer, auf der gelauscht werden soll (z. B. 514, 1514, 6514)
  • Exporter-Konfiguration:

    • <customer_id>: Kundennummer aus dem vorherigen Schritt
    • location: Ersetzen Sie <LOCATION> durch die Region Ihrer Google SecOps-Instanz (z. B. us, europe oder asia-southeast1). Der Exporter stellt diesem Wert chronicle.googleapis.com voran. Eine vollständige Liste finden Sie unter Regionale Endpunkte.
    • project: Ersetzen Sie <PROJECT_NUMBER> durch die Projektnummer aus IAM & Verwaltung > Einstellungen.
    • endpoint: Behalten Sie die Einstellung chronicle.googleapis.com bei.
    • Passen Sie creds_file_path je nach Plattform an den Pfad der JSON-Schlüsseldatei Ihres Dienstkontos an (Option 1):
      • Linux: /opt/observiq-otel-collector/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json

Legacy-Ingestion-API-Exporter

  • Wenn Sie die Authentifizierungsdatei für die Datenaufnahme aus Option 2 verwenden, ersetzen Sie den Block exporters durch Folgendes. Legen Sie für creds_file_path den Pfad zur Authentifizierungsdatei für die Datenaufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Sie malachiteingestion-pa.googleapis.com durch Ihren regionalen Endpunkt (z. B. europe-malachiteingestion-pa.googleapis.com).

    exporters:
      chronicle/logonbox:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: LOGONBOX
        raw_log_field: body
    

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-Agenten 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. Prüfen Sie die Logs auf Fehler:

    sudo journalctl -u observiq-otel-collector -f
    

So starten Sie den Bindplane-Agenten 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 Console:
      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. Rechtsklicken Sie und wählen Sie Neu starten aus.
  2. Prüfen Sie, ob der Dienst ausgeführt wird:

    sc query observiq-otel-collector
    
  3. Prüfen Sie die Logs auf Fehler:

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

Syslog-Weiterleitung für LogonBox konfigurieren

  1. Melden Sie sich als Administrator in der LogonBox-Verwaltungskonsole an.
  2. Gehen Sie zu Berichte > Audit-Log.
  3. Konfigurieren Sie die Syslog-Export-Einstellungen:
    • Syslog-Server: Geben Sie die IP-Adresse des Bindplane-Agent-Hosts ein (z. B. 192.168.1.100).
    • Port: Geben Sie 514 ein (muss mit dem Bindplane-Empfängerport übereinstimmen).
    • Protokoll: Wählen Sie UDP aus (muss mit dem Bindplane-Empfängertyp übereinstimmen).
  4. Wählen Sie die Ereigniskategorien aus, die weitergeleitet werden sollen, z. B. Passwortzurücksetzungen, Identitätsüberprüfungen, Nutzer- und Gruppenverwaltung.
  5. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
additional.fields Zusammengeführt aus attr_associatedPrincipals_label, sAMAccountName_label, attr_local_label, msDS-PrincipalName_label, attr_realmType_label, attr_selfCreated_label, attr_administrative_label basierend auf Bedingungen
attr_principalDesc, desc metadata.description Wert aus attr_principalDesc, wenn product_event_type mit changePassword|SessionService übereinstimmt, andernfalls aus attr_principalDesc, wenn nicht leer, andernfalls aus desc
event_type metadata.event_type Wert, der direkt aus „event_type“ kopiert wird, nachdem er durch die bedingte Logik basierend auf „product_event_type“ und den Präsenzkennzeichnungen festgelegt wurde
product_event_type metadata.product_event_type Wert direkt kopiert
metadata.product_name Legen Sie diesen Wert auf „LogonBox“ fest.
metadata.vendor_name Legen Sie diesen Wert auf „LOGONBOX“ fest.
network.application_protocol Auf „DNS“ festlegen, wenn „product_event_type“ mit „AnswerService“ übereinstimmt und die Bedingungen erfüllt sind
dns_answer network.dns.answers Aus dns_answer zusammengeführt
dns_question network.dns.questions Aus dns_question zusammengeführt
attr_userAgent, attr_userAgentVersion network.http.parsed_user_agent Verkettet aus attr_userAgent und attr_userAgentVersion, wenn beide vorhanden sind, andernfalls aus attr_userAgent, dann in parseduseragent konvertiert und umbenannt
attr_userAgent, attr_userAgentVersion network.http.user_agent Wird aus „attr_userAgent“ und „attr_userAgentVersion“ verkettet, falls beide vorhanden sind, andernfalls aus „attr_userAgent“.
Hostname principal.asset.hostname Wert direkt kopiert
attr_ipAddress principal.asset.ip Wert direkt kopiert
Hostname principal.hostname Wert direkt kopiert
attr_ipAddress principal.ip Wert direkt kopiert
attr_os principal.platform In Großbuchstaben und festgelegt, wenn (?i)LINUX|MAC|WINDOWS übereinstimmt
attr_osVersion principal.platform_version Wert wird direkt kopiert, wenn er nicht mit (?i)unknown übereinstimmt
attr_principalRealm_label, attr_unassignedRoles_label, attr_assignedRoles_label, attr_oldResourceName_label, attr_roles_label, attr_resumedPrincipalName_label, attr_resumedPrincipalRealm_label, attr_resumedPrincipal_label, attr_module_label, reconcile_map_label, users_map_label, groups_map_label, createUser_map_label, user_map_label, mobile_map_label principal.resource.attribute.labels Zusammengeführt aus verschiedenen Labels, die aus attr_principalRealm, attr_unassignedRoles, attr_assignedRoles, attr_oldResourceName, attr_roles, attr_resumedPrincipalName, attr_resumedPrincipalRealm, attr_resumedPrincipal, attr_module und Zuordnungen aus reconcile, users, groups, createUser, user, mobile basierend auf Bedingungen erstellt wurden
attr_resourceName principal.resource.name Wert direkt kopiert
attr_resourceId principal.resource.product_object_id Wert direkt kopiert
mail principal.user.email_addresses Zusammengeführt, wenn die E‑Mail-Adresse gültig ist
ImmutableID, attr_uuid principal.user.product_object_id Wert aus ImmutableID, wenn product_event_type mit changePassword|userUpdated|userCreated|setPassword|answer|accountUnlockNoSuspension übereinstimmt, andernfalls aus attr_uuid
attr_scheme principal.user.role_name Wert direkt kopiert
attr_principalDesc principal.user.user_display_name Wert wird direkt kopiert, wenn product_event_type mit changePassword|SessionService übereinstimmt
attr_principalName principal.user.userid Wert direkt kopiert
authy_code_length_label, authy_window_length_label, authy_step_size_label, msauthenticator_code_length_label, msauthenticator_window_length_label, msauthenticator_step_size_label, googleUser_code_length_label, googleUser_window_length_label, googleUser_step_size_label security_result.detection_fields Zusammengeführt aus Labels, die aus authy.code.length, authy.window.length, authy.step.size, msauthenticator.code.length, msauthenticator.window.length, msauthenticator.step.size, googleUser.code.length, googleUser.window.length, googleUser.step.size erstellt wurden, falls vorhanden
cn target.resource.attribute.labels Zusammengeführt aus full_name_label, das aus cn erstellt wurde, und attr_disabledRealm_label aus attr_disabledRealm
attr_lastModified target.resource.attribute.last_update_time Datum, das aus „attr_lastModified“ mit ISO8601 oder d MMM yyyy HH:mm:ss geparst wurde
attr_created target.resource.attribute.creation_time Datum, das aus „attr_created“ im ISO8601-Format oder im Format „d MMM yyyy HH:mm:ss“ geparst wurde
givenName target.user.first_name Wert direkt kopiert
ou target.user.group_identifiers Zusammengeführt aus ou, wenn product_event_type mit userUpdated|userCreated|changePassword|setPassword|answer|accountUnlockNoSuspension übereinstimmt
sn target.user.last_name Wert direkt kopiert
attr_uuid, attr_disabledPrincipal target.user.product_object_id Wert aus „attr_uuid“, wenn „product_event_type“ mit „userUpdated“ | „userCreated“ | „changePassword“ | „setPassword“ | „answer“ | „accountUnlockNoSuspension“ oder „groupCreated“ | „groupUpdated“ oder „attr_group“ oder „group“ übereinstimmt, andernfalls aus „attr_disabledPrincipal“, wenn „accountDisabled“
displayName, description target.user.user_display_name Wert aus displayName, wenn nicht leer, andernfalls aus description, wenn product_event_type mit userUpdated|userCreated|changePassword|setPassword|answer|accountUnlockNoSuspension übereinstimmt
userPrincipalName, attr_user, attr_associatedPrincipals, attr_disabledPrincipalName target.user.userid Wert aus userPrincipalName, wenn product_event_type mit userUpdated|userCreated|changePassword|setPassword|answer|accountUnlockNoSuspension übereinstimmt, andernfalls attr_user, wenn nicht festgelegt, andernfalls attr_associatedPrincipals, wenn groupCreated|groupUpdated oder attr_group, andernfalls attr_user, wenn group, andernfalls attr_disabledPrincipalName, wenn accountDisabled
attr_group target.group.group_display_name Der Wert wird direkt kopiert, wenn „product_event_type“ mit „groupCreated|groupUpdated“ übereinstimmt oder „attr_group“ vorhanden ist.
attr_uuid target.group.product_object_id Der Wert wird direkt kopiert, wenn „product_event_type“ mit „groupCreated“ oder „groupUpdated“ übereinstimmt oder „attr_group“ vorhanden ist.

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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