Delinea Secret Server-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Delinea (ehemals Thycotic) Secret Server-Logs erfassen. Der Parser wandelt Rohprotokolle in ein strukturiertes Format um, das dem UDM von Google Security Operations entspricht. Zuerst werden Schlüsselfelder wie Zeitstempel, Ereignistypen und Nutzerinformationen extrahiert. Anschließend wird anhand von bedingter Logik basierend auf dem jeweiligen Ereignistyp eine Zuordnung der Daten zu den entsprechenden UDM-Feldern vorgenommen. Schließlich werden die Daten für die Analyse in Google SecOps angereichert.
Hinweise
- Prüfen Sie, ob Sie eine Google Security Operations-Instanz haben.
- Achten Sie darauf, dass Sie Windows 2016 oder höher oder einen Linux-Host mit
systemd
verwenden. - Wenn Sie einen Proxy verwenden, müssen die Firewallports geöffnet sein.
- Prüfen Sie, ob Sie privilegierten Zugriff auf Delinea haben.
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 der BindPlane-Agent 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
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 in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass Syslog-Daten aufgenommen und an Google SecOps gesendet werden
Greifen Sie auf die Konfigurationsdatei zu:
- 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 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 Dienste verwenden oder den folgenden Befehl eingeben:
net stop BindPlaneAgent && net start BindPlaneAgent
Delinea Secret Server für das Senden von Logs ü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-Logging aktivieren an und geben Sie die folgenden Details an:
- Syslog-/CEF-Server: Geben Sie die IP-Adresse Ihrer Bindplane-Instanz ein.
- Syslog-/CEF-Protokoll: Wählen Sie UDP oder TCP aus (je nach Bindplane-Konfiguration).
- Syslog-/CEF-Port: Geben Sie die Portnummer ein, auf der Bindplane zum Empfangen von Daten konfiguriert ist.
- 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 „By User“ 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 hat das Präfix „container_id:“. |
Containername | event1.idm.read_only_udm.principal.resource.name | Der Wert stammt aus dem Feld „Containername“ im Feld „msg“ des Rohlogs. |
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 „Item Name“ (Artikelname) im Feld „msg“ des Rohlogs übernommen. |
event1.idm.read_only_udm.additional.fields[].key | Der Wert ist fest auf „fname“ codiert. | |
event1.idm.read_only_udm.additional.fields[].key | Der Wert ist fest auf „Gruppe oder Nutzer“ codiert. | |
event1.idm.read_only_udm.additional.fields[].key | Der Wert ist fest auf „Details“ codiert. | |
event1.idm.read_only_udm.additional.fields[].key | Der Wert ist als „type_id“ hartcodiert. | |
event1.idm.read_only_udm.extensions.auth.type | Der Wert ist fest auf „MACHINE“ codiert. | |
event1.idm.read_only_udm.metadata.description | Der Wert wird aus dem Feld „thycotic_event“ übernommen, das mithilfe eines Grok-Musters aus dem Rohlog 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 Rohlog 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 fest auf „THYCOTIC“ codiert. | |
event1.idm.read_only_udm.metadata.product_event_type | Der Wert wird aus dem Feld „thycotic_event“ übernommen, das mithilfe eines Grok-Musters aus dem Rohlog extrahiert wird. | |
event1.idm.read_only_udm.metadata.product_log_id | Der Wert stammt aus dem Feld „action_id“, das mithilfe eines Grok-Musters aus dem Rohlog extrahiert wird. | |
event1.idm.read_only_udm.metadata.product_name | Der Wert stammt aus dem Feld „device_product“, das mithilfe eines Grok-Musters aus dem Rohlog extrahiert wird. Wenn das Feld leer ist, wird der Wert fest auf „Secret Server“ codiert. | |
event1.idm.read_only_udm.metadata.product_version | Der Wert stammt aus dem Feld „device_version“, das mithilfe eines Grok-Musters aus dem Rohlog extrahiert wird. | |
event1.idm.read_only_udm.metadata.vendor_name | Der Wert ist fest auf „Thycotic“ codiert. | |
event1.idm.read_only_udm.network.ip_protocol | Der Wert wird auf „TCP“ gesetzt, wenn das Feld „input.type“ „tcp“ ist. | |
event1.idm.read_only_udm.observer.application | Der Wert wird aus dem Feld „agent.type“ übernommen, falls vorhanden. Andernfalls ist er fest auf „Secret Server“ codiert. | |
event1.idm.read_only_udm.observer.asset_id | Der Wert wird auf „Agent ID:“ gefolgt vom Feld „agent.id“ festgelegt. | |
event1.idm.read_only_udm.observer.hostname | Der Wert wird, falls vorhanden, aus dem Feld „agent.hostname“ und ansonsten aus dem Feld „server“ übernommen. | |
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 stammt aus dem Feld „agent.name“. | |
event1.idm.read_only_udm.principal.asset.asset_id | Der Wert wird auf „ID:“ in Kombination mit dem Feld „host.id“ festgelegt. | |
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, falls vorhanden, aus dem Feld „server“ und ansonsten aus dem Feld „host.hostname“ übernommen. | |
event1.idm.read_only_udm.principal.asset.ip | Der Wert wird aus dem Feld „src“ übernommen, falls vorhanden, andernfalls aus dem Feld „src_ip“. | |
event1.idm.read_only_udm.principal.hostname | Der Wert wird aus dem Feld „host.hostname“ übernommen, sofern 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 er auf den 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 „By User“ (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 stammt aus dem Feld „Action“ im Feld „msg“ des Rohlogs. Je nach Wert von „thycotic_event“ kann sie auch auf „ALLOW“ oder „BLOCK“ festgelegt werden. | |
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 Schwere 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 Verketten 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 stammt aus dem Feld „type_id“. | |
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 „Item Name“ abgerufen, 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 Rohlog 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. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten