Delinea Secret Server-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Secret Server-Logs von Delinea (früher Thycotic) erfassen. Der Parser wandelt Rohprotokolle in ein strukturiertes Format um, das dem UDM von Google Security Operations entspricht. Zuerst werden wichtige Felder wie Zeitstempel, Ereignistypen und Nutzerinformationen extrahiert. Anschließend werden die Daten anhand der spezifischen Ereignistypen mithilfe bedingter Logik den entsprechenden UDM-Feldern zugeordnet. Schließlich werden die Daten für die Analyse in Google SecOps angereichert.
Hinweise
- Sie benötigen eine Google Security Operations-Instanz.
- Sie müssen Windows 2016 oder höher oder einen Linux-Host mit
systemd
verwenden. - Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
- Sie benötigen Berechtigungen für Delinea.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- Lade die Datei für die Datenaufnahmeauthentifizierung herunter. Speichern Sie die Datei sicher auf dem System, auf dem der BindPlane-Agent installiert wird.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die 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
Weitere Installationsressourcen
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass er Syslog-Dateien aufnimmt und an Google SecOps sendet
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 with your specific IP and port listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Path to the ingestion authentication file creds: '/path/to/your/ingestion-auth.json' # Your Chronicle customer ID customer_id: 'your_customer_id' endpoint: malachiteingestion-pa.googleapis.com ingestion_labels: log_type: SYSLOG namespace: thycotic 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 Kundennummer.Aktualisieren Sie
/path/to/ingestion-authentication-file.json
im Abschnitt Authentifizierungsdatei für die Datenaufnahme von Google SecOps abrufen auf den Pfad, unter dem die Authentifizierungsdatei gespeichert wurde.
Bindplane-Agent neu starten, um die Änderungen anzuwenden
Führen Sie den folgenden Befehl aus, um den Bindplane-Agenten unter Linux neu zu starten:
sudo systemctl restart bindplane-agent
Sie können den Bindplane-Agenten unter Windows entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:
net stop BindPlaneAgent && net start BindPlaneAgent
Delinea Secret Server für das Senden von Protokollen über Syslog konfigurieren
- Melden Sie sich mit Administratoranmeldedaten in Delinea Secret Server an.
- Klicken Sie auf Verwaltung > Konfiguration.
- Klicken Sie auf Bearbeiten.
- Klicken Sie das Kästchen Syslog-/CEF-Protokollierung aktivieren an und geben Sie die folgenden Details an:
- Syslog/CEF-Server: Geben Sie die IP-Adresse Ihrer Bindplane ein.
- Syslog/CEF-Protokoll: Wählen Sie je nach Bindplane-Konfiguration UDP oder TCP aus.
- Syslog/CEF-Port: Geben Sie die Portnummer ein, auf die das Bindplane zugreifen soll.
- Klicken Sie auf Speichern.
UDM-Zuordnung
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
Account_Domain | event1.idm.read_only_udm.principal.domain | Der Wert wird aus dem Feld „Account_Domain“ im Feld „msg“ des Rohlogs übernommen. |
Nach Nutzer | event1.idm.read_only_udm.principal.user.userid | Der Wert wird aus dem Feld „Nach Nutzer“ im Feld „msg“ des Rohlogs übernommen. |
Container-ID | event1.idm.read_only_udm.principal.asset.asset_id | Der Wert wird aus dem Feld „Container-ID“ im Feld „msg“ des Rohlogs übernommen und mit „container_id:“ vorangestellt. |
Containername | event1.idm.read_only_udm.principal.resource.name | Der Wert wird aus dem Feld „Containername“ im Feld „msg“ des Rohlogs übernommen. |
cs2 | event1.idm.read_only_udm.additional.fields[].value.string_value | Der Wert wird aus dem Feld „cs2“ im Feld „msg“ des Rohlogs übernommen. |
cs3 | event1.idm.read_only_udm.target.file.full_path | Der Wert wird aus dem Feld „cs3“ im Feld „msg“ des Rohlogs übernommen. |
cs4 | event1.idm.read_only_udm.principal.user.user_display_name | Der Wert wird aus dem Feld „cs4“ im Feld „msg“ des Rohlogs übernommen. |
Details | event1.idm.read_only_udm.additional.fields[].value.string_value | Der Wert wird aus dem Feld „Details“ im Feld „msg“ des Rohlogs übernommen. |
fname | event1.idm.read_only_udm.target.file.full_path | Der Wert wird aus dem Feld „fname“ im Feld „msg“ des Rohlogs übernommen. |
Host | event1.idm.read_only_udm.principal.hostname, event1.idm.read_only_udm.principal.asset.hostname | Der Wert wird aus dem Feld „Host“ im Feld „msg“ des Rohlogs übernommen. |
Bezeichnung | event1.idm.read_only_udm.target.user.userid | Der Wert wird aus dem Feld „Artikelname“ im Feld „msg“ des Rohlogs übernommen. |
event1.idm.read_only_udm.additional.fields[].key | Der Wert ist auf „vorname“ hartcodiert. | |
event1.idm.read_only_udm.additional.fields[].key | Der Wert ist auf „Gruppe oder Nutzer“ hartcodiert. | |
event1.idm.read_only_udm.additional.fields[].key | Der Wert ist auf „Details“ hartcodiert. | |
event1.idm.read_only_udm.additional.fields[].key | Der Wert ist auf „type_id“ hartcodiert. | |
event1.idm.read_only_udm.extensions.auth.type | Der Wert ist auf „MACHINE“ hartcodiert. | |
event1.idm.read_only_udm.metadata.description | Der Wert stammt aus dem Feld „thycotic_event“, das mit einem Grok-Muster aus dem Rohprotokoll extrahiert wird. | |
event1.idm.read_only_udm.metadata.event_timestamp.seconds | Der Wert wird aus dem Feld „rt“ abgeleitet, falls vorhanden, andernfalls aus dem Feld „ts“. Beide Felder werden mithilfe von Grok-Mustern aus dem Rohprotokoll extrahiert. | |
event1.idm.read_only_udm.metadata.event_type | Der Wert wird anhand des Felds „thycotic_event“ und anderer Bedingungen bestimmt. Wenn „thycotic_event“ beispielsweise „USER - LOGIN“ ist, wird der Ereignistyp auf „USER_LOGIN“ festgelegt. | |
event1.idm.read_only_udm.metadata.log_type | Der Wert ist auf „THYCOTIC“ hartcodiert. | |
event1.idm.read_only_udm.metadata.product_event_type | Der Wert stammt aus dem Feld „thycotic_event“, das mit einem Grok-Muster aus dem Rohprotokoll extrahiert wird. | |
event1.idm.read_only_udm.metadata.product_log_id | Der Wert wird aus dem Feld „action_id“ übernommen, das mit einem Grok-Muster aus dem Rohprotokoll extrahiert wird. | |
event1.idm.read_only_udm.metadata.product_name | Der Wert wird aus dem Feld „device_product“ übernommen, das mit einem Grok-Muster aus dem Rohprotokoll extrahiert wird. Wenn das Feld leer ist, wird der Wert „Secret Server“ hartcodiert. | |
event1.idm.read_only_udm.metadata.product_version | Der Wert wird aus dem Feld „device_version“ übernommen, das mit einem Grok-Muster aus dem Rohprotokoll extrahiert wird. | |
event1.idm.read_only_udm.metadata.vendor_name | Der Wert ist auf „Thycotic“ hartcodiert. | |
event1.idm.read_only_udm.network.ip_protocol | Der Wert wird auf „TCP“ gesetzt, wenn das Feld „input.type“ den Wert „tcp“ hat. | |
event1.idm.read_only_udm.observer.application | Der Wert wird aus dem Feld „agent.type“ übernommen, falls vorhanden. Andernfalls ist „Secret Server“ hartcodiert. | |
event1.idm.read_only_udm.observer.asset_id | Der Wert wird auf „Kundenservicemitarbeiter-ID:“ festgelegt, gefolgt vom Feld „agent.id“. | |
event1.idm.read_only_udm.observer.hostname | Der Wert wird aus dem Feld „agent.hostname“ übernommen, falls vorhanden, andernfalls aus dem Feld „server“. | |
event1.idm.read_only_udm.observer.platform_version | Der Wert wird aus dem Feld „agent.version“ übernommen. | |
event1.idm.read_only_udm.observer.user.userid | Der Wert wird aus dem Feld „agent.name“ übernommen. | |
event1.idm.read_only_udm.principal.asset.asset_id | Der Wert wird auf „ID:“ festgelegt, gefolgt vom Feld „host.id“. | |
event1.idm.read_only_udm.principal.asset.hardware.cpu_platform | Der Wert wird aus dem Feld „host.architecture“ übernommen. | |
event1.idm.read_only_udm.principal.asset.hostname | Der Wert wird aus dem Feld „server“ übernommen, falls vorhanden, andernfalls aus dem Feld „host.hostname“. | |
event1.idm.read_only_udm.principal.asset.ip | Der Wert wird aus dem Feld „src“, falls vorhanden, andernfalls aus dem Feld „src_ip“ übernommen. | |
event1.idm.read_only_udm.principal.hostname | Der Wert wird aus dem Feld „host.hostname“ übernommen, falls vorhanden, andernfalls aus dem Feld „server“. | |
event1.idm.read_only_udm.principal.ip | Der Wert wird aus dem Feld „src“ übernommen, falls vorhanden, andernfalls aus dem Feld „src_ip“ oder aus dem Feld „host.ip“. | |
event1.idm.read_only_udm.principal.mac | Der Wert wird aus dem Feld „host.mac“ übernommen. | |
event1.idm.read_only_udm.principal.platform | Der Wert wird auf „LINUX“ gesetzt, wenn das Feld „host_os_platform“ den Wert „centos“ hat. Andernfalls wird der Wert des Felds „host_os_platform“ in Großbuchstaben gesetzt. | |
event1.idm.read_only_udm.principal.platform_patch_level | Der Wert stammt aus dem Feld „host.os.kernel“. | |
event1.idm.read_only_udm.principal.platform_version | Der Wert wird aus dem Feld „host.os.version“ übernommen. | |
event1.idm.read_only_udm.principal.port | Der Wert wird aus dem Feld „src_port“ übernommen, das mit einem Grok-Muster aus dem Feld „log.source.address“ extrahiert wird. | |
event1.idm.read_only_udm.principal.user.user_display_name | Der Wert wird aus dem Feld „cs4“ im Feld „msg“ des Rohlogs übernommen. | |
event1.idm.read_only_udm.principal.user.userid | Der Wert wird aus dem Feld „suser“ im Feld „msg“ des Rohlogs oder aus dem Feld „Nach Nutzer“ übernommen, wenn „thycotic_event“ „USER - LOGIN“, „USER - LOGOUT“, „USER - LOGINFAILURE“ oder „USER - EDIT“ ist. | |
event1.idm.read_only_udm.security_result.action | Der Wert wird aus dem Feld „Action“ im Feld „msg“ des Rohlogs übernommen. Sie kann auch auf „ALLOW“ oder „BLOCK“ festgelegt werden, je nach Wert von „thycotic_event“. | |
event1.idm.read_only_udm.security_result.description | Der Wert wird aus dem Feld „temp_message“ übernommen, das den verbleibenden Teil des Felds „msg“ nach dem Extrahieren anderer Felder enthält. | |
event1.idm.read_only_udm.security_result.severity | Der Wert wird anhand des Felds „syslog_severity“ bestimmt. Wenn „syslog_severity“ beispielsweise „error“ oder „warning“ enthält, wird der Schweregrad auf „HIGH“ festgelegt. Wenn „thycotic_event“ „System Log“ ist, wird die Wichtigkeit auf „INFORMATIONAL“ festgelegt. | |
event1.idm.read_only_udm.security_result.severity_details | Der Wert wird aus dem Feld „syslog_severity“ übernommen. | |
event1.idm.read_only_udm.target.file.full_path | Der Wert wird durch Zusammenführen der Felder „cs3“ und „fname“ mit einem Trennzeichen „/“ erstellt, wenn beide Felder vorhanden sind. Wenn nur ein Feld vorhanden ist, wird der Wert aus diesem Feld übernommen. | |
event1.idm.read_only_udm.target.resource.product_object_id | Der Wert wird aus dem Feld „type_id“ übernommen. | |
event1.idm.read_only_udm.target.user.userid | Der Wert wird aus dem Feld „item_name“ im Feld „msg“ des Rohlogs oder aus dem Feld „Artikelname“ übernommen, wenn „thycotic_event“ „USER - LOGIN“, „USER - LOGOUT“, „USER - LOGINFAILURE“ oder „USER - EDIT“ ist. | |
events.timestamp.seconds | Der Wert wird aus dem Feld „rt“ abgeleitet, falls vorhanden, andernfalls aus dem Feld „ts“. Beide Felder werden mithilfe von Grok-Mustern aus dem Rohprotokoll extrahiert. | |
rt | event1.idm.read_only_udm.metadata.event_timestamp.seconds | Der Wert wird aus dem Feld „rt“ im Feld „msg“ des Rohlogs übernommen und zum Festlegen des Ereigniszeitstempels verwendet. |
src | event1.idm.read_only_udm.principal.asset.ip, event1.idm.read_only_udm.principal.ip | Der Wert wird aus dem Feld „src“ im Feld „msg“ des Rohlogs übernommen. |
src_ip | event1.idm.read_only_udm.principal.asset.ip, event1.idm.read_only_udm.principal.ip | Der Wert wird aus dem Feld „src_ip“ übernommen, das mit einem Grok-Muster aus dem Feld „log.source.address“ extrahiert wird. |
Änderungen
2024-06-04
- Verbessertes Parsen nicht geparster Protokolle.
- Die Felder „Host“ und „Server“ wurden auf UDM-Felder für den Hostnamen umgestellt.
- „Container_Id“ und „Container_name“ wurden UDM-Feldern zugewiesen, die sich auf Asset- und Ressourcennamen beziehen.
2023-09-22
- Die Parsinglogik wurde angepasst, um nicht geparste Protokolle besser zu verarbeiten.
- Fehlerbehandlung für die Felder „rt“ und „ts“ hinzugefügt.
2023-06-12
- Die Parselogik wurde aktualisiert, um ein neues Protokollformat zu unterstützen.
- Die Felder „fname“, „cs2“ und „details“ wurden auf UDM-Felder für zusätzliche Informationen und eine Zusammenfassung der Sicherheitsergebnisse zugeordnet.
2022-08-01
- Unterstützung für das Parsen von Protokollen im JSON-Format hinzugefügt.
- Wir haben zahlreiche Felder aus den JSON-Protokollen den entsprechenden UDM-Feldern zugeordnet, einschließlich Feldern zu Geräte- und Kundenservicemitarbeiterinformationen, IP-Adressen, Hostdetails, Plattforminformationen und Sicherheitsstufe.
- Das Parsen von Protokollen vom Typ „SECRET – SECRETPASSWORDCHANGEFAILURE“ wurde hinzugefügt.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten