ForgeRock OpenAM-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie ForgeRock OpenAM-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser extrahiert Felder aus den Logs in den Formaten CSV, Syslog + KV oder JSON, normalisiert sie und ordnet sie dem einheitlichen Datenmodell (Unified Data Model, UDM) zu. Es werden verschiedene OpenAM-Ereignistypen verarbeitet, darunter An- und Abmeldungen, Zugriffsereignisse und allgemeine Logs. Die Daten werden mit Nutzer-, Gruppen- und Netzwerkinformationen angereichert und es werden spezifische Transformationen für verschiedene Logformate und Ereignistypen durchgeführt. Der Parser priorisiert das JSON-Parsing, wechselt dann zu Syslog+KV und schließlich zu CSV. Logs in nicht unterstützten Formaten werden verworfen.

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, sind die Firewallports geöffnet.
  • Zugriff mit erhöhten Rechten auf Forgerock OpenAM (z. B. amAdmin)

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 es 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
            ingestion_labels:
                log_type: 'OPENAM'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  4. Ersetzen Sie <customer_id> durch die tatsächliche Kunden-ID.

  5. 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 Services verwenden oder den folgenden Befehl eingeben:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Audit-Logging in Forgerock OpenAM konfigurieren

  1. Melden Sie sich in der AM-Konsole an.
  2. Rufen Sie Konfigurieren > Globale Dienste > Audit-Logging auf.
  3. Aktivieren Sie das Audit-Logging, um die Audit-Logging-Funktion zu starten.
  4. Geben Sie in den Listen „Filter für zulässige Felder“ und „Filter für blockierte Felder“ Werte ein, die in die Audit-Ereignisprotokolle aufgenommen (Zulassungsliste) oder daraus ausgeschlossen (Blockierungsliste) werden sollen.
  5. Klicken Sie auf Speichern.

Syslog-Handler für Forgerock OpenAM konfigurieren

  1. Melden Sie sich als Administrator in der AM-Konsole an, z. B. amAdmin.
  2. Um den Ereignishandler in der globalen Konfiguration zu erstellen, rufen Sie Konfigurieren > Globale Dienste > Audit-Protokollierung auf.
  3. Wenn Sie den Ereignishandler in einem Realm erstellen möchten, gehen Sie zu Realms > „Realm-Name“ > „Services“ > „Audit-Protokollierung“.
  4. Klicken Sie auf Sekundäre Konfiguration hinzufügen > Syslog.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie einen Namen für den Ereignishandler ein, z. B. „Google SecOps Syslog Event Handler“.
    • Hostname des Servers: Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • Serverport: Geben Sie die Portnummer des Bindplane-Agents ein, z. B. 514 für UDP.
    • Transport Protocol (Transportprotokoll): Wählen Sie UDP aus.
    • Zeitlimit für Verbindung: Geben Sie die Anzahl der Sekunden für die Verbindung ein (z. B. 120).
    • Optional: Aktiviere die Option Pufferung.
  6. Klicken Sie auf Erstellen.
  7. Nachdem der Syslog-Audit-Ereignishandler erstellt wurde, werden mehrere Konfigurationstabs angezeigt.
  8. Wählen Sie auf dem Tab Allgemeine Handler-Konfiguration die Option Aktiviert aus, um den Ereignishandler zu aktivieren, falls er deaktiviert ist.
  9. Wählen Sie die Themen für Audit-Logs aus:
    • Zugriff
    • Aktivität
    • Authentifizierung
    • Konfiguration
  10. Klicken Sie auf Speichern.
  11. Geben Sie auf dem Tab Syslog Configuration (Syslog-Konfiguration) die folgenden Konfigurationsdetails an:
    • Hostname des Servers: Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • Serverport: Geben Sie die Portnummer des Bindplane-Agents ein.
    • Zeitlimit für Verbindung: Geben Sie die Anzahl der Sekunden für die Verbindung ein (z. B. 120).
    • Transportprotokoll: Wählen Sie UDP aus.
    • Einrichtung: Wählen Sie Local0 aus.
    • Bei allen Themen wird der Schweregrad auf INFORMATIONELL festgelegt.
  12. Klicken Sie auf Speichern.
  13. Wählen Sie auf dem Tab Pufferung die Option Pufferung aktiviert aus, um die Pufferung zu aktivieren.

  14. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
client.ip principal.ip Die IP-Adresse des Clients, der die Anfrage stellt.
client.ip principal.asset.ip Die IP-Adresse des Client-Assets, das die Anfrage stellt.
client.port principal.port Der Port, der vom Client verwendet wird, der die Anfrage stellt.
entries[0].info.authLevel principal.resource.resource_subtype Die dem Ereignis zugeordnete Authentifizierungsebene. Mit „authLevel:“ vorangestellt.
entries[0].info.displayName security_result.description Ein aussagekräftiger Name für den Knoten im Authentifizierungsbaum.
entries[0].info.ipAddress principal.asset.ip Die IP-Adresse, die dem Prinzipal im Ereignis zugeordnet ist.
entries[0].info.ipAddress principal.ip Die IP-Adresse, die dem Prinzipal im Ereignis zugeordnet ist.
entries[0].info.nodeId principal.resource.id Die eindeutige ID des Knotens im Authentifizierungsbaum. Mit „nodeId:“ als Präfix.
entries[0].info.nodeOutcome principal.resource.attribute.labels.value Das Ergebnis des Knotens im Authentifizierungsbaum.
entries[0].info.nodeType principal.resource.type Der Typ des Knotens im Authentifizierungsbaum. Mit „nodeType:“ als Präfix.
entries[0].info.treeName principal.resource.name Der Name des Authentifizierungsbaums. Muss mit „treeName:“ beginnen.
eventName metadata.product_event_type Der Rohereignisname aus den OpenAM-Logs.
http.request.headers.host[0] target.asset.hostname Der Hostname des Zielservers, der aus dem host-Header extrahiert wird.
http.request.headers.host[0] target.hostname Der Hostname des Zielservers, der aus dem host-Header extrahiert wird.
http.request.headers.user-agent[0] network.http.user_agent Der User-Agent der HTTP-Anfrage.
http.request.method network.http.method Die in der Anfrage verwendete HTTP-Methode.
http.request.path target.url Der Pfad der HTTP-Anfrage-URL.
info.failureReason security_result.summary Der Grund für einen Authentifizierungsfehler. Fest codiert auf „SSO“. Wird durch Logik basierend auf eventName und anderen Feldern bestimmt. Kann GENERIC_EVENT, USER_LOGIN, USER_LOGOUT, NETWORK_HTTP oder STATUS_UPDATE sein. Fest codiert auf „OPENAM“. Fest codiert auf „OpenAM“. Fest codiert auf „ForgeRock“.
principal target.user.userid Die User-ID, die am Ereignis beteiligt ist. Sie wird aus den Feldern userId, principal oder runAs extrahiert.
result security_result.action_details Das Ergebnis des Ereignisses (z.B. „SUCCESSFUL“, „FAILED“).
response.detail.reason security_result.summary Der Grund für einen Fehler bei einem Ereignis mit Zugriffsresultat.
response.status security_result.action_details Der Status der Antwort in einem Ereignis vom Typ „Zugriffsergebnis“.
runAs target.user.userid Die User-ID, die am Ereignis beteiligt ist. Sie wird aus den Feldern userId, principal oder runAs extrahiert.
security_result.action security_result.action Die aufgrund des Sicherheitsereignisses ergriffene Maßnahme (z.B. „ALLOW“, „BLOCK“).
server.ip target.asset.ip Die IP-Adresse des Zielservers.
server.ip target.ip Die IP-Adresse des Zielservers.
server.port target.port Der Port des Zielservers.
timestamp metadata.event_timestamp Der Zeitstempel des Ereignisses.
trackingIds metadata.product_log_id Die mit dem Ereignis verknüpfte Tracking-ID.
transactionId metadata.product_deployment_id Die dem Ereignis zugeordnete Transaktions-ID.
userId target.user.userid Die User-ID, die am Ereignis beteiligt ist. Sie wird aus den Feldern userId, principal oder runAs extrahiert.
userId target.user.group_identifiers Die mit dem Nutzer verknüpften Gruppen-IDs.
am_group target.user.group_identifiers Die mit dem Nutzer verknüpften Gruppen-IDs.
am_user target.user.email_addresses Die E-Mail-Adresse des Nutzers, sofern sie im Feld am_user vorhanden ist.
loginID[0] target.user.userid Die im Ereignis verwendete Anmelde-ID.
loginID[0] target.user.email_addresses Die für die Anmeldung verwendete E‑Mail-Adresse, sofern im Feld loginID vorhanden.
hostip intermediary.hostname Der Hostname eines Zwischengeräts.
hostip intermediary.ip Die IP-Adresse eines Vermittlungsgeräts.
src_ip principal.asset.ip Die Quell-IP-Adresse.
src_ip principal.ip Die Quell-IP-Adresse.
desc metadata.description Die Beschreibung des Ereignisses.
payload metadata.description Die Nutzlast des Ereignisses.

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