FireEye HX-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie mit Bindplane FireEye Endpoint Security (HX)-Protokolle in Google Security Operations erfassen. Der Parser versucht, die Eingabenachricht als JSON zu verarbeiten. Wenn die Nachricht nicht im JSON-Format vorliegt, werden Felder mithilfe von Grok-Mustern extrahiert und dann eine bedingte UDM-Zuordnung basierend auf dem extrahierten Ereignistyp und anderen Kriterien durchgeführt.

Hinweise

  • Sie benötigen eine Google Security Operations-Instanz.
  • Sie müssen Windows 2016 oder höher oder einen Linux-Host mit systemd verwenden.
  • Wenn die Ausführung hinter einem Proxy erfolgt, müssen die Firewallports geöffnet sein.
  • Sie benötigen Berechtigungen für FireEye Endpoint Security.

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
  3. Lade die Datei zur Authentifizierung der Datenaufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem BindPlane installiert wird.

Google SecOps-Kundennummer abrufen

  1. Melden Sie sich in der Google SecOps Console an.
  2. Gehen Sie zu SIEM-Einstellungen > Profil.
  3. Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.

Bindplane-Agent installieren

Windows-Installation

  1. Öffnen Sie die Eingabeaufforderung oder die 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
    

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
    

Weitere Installationsressourcen

Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet

  1. Rufen Sie die Konfigurationsdatei auf:

    1. Suchen Sie die Datei config.yaml. Normalerweise befindet es sich unter Linux im Verzeichnis /etc/bindplane-agent/ oder unter Windows im Installationsverzeichnis.
    2. Öffnen Sie die Datei mit einem Texteditor, z. B. nano, vi oder Notepad.
  2. Bearbeiten Sie die Datei config.yamlso:

    receivers:
        udplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: 'FIREEYE_HX'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.

  4. Ersetzen Sie <customer_id> durch die tatsächliche Kundennummer.

  5. Aktualisieren Sie /path/to/ingestion-authentication-file.json im Abschnitt Authentifizierungsdatei für die Datenaufnahme von Google SecOps abrufen auf den Pfad, unter dem die Authentifizierungsdatei gespeichert wurde.

Starten Sie den Bindplane-Agent neu, um die Änderungen anzuwenden

  • Führen Sie den folgenden Befehl aus, um den Bindplane-Agenten unter Linux neu zu starten:

    sudo systemctl restart bindplane-agent
    
  • Sie können den Bindplane-Agenten unter Windows entweder über die Dienste-Konsole oder mit dem folgenden Befehl neu starten:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

FireEye HX Event Streamer-Syslog über die Benutzeroberfläche konfigurieren

  1. Melden Sie sich in der FireEye HX-Verwaltungskonsole an.
  2. Rufen Sie Event Streamer auf.
  3. Wählen Sie Event Streamer auf dem Host aktivieren aus.
  4. Speichern Sie die Richtlinienänderungen.
  5. Gehen Sie zu Ziele > Servereinstellungen > Syslog-Ziel hinzufügen.
  6. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie einen eindeutigen Namen ein, um den Google SecOps-Log-Collector zu labeln.
    • IP-Adresse: Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • Port: Geben Sie die Portnummer des Bindplane-Agents ein.
  7. Speichern Sie die Änderungen.

