ForgeRock OpenAM-Logs erfassen
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
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie SIEM-Einstellungen > Collection Agents auf.
- 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
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
- 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
- Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
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
- Öffnen Sie ein Terminal mit Root- oder Sudo-Berechtigungen.
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
- 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).
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so: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
Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
Ersetzen Sie
<customer_id>
durch die tatsächliche Kunden-ID.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
- Melden Sie sich in der AM-Konsole an.
- Rufen Sie Konfigurieren > Globale Dienste > Audit-Logging auf.
- Aktivieren Sie das Audit-Logging, um die Audit-Logging-Funktion zu starten.
- 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.
- Klicken Sie auf Speichern.
Syslog-Handler für Forgerock OpenAM konfigurieren
- Melden Sie sich als Administrator in der AM-Konsole an, z. B. amAdmin.
- Um den Ereignishandler in der globalen Konfiguration zu erstellen, rufen Sie Konfigurieren > Globale Dienste > Audit-Protokollierung auf.
- Wenn Sie den Ereignishandler in einem Realm erstellen möchten, gehen Sie zu Realms > „Realm-Name“ > „Services“ > „Audit-Protokollierung“.
- Klicken Sie auf Sekundäre Konfiguration hinzufügen > Syslog.
- 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.
- Name: Geben Sie einen Namen für den Ereignishandler ein, z. B. „Google SecOps
- Klicken Sie auf Erstellen.
- Nachdem der Syslog-Audit-Ereignishandler erstellt wurde, werden mehrere Konfigurationstabs angezeigt.
- Wählen Sie auf dem Tab Allgemeine Handler-Konfiguration die Option Aktiviert aus, um den Ereignishandler zu aktivieren, falls er deaktiviert ist.
- Wählen Sie die Themen für Audit-Logs aus:
- Zugriff
- Aktivität
- Authentifizierung
- Konfiguration
- Klicken Sie auf Speichern.
- 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.
- Klicken Sie auf Speichern.
Wählen Sie auf dem Tab Pufferung die Option Pufferung aktiviert aus, um die Pufferung zu aktivieren.
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