ArcSight-CEF-Logs erfassen
Parserversion: 34.0
In diesem Dokument wird beschrieben, wie Sie ArcSight-CEF-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.
ArcSight (jetzt Teil von OpenText) verwendet das Common Event Format (CEF) zur Normalisierung von Sicherheitsereignissen aus mehreren Quellen. Der ArcSight SmartConnector erfasst Ereignisse und leitet sie im CEF-Format über Syslog an nachgelagerte Nutzer weiter, einschließlich SIEM-Plattformen.
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-Agent und dem ArcSight SmartConnector-Host
- Wenn der Agent hinter einem Proxy ausgeführt wird, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
- Zugriff auf das OpenText-Supportportal, um SmartConnector herunterzuladen
- Administratorzugriff auf den SmartConnector-Server
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 & 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 erstellte Dienstkonto und rufen Sie dann 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 & Verwaltung > Einstellungen auf und kopieren Sie die Projektnummer. Sie benötigen sie für die Exporter-Konfiguration.
Option 2: Authentifizierungsdatei für die Aufnahme herunterladen (Legacy)
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > Collection 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.
- Rufen Sie die SIEM-Einstellungen > Profile auf.
Kopieren und speichern Sie die Kundennummer aus dem Bereich Organization Details (Organisationsdetails).
Bindplane-Agent installieren
Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.
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" /quietWarte, 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.shWarte, 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 Problembehebung finden Sie im Installationsanleitung für den Bindplane-Agent.
Bindplane-Agent für die Aufnahme von Syslog und das Senden an Google SecOps konfigurieren
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/arcsight_cef: 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: ARCSIGHT_CEF raw_log_field: body service: pipelines: logs/arcsight_to_chronicle: receivers: - udplog exporters: - chronicle/arcsight_cef
Konfigurationsparameter
Ersetzen Sie die folgenden Platzhalter:
Empfängerkonfiguration:
listen_address: IP-Adresse und Port, auf die gewartet 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: Die Kundennummer, die aus der Google SecOps Console 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 unter IAM & Verwaltung > Einstellungen.endpoint: Behalten Sie die Einstellungchronicle.googleapis.combei.
Exporter für die Legacy Ingestion API
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/arcsight_cef: compression: gzip creds_file_path: '/opt/observiq-otel-collector/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: ARCSIGHT_CEF 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
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 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-collectorLogs auf Fehler prüfen:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Drücken Sie
ArcSight SmartConnector herunterladen
- Melden Sie sich im OpenText-Supportportal an.
- Suchen Sie den neuesten ArcSight SmartConnector für Linux und laden Sie ihn herunter.
- Beispieldateiname:
ArcSight-Connector-Linux64-8.4.0.8499.0.bin.
ArcSight SmartConnector installieren
Laden Sie die Datei
.binauf den SmartConnector-Server hoch:scp ArcSight-Connector-Linux64-8.4.0.8499.0.bin user@your-smartconnector-host:/tmpMelden Sie sich über SSH beim SmartConnector-Server an und führen Sie folgenden Befehl aus:
cd /tmp chmod +x ArcSight-Connector-Linux64-8.4.0.8499.0.bin ./ArcSight-Connector-Linux64-8.4.0.8499.0.binFolgen Sie der interaktiven Installationsanleitung:
- Wählen Sie das Installationsverzeichnis aus (z. B.
/opt/arcsight/connectors/current). - Akzeptieren Sie die Lizenz.
- Wählen Sie Connector installieren aus, wenn Sie dazu aufgefordert werden.
- Wählen Sie das Installationsverzeichnis aus (z. B.
ArcSight SmartConnector so konfigurieren, dass CEF an Syslog gesendet wird
Starten Sie den Zielassistenten auf dem SmartConnector-Host:
cd /opt/arcsight/connectors/current/bin ./arcsight connectorsGehen Sie im Assistenten so vor:
- Wählen Sie Ziel hinzufügen aus.
- Wählen Sie CEF Syslog aus.
Geben Sie die folgenden Konfigurationsdetails an:
- Host/IP: Geben Sie die IP-Adresse des Bindplane-Agents ein.
- Port: Geben Sie die Portnummer des Bindplane-Agents ein, z. B.
514. - Protokoll: Wählen Sie UDP aus.
Schließen Sie die Einrichtung ab und starten Sie den Connector neu:
./arcsight agentsFühren Sie eine Prüfung der Konnektivität durch (suchen Sie nach:
Successfully connected to syslog: X.X.X.X:514):tail -f /opt/arcsight/connectors/current/logs/agent.log
UDM-Zuordnungstabelle
| Logfeld | UDM-Zuordnung | Logik |
|---|---|---|
| handeln | security_result.action_details | Wird direkt aus dem Feld act zugeordnet. |
| agt | principal.ip | Direkt aus dem Feld agt zugeordnet. |
| agt | principal.asset.ip | Direkt aus dem Feld agt zugeordnet. |
| App | network.application_protocol | Wird direkt aus dem Feld app zugeordnet. |
| art | metadata.event_timestamp.seconds | Wird direkt aus dem Feld art zugeordnet. |
| cs2 | additional.fields.value.string_value | Wird direkt aus dem Feld cs2 zugeordnet, wenn cs2Label den Wert EventlogCategory hat. |
| cs2Label | additional.fields.key | Wird direkt aus dem Feld cs2Label zugeordnet, wenn der Wert EventlogCategory ist. |
| cs3 | additional.fields.value.string_value | Wird direkt aus dem Feld cs3 zugeordnet, wenn cs3Label den Wert Process ID hat. |
| cs3Label | additional.fields.key | Wird direkt aus dem Feld cs3Label zugeordnet, wenn der Wert Process ID ist. |
| cs5 | additional.fields.value.string_value | Direkt aus dem Feld cs5 zugeordnet, wenn cs5Label gleich Authentication Package Name ist. |
| cs5Label | additional.fields.key | Wird direkt aus dem Feld cs5Label zugeordnet, wenn der Wert Authentication Package Name ist. |
| cs6 | additional.fields.value.string_value | Wird direkt aus dem Feld cs6 zugeordnet, wenn cs6Label den Wert Logon GUID hat. |
| cs6Label | additional.fields.key | Direkt aus dem Feld cs6Label zugeordnet, wenn der Wert Logon GUID ist. |
| dhost | about.hostname | Wird direkt aus dem Feld dhost zugeordnet. |
| dhost | target.hostname | Wird direkt aus dem Feld dhost zugeordnet. |
| dntdom | about.administrative_domain | Wird direkt aus dem Feld dntdom zugeordnet. |
| dntdom | target.administrative_domain | Direkt aus dem Feld dntdom zugeordnet. |
| dproc | about.process.command_line | Wird direkt aus dem Feld dproc zugeordnet. |
| dproc | target.process.command_line | Direkt aus dem Feld dproc zugeordnet. |
| dst | principal.ip | Direkt aus dem Feld dst zugeordnet. |
| dst | principal.asset.ip | Wird direkt aus dem Feld dst zugeordnet. |
| dst | target.ip | Direkt aus dem Feld dst zugeordnet. |
| duid | target.user.userid | Direkt aus dem Feld duid zugeordnet. |
| duser | target.user.user_display_name | Wird direkt aus dem Feld duser zugeordnet. |
| dvc | about.ip | Wird direkt aus dem Feld dvc zugeordnet. |
| dvchost | about.hostname | Direkt aus dem Feld dvchost zugeordnet. |
| eventId | additional.fields.value.string_value | Wird direkt aus dem Feld eventId zugeordnet. |
| externalId | metadata.product_log_id | Wird direkt aus dem Feld externalId zugeordnet. |
| fname | additional.fields.value.string_value | Wird direkt aus dem Feld fname zugeordnet. |
| msg | metadata.description | Wird direkt aus dem Feld msg zugeordnet. |
| Proto | network.ip_protocol | Wird direkt aus dem Feld proto zugeordnet. Übersetzt Protokollnamen in die entsprechenden Konstanten (z.B. tcp in TCP). |
| rt | metadata.event_timestamp.seconds | Wird direkt aus dem Feld rt zugeordnet. |
| shost | about.hostname | Wird direkt aus dem Feld shost zugeordnet. |
| shost | principal.hostname | Wird direkt aus dem Feld shost zugeordnet. |
| src | principal.ip | Wird direkt aus dem Feld src zugeordnet. |
| src | principal.asset.ip | Wird direkt aus dem Feld src zugeordnet. |
| src | target.ip | Wird direkt aus dem Feld src zugeordnet. |
| sproc | principal.process.command_line | Wird direkt aus dem Feld sproc zugeordnet. |
| spt | principal.port | Wird direkt aus dem Feld spt zugeordnet. |
| spt | target.port | Direkt aus dem Feld spt zugeordnet. |
| additional.EventRecordID | additional.fields.value.string_value | Wird direkt aus dem Feld ad.EventRecordID zugeordnet. |
| additional.ThreadID | additional.fields.value.string_value | Direkt aus dem Feld ad.ThreadID zugeordnet. |
| additional.Opcode | additional.fields.value.string_value | Direkt aus dem Feld ad.Opcode zugeordnet. |
| additional.ProcessID | additional.fields.value.string_value | Wird direkt aus dem Feld ad.ProcessID zugeordnet. |
| additional.TargetDomainName | additional.fields.value.string_value | Direkt aus dem Feld ad.TargetDomainName zugeordnet. |
| additional.Version | additional.fields.value.string_value | Direkt aus dem Feld ad.Version zugeordnet. |
| deviceExternalId | about.asset.hardware.serial_number | Wird direkt aus dem Feld deviceExternalId zugeordnet. |
| deviceInboundInterface | additional.fields.value.string_value | Direkt aus dem Feld deviceInboundInterface zugeordnet. |
| deviceOutboundInterface | additional.fields.value.string_value | Wird direkt aus dem Feld deviceOutboundInterface zugeordnet. |
| PanOSConfigVersion | security_result.detection_fields.value | Wird direkt aus dem Feld PanOSConfigVersion zugeordnet. |
| PanOSContentVersion | security_result.detection_fields.value | Direkt aus dem Feld PanOSContentVersion zugeordnet. |
| PanOSDGHierarchyLevel1 | security_result.detection_fields.value | Direkt aus dem Feld PanOSDGHierarchyLevel1 zugeordnet. |
| PanOSDestinationLocation | target.location.country_or_region | Wird direkt aus dem Feld PanOSDestinationLocation zugeordnet. |
| PanOSRuleUUID | metadata.product_log_id | Direkt aus dem Feld PanOSRuleUUID zugeordnet. |
| PanOSThreatCategory | security_result.category_details | Direkt aus dem Feld PanOSThreatCategory zugeordnet. |
| PanOSThreatID | security_result.threat_id | Direkt aus dem Feld PanOSThreatID zugeordnet. |
| about.asset.asset_id | Wird durch Verketten von Palo Alto Networks., dem Namen des Anbieters (LF) und dem Feld deviceExternalId generiert. |
|
| extensions.auth.type | Wird auf AUTHTYPE_UNSPECIFIED gesetzt, wenn das Feld event_name den Wert logged on enthält. |
|
| metadata.description | Wenn das Feld description den Wert by gefolgt von einer IP-Adresse enthält, wird die IP-Adresse extrahiert und principal.ip und principal.asset.ip zugeordnet. |
|
| metadata.event_type | Wird anhand einer Reihe von bedingten Prüfungen für verschiedene Felder ermittelt, darunter event_name, principal_*, target_* und device_event_class_id. Die Logik bestimmt anhand der verfügbaren Informationen den am besten geeigneten Ereignistyp. |
|
| metadata.log_type | Legen Sie ARCSIGHT_CEF fest. |
|
| metadata.product_event_type | Wird durch Verketten von \[, the device_event_class_id field, \] - und dem Feld name generiert. |
|
| metadata.product_name | Wird auf NGFW gesetzt, wenn das Feld product_name gleich LF ist. |
|
| principal.asset.ip | Wenn das Feld description den Wert by gefolgt von einer IP-Adresse enthält, wird die IP-Adresse extrahiert und principal.ip und principal.asset.ip zugeordnet. |
|
| principal.ip | Wenn das Feld description den Wert by gefolgt von einer IP-Adresse enthält, wird die IP-Adresse extrahiert und principal.ip und principal.asset.ip zugeordnet. |
|
| security_result.action | Wird auf ALLOW gesetzt, wenn das Feld act gleich alert ist, andernfalls auf BLOCK. |
|
| security_result.severity | Wird auf HIGH gesetzt, wenn das Feld sev größer oder gleich 7 ist, andernfalls auf LOW. |
|
PanOSFileType |
event.idm.read_only_udm.target.file.mime_type |
Aus Änderungsprotokoll zugeordnet |
PanOSEmailSubject |
event.idm.read_only_udm.network.email.subject |
Aus Änderungsprotokoll zugeordnet |
PanOSNSSAINetworkSliceType |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
PanOSURLCounter |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
PanOSReportID |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
PanOSDGHierarchyLevel2 |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
PanOSVirtualSystemName |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
PanOSSigFlags |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
PanOSPartialHash |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
version |
event.idm.read_only_udm.additional.fields |
Aus Änderungsprotokoll zugeordnet |
cn3 |
network.duration.seconds |
Aus Änderungsprotokoll zugeordnet |
PanOSTenantID |
additional.fields |
Aus Änderungsprotokoll zugeordnet |
cn3 |
additional.fields |
Aus Änderungsprotokoll zugeordnet |
PanOSCortexDataLakeTenantID |
additional.fields |
Aus Änderungsprotokoll zugeordnet |
target_user |
target.user.userid |
Aus Änderungsprotokoll zugeordnet |
principal_ip |
principal.ip |
Aus Änderungsprotokoll zugeordnet |
PanOSStage", "PanOSConnectionError", and "PanOSEventDetails |
additional.fields |
Aus Änderungsprotokoll zugeordnet |
outcome |
security_result.action_details |
Aus Änderungsprotokoll zugeordnet |
PanOSDescription |
metadata.description |
Aus Änderungsprotokoll zugeordnet |
PanOSSourceUser |
principal.user.userid |
Aus Änderungsprotokoll zugeordnet |
app |
target.application |
Aus Änderungsprotokoll zugeordnet |
flexString2", "PanOSFileHash", and "filePath |
additional.fields |
Aus Änderungsprotokoll zugeordnet |
threat_name |
security_result.threat_name |
Aus Änderungsprotokoll zugeordnet |
principal_ip1 |
principal.ip |
Aus Änderungsprotokoll zugeordnet |
metadata.event_type |
NETWORK_CONNECTION |
Aus Änderungsprotokoll zugeordnet |
deviceOutboundInterface", "deviceInboundInterface |
additional.fields |
Aus Änderungsprotokoll zugeordnet |
query |
additional 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