ArcSight-CEF-Logs erfassen

Parserversion: 34.0

Unterstützt in:

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.
  1. 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.
  2. Rufen Sie IAM & Verwaltung > Dienstkonten auf.
  3. Klicken Sie auf Dienstkonto erstellen.
  4. 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).
  5. Klicken Sie auf Erstellen und fortfahren.
  6. Klicken Sie im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen auf Rolle auswählen und wählen Sie Chronicle Editor aus.
  7. Klicken Sie auf Weiter und dann auf Fertig.
  8. Klicken Sie auf das erstellte Dienstkonto und rufen Sie dann den Tab Schlüssel auf.
  9. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
  10. Wählen Sie JSON aus und klicken Sie auf Erstellen. Die Schlüsseldatei wird auf Ihren Computer heruntergeladen.
  11. Speichern Sie die Schlüsseldatei als ingestion-auth.json im Bindplane-Collector-Verzeichnis (/opt/observiq-otel-collector/ingestion-auth.json unter Linux oder C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json unter Windows) oder aktualisieren Sie creds_file_path in config.yaml, sodass der Pfad mit dem Pfad übereinstimmt, unter dem Sie die Datei speichern.
  12. 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)

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Datenaufnahme herunter.
  4. Speichern Sie die Datei sicher auf dem System, auf dem der Bindplane-Agent installiert werden soll.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Profile auf.
  3. 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

  1. Öffnen Sie die Eingabeaufforderung oder PowerShell als Administrator.
  2. Führen Sie dazu diesen Befehl aus:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Warte, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sc query observiq-otel-collector
    

    Der Dienst sollte als RUNNING angezeigt werden.

Linux-Installation

  1. Öffnen Sie ein Terminal mit Root- oder sudo-Berechtigungen.
  2. 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
    
  3. Warte, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sudo systemctl status observiq-otel-collector
    

    Der 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.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Konfigurationsdatei bearbeiten

  • Ersetzen Sie den gesamten Inhalt von config.yaml durch 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 514 ist der Standard-Syslog-Port (erfordert Root unter Linux; verwenden Sie 1514 fü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
    • customer_id: Die Kundennummer, die aus der Google SecOps Console kopiert wurde
    • location: Ersetzen Sie <LOCATION> durch die Region Ihrer Google SecOps-Instanz (z. B. us, europe oder asia-southeast1). Der Exporter stellt diesem Wert chronicle.googleapis.com voran. 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 Einstellung chronicle.googleapis.com bei.

Exporter für die Legacy Ingestion API

  • Wenn Sie die Authentifizierungsdatei für die Datenaufnahme aus Option 2 verwenden, ersetzen Sie den Block exporters durch Folgendes. Legen Sie für creds_file_path den Pfad zur Authentifizierungsdatei für die Datenaufnahme fest. Wenn sich Ihre Instanz außerhalb der USA befindet, ersetzen Sie malachiteingestion-pa.googleapis.com durch 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, dann Enter und dann Ctrl+X.
    • Windows: Klicken Sie auf Datei > Speichern.

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-collector
    
    1. Prüfen Sie, ob der Dienst ausgeführt wird:

      sudo systemctl status observiq-otel-collector
      
    2. Prü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-collector
      
    • Dienstkonsole:

      1. Drücken Sie Win+R, geben Sie services.msc ein und drücken Sie die Eingabetaste.
      2. Suchen Sie nach observIQ OpenTelemetry Collector.
      3. Rechtsklicken Sie und wählen Sie Neu starten aus.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

        sc query observiq-otel-collector
        
      5. Logs auf Fehler prüfen:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

ArcSight SmartConnector herunterladen

  1. Melden Sie sich im OpenText-Supportportal an.
  2. Suchen Sie den neuesten ArcSight SmartConnector für Linux und laden Sie ihn herunter.
  3. Beispieldateiname: ArcSight-Connector-Linux64-8.4.0.8499.0.bin.

ArcSight SmartConnector installieren

  1. Laden Sie die Datei .bin auf den SmartConnector-Server hoch:

    scp ArcSight-Connector-Linux64-8.4.0.8499.0.bin user@your-smartconnector-host:/tmp
    
  2. Melden 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.bin
    
  3. Folgen 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.

ArcSight SmartConnector so konfigurieren, dass CEF an Syslog gesendet wird

  1. Starten Sie den Zielassistenten auf dem SmartConnector-Host:

    cd /opt/arcsight/connectors/current/bin
    ./arcsight connectors
    
  2. Gehen Sie im Assistenten so vor:

    • Wählen Sie Ziel hinzufügen aus.
    • Wählen Sie CEF Syslog aus.
  3. 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.
  4. Schließen Sie die Einrichtung ab und starten Sie den Connector neu:

    ./arcsight agents
    
  5. Fü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