LogonBox-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie LogonBox-Logs mit Bindplane in Google Security Operations aufnehmen.
LogonBox ist eine Self-Service-Plattform zur Passwortverwaltung und Identitätsüberprüfung. Sie generiert Audit-Logs für das Zurücksetzen von Passwörtern, Identitätsüberprüfungen und Administratoraktionen. Der Parser ordnet LogonBox-Audits dem Unified Data Model (UDM) zu und erfasst Nutzeridentitäten, Authentifizierungsereignisse, Ressourcenänderungen und Gruppenverwaltungsoperationen.
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 Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
- Privilegierter Zugriff auf die LogonBox-Verwaltungskonsole
Authentifizierungsdatei für die Google SecOps-Datenaufnahme abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
Laden Sie die Ingestion Authentication File (Datei für die Authentifizierung bei der 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 > Profile 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" /quietWarten Sie, bis die Installation abgeschlossen ist.
Ü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
- Ö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.shWarten Sie, bis die Installation abgeschlossen ist.
Ü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-Agent.
BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
Konfigurationsdatei suchen
Linux:
sudo systemctl status observiq-otel-collectorWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Konfigurationsdatei bearbeiten
Ersetzen Sie den gesamten Inhalt von
config.yamldurch die folgende Konfiguration:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/logonbox: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.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:udplogfür UDP-Syslogtcplogfür TCP-Syslogsyslogfür RFC 3164/5424-Syslog
0.0.0.0: IP-Adresse, auf der gelauscht werden soll:0.0.0.0, um alle Schnittstellen zu überwachen (empfohlen)- Bestimmte IP-Adresse, die auf einer Schnittstelle überwacht werden soll
514: Portnummer, die überwacht werden soll (z. B.514,1514,6514)
Exporter-Konfiguration:
<customer_id>: Kunden-ID aus dem vorherigen Schrittmalachiteingestion-pa.googleapis.com: Regionale Endpunkt-URL:- USA:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asien:
asia-southeast1-malachiteingestion-pa.googleapis.com - Eine vollständige Liste finden Sie unter Regionale Endpunkte.
- USA:
- Passen Sie
creds_file_pathje nach Plattform an:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
Konfigurationsdatei speichern
- Speichern Sie die Datei nach der Bearbeitung:
- Linux: Drücken Sie
Ctrl+O, dannEnterund dannCtrl+X. - Windows: Klicken Sie auf Datei > Speichern.
- Linux: Drücken Sie
Bindplane-Agent neu starten, um die Änderungen zu übernehmen
So starten Sie den Bindplane-Agent unter Linux neu:
Führen Sie dazu diesen Befehl aus:
sudo systemctl restart observiq-otel-collectorPrüfen Sie, ob der Dienst ausgeführt wird:
sudo systemctl status observiq-otel-collectorLogs auf Fehler prüfen:
sudo journalctl -u observiq-otel-collector -f
So starten Sie den Bindplane-Agent unter Windows neu:
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:
- Drücken Sie
Win+R, geben Sieservices.mscein und drücken Sie die Eingabetaste. - Suchen Sie nach observIQ OpenTelemetry Collector.
- Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
- Drücken Sie
Prüfen Sie, ob der Dienst ausgeführt wird:
sc query observiq-otel-collectorLogs auf Fehler prüfen:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
LogonBox-Syslog-Weiterleitung konfigurieren
- Melden Sie sich als Administrator in der LogonBox-Admin-Konsole an.
- Klicken Sie auf Berichte > Audit-Log.
- 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
514ein (muss mit dem Bindplane-Empfängerport übereinstimmen). - Protokoll: Wählen Sie UDP aus (muss mit dem Bindplane-Empfängertyp übereinstimmen).
- Syslog-Server: Geben Sie die IP-Adresse des BindPlane-Agent-Hosts ein (z. B.
- Wählen Sie die Ereigniskategorien aus, die weitergeleitet werden sollen, z. B. Passwortzurücksetzungen, Identitätsbestätigungen, Nutzer- und Gruppenverwaltung.
- 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“ oder „SessionService“ übereinstimmt, andernfalls aus „attr_principalDesc“, wenn nicht leer, andernfalls aus „desc“ |
| event_type | metadata.event_type | Der Wert wird direkt aus „event_type“ kopiert, nachdem er durch die bedingte Logik basierend auf „product_event_type“ und Anwesenheitskennzeichnungen festgelegt wurde. |
| product_event_type | metadata.product_event_type | Wert direkt kopiert |
| metadata.product_name | Auf „LogonBox“ festgelegt | |
| metadata.vendor_name | Auf „LOGONBOX“ festgelegt | |
| network.application_protocol | Auf „DNS“ festlegen, wenn „product_event_type“ mit „AnswerService“ übereinstimmt und die Bedingungen erfüllt sind | |
| dns_answer | network.dns.answers | Zusammengeführt aus dns_answer |
| dns_question | network.dns.questions | Zusammengeführt aus dns_question |
| attr_userAgent, attr_userAgentVersion | network.http.parsed_user_agent | Wird aus attr_userAgent und attr_userAgentVersion verkettet, wenn beide vorhanden sind, andernfalls aus attr_userAgent. Anschließend wird der Wert in parseduseragent konvertiert und umbenannt. |
| attr_userAgent, attr_userAgentVersion | network.http.user_agent | Wird aus „attr_userAgent“ und „attr_userAgentVersion“ verkettet, wenn 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 Übereinstimmungen (?i)LINUX|MAC|WINDOWS |
| attr_osVersion | principal.platform_version | Der 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 Maps 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 |
| principal.user.email_addresses | Wird 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“ und „googleUser.step.size“ erstellt wurden, sofern 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“ im ISO 8601-Format oder im Format „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 der Organisationseinheit, wenn „product_event_type“ mit „userUpdated“, „userCreated“, „changePassword“, „setPassword“, „answer“ oder „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“, falls nicht leer, andernfalls aus „description“, wenn „product_event_type“ mit „userUpdated“, „userCreated“, „changePassword“, „setPassword“, „answer“ oder „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, falls nicht festgelegt, andernfalls attr_associatedPrincipals, falls groupCreated|groupUpdated oder attr_group, andernfalls attr_user, falls group, andernfalls attr_disabledPrincipalName, falls accountDisabled |
| attr_group | target.group.group_display_name | Der Wert wird direkt kopiert, wenn „product_event_type“ mit „groupCreated“ oder „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