SecureAuth Identity Platform-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie SecureAuth Identity Platform-Logs mit dem Bindplane-Agenten in Google Security Operations aufnehmen.

SecureAuth Identity Platform ist eine Lösung für Single Sign-On und Identitätsverwaltung, die Syslog-Meldungen für Authentifizierungsereignisse, Sitzungsaktivitäten, Entscheidungen zur Zugriffssteuerung und Audit-Trails generiert. Der Parser extrahiert Felder aus Syslog- und XML-formatierten Logs mithilfe von 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 der SecureAuth Identity Platform
  • 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 SecureAuth

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

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

  • Neue Bereitstellungen: Verwenden Sie die Chronicle API (Option 1).
  • Alte Bereitstellungen: Verwenden Sie die Datei für die Authentifizierung bei der Aufnahme (Option 2) weiterhin, 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-Bearbeiter 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, sodass der Pfad mit dem Pfad übereinstimmt, unter 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 Datenaufnahme 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 Datenaufnahme herunter.
  4. Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent 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 Kundennummer aus dem Bereich Organization Details (Organisationsdetails).

BindPlane-Agent installieren

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

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 Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agenten.

Syslog konfigurieren und an Google SecOps senden

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/secureauth_sso:
        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: SECUREAUTH_SSO
        raw_log_field: body
    
    service:
      pipelines:
        logs/secureauth_sso_to_chronicle:
          receivers:
            - udplog
          exporters:
            - chronicle/secureauth_sso
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • listen_address: IP-Adresse und Port, auf die gewartet werden soll:
      • 0.0.0.0, um auf allen Schnittstellen zuzuhören (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 JSON-Schlüsseldatei des Dienstkontos (Option 1):
      • Linux: /opt/observiq-otel-collector/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
    • 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 unter IAM & Verwaltung > Einstellungen.
    • endpoint: Behalten Sie die Einstellung chronicle.googleapis.com bei.

Legacy-Ingestion-API-Exporter

  • Wenn Sie die Datei zur Authentifizierung bei der Aufnahme 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/secureauth_sso:
        compression: gzip
        creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json'
        customer_id: '<customer_id>'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: SECUREAUTH_SSO
        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.

Starten Sie den Bindplane-Agent neu, um die Änderungen zu übernehmen.

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

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

      sudo systemctl status observiq-otel-collector
      
    2. Prüfen Sie die Logs auf Fehler:

      sudo journalctl -u observiq-otel-collector -f
      
  • Wählen Sie eine der folgenden Optionen aus, um den Bindplane-Agenten unter Windows neu zu starten:

    • Eingabeaufforderung oder PowerShell als Administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Dienstkonsole:

      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.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

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

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

SecureAuth Identity Platform konfigurieren

  1. Melden Sie sich als Administrator in der SecureAuth Identity-Konsole an.
  2. Wählen Sie Logs aus.
  3. Geben Sie im Abschnitt Logoptionen die folgenden Konfigurationsdetails an:
    • Loginstanz-ID: Geben Sie die Loginstanz-ID, den Anwendungsnamen oder den Realm-Namen ein (z. B. SecureAuth1).
    • Audit-Logs: Klicken Sie das Kästchen Syslog an.
    • Fehlerlogs: Setzen Sie ein Häkchen bei Syslog.
    • Syslog-Server: Geben Sie die IP-Adresse Ihres Bindplane-Agents ein.
    • Syslog-Port: Geben Sie die Portnummer des Bindplane-Agents ein (z. B. 514).
    • Syslog-RFC-Spezifikation: Wählen Sie RFC 5424 aus.
  4. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
action_msg read_only_udm.target.process.command_line Wert des Felds action_msg
Appliance read_only_udm.principal.domain.name Wert des Felds Appliance
Appliance read_only_udm.target.administrative_domain Wert des Felds Appliance
BrowserSession read_only_udm.network.session_id Wert des Felds BrowserSession
cat read_only_udm.metadata.product_event_type Wert des Felds cat
Kategorie read_only_udm.metadata.product_event_type Wert des Felds Category
cn1 security_result.severity Zugeordnet basierend auf dem Wert von cn1, wenn cn1Label „Priority“ ist: 1 – HIGH, 2 – MEDIUM, 3 oder 4 – LOW
Unternehmen read_only_udm.additional.fields.value.string_value Wert des Felds Company
cs1 read_only_udm.network.session_id Wert des Felds cs1, wenn cs1Label „BrowserSession“ ist
cs3 read_only_udm.additional.fields.value.string_value Wert des Felds cs3, wenn cs3Label „CompanyName“ ist
dst read_only_udm.target.ip Wert des Felds dst
Domain read_only_udm.principal.domain.name Wert des Felds domain
dvc read_only_udm.intermediary.ip Wert des Felds dvc
EventID read_only_udm.metadata.product_log_id Wert des Felds EventID
HostName read_only_udm.principal.hostname Wert des Felds HostName, wenn die IP-Adresse nicht mit „grok“ abgeglichen werden kann
HostName read_only_udm.principal.ip Wert des Felds HostName, wenn Grok mit der IP-Adresse übereinstimmt
ip read_only_udm.principal.ip Wert des Felds ip
Nachricht read_only_udm.metadata.description Wert des Felds Message
Nachricht security_result.description Wert des Felds Message
nat_ip read_only_udm.principal.nat_ip Wert des Felds nat_ip
Priorität security_result.severity Zuordnung basierend auf dem Wert von Priority: 1 – HOCH, 2 – MITTEL, 3 oder 4 – NIEDRIG
SAMLConsumerURL read_only_udm.target.url Wert des Felds SAMLConsumerURL
sec_msg security_result.description Wert des Felds sec_msg
SecureAuthIdPAppliance read_only_udm.target.administrative_domain Wert des Felds SecureAuthIdPAppliance
SecureAuthIdPApplianceMachineName read_only_udm.target.hostname Wert des Felds SecureAuthIdPApplianceMachineName
SecureAuthIdPDestinationSiteUrl read_only_udm.target.url Wert des Felds SecureAuthIdPDestinationSiteUrl
SecureAuthIdPProductType read_only_udm.additional.fields.value.string_value Wert des Felds SecureAuthIdPProductType
Sitzung read_only_udm.network.session_id Wert des Felds session
spid read_only_udm.target.process.pid Wert des Felds spid
src read_only_udm.principal.ip Wert des Felds src
suser read_only_udm.target.user.userid Wert des Felds suser
User-Agent read_only_udm.network.http.user_agent Wert des Felds UserAgent
UserHostAddress read_only_udm.principal.nat_ip Wert des Felds UserHostAddress
UserHostAddress read_only_udm.target.ip Wert des Felds UserHostAddress
UserID read_only_udm.principal.user.userid Wert des Felds UserID
Version read_only_udm.metadata.product_version Wert des Felds Version
read_only_udm.additional.fields.key Fest codierter Wert: „CompanyName“
read_only_udm.additional.fields.key Hartcodierter Wert – „Company“
read_only_udm.additional.fields.key Fest codierter Wert – „SecureAuthIdPProductType“
read_only_udm.extensions.auth.type Fest codierter Wert: „SSO“
read_only_udm.metadata.event_type 'USER_LOGIN', wenn SecureAuthIdPAuthGuiMode == 0 und auth_result == Success, 'USER_CHANGE_PERMISSIONS', wenn SecureAuthIdPAuthGuiMode == 0 und auth_result ==WS-Trust success., 'USER_LOGOUT', wenn SecureAuthIdPAuthGuiMode == 0 und auth_result == Session Aborted, 'NETWORK_CONNECTION', wenn UserHostAddress != and `HostName` !=, 'STATUS_UPDATE', wenn ip != or `HostName` !=, 'USER_UNCATEGORIZED', wenn UserHostAddress != and `HostName` == und UserID != ``, andernfalls 'GENERIC_EVENT'
read_only_udm.metadata.log_type Fest codierter Wert: „SECUREAUTH_SSO“
read_only_udm.metadata.product_name Hartcodierter Wert: „SECUREAUTH_SSO“
read_only_udm.metadata.vendor_name Hartcodierter Wert: „SECUREAUTH_SSO“
read_only_udm.target.user.email_addresses Wert des Felds user_email, wenn not_email falsch ist
security_result.severity „HIGH“, wenn cn1Label == Priority und cn1 == 1, „MEDIUM“, wenn cn1Label == Priority und cn1 == 2, „LOW“, wenn cn1Label == Priority und cn1 in [3, 4], „HIGH“, wenn Priority == 1, „MEDIUM“, wenn Priority == 2, „LOW“, wenn Priority in [3, 4]
_timestamp event.idm.read_only_udm.metadata.collected_timestamp Aus Änderungsprotokoll zugeordnet
i_ip event.idm.read_only_udm.intermediary.ip Aus Änderungsprotokoll zugeordnet
i_port event.idm.read_only_udm.intermediary.port Aus Änderungsprotokoll zugeordnet
parsed.LogChannel event.idm.read_only_udm.metadata.product_event_type Aus Änderungsprotokoll zugeordnet
parsed.FormatVersion event.idm.read_only_udm.metadata.product_version Aus Änderungsprotokoll zugeordnet
parsed.EventID event.idm.read_only_udm.metadata.product_log_id Aus Änderungsprotokoll zugeordnet
parsed.CompanyID event.idm.read_only_udm.principal.resource.product_object_id Aus Änderungsprotokoll zugeordnet
parsed.Realm event.idm.read_only_udm.principal.resource.name Aus Änderungsprotokoll zugeordnet
parsed.UserHostAddress event.idm.read_only_udm.principal.ip Aus Änderungsprotokoll zugeordnet
parsed.UserHostAddress event.idm.read_only_udm.principal.asset.ip Aus Änderungsprotokoll zugeordnet
host.name event.idm.read_only_udm.principal.hostname Aus Änderungsprotokoll zugeordnet
host.name event.idm.read_only_udm.principal.asset.hostname Aus Änderungsprotokoll zugeordnet
parsed.RequestID event.idm.read_only_udm.metadata.id Aus Änderungsprotokoll zugeordnet
meta.cloud.availability_zone event.idm.read_only_udm.principal.location.name Aus Änderungsprotokoll zugeordnet
meta.cloud.region event.idm.read_only_udm.principal.location.country_or_region Aus Änderungsprotokoll zugeordnet
host.id event.idm.read_only_udm.principal.resource.id Aus Änderungsprotokoll zugeordnet
LogstashPod event.idm.read_only_udm.observer.hostname Aus Änderungsprotokoll zugeordnet
fields.ApplianceID event.idm.read_only_udm.principal.asset.asset_id Aus Änderungsprotokoll zugeordnet
LogChannel event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
FormatVersion event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
EventID event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
Version event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
parsed.UserAgent event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
parsed.ApplianceID event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
beat.name event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
beat.hostname event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
beat.version event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
fields.CompanyID event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
derived.CompanyIndex event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
_version event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
derived.EventType event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
prospector.type event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
input.type event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
parsed_Message event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
meta.cloud.machine_type event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
ApplianceType event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
parsed.Version event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
host.architecture event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
host.os.platform event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
host.os.version event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
host.os.build event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
host.os.family event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
host.os.name event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
meta.cloud.provider event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
derived.LogChannelIndex event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
document_id event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
meta.cloud.instance_id event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
tags event.idm.read_only_udm.principal.resource.attribute.labels Aus Änderungsprotokoll zugeordnet
Realm event.idm.read_only_udm.target.resource.name Aus Änderungsprotokoll zugeordnet
CompanyID event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
PEN event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
ApplianceID event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
ApplianceMachineName event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
RequestID event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet
UseJava event.idm.read_only_udm.additional.fields Aus Änderungsprotokoll zugeordnet

Änderungsprotokoll

Änderungsprotokoll für diesen Parser ansehen

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