FireEye HX Event Streamer-Syslog mithilfe der Befehlszeile konfigurieren

  1. Melden Sie sich über die Befehlszeile (Command Line Interface, CLI) in der FireEye HX-Appliance an.
  2. Führen Sie den folgenden Befehl aus, um den Konfigurationsmodus zu aktivieren:

    enable
    configure terminal
    
  3. Führen Sie den folgenden Befehl aus, um ein Remote-Syslog-Serverziel hinzuzufügen:

    logging BINDPLANE_IP_ADDRESS port PORT_NUMBER port
    
    • Dabei gilt:
      • BINDPLANE_IP_ADDRESS: die IP-Adresse des Google SecOps-Weiterleitungsdiensts
      • PORT_NUMBER: die Portnummer
  4. Führen Sie den folgenden Befehl aus, um die Konfigurationsdetails zu speichern:

    write mem
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
alert.agent._id principal.asset.asset_id Die Kundenservicemitarbeiter-ID aus dem Rohprotokoll mit dem Präfix AGENT ID:
alert.agent.url principal.labels.value Die Agent-URL aus dem Rohprotokoll.
alert.condition._id additional.fields.value.string_value Die Bedingungs-ID aus dem Rohprotokoll, aus der = Zeichen entfernt wurden.
alert.condition.url additional.fields.value.string_value Die Bedingungs-URL aus dem Rohprotokoll, aus der = Zeichen entfernt wurden.
alert.decorators[].data.fireeye_report.indicator_verdict.malware_families.0 security_result.threat_name Die Malwarefamilie aus dem FireEye-Bericht im Feld „Dekoratoren“ des Rohlogs.
alert.decorators[].data.fireeye_report.risk_summary security_result.description Die Risikozusammenfassung aus dem FireEye-Bericht im Feld „decorators“ des Rohlogs.
alert.decorators[].data.fireeye_verdict security_result.severity_details Das FireEye-Urteil aus dem Decorator-Feld des Rohlogs.
alert.event_at read_only_udm.metadata.event_timestamp Der Zeitstempel des Ereignisses aus dem Rohprotokoll.
alert.event_id read_only_udm.metadata.product_log_id Die Ereignis-ID aus dem Rohprotokoll.
alert.event_type read_only_udm.metadata.product_event_type Der Ereignistyp aus dem Rohprotokoll.
alert.event_values.fileWriteEvent/fullPath target.file.full_path Der vollständige Pfad der Datei, die aus dem Rohprotokoll geschrieben wurde.
alert.event_values.fileWriteEvent/md5 target.file.md5 Der MD5-Hash der Datei, die aus dem Rohprotokoll geschrieben wurde.
alert.event_values.fileWriteEvent/pid principal.process.pid Die Prozess-ID, die die Datei aus dem Rohprotokoll geschrieben hat.
alert.event_values.fileWriteEvent/processPath principal.process.file.full_path Der Pfad des Prozesses, der die Datei aus dem Rohprotokoll geschrieben hat. Wird mit „alert.event_values.fileWriteEvent/process“ kombiniert, um den vollständigen Pfad zu erstellen, wenn das Betriebssystem Windows ist.
alert.event_values.fileWriteEvent/size target.file.size Die Größe der Datei, die aus dem Rohprotokoll geschrieben wurde.
alert.event_values.fileWriteEvent/username principal.user.userid Der Nutzer, der die Datei aus dem Rohprotokoll geschrieben hat.
alert.event_values.ipv4NetworkEvent/localIP principal.ip Die lokale IP-Adresse aus dem Rohprotokoll.
alert.event_values.ipv4NetworkEvent/localPort principal.port Der lokale Port aus dem Rohprotokoll.
alert.event_values.ipv4NetworkEvent/pid principal.process.pid Die Prozess-ID aus dem Rohprotokoll.
alert.event_values.ipv4NetworkEvent/process principal.process.file.full_path Der Prozessname aus dem Rohprotokoll. Wird mit „alert.event_values.ipv4NetworkEvent/processPath“ kombiniert, um den vollständigen Pfad zu erstellen, wenn das Betriebssystem Windows ist.
alert.event_values.ipv4NetworkEvent/processPath principal.process.file.full_path Der Prozesspfad aus dem Rohprotokoll. Wird mit „alert.event_values.ipv4NetworkEvent/process“ kombiniert, um den vollständigen Pfad zu erstellen, wenn das Betriebssystem Windows ist.
alert.event_values.ipv4NetworkEvent/protocol network.ip_protocol Das Netzwerkprotokoll aus dem Rohprotokoll.
alert.event_values.ipv4NetworkEvent/remoteIP target.ip Die Remote-IP-Adresse aus dem Rohprotokoll.
alert.event_values.ipv4NetworkEvent/remotePort target.port Der Remote-Port aus dem Rohprotokoll.
alert.event_values.ipv4NetworkEvent/timestamp read_only_udm.metadata.event_timestamp Der Zeitstempel des Ereignisses aus dem Rohprotokoll.
alert.event_values.ipv4NetworkEvent/username principal.user.userid Der Nutzer aus dem Rohprotokoll.
alert.event_values.processEvent/md5 target.process.file.md5 Der MD5-Hash des Prozesses aus dem Rohprotokoll.
alert.event_values.processEvent/parentPid principal.process.pid Die ID des übergeordneten Prozesses aus dem Rohprotokoll.
alert.event_values.processEvent/parentProcess principal.process.file.full_path Der Name des übergeordneten Prozesses aus dem Rohprotokoll.
alert.event_values.processEvent/parentProcessPath principal.process.file.full_path Der Pfad des übergeordneten Prozesses aus dem Rohprotokoll.
alert.event_values.processEvent/pid target.process.pid Die Prozess-ID aus dem Rohprotokoll.
alert.event_values.processEvent/process target.process.file.full_path Der Prozessname aus dem Rohprotokoll.
alert.event_values.processEvent/processCmdLine target.process.command_line Die Befehlszeile des Prozesses aus dem Rohprotokoll.
alert.event_values.processEvent/processPath target.process.file.full_path Der Prozesspfad aus dem Rohprotokoll.
alert.event_values.processEvent/timestamp read_only_udm.metadata.event_timestamp Der Zeitstempel des Ereignisses aus dem Rohprotokoll.
alert.event_values.processEvent/username principal.user.userid Der Nutzer aus dem Rohprotokoll.
alert.event_values.urlMonitorEvent/hostname target.hostname Der Hostname aus dem Rohprotokoll.
alert.event_values.urlMonitorEvent/localPort principal.port Der lokale Port aus dem Rohprotokoll.
alert.event_values.urlMonitorEvent/pid principal.process.pid Die Prozess-ID aus dem Rohprotokoll.
alert.event_values.urlMonitorEvent/process principal.process.file.full_path Der Prozessname aus dem Rohprotokoll. Wird mit „alert.event_values.urlMonitorEvent/processPath“ kombiniert, um den vollständigen Pfad zu erstellen, wenn das Betriebssystem Windows ist.
alert.event_values.urlMonitorEvent/processPath principal.process.file.full_path Der Prozesspfad aus dem Rohprotokoll. Wird mit „alert.event_values.urlMonitorEvent/process“ kombiniert, um den vollständigen Pfad zu erstellen, wenn das Betriebssystem Windows ist.
alert.event_values.urlMonitorEvent/remoteIpAddress target.ip Die Remote-IP-Adresse aus dem Rohprotokoll.
alert.event_values.urlMonitorEvent/remotePort target.port Der Remote-Port aus dem Rohprotokoll.
alert.event_values.urlMonitorEvent/requestUrl target.url Die angeforderte URL aus dem Rohprotokoll.
alert.event_values.urlMonitorEvent/timestamp read_only_udm.metadata.event_timestamp Der Zeitstempel des Ereignisses aus dem Rohprotokoll.
alert.event_values.urlMonitorEvent/urlMethod network.http.method Die HTTP-Methode aus dem Rohprotokoll.
alert.event_values.urlMonitorEvent/userAgent network.http.user_agent Der User-Agent aus dem Rohprotokoll.
alert.event_values.urlMonitorEvent/username principal.user.userid Der Nutzer aus dem Rohprotokoll.
alert.indicator._id security_result.about.labels.value Die Indikator-ID aus dem Rohprotokoll.
alert.indicator.name read_only_udm.security_result.summary Der Name des Indikators aus dem Rohprotokoll.
alert.indicator.url security_result.about.labels.value Die Indikator-URL aus dem Rohprotokoll.
alert.multiple_match read_only_udm.metadata.description Die Nachricht zur Mehrfachübereinstimmung aus dem Rohprotokoll.
alert.source additional.fields.value.string_value Die Quelle der Benachrichtigung aus dem Rohprotokoll.
authmethod extensions.auth.mechanism Die Authentifizierungsmethode aus dem Rohprotokoll. Legen Sie den Wert auf LOCAL fest, wenn er local oder LOCAL ist. Andernfalls wird MECHANISM_OTHER festgelegt.
authsubmethod extensions.auth.auth_details Die Authentifizierungsuntermethode aus dem Rohprotokoll, in Großbuchstaben.
Client principal.ip Die Client-IP-Adresse aus dem Rohprotokoll.
conditions.data.tests[].token security_result.detection_fields.key Das Token aus den Bedingungen im Rohprotokoll.
conditions.data.tests[].value security_result.detection_fields.value Der Wert aus den Bedingungstests im Rohprotokoll.
description read_only_udm.metadata.description Die Beschreibung aus dem Rohprotokoll.
host.agent_version read_only_udm.metadata.product_version Die Agentversion aus dem Rohprotokoll.
host.containment_state read_only_udm.principal.containment_state Der Status der Eindämmung aus dem Rohprotokoll.
host.domain read_only_udm.principal.administrative_domain Die Domain aus dem Rohprotokoll.
host.hostname read_only_udm.principal.hostname Der Hostname aus dem Rohprotokoll.
host.os.platform read_only_udm.principal.platform Die Betriebssystemplattform aus dem Rohprotokoll.
host.os.product_name read_only_udm.principal.platform_version Der Produktname des Betriebssystems aus dem Rohprotokoll.
host.primary_ip_address read_only_udm.principal.ip Die primäre IP-Adresse aus dem Rohprotokoll.
host.primary_mac read_only_udm.principal.mac Die primäre MAC-Adresse aus dem Rohprotokoll, wobei --Zeichen durch : ersetzt wurden.
host_ principal.hostname Der Hostname aus dem Rohprotokoll.
host_details.data.agent_version read_only_udm.metadata.product_version Die Agentversion aus dem Rohprotokoll.
host_details.data.containment_state read_only_udm.security_result.severity_details Der Status der Eindämmung aus dem Rohprotokoll.
host_details.data.domain read_only_udm.principal.administrative_domain Die Domain aus dem Rohprotokoll.
host_details.data.hostname read_only_udm.principal.hostname Der Hostname aus dem Rohprotokoll.
host_details.data.os.platform read_only_udm.principal.platform Die Betriebssystemplattform aus dem Rohprotokoll.
host_details.data.os.product_name read_only_udm.principal.platform_version Der Produktname des Betriebssystems aus dem Rohprotokoll.
host_details.data.primary_ip_address read_only_udm.principal.ip Die primäre IP-Adresse aus dem Rohprotokoll.
host_details.data.primary_mac read_only_udm.principal.mac Die primäre MAC-Adresse aus dem Rohprotokoll, wobei --Zeichen durch : ersetzt wurden.
indicators.data.description read_only_udm.metadata.description Die Beschreibung des Indikators aus dem Rohprotokoll.
Linie target.application Die Zeile aus dem Rohprotokoll.
localusername target.user.user_display_name Der lokale Nutzername aus dem Rohprotokoll.
principal_ip principal.ip Die Haupt-IP-Adresse aus dem Rohprotokoll.
verarbeiten read_only_udm.principal.application Der Prozessname aus dem Rohprotokoll.
process_id read_only_udm.principal.process.pid Die Prozess-ID aus dem Rohprotokoll.
referrer network.http.referral_url Die Referrer-URL aus dem Rohprotokoll.
remoteaddress principal.ip Die Remote-Adresse aus dem Rohprotokoll.
Anfrage additional.fields.value.string_value Die Anfrage aus dem Rohprotokoll.
Rolle target.user.role_name Die Rolle aus dem Rohlog.
Server target.resource.attribute.labels.value Der Server aus dem Rohprotokoll.
sessionID network.session_id Die Sitzungs-ID aus dem Rohprotokoll.
die Ausprägung security_result.severity Legen Sie LOW, MEDIUM oder HIGH fest, je nach Schweregrad aus dem Rohprotokoll.
target_host read_only_udm.target.hostname Der Ziel-Hostname aus dem Rohprotokoll.
target_ip target.ip Die Ziel-IP-Adresse aus dem Rohprotokoll.
target_ip1 target.ip Die Ziel-IPv6-Adresse aus dem Rohprotokoll.
timestamp timestamp Der Zeitstempel aus dem Rohprotokoll.
Upstream target.url Die Upstream-URL aus dem Rohprotokoll.
Nutzername target.user.userid Der Nutzername aus dem Rohprotokoll.

Änderungen

2024-12-12

Optimierung:

  • Unterstützung für das neue Format von JSON-Protokollen hinzugefügt.

2024-10-23

Optimierung:

  • cs12 wurde additional.fields zugeordnet.
  • cs9 wurde target.process.file.md5 zugeordnet.

2024-10-15

Optimierung:

  • account_name, UUID, Mitre, host_details.data.sysinfo.url, host_details.route, host_details.data.reported_clone und host_details.data.timezone wurden security_result.detection_fields zugeordnet.
  • Desc wurde metadata.description zugeordnet.
  • Confidence wurde security_result.confidence zugeordnet.
  • alert.appliance._id wurde additional.fields zugeordnet.
  • host_details.data.stats.acqs, host_details.data.stats.alerting_conditions, host_details.data.stats.alerts, host_details.data.stats.exploit_alerts, host_details.data.stats.exploit_blocks und host_details.data.stats.false_positive_alerts wurden security_result.detection_fields zugeordnet.

2024-09-12

Optimierung:

  • categoryOutcome, cs13 wurde additional.fields zugeordnet.
  • cs6 wurde target.process.file.sha1 zugeordnet.
  • cs9 wurde target.process.file.md5 zugeordnet.

2024-08-28

Optimierung:

  • host_details.message wurde security_result.action_details zugeordnet.
  • alert.md5values, alert.resolution, alert.is_false_positive und alert.alert_type wurden additional.fields zugeordnet.
  • type.threat_type wurde security_result.threat_name zugeordnet.
  • ent.lms_event_id wurde metadata.product_log_id zugeordnet.
  • email.smtp.mail_from wurde network.email.from zugeordnet.
  • email.headers.subject wurde network.email.subject zugeordnet.
  • email.headers.to wurde network.email.to zugeordnet.
  • ent.type, ent.id, ent.name, ent.object_source, ent.binary und ent.attributes.scan_id wurden security_result.detection_fields zugeordnet.

2024-08-13

Optimierung:

  • cs11Label wurde additional_cs11Label.key zugeordnet.
  • cs11 wurde additional_cs11.value zugeordnet.

2024-04-04

Optimierung:

  • Es wurde ein Grok-Muster hinzugefügt, mit dem JSON-Daten abgerufen werden, um nicht geparste Protokolle zu analysieren.
  • alert.sysinfo.mac_address wurde principal.mac zugeordnet.
  • host_details.data.agent_version wurde metadata.product_version zugeordnet.
  • alert.url wurde metadata.url_back_to_product zugeordnet.
  • description wurde metadata.description zugeordnet.
  • alert.event_type wurde metadata.product_event_type zugeordnet.
  • alert.agent._id wurde principal.asset.asset_id zugeordnet.
  • alert.event_id wurde metadata.product_log_id zugeordnet.

2024-04-03

Optimierung:

  • deviceCustomDate1Label wurde additional_deviceCustomDate1.key zugeordnet.
  • deviceCustomDate1 wurde additional_deviceCustomDate1.value zugeordnet.
  • deviceCustomDate2 wurde additional_deviceCustomDate2.value zugeordnet.

2024-04-02

Optimierung:

  • fileHash wurde eine reguläre Ausdrucksprüfung hinzugefügt, um md5 und sha256 zuzuordnen.

2024-01-04

Optimierung:

  • Unterstützung für verlorene Protokolle hinzugefügt.
  • client wurde principal.ip zugeordnet.
  • principal_ip wurde principal.ip zugeordnet.
  • remoteaddress wurde principal.ip zugeordnet.
  • host_ wurde principal.hostname zugeordnet.
  • line wurde principal.application zugeordnet.
  • username wurde principal.user.userid zugeordnet.
  • client_app_type wurde principal.resource.attribute.labels zugeordnet.
  • upstream wurde target.url zugeordnet.
  • role wurde target.user.role_name zugeordnet.
  • server wurde target.resource.attribute.labels zugeordnet.
  • localusername wurde target.user.user_display_name zugeordnet.
  • request wurde additional.fields zugeordnet.
  • mlocked wurde additional.fields zugeordnet.
  • kernel_stack wurde additional.fields zugeordnet.
  • sessionID wurde network.session_id zugeordnet.
  • auth_mechanism wurde extensions.auth.mechanism zugeordnet.
  • authsubmethod wurde extensions.auth.auth_details zugeordnet.

2023-05-08

Optimierung:

  • Neuer unterstützter JSON-Logtyp.
  • client_ip wurde principal.ip zugeordnet.
  • client_src_port wurde principal.port zugeordnet.
  • ssl_version mappedtonetwork.tls.version_protocol`.
  • ssl_cipher wurde network.tls.cipher zugeordnet.
  • method wurde network.http.method zugeordnet.
  • uri_path wurde network.http.referral_url zugeordnet.
  • persistent_session_id wurde network.session_id zugeordnet.
  • uri_query wurde additional.fields zugeordnet.
  • rewritten_uri_query wurde additional.fields zugeordnet.
  • virtualservice wurde additional.fields zugeordnet.
  • service_engine wurde additional.fields zugeordnet.
  • etag wurde additional.fields zugeordnet.
  • pool wurde additional.fields zugeordnet.
  • pool_name wurde additional.fields zugeordnet.
  • request_state wurde additional.fields zugeordnet.
  • compression wurde additional.fields zugeordnet.
  • vs_name wurde additional.fields zugeordnet.
  • request_id wurde additional.fields zugeordnet.
  • headers_received_from_server.Server wurde additional.fields zugeordnet.
  • headers_received_from_server.X-Request-Id wurde additional.fields zugeordnet.
  • headers_received_from_server.X-Server-Id wurde additional.fields zugeordnet.

2023-04-24

Optimierung:

  • Unterstützung für CEF-Format-Protokolle wurde hinzugefügt.

2022-08-19

Fehlerkorrektur:

  • Zuordnung von „event_values.ipv4NetworkEvent/localIP“ zu principal.ip
  • Das Ereignis wurde aus dem Protokoll in „event1“ umbenannt, um den Fehler „Kein Descriptor“ zu vermeiden.
  • Es wurde eine Null-Prüfung für „host_details.data.primary_ip_address“ hinzugefügt, bevor die Zuordnung zu principal.ip erfolgte.
  • Vor der Zuordnung zu principal.mac wurde in „host_details.data.primary_mac“ eine Null-Prüfung hinzugefügt.
  • Vor der Zuordnung zu event.timestamp wurde eine Null-Prüfung für „alert.reported_at“ hinzugefügt.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten