Cybereason EDR-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Cybereason EDR-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.
Cybereason EDR (Endpoint Detection and Response) ist eine Cybersicherheitsplattform, die erweiterte Bedrohungen an Endpunkten erkennt und darauf reagiert. Es werden Malops (Malicious Operations) identifiziert – korrelierte Angriffsketten, die verdächtige Aktivitäten zu vollständigen Angriffsszenarien zusammenfassen – und Sicherheitsanalysten erhalten Einblick in die Entwicklung von Bedrohungen, betroffene Maschinen, kompromittierte Nutzer und Netzwerkverbindungen.
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 Cybereason Detection 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.
- Zugriff auf die Cybereason-Verwaltungskonsole mit der Rolle „Systemadministrator“
- Cybereason-Plattformversion 20.1 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 zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
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: tcplog: listen_address: "0.0.0.0:514" exporters: chronicle/cybereason: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: 'your-customer-id' endpoint: malachiteingestion-pa.googleapis.com log_type: CYBEREASON_EDR raw_log_field: body service: pipelines: logs/cybereason_to_chronicle: receivers: - tcplog exporters: - chronicle/cybereasonErsetzen 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:
tcplogfür TCP-Syslog (erforderlich für die Cybereason-Syslog-Weiterleitung)
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 Cybereason EDR konfigurieren
Cybereason sendet MalOp- und User Audit-Ereignisse im CEF-Format (Common Event Format) über Syslog. Für die Konfiguration der Syslog-Weiterleitung ist ein Antrag an den technischen Support von Cybereason erforderlich.
Syslog-Weiterleitung vom technischen Support von Cybereason anfordern
- Melden Sie sich in der Cybereason-Verwaltungskonsole an.
- Wenden Sie sich über das Cybereason-Supportportal an den technischen Support von Cybereason.
- Senden Sie eine Anfrage zur Syslog-Weiterleitungskonfiguration mit den folgenden Informationen:
- IP-Adresse des Syslog-Servers: Die IP-Adresse des Bindplane-Agent-Hosts (z. B.
192.168.1.100). - Syslog-Serverport: Der Port, der dem BindPlane-Agenten
listen_addressentspricht (z. B.514). - Protokoll: TCP (unverschlüsseltes TCP-Syslog).
- Logtypen: Fordern Sie die Weiterleitung der folgenden Logtypen an:
- MalOp-Syslog: Sicherheitswarnungen und Ereignisse zu schädlichen Vorgängen
- Syslog für Nutzer-Audit: Nutzeraktivitäten und administrative Maßnahmen
- IP-Adresse des Syslog-Servers: Die IP-Adresse des Bindplane-Agent-Hosts (z. B.
Warten Sie, bis der technische Support von Cybereason die Konfiguration für die Syslog-Weiterleitung bestätigt.
Firewallregeln konfigurieren
Achten Sie darauf, dass die folgenden Firewallregeln vorhanden sind:
Richtung Protokoll Port Quelle Ziel Ausgehend TCP 514 Cybereason Detection Server Bindplane-Agent-Host
Alternative: Cybereason CEF Forwarder
Wenn der technische Support von Cybereason die direkte Syslog-Weiterleitung nicht konfigurieren kann, können Sie das Cybereason CEF Forwarder-Tool verwenden:
- Laden Sie das Cybereason CEF Forwarder-Docker-Image vom technischen Support von Cybereason herunter.
- Erstellen oder bearbeiten Sie die Konfigurationsdatei unter
cybereason-forwarders/config/config.json. Legen Sie folgende Einstellungen fest:
{ "host": "<BINDPLANE_AGENT_IP>", "port": 514 }Ersetzen Sie
<BINDPLANE_AGENT_IP>durch die IP-Adresse des Bindplane-Agent-Hosts.Docker-Container erstellen und ausführen:
docker build -t cybereason-cef-forwarder . docker run -d --name cybereason-forwarder cybereason-cef-forwarder
Syslog-Ereignistypen
Cybereason generiert CEF-Syslog-Nachrichten für die folgenden Ereigniskategorien:
| Ereigniskategorie | Beschreibung |
|---|---|
| MalOp erstellt | Neue schädliche Operation erkannt |
| MalOp updated | Der Status oder die Details einer bestehenden MalOp haben sich geändert. |
| MalOp geschlossen | MalOp vom Analysten behoben oder geschlossen |
| Malware erkannt | Malware auf einem Endpunkt erkannt |
| Verdächtiger Prozess | Verdächtige Prozessaktivität erkannt |
| Netzwerkverbindung | Verdächtige Netzwerkverbindung erkannt |
| Nutzeranmeldung | Nutzerauthentifizierungsereignisse |
| Maschinenisolation | Endpunkt vom Netzwerk getrennt oder wieder mit dem Netzwerk verbunden |
| Richtlinienänderungen | Änderungen an Sicherheitsrichtlinien |
Syslog-Weiterleitung bestätigen
- Nachdem der technische Support von Cybereason die Syslog-Konfiguration bestätigt hat, führen Sie eine Testaktion in der Cybereason-Konsole aus, z. B. eine MalOp ansehen oder einen Testcomputer isolieren.
- 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|Cybereason|Cybereason|2.0|MalOp|MalOp Created|8|cs1=MALOP_ID_HERE dvchost=server01.company.com suser=admin@company.com
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| detectionName_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| sensorId_label | additional.fields | Als Schlüssel/Wert-Paar zugeordnet |
| Status | metadata.description | Wenn der Wert nicht leer ist |
| log_description | metadata.description | Fallback, wenn der Status leer ist |
| (CEF-Format) | metadata.event_type | Für CEF-Logs auf GENERIC_EVENT festgelegt |
| event_type | metadata.event_type | Auf PROCESS_OPEN setzen, wenn der Wert „PROCESS_OPEN“ ist, auf NETWORK_CONNECTION, wenn der Wert „NETWORK_CONNECTION“ ist, auf SCAN_HOST, wenn der Wert „MALWARE“ ist. |
| has_principal, has_target | metadata.event_type | Wird auf SCAN_FILE gesetzt, wenn sowohl „has_principal“ als auch „has_target“ „true“ sind. |
| has_principal | metadata.event_type | Wird auf STATUS_UPDATE gesetzt, wenn nur „has_principal“ auf „true“ gesetzt ist. |
| has_user | metadata.event_type | Auf USER_UNCATEGORIZED festlegen, wenn „has_user“ im Malop-Kontext „true“ ist |
| (Standard) | metadata.event_type | Andernfalls auf GENERIC_EVENT festlegen |
| LogType | metadata.product_event_type | Wenn der Wert nicht leer ist |
| malop_data.simpleValues.elementDisplayName.values.0 | metadata.product_event_type | Fallback, wenn LogType leer ist |
| Typ | metadata.product_event_type | Fallback |
| prod_event, prod_event2 | metadata.product_event_type | Verkettet als prod_event – prod_event2 |
| malop_process.guidString | metadata.product_log_id | Für den Ereignistyp PROCESS_OPEN |
| malop_connection.guidString | metadata.product_log_id | Für den Ereignistyp „NETWORK_CONNECTION“ |
| guid | metadata.product_log_id | Für MALWARE- oder Malop-Ereignistypen |
| (statisch) | metadata.product_version | Anfangs auf „2.0“ festgelegt |
| Sensor.version | metadata.product_version | Überschreibt „2.0“, falls vorhanden |
| malop_url | metadata.url_back_to_product | Direkt zugeordnet |
| (statisch) | metadata.vendor_name | Auf „Cybereason“ festgelegt |
| direction | network.direction | Direkt zugeordnet |
| malop_connection.simpleValues.transportProtocol.values.0 | network.ip_protocol | Direkt zugeordnet |
| malop_connection.simpleValues.receivedBytesCount.values.0 | network.received_bytes | In vorzeichenlose Ganzzahl konvertiert |
| malop_connection.simpleValues.transmittedBytesCount.values.0 | network.sent_bytes | In vorzeichenlose Ganzzahl konvertiert |
| Sensor.fqdn | principal.administrative_domain | Direkt zugeordnet |
| malop_process.elementValues.ownerMachine.elementValues.0.guid | principal.asset.asset_id | Beginnt mit „Cybereason:“ |
| malop_data.elementValues.affectedMachines.elementValues.0.guid | principal.asset.asset_id | Mit „Cybereason:“ als Präfix, Fallback |
| malop_process.elementValues.ownerMachine.elementValues.0.name | principal.asset.hostname | Direkt zugeordnet |
| malop_data.elementValues.affectedMachines.elementValues.0.name | principal.asset.hostname | Fallback |
| machineName | principal.asset.hostname | Fallback |
| Host | principal.asset.hostname | Fallback |
| dvchost | principal.asset.hostname | Fallback |
| Sensor.fqdn | principal.asset.hostname | Fallback |
| client.ip | principal.asset.ip | Direkt zugeordnet |
| Sensor.externalIpAddress | principal.asset.ip | Fallback |
| malop_process.elementValues.ownerMachine.elementValues.0.name | principal.hostname | Direkt zugeordnet |
| malop_data.elementValues.affectedMachines.elementValues.0.name | principal.hostname | Fallback |
| machineName | principal.hostname | Fallback |
| Host | principal.hostname | Fallback |
| dvchost | principal.hostname | Fallback |
| Sensor.fqdn | principal.hostname | Fallback |
| client.ip | principal.ip | Direkt zugeordnet |
| Sensor.externalIpAddress | principal.ip | Fallback |
| Sensor.internalIpAddress | principal.nat_ip | Direkt zugeordnet |
| Sensor.privateServerIp | principal.nat_ip | Fallback |
| Sensor.osType | principal.platform | Auf WINDOWS setzen, wenn der Wert „WINDOWS“ ist, auf LINUX, wenn „LINUX“, auf MAC, wenn „MAC“ |
| Sensor.osVersionType | principal.platform_version | Direkt zugeordnet |
| malop_connection.simpleValues.localPort.values.0 | principal.port | In Ganzzahl konvertiert |
| malop_process.simpleValues.commandLine.values.0 | principal.process.command_line | Direkt zugeordnet |
| malwareDataModel.filePath | principal.process.command_line | Fallback |
| malop_process.simpleValues.calculatedName.values.0 | principal.process.file.full_path | Direkt zugeordnet |
| Name | principal.process.file.full_path | Fallback |
| malop_process.elementValues.parentProcess.elementValues.0.guid | principal.process.parent_process.product_specific_process_id | Beginnt mit „Cybereason:“ |
| malop_process.elementValues.self.elementValues.0.guid | principal.process.pid | Direkt zugeordnet |
| malop_process.elementValues.self.elementValues.0.guid | principal.process.product_specific_process_id | Beginnt mit „Cybereason:“ |
| malop_connection.elementValues.ownerProcess.elementValues.0.guid | principal.process.product_specific_process_id | Mit „Cybereason:“ als Präfix, Fallback |
| companyName | principal.user.company_name | Direkt zugeordnet |
| malop_process.elementValues.calculatedUser.elementValues.0.name | principal.user.user_display_name | Direkt zugeordnet |
| malop_data.elementValues.affectedUsers.elementValues.0.name | principal.user.user_display_name | Fallback |
| malop_connection.elementValues.ownerProcess.user.elementValues.0.name | principal.user.user_display_name | Fallback |
| malop_process.elementValues.calculatedUser.elementValues.0.guid | principal.user.userid | Direkt zugeordnet |
| malop_data.elementValues.affectedUsers.elementValues.0.guid | principal.user.userid | Fallback |
| malop_connection.elementValues.ownerProcess.user.elementValues.0.guid | principal.user.userid | Fallback |
| security_result_action | security_result.action | Je nach Status auf ALLOW, BLOCK oder QUARANTINE festlegen |
| is_alert | security_result.alert_state | Auf „ALERTING“ setzen, wenn der Wert „True“ ist |
| sr_category | security_result.category | Auf SOFTWARE_MALICIOUS oder NETWORK_MALICIOUS festgelegt |
| query_details | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| affected_machine_count | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| link_to_malop | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| context_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| old_state_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| new_state_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| investigation_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| event_id_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| malop_activity_type_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| malop_suspect_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| malop_key_suspicion_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| device_custom_date_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| device_custom_date2_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| device_custom_date3_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| guid_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| displayName_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| pylumId_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| connected_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| isolated_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| osType_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| admin_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| domainUser_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| localSystem_label | security_result.detection_fields | Als Schlüssel/Wert-Paar zugeordnet |
| Beschreibung | security_result.description | Verkettet mit „decision_feature“, „malop_status“, „privileges“, „passwordAgeDays“, „elementType“, „status“, „score“, „detectionValue“, „detectionValueType“, „detectionEngine“ |
| decision_feature | security_result.description | In die Beschreibung eingefügt |
| malop_status | security_result.description | In die Beschreibung eingefügt |
| Berechtigungen | security_result.description | In die Beschreibung eingefügt |
| passwordAgeDays | security_result.description | In die Beschreibung eingefügt |
| elementType | security_result.description | In die Beschreibung eingefügt |
| Status | security_result.description | In die Beschreibung eingefügt |
| Punktzahl | security_result.description | In die Beschreibung eingefügt |
| detectionValue | security_result.description | In die Beschreibung eingefügt |
| detectionValueType | security_result.description | In die Beschreibung eingefügt |
| detectionEngine | security_result.description | In die Beschreibung eingefügt |
| malop_data.malopPriority | security_result.priority | Direkt zugeordnet |
| malop_severity | security_result.severity | Direkt zugeordnet |
| security_severity | security_result.severity | Auf CRITICAL setzen, wenn der Wert > 8 ist, auf HIGH, wenn > 6, auf MEDIUM, wenn > 4, und auf LOW, wenn > 1. |
| die Ausprägung | security_result.severity | Auf INFORMATIONAL setzen, wenn „Info“, ERROR, wenn „Error“ oder „High“, MEDIUM, wenn „Warning“ oder „Medium“, CRITICAL, wenn „Critical“, LOW, wenn „Low“, andernfalls UNKNOWN |
| Beschreibung | security_result.summary | Direkt zugeordnet |
| Typ | security_result.summary | Fallback |
| malopId | security_result.threat_id | Direkt zugeordnet |
| malop_data.simpleValues.detectionType.values.0 | security_result.threat_name | Direkt zugeordnet |
| virusName | security_result.threat_name | Fallback |
| Status | security_result.threat_status | Auf ACTIVE setzen, wenn der Wert „Active“ ist, andernfalls FALSE_POSITIVE |
| malop_url | security_result.url_back_to_product | Direkt zugeordnet |
| machineName | target.asset.hostname | Direkt zugeordnet |
| affectedMachine | target.asset.hostname | Fallback |
| dvchost | target.asset.hostname | Fallback |
| Sensor.serverName | target.asset.hostname | Fallback |
| server.ip | target.asset.ip | Direkt zugeordnet |
| Sensor.serverIp | target.asset.ip | Fallback |
| malop_process.simpleValues.calculatedName.values.0 | target.file.full_path | Direkt zugeordnet |
| malop_connection.elementValues.ownerProcess.elementValues.0.name | target.file.full_path | Fallback |
| Name | target.file.full_path | Fallback |
| malwareDataModel_filePath | target.file.full_path | Fallback |
| malop_process.simpleValues.imageFile.md5String.values.0 | target.file.md5 | Direkt zugeordnet |
| Name | target.file.names | Direkt zugeordnet |
| machineName | target.hostname | Direkt zugeordnet |
| affectedMachine | target.hostname | Fallback |
| dvchost | target.hostname | Fallback |
| Sensor.serverName | target.hostname | Fallback |
| server.ip | target.ip | Direkt zugeordnet |
| Sensor.serverIp | target.ip | Fallback |
| malop_connection.simpleValues.remoteAddressCountryName.values.0 | target.location.country_or_region | Direkt zugeordnet |
| Sensor.privateServerIp | target.nat_ip | Direkt zugeordnet |
| malop_connection.simpleValues.remotePort.values.0 | target.port | In Ganzzahl konvertiert |
| malop_process.simpleValues.calculatedName.values.0 | target.process.file.full_path | Direkt zugeordnet |
| malop_process.elementValues.self.elementValues.0.guid | target.process.pid | Direkt zugeordnet |
| malop_url | target.url | Direkt zugeordnet |
| (statisch) | metadata.product_name | Auf „Cybereason“ festgelegt |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten