Symantec EDR-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie Symantec EDR-Logs mit dem Bindplane-Agenten in Google Security Operations aufnehmen.
Symantec Endpoint Detection and Response (EDR) ist eine Lösung zur Bedrohungserkennung, die Syslog-Nachrichten für Endpunktaktivitäten, Prozessausführungen, Netzwerkverbindungen, Dateioperationen, Registry-Änderungen und Sicherheitsvorfälle generiert. Der Parser extrahiert Felder aus JSON- und CEF-formatierten Logs und ordnet sie dem Unified Data Model (UDM) zu.
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-Agenten und der Symantec EDR-Appliance
- Wenn der Agent hinter einem Proxy ausgeführt wird, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
- Administratorzugriff auf die Symantec EDR-Web-UI
Google SecOps-Anmeldedaten für den Bindplane-Agenten abrufen
Wählen Sie eine der folgenden Methoden aus, um den Bindplane-Agenten bei Google SecOps zu authentifizieren:
- Neue Bereitstellungen: Verwenden Sie die Chronicle API (Option 1).
- Legacy-Bereitstellungen: Verwenden Sie die Authentifizierungsdatei für die Datenaufnahme (Option 2) weiter, bis die Ingestion API am 20. Juli 2027 eingestellt wird.
Option 1: Dienstkonto für die Chronicle API erstellen (empfohlen)
- Melden Sie sich in der Google Cloud -Konsole an und wählen Sie das Google Cloud -Projekt aus, das mit Ihrer Google SecOps-Instanz verknüpft ist.
- Rufen Sie IAM und Verwaltung > Dienstkonten auf.
- Klicken Sie auf Dienstkonto erstellen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name des Dienstkontos: Geben Sie einen Namen für das Konto ein (z. B.
bindplane-ingest). - Dienstkontobeschreibung: Geben Sie eine Beschreibung ein (z. B.
Bindplane agent log ingestion).
- Name des Dienstkontos: Geben Sie einen Namen für das Konto ein (z. B.
- Klicken Sie auf Erstellen und fortfahren.
- Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle Editor aus.
- Klicken Sie auf Weiter und dann auf Fertig.
- Klicken Sie auf das von Ihnen erstellte Dienstkonto und rufen Sie den Tab Schlüssel auf.
- Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
- Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
- Speichern Sie die Schlüsseldatei als
ingestion-auth.jsonim Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.jsonunter Linux oderC:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.jsonunter Windows) oder aktualisieren Siecreds_file_pathinconfig.yaml, sodass der Pfad mit dem Pfad übereinstimmt, unter dem Sie die Datei speichern. - Rufen Sie IAM und Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Exporter-Konfiguration.
Option 2: Authentifizierungsdatei für die Datenaufnahme herunterladen (Legacy)
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie Einstellungen > Datenverwaltung > Erfassungs-Agents auf. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die Einstellungen > Erfassungs-Agents auf.
- Laden Sie die Authentifizierungsdatei für die Datenaufnahme herunter.
- Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert werden soll.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Gehen Sie zu Einstellungen > Verwaltung > Profil. Wenn Sie eine reine SIEM-Plattform verwenden, rufen Sie die Einstellungen > Profil auf.
Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
Bindplane-Agent installieren
Installieren Sie den Bindplane-Agenten gemäß der folgenden Anleitung auf Ihrem Windows- oder Linux-Betriebssystem.
Windows-Installation
- Ö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 Dienst sollte als RUNNING 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-collectorDer Dienst sollte als active (running) angezeigt werden.
Zusätzliche Installationsressourcen
Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agenten.
Bindplane-Agenten so konfigurieren, dass Syslog-Daten aufgenommen und an Google SecOps gesendet werden
Konfigurationsdatei suchen
Linux:
sudo nano /opt/observiq-otel-collector/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/symantec_edr: protocol: https # Region of your instance, for example us, europe, asia-southeast1 location: <LOCATION> # Project number of the Google Cloud project linked to the instance project: '<PROJECT_NUMBER>' compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: chronicle.googleapis.com log_type: SYMANTEC_EDR raw_log_field: body service: pipelines: logs/symantec_edr_to_chronicle: receivers: - udplog exporters: - chronicle/symantec_edr
Konfigurationsparameter
Ersetzen Sie die folgenden Platzhalter:
Empfängerkonfiguration:
listen_address: IP-Adresse und Port, auf dem gelauscht werden soll:0.0.0.0, um auf allen Schnittstellen zu lauschen (empfohlen)- Port
514ist der Standard-Syslog-Port (erfordert Root unter Linux; verwenden Sie1514für Nicht-Root).
Exporter-Konfiguration:
creds_file_path: Vollständiger Pfad zur JSON-Schlüsseldatei des Dienstkontos (Option 1):- Linux:
/opt/observiq-otel-collector/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: Kundennummer, die aus der Google SecOps-Konsole kopiert wurdelocation: Ersetzen Sie<LOCATION>durch die Region Ihrer Google SecOps-Instanz (z. B.us,europeoderasia-southeast1). Der Exporter stellt diesem Wertchronicle.googleapis.comvoran. Eine vollständige Liste finden Sie unter Regionale Endpunkte.project: Ersetzen Sie<PROJECT_NUMBER>durch die Projektnummer aus IAM & Verwaltung > Einstellungen.endpoint: Behalten Sie die Einstellungchronicle.googleapis.combei.
Legacy-Ingestion-API-Exporter
Wenn Sie die Authentifizierungsdatei für die Datenaufnahme aus Option 2 verwenden, ersetzen Sie den Block
exportersdurch Folgendes. Legen Sie fürcreds_file_pathden Pfad zur Authentifizierungsdatei für die Datenaufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Siemalachiteingestion-pa.googleapis.comdurch Ihren regionalen Endpunkt (z. B.europe-malachiteingestion-pa.googleapis.com).exporters: chronicle/symantec_edr: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: SYMANTEC_EDR raw_log_field: body
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
Starten Sie den Bindplane-Agent neu, um die Änderungen zu übernehmen.
Führen Sie den folgenden Befehl aus, um den Bindplane-Agenten unter Linux neu zu starten:
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
Wählen Sie eine der folgenden Optionen aus, um den Bindplane-Agenten unter Windows neu zu starten:
Eingabeaufforderung oder PowerShell als Administrator:
net stop observiq-otel-collector && net start observiq-otel-collectorDienstkonsole:
- Drücken Sie
Win+R, geben Sieservices.mscein und drücken Sie die Eingabetaste. - Suchen Sie nach observIQ OpenTelemetry Collector.
- Rechtsklicken Sie und wählen Sie Neu starten aus.
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"
- Drücken Sie
Syslog in Symantec EDR konfigurieren
- Melden Sie sich in der Web-UI von Symantec EDR an.
- Rufen Sie in der EDR-Cloud-Konsole Umgebung > Einstellungen auf.
- Wählen Sie eine Appliance aus und klicken Sie dann auf Appliances.
- Klicken Sie in der EDR-Appliance-Konsole auf Einstellungen > Appliances.
- Klicken Sie auf Standard-Appliance bearbeiten.
- Doppelklicken Sie in der Liste Appliances auf das Gerät.
- Entfernen Sie im Abschnitt „Syslog“ das Häkchen bei Standard verwenden (falls markiert).
- Klicken Sie auf + Syslog-Server hinzufügen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Host: Geben Sie die IP-Adresse des Bindplane-Agents ein.
- Protokoll: Wählen Sie das konfigurierte Protokoll aus (z. B. UDP).
- Port: Geben Sie die Portnummer des BindPlane-Agenten ein (z. B.
514).
- Klicken Sie auf Speichern.
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
actor.cmd_line |
principal.process.command_line |
Die vom Akteursprozess ausgeführte Befehlszeile. |
actor.file.md5 |
principal.process.file.md5 |
Der MD5-Hash der ausführbaren Datei des Akteurs. |
actor.file.path |
principal.process.file.full_path |
Der vollständige Pfad zur ausführbaren Datei des Akteurs. |
actor.file.sha2 |
principal.process.file.sha256 |
Der SHA256-Hash der ausführbaren Datei des Akteurs. |
actor.pid |
principal.process.pid |
Die Prozess-ID des Akteurs. |
actor.uid |
principal.resource.id |
Eindeutige Kennung für den Akteur. |
actor.user.name |
principal.user.userid |
Der Nutzername des Akteurs. |
actor.user.sid |
principal.user.windows_sid |
Die Windows-SID des Akteurs. |
attack.technique_name |
security_result.threat_name |
Der Name der MITRE ATT&CK-Technik. |
attack.technique_uid |
security_result.description |
Wird mit attack.technique_name verwendet, um security_result.description im Format |
collector_device_ip |
intermediary.ip |
Die IP-Adresse des Collector-Geräts. |
collector_device_name |
intermediary.hostname |
Der Hostname des Collector-Geräts. |
collector_name |
intermediary.resource.name |
Der Name des Collectors. |
collector_uid |
intermediary.resource.id |
Die eindeutige Kennung des Collectors. |
connection.bytes_download |
network.received_bytes |
Die Anzahl der in der Verbindung heruntergeladenen Byte. |
connection.bytes_upload |
network.sent_bytes |
Die Anzahl der in der Verbindung hochgeladenen Byte. |
connection.direction_id |
network.direction |
Die Richtung der Netzwerkverbindung (1 für INBOUND, 2 für OUTBOUND). |
connection.dst_ip |
target.ip |
Die Ziel-IP-Adresse der Verbindung. |
connection.dst_port |
target.port |
Der Zielport der Verbindung. |
connection.src_ip |
principal.ip |
Die Quell-IP-Adresse der Verbindung. |
connection.src_name |
principal.hostname |
Der Hostname der Quelle der Verbindung. |
connection.src_port |
principal.port |
Der Quellport der Verbindung. |
connection.url.host |
target.hostname |
Der Hostname in der Verbindungs-URL. |
connection.url.scheme |
network.application_protocol |
Das Schema der Verbindungs-URL (z.B. HTTP, HTTPS). |
connection.url.text |
target.url |
Die vollständige Verbindungs-URL. |
data_source_url_domain |
target.url |
Die Domain der Datenquellen-URL. |
device_domain |
principal.administrative_domain/target.administrative_domain |
Die Domain des Geräts. Wird basierend auf der Logik im Zusammenhang mit „connection.direction_id“ dem Hauptkonto oder dem Ziel zugeordnet. |
device_ip |
principal.ip/target.ip |
Die IP-Adresse des Geräts. Wird basierend auf der Logik im Zusammenhang mit „connection.direction_id“ dem Hauptkonto oder dem Ziel zugeordnet. |
device_name |
principal.hostname/target.hostname |
Der Name des Geräts Wird basierend auf der Logik im Zusammenhang mit „connection.direction_id“ dem Hauptkonto oder dem Ziel zugeordnet. |
device_os_name |
principal.platform_version/target.platform_version |
Das Betriebssystem des Geräts. Wird basierend auf der Logik im Zusammenhang mit „connection.direction_id“ dem Hauptkonto oder dem Ziel zugeordnet. |
device_uid |
target.asset_id |
Die eindeutige Kennung des Geräts, der „Device ID:“ vorangestellt ist. |
directory.path |
target.file.full_path |
Der Pfad des Verzeichnisses. |
domain_name |
target.administrative_domain |
Der Name der Domain. |
event_actor.file.path |
target.process.file.full_path |
Der Pfad zur ausführbaren Datei des Ereignis-Actors. |
event_actor.pid |
target.process.pid |
Die Prozess-ID des Ereignisakteurs. |
event_desc |
metadata.description |
Beschreibung des Ereignisses. |
externalIP |
target.ip |
Die externe IP-Adresse. |
file.md5 |
target.file.md5 |
Der MD5-Hash der Datei |
file.path |
target.file.full_path |
Der Pfad zur Datei. |
file.rep_prevalence_band |
additional.fields.value.number_value |
Das Verbreitungsband der Bewertung der Datei, zugeordnet mit keyprevalence_score. |
file.rep_score_band |
additional.fields.value.number_value |
Die Reputationsbewertung der Datei, zugeordnet mit dem Schlüssel reputation_score. |
file.sha2 |
target.file.sha256 |
Der SHA256-Hash der Datei. |
file.size |
target.file.size |
Die Größe der Datei. |
internalHost |
principal.hostname |
Der interne Hostname. |
internalIP |
principal.ip |
Die interne IP-Adresse. |
internal_port |
principal.port |
Der interne Port. |
kernel.name |
target.resource.name |
Der Name des Kernel-Objekts. Der target.resource.type ist auf MUTEX festgelegt. |
message |
metadata.description |
Der Logeintrag. |
module.md5 |
target.process.file.md5 |
Der MD5-Hash des Moduls. |
module.path |
target.process.file.full_path |
Der Pfad zum Modul. |
module.sha2 |
target.process.file.sha256 |
Der SHA256-Hash des Moduls. |
module.size |
target.process.file.size |
Die Größe des Moduls. |
process.cmd_line |
target.process.command_line |
Die Befehlszeile des Prozesses. |
process.file.md5 |
target.process.file.md5 |
Der MD5-Hash der ausführbaren Datei des Prozesses. |
process.file.path |
target.process.file.full_path |
Der Pfad zur ausführbaren Datei des Prozesses. |
process.file.sha2 |
target.process.file.sha256 |
Der SHA256-Hash der ausführbaren Datei des Prozesses. |
process.pid |
target.process.pid |
Die Prozess-ID. |
process.uid |
target.resource.id |
Die eindeutige Kennung des Prozesses. |
process.user.name |
target.user.userid |
Der mit dem Prozess verknüpfte Nutzername. |
process.user.sid |
target.user.windows_sid |
Die Windows-SID des Prozessnutzers. |
product_name |
metadata.product_name |
Der Name des Produkts, das das Log generiert. |
product_ver |
metadata.product_version |
Die Version des Produkts, das das Log generiert. |
reg_key.path |
target.registry.registry_key |
Der Pfad des Registrierungsschlüssels. |
reg_value.data |
target.registry.registry_value_data |
Die Daten des Registrierungswerts. |
reg_value.name |
target.registry.registry_value_name |
Der Name des Registrierungswerts. |
reg_value.path |
target.registry.registry_key |
Der Pfad des Registrierungsschlüssels für den Wert. |
security_result.severity |
security_result.severity |
Der Schweregrad des Sicherheitsergebnisses. Übersetzt von einem numerischen Wert in ein UDM-Enum (z.B. 1 in LOW, 5 in MEDIUM, 10 in LOW, 15 in LOW). |
session.id |
network.session_id |
Die Sitzungs-ID. |
session.user.name |
target.user.userid |
Der mit der Sitzung verknüpfte Nutzername. |
sid |
principal.user.userid |
Die Sicherheits-ID (SID). |
status_detail |
security_result.summary |
Weitere Informationen zum Status. |
type_id |
metadata.product_event_type |
Die Ereignistyp-ID. |
user_agent_ip |
target.ip |
Die IP-Adresse des User-Agents. |
user_name |
principal.user.userid/target.user.user_display_name |
Der Nutzername. Wird basierend auf der Logik für das CEF- oder JSON-Parsing dem Hauptkonto oder Ziel zugeordnet. |
user_uid |
target.user.userid |
Die eindeutige Kennung des Nutzers. |
uuid |
metadata.product_log_id |
Die UUID des Ereignisses. |
event.idm.read_only_udm.metadata.event_timestamp |
event.idm.read_only_udm.metadata.event_timestamp |
Der Zeitstempel des Ereignisses. Abgeleitet von log_time oder CEF device_time. |
event.idm.read_only_udm.metadata.log_type |
event.idm.read_only_udm.metadata.log_type |
Der Logtyp. Hartcodiert auf SYMANTEC_EDR. |
event.idm.read_only_udm.metadata.vendor_name |
event.idm.read_only_udm.metadata.vendor_name |
Der Name des Anbieters. Hartcodiert auf Symantec. |
event.idm.read_only_udm.extensions.auth.type |
event.idm.read_only_udm.extensions.auth.type |
Der Authentifizierungstyp. Legen Sie MACHINE für Anmelde- und Abmeldeereignisse fest. |
security_result.action |
security_result.action |
Die Maßnahme, die aufgrund des Sicherheitsereignisses ergriffen wurde. Legen Sie ALLOW für erfolgreiche An- und Abmeldungen fest. |
log_time |
event.idm.read_only_udm.metadata.collected_timestamp |
Aus Änderungsprotokoll zugeordnet |
user_name |
event.idm.read_only_udm.target.user.user_display_name |
Aus Änderungsprotokoll zugeordnet |
severity_id |
event.idm.read_only_udm.security_result.severity_details |
Aus Änderungsprotokoll zugeordnet |
risk_ref_value |
event.idm.read_only_udm.security_result.risk_score |
Aus Änderungsprotokoll zugeordnet |
attacks.technique_uid |
event.idm.read_only_udm.security_result.attack_details.techniques |
Aus Änderungsprotokoll zugeordnet |
attacks.technique_uid |
event.idm.read_only_udm.security_result.attack_details.tactics |
Aus Änderungsprotokoll zugeordnet |
event_actor.file.normalized_path |
event.idm.read_only_udm.principal.file.full_path |
Aus Änderungsprotokoll zugeordnet |
event_actor.file.name |
event.idm.read_only_udm.principal.process.file.names |
Aus Änderungsprotokoll zugeordnet |
user_sid |
event.idm.read_only_udm.target.user.windows_sid |
Aus Änderungsprotokoll zugeordnet |
event_actor.file.signature_company_name |
event.idm.read_only_udm.principal.group.group_display_name |
Aus Änderungsprotokoll zugeordnet |
event_actor.app_name |
event.idm.read_only_udm.principal.application |
Aus Änderungsprotokoll zugeordnet |
event_actor.integrity_id |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
event_actor_integrity_id |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
event_actor.signature_level_id |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
event_actor_signature_level_id |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
event_actor.start_time |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
event_actor_start_time |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
event_actor.file.modified |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
event_actor_file_modified |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
operation |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
event_actor.file.signature_value_ids |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
signature_value_id_0 |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
signature_value_id_1 |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
analysis |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
amsi_data |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
log_name |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
scan_uid |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
enriched_data.category_id |
event.idm.read_only_udm.security_result.detection_fields |
Aus Änderungsprotokoll zugeordnet |
category_id |
event.idm.read_only_udm.security_result.detection_fields |
Aus Änderungsprotokoll zugeordnet |
Änderungsprotokoll
Änderungsprotokoll für diesen Parser ansehen
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten