CyberArk-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie CyberArk-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.
CyberArk Privileged Access Manager (PAM) ist eine Sicherheitslösung für den privilegierten Zugriff auf Unternehmensniveau, mit der privilegierte Konten und Anmeldedaten in On-Premise- und Cloud-Umgebungen geschützt, verwaltet und überwacht werden. Sie bietet die Speicherung von Anmeldedaten, die Isolierung und Überwachung von Sitzungen, die Erkennung von Bedrohungen durch Privileged Threat Analytics (PTA) und eine umfassende Audit-Protokollierung aller privilegierten Aktivitäten.
Hinweise
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 CyberArk Vault-Server
- Wenn Sie den Agent hinter einem Proxy ausführen, achten Sie darauf, dass die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sind.
- Administratorzugriff auf den CyberArk Vault Server (Zugriff auf den Installationsordner
Server\Conf) - CyberArk Vault-Version 10.0 oder höher
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die 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 > 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-collectorDer Dienststatus sollte RUNNING lauten.
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-collectorDer Dienststatus sollte active (running) lauten.
Zusätzliche Installationsressourcen
Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.
BindPlane-Agent so konfigurieren, dass Syslog aufgenommen und an Google SecOps gesendet wird
Konfigurationsdatei suchen
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
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/cyberark: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'your-customer-id' endpoint: malachiteingestion-pa.googleapis.com log_type: CYBERARK raw_log_field: body service: pipelines: logs/cyberark_to_chronicle: receivers: - udplog exporters: - chronicle/cyberarkErsetzen Sie die folgenden Platzhalter:
Empfängerkonfiguration:
listen_address: IP-Adresse und Port, auf dem gelauscht werden soll:0.0.0.0:514, um alle Schnittstellen auf Port 514 zu überwachen (erfordert Root unter Linux)0.0.0.0:1514, um einen nicht privilegierten Port zu überwachen (empfohlen für Linux ohne Root-Zugriff)
Optionen für Empfängertyp:
udplogfür UDP-Syslog (Standard für CyberArk Vault)tcplogfür TCP-Syslogtcplogverwenden, wenn CyberArk Vault mitSyslogServerProtocol=TCPkonfiguriert ist
Exporter-Konfiguration:
creds_file_path: Vollständiger Pfad zur Authentifizierungsdatei für die Google SecOps-Aufnahme:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: Google SecOps-Kundennummerendpoint: 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:
Konfigurationsdatei speichern
Speichern Sie die Datei nach der Bearbeitung:
- Linux: Drücken Sie
Ctrl+O, dannEnterund dannCtrl+X. - Windows: Klicken Sie auf Datei > Speichern.
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-collectorPrüfen Sie die Logs auf Fehler:
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-collectorServices-Konsole:
- 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-collectorPrüfen Sie die Logs auf Fehler:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Syslog-Weiterleitung für CyberArk konfigurieren
CyberArk Vault sendet Auditereignisse im CEF-Format (Common Event Format) über Syslog. Der Vault-Server konvertiert XML-Prüfprotokolle mithilfe einer XSL-Übersetzerdatei in CEF-Nachrichten und leitet sie dann an den Bindplane-Agent weiter.
Vault-Server für das Senden von Syslog konfigurieren
- Melden Sie sich mit Administratorberechtigungen auf dem Hostcomputer des CyberArk Vault-Servers an.
- Rufen Sie den Installationsordner des CyberArk Vault-Servers auf, z. B. `C:\Programme (x86)\PrivateArk\Server\Conf`.
- Öffnen Sie die Datei
DBParm.iniin einem Texteditor. - Kopieren Sie den Abschnitt
[SYSLOG]aus der DateiDBParm.sample.ini(im selben Ordner) und fügen Sie ihn unten inDBParm.iniein. Konfigurieren Sie im Abschnitt
[SYSLOG]die folgenden Syslog-Parameter:[SYSLOG] SyslogServerIP=<BINDPLANE_AGENT_IP> SyslogServerPort=514 SyslogServerProtocol=UDP UseLegacySyslogFormat=No SyslogTranslatorFile=Syslog\Arcsight.sample.xsl SyslogMessageCodeFilter=0-999Ersetzen Sie die folgenden Werte:
- SyslogServerIP: Geben Sie die IP-Adresse des Bindplane-Agent-Hosts ein (z. B.
192.168.1.100). - SyslogServerPort: Geben Sie den Port ein, der dem Bindplane-Agenten
listen_addressentspricht (z. B.514). SyslogServerProtocol: Wählen Sie das Protokoll aus:
UDPfür UDP-Syslog (Standard)TCPfür TCP-Syslog
SyslogTranslatorFile: Geben Sie die XSL-Übersetzerdatei für das CEF-Format ein:
Syslog\Arcsight.sample.xslfür die Standard-CEF-Ausgabe (empfohlen)
SyslogMessageCodeFilter: Geben Sie die weiterzuleitenden Nachrichtencodes ein:
0-999, um alle Termine weiterzuleiten- Geben Sie einzelne Codes oder Bereiche an (z. B.
1,2,3,5-10,30), um bestimmte Ereignisse zu filtern.
UseLegacySyslogFormat: Auf
Nofür das RFC 5424-Format festlegen.
- SyslogServerIP: Geben Sie die IP-Adresse des Bindplane-Agent-Hosts ein (z. B.
Speichern Sie die Datei
DBParm.ini.Starten Sie den Dienst PrivateArk Server neu:
- Öffnen Sie Windows-Dienste (
services.msc). - Suchen Sie den Dienst CyberArk Vault Disaster Recovery und beenden Sie ihn (falls er ausgeführt wird).
- Suchen Sie den Dienst PrivateArk Server.
- Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
- Starten Sie den Dienst CyberArk Vault Disaster Recovery wieder (falls zutreffend).
- Öffnen Sie Windows-Dienste (
Syslog an mehrere Ziele weiterleiten
Wenn Sie Vault-Syslog-Ereignisse sowohl an den Bindplane-Agent als auch an andere Ziele (z. B. PTA) weiterleiten möchten, geben Sie mehrere IP-Adressen und Übersetzerdateien an, die durch Kommas getrennt sind:
SyslogServerIP=<BINDPLANE_AGENT_IP>,<PTA_SERVER_IP> SyslogTranslatorFile=Syslog\Arcsight.sample.xsl,Syslog\PTA.xsl
Syslog-Weiterleitung für Privileged Threat Analytics (PTA) konfigurieren (optional)
Wenn Sie auch PTA-Sicherheitswarnungen an Google SecOps weiterleiten möchten, konfigurieren Sie die PTA-SIEM-Integration:
- Melden Sie sich in der PVWA-Konsole (Password Vault Web Access) an.
- Gehen Sie zu Administration > Configuration Options > Privileged Threat Analytics.
- Konfigurieren Sie im Abschnitt SIEM Folgendes:
- Syslog Server IP: Geben Sie die IP-Adresse des Bindplane-Agent-Hosts ein.
- Syslog-Serverport: Geben Sie den Port ein, der der Bindplane-Agent-Konfiguration entspricht (z. B.
514). - Protokoll: Wählen Sie UDP oder TCP aus, damit es mit dem Bindplane-Agent-Empfänger übereinstimmt.
- Format: Wählen Sie CEF aus.
- Klicken Sie auf Speichern.
Verfügbare XSL-Übersetzerdateien
Der Unterordner
Syslogim Installationsordner des CyberArk-Servers enthält Beispiel-XSL-Übersetzerdateien:Übersetzerdatei Format Beschreibung Arcsight.sample.xslCEF Standard-CEF-Format (für Google SecOps empfohlen) SplunkCIM.xslCIM Splunk Common Information Model-Format PTA.xslBenutzerdefiniert Format für die Weiterleitung an CyberArk PTA XSIAM.xslCEF Palo Alto Cortex XSIAM-Format
Syslog-Weiterleitung bestätigen
- Führen Sie nach dem Neustart des PrivateArk Server-Diensts eine Testaktion im Vault aus, z. B. ein Passwort abrufen oder sich bei PVWA anmelden.
- Prüfen Sie die BindPlane-Agentenlogs auf eingehende Syslog-Nachrichten:
- Linux:
sudo journalctl -u observiq-otel-collector -f - Windows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Linux:
Prüfen Sie, ob Nachrichten im CEF-Format in den Logs angezeigt werden, z. B.:
CEF:0|Cyber-Ark|Vault|10.0|22|CPM password retrieved|5|suser=Administrator src=10.0.0.1 fname=Root\operating system-server1-admin
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| RequestId_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| Category_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| ExtraDetails_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| CAPolicy_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| line_number_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| pasvc_action_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| control_socket_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| data_socket_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| timeout_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| vault_name_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| class_name_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| status_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| Publisher_Event | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| Last_Event | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| Total_Events | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| cs1_var | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| cs3_var | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| app_var | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| reason_var | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| cs5_var | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| cs4_var | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| _auth_mechanism | extensions.auth.mechanism | Direkt zusammengeführt |
| dvc | intermediary.ip | Wenn der Wert dem IP-Adressmuster entspricht |
| EventName | metadata.description | Wenn der Prozess nicht dem EXE-Muster entspricht |
| handeln | metadata.description | Wenn „fname“ leer ist |
| EventMessage | metadata.description | Wenn „act“ leer ist |
| LastEventDate | metadata.event_timestamp | Konvertiert mit ISO8601- oder JJJJ-MM-TTTHH:mm:ss-Format |
| _temp_datetime | metadata.event_timestamp | Konvertiert im Format TT.MM.JJJJ HH:mm:ss |
| Datum/Uhrzeit | metadata.event_timestamp | Konvertiert mit ISO8601- oder MMM d HH:mm:ss-Format |
| _event_type | metadata.event_type | Direkt umbenannt |
| Name | metadata.event_type | Wird basierend auf Bedingungen festgelegt: FILE_CREATION für „Datei speichern“, USER_LOGIN für „Anmelden“, NETWORK_CONNECTION, wenn has_principal und has_target, FILE_UNCATEGORIZED, wenn has_target_file_details, PROCESS_UNCATEGORIZED, wenn has_target_process_details, STATUS_UPDATE, wenn nur has_principal, NETWORK_UNCATEGORIZED, wenn app_error und has_principal und has_target, andernfalls GENERIC_EVENT |
| EventType | metadata.product_event_type | Direkt zugeordnet |
| signature_id, name | metadata.product_event_type | Verkettung von signature_id und name |
| LastEventID | metadata.product_log_id | In String konvertiert |
| tid | metadata.product_log_id | Direkt zugeordnet |
| Produkt | metadata.product_name | Direkt umbenannt |
| Version | metadata.product_version | Direkt umbenannt |
| vendor | metadata.vendor_name | Direkt umbenannt |
| Host | observer.hostname | Direkt zugeordnet |
| LastEventUserName | principal.administrative_domain | Extrahierte Daten mit dem Grok-Muster „domain\user“ |
| ApplicationType | principal.application | Direkt zugeordnet |
| shost | principal.asset.hostname | Wenn der Wert nicht dem IP-Adressmuster entspricht |
| shost | principal.asset.hostname | Fallback, wenn „dhost“ leer ist |
| shost | principal.asset.ip | Wenn der Wert dem IP-Adressmuster entspricht |
| src | principal.asset.ip | Direkt zugeordnet |
| ip_address | principal.asset.ip | Direkt zugeordnet |
| shost | principal.asset.ip | Fallback, wenn „dhost“ leer ist |
| shost | principal.ip | Wenn der Wert dem IP-Adressmuster entspricht, wird er zusammengeführt. |
| src | principal.ip | Direkt zusammengeführt |
| ip_address | principal.ip | Direkt zusammengeführt |
| Standort | principal.location.name | Direkt zugeordnet |
| LastEventSourceName | principal.platform | Auf WINDOWS setzen, wenn der Wert mit dem Windows-Muster übereinstimmt |
| EventName | principal.process.command_line | Wenn der Prozess dem EXE-Muster entspricht |
| LastEventPackageName | principal.resource.name | Wenn der Wert nicht „EventName“ ist |
| ApplicationType | principal.user.attribute.roles | Auf ADMINISTRATOR festlegen, wenn der Wert „AdminTask“ ist |
| LastEventUserName | principal.user.user_display_name | Nutzerteil mit dem Grok-Muster „domain\user“ extrahiert |
| user_name | principal.user.user_display_name | Direkt zugeordnet |
| SourceUser | principal.user.userid | Direkt zugeordnet |
| suser | principal.user.userid | Wenn das Ereignis nicht vom Typ USER_ ist |
| usrName | principal.user.userid | Direkt zugeordnet |
| _action | security_result.action | Direkt zusammengeführt |
| Name | security_result.action | Auf BLOCK gesetzt, wenn der Wert mit „Failure“ oder „Failed“ beginnt, andernfalls ALLOW |
| msg | security_result.description | Direkt zugeordnet |
| msg, reason | security_result.description | Wird aus „msg“ und „reason“ verkettet, wenn die Fehlerbedingung erfüllt ist. |
| _sec_result_description | security_result.description | Direkt zugeordnet |
| PolicyName | security_result.rule_name | Direkt zugeordnet |
| cs2 | security_result.rule_name | Direkt zugeordnet |
| die Ausprägung | security_result.severity | Auf LOW setzen, wenn der Wert <= 5 ist, auf MEDIUM, wenn der Wert <= 8 ist, andernfalls auf HIGH |
| sev | security_result.severity | Direkt zugeordnet |
| sev | security_result.severity_details | Direkt zugeordnet |
| Grund | security_result.summary | Direkt zugeordnet |
| Name | security_result.summary | Direkt zugeordnet |
| dhost | target.asset.hostname | Wenn der Wert nicht dem IP-Adressmuster entspricht |
| shost | target.asset.hostname | Fallback, wenn „dhost“ leer ist |
| dhost | target.asset.ip | Wenn der Wert dem IP-Adressmuster entspricht |
| GatewayStation | target.asset.ip | Direkt zugeordnet |
| shost | target.asset.ip | Fallback, wenn „dhost“ leer ist |
| FileQualifier | target.asset_id | Mit „ASSET ID:“ als Präfix und in String konvertiert |
| Datei | target.file.full_path | Direkt zugeordnet |
| file_path | target.file.full_path | Direkt zugeordnet |
| LastEventSourceName | target.file.full_path | Wenn der Wert mit „C:“ beginnt |
| fname | target.file.full_path | Direkt zugeordnet |
| Hash | target.file.sha1 | Das Präfix „SHA1##“ wurde entfernt und der Wert wurde in Kleinbuchstaben umgewandelt, wenn es sich um den Typ „SHA1“ handelt. |
| GatewayStation | target.ip | Direkt zusammengeführt |
| pid | target.process.pid | In String konvertiert |
| Sicher | target.resource.name | Direkt zugeordnet |
| user_name | target.user.user_display_name | Direkt zugeordnet |
| TargetUser | target.user.userid | Direkt zugeordnet |
| duser | target.user.userid | Direkt zugeordnet |
| suser | target.user.userid | Wenn das Ereignis vom Typ USER_ ist |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten