McAfee Firewall Enterprise-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie McAfee Firewall Enterprise-Protokolle erfassen. Der Parsercode extrahiert zuerst Felder mit einer Reihe von Grok-Mustern und verarbeitet sowohl SYSLOG- als auch JSON-Formate. Je nach der erkannten Protokollkategorie werden dann bestimmte Grok-Muster und Schlüssel/Wert-Extraktionen angewendet, um die Daten dem UDM-Schema von Google Security Operations zuzuordnen.

Hinweis

  • 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 den Zugriff auf McAfee ESM.

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
    

Zusätzliche Installationsressourcen

BindPlane-Agent so konfigurieren, dass er Syslog-Protokolle aufnimmt und an Google SecOps sendet

  1. Rufen Sie die Konfigurationsdatei auf:

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

    receivers:
      udplog:
        # Replace with your specific IP and port
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Path to the ingestion authentication file
        creds: '/path/to/your/ingestion-auth.json'
        # Your Chronicle customer ID
        customer_id: 'your_customer_id'
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
          log_type: SYSLOG
          namespace: mcafee_esm
          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.

BindPlane-Agent neu starten, um die Änderungen anzuwenden

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

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

McAfee ESM für die Weiterleitung von Syslog konfigurieren

  1. Melden Sie sich in der McAfee ESM-Konsole an.
  2. Gehen Sie zu Systemeigenschaften > Ereignisweiterleitung.
  3. Klicken Sie auf Hinzufügen, um eine neue syslog-Weiterleitungsregel zu erstellen.
  4. Legen Sie folgende Einstellungen fest:
    • Name: Geben Sie einen aussagekräftigen Namen ein, z. B. „Google SecOps-Weiterleitung“.
    • Ziel-IP-Adresse: Geben Sie die IP-Adresse Ihres Syslog-Servers (oder BindPlane-Agents) ein.
    • Zielport: Verwenden Sie 514 für UDP. Je nach Syslog-Server-/Bindplane-Konfiguration können Sie auch einen anderen Port angeben.
    • Protokoll: Wählen Sie UDP aus. Je nach Syslog-Server-/Bindplane-Konfiguration sind auch TCP oder TLS möglich.
    • Format: Wählen Sie CEF (Common Event Format) oder ASCII (empfohlenes Format für McAfee-Protokolle) aus.
    • Filter: Hier können Sie Ereignistypen definieren, die weitergeleitet werden sollen, z. B. Firewall-Logs, Authentifizierungsereignisse oder Bedrohungserkennungen.
  5. Klicken Sie auf Speichern.
  6. Starten Sie den Dienst McAfee ESM neu, damit die Änderungen wirksam werden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
handeln security_result.action_details Der Wert wird aus dem Feld „act“ in der geparsten JSON-Nutzlast übernommen.
Katze security_result.category_details Der Wert wird aus dem Feld „cat“ in der geparsten JSON-Nutzlast übernommen.
data.AppID target.application Der Wert wird aus dem Feld „AppID“ in der geparsten JSON-Nutzlast übernommen.
data.Destination_Hostname target.hostname Der Wert wird aus dem Feld „Destination_Hostname“ in der geparsten JSON-Nutzlast übernommen.
data.Destination_UserID target.user.windows_sid Der Wert wird aus dem Feld „Destination_UserID“ in der geparsten JSON-Nutzlast übernommen.
data.DomainID target.administrative_domain Der Wert wird aus dem Feld „DomainID“ in der geparsten JSON-Nutzlast übernommen.
data.dst_ip target.ip Der Wert wird aus dem Feld „dst_ip“ in der geparsten JSON-Nutzlast übernommen.
data.dst_mac target.mac Der Wert wird aus dem Feld „dst_mac“ in der geparsten JSON-Nutzlast übernommen.
data.dst_port target.port Der Wert wird aus dem Feld „dst_port“ in der geparsten JSON-Nutzlast übernommen und in eine Ganzzahl konvertiert.
data.HostID target.hostname Der Wert wird aus dem Feld „HostID“ in der geparsten JSON-Nutzlast übernommen.
data.norm_sig.name Anhand des Werts dieses Felds wird der Ereignistyp bestimmt.
data.PID target.process.pid Der Wert wird aus dem Feld „PID“ in der geparsten JSON-Nutzlast übernommen.
data.Process_Name target.process.command_line Der Wert wird aus dem Feld „Process_Name“ in der geparsten JSON-Nutzlast übernommen.
data.severity security_result.severity Der Wert wird aus dem Feld „severity“ in der geparsten JSON-Nutzlast übernommen, in eine Ganzzahl konvertiert und basierend auf seinem Wert einer UDM-Schweregradstufe zugeordnet: NIEDRIG (1–32), MITTEL (33–65), HOCH (66–100).
data.sig.name security_result.description Der Wert wird aus dem Feld „sig.name“ in der geparsten JSON-Nutzlast übernommen.
data.Source_Logon_ID about.labels.value Der Wert wird aus dem Feld „Source_Logon_ID“ in der geparsten JSON-Nutzlast übernommen.
data.Source_UserID principal.user.windows_sid Der Wert wird aus dem Feld „Source_UserID“ in der geparsten JSON-Nutzlast übernommen.
data.src_ip principal.ip Der Wert wird aus dem Feld „src_ip“ in der geparsten JSON-Nutzlast übernommen.
data.src_mac principal.mac Der Wert wird aus dem Feld „src_mac“ in der geparsten JSON-Nutzlast übernommen.
data.src_port principal.port Der Wert wird aus dem Feld „src_port“ in der geparsten JSON-Nutzlast übernommen und in eine Ganzzahl konvertiert.
data.UserIDDst target.user.userid Der Wert wird aus dem Feld „UserIDDst“ in der geparsten JSON-Nutzlast übernommen.
data.UserIDSrc principal.user.userid Der Wert wird aus dem Feld „UserIDSrc“ in der geparsten JSON-Nutzlast übernommen.
deviceExternalId about.asset.asset_id Der Wert wird aus dem Feld „deviceExternalId“ in der geparsten JSON-Nutzlast übernommen und mit dem Produktnamen kombiniert, um eine eindeutige Asset-ID zu erstellen.
deviceTranslatedAddress about.nat_ip Der Wert wird aus dem Feld „deviceTranslatedAddress“ in der geparsten JSON-Nutzlast übernommen.
dst target.ip Der Wert wird aus dem Feld „dst“ in der geparsten JSON-Nutzlast übernommen.
dpt target.port Der Wert wird aus dem Feld „dpt“ in der geparsten JSON-Nutzlast übernommen und in eine Ganzzahl konvertiert.
eventId additional.fields.value.string_value Der Wert wird aus dem Feld „eventId“ in der geparsten JSON-Nutzlast übernommen.
externalId metadata.product_log_id Der Wert wird aus dem Feld „externalId“ in der geparsten JSON-Nutzlast übernommen.
Hostname principal.hostname Der Wert wird aus dem Feld „hostname“ extrahiert, das vom Grok-Muster extrahiert wird.
log_category metadata.log_type Der Wert stammt aus dem Feld „log_category“, das vom Grok-Muster extrahiert wird.
log_type metadata.product_event_type Der Wert wird aus dem Feld „log_type“ extrahiert, das vom Grok-Muster extrahiert wird.
Nachricht Dieses Feld wird analysiert, um je nach Protokollkategorie verschiedene Felder zu extrahieren.
nitroURL Dieses Feld ist nicht dem IDM-Objekt im UDM zugeordnet.
pid principal.process.pid Der Wert wird aus dem Feld „pid“ extrahiert, das vom Grok-Muster extrahiert wird.
process_id about.process.pid Der Wert wird aus dem Feld „process_id“ extrahiert, das vom Grok-Muster extrahiert wird.
proto network.ip_protocol Der Wert wird aus dem Feld „proto“ in der geparsten JSON-Nutzlast übernommen und dem entsprechenden IP-Protokoll zugeordnet.
rhost principal.ip Der Wert wird aus dem Feld „rhost“ übernommen, das vom Grok-Muster extrahiert und als IP-Adresse geparst wird.
shost principal.hostname Der Wert wird aus dem Feld „shost“ in der geparsten JSON-Nutzlast übernommen.
sntdom principal.administrative_domain Der Wert wird aus dem Feld „sntdom“ in der geparsten JSON-Nutzlast übernommen.
spt principal.port Der Wert wird aus dem Feld „spt“ in der geparsten JSON-Nutzlast übernommen und in eine Ganzzahl konvertiert.
src principal.ip Der Wert wird aus dem Feld „src“ in der geparsten JSON-Nutzlast übernommen.
Zeit timestamp Der Wert wird aus dem Feld „time“ übernommen, das vom Grok-Muster extrahiert und als Zeitstempel geparst wird.
Typ metadata.product_event_type Der Wert wird aus dem Feld „type“ extrahiert, das vom kv-Filter extrahiert wird.
uid principal.user.userid Der Wert wird aus dem Feld „uid“ übernommen, das vom kv-Filter extrahiert wird.
metadata.event_type metadata.event_type Der Wert wird anhand des Ereignisnamens und anderer Felder im Protokoll festgelegt. So wird der Ereignistyp ermittelt: Wenn der Ereignisname „TCP“ enthält, wird der Ereignistyp auf „NETWORK_CONNECTION“ gesetzt. – Wenn der Ereignisname „Mail“ enthält, wird der Ereignistyp auf „EMAIL_TRANSACTION“ festgelegt. – Wenn der Ereignisname „HTTP“ oder „http“ enthält, wird der Ereignistyp auf „NETWORK_HTTP“ festgelegt. – Wenn der Ereignisname „Nutzerzugriff“ oder „durch Zugriffsliste abgelehnt“ enthält, wird der Ereignistyp auf „USER_RESOURCE_ACCESS“ festgelegt. – Wenn der Ereignisname „Data Source Idle“ enthält, wird der Ereignistyp auf „STATUS_UPDATE“ gesetzt. – Wenn der Ereignisname „Comm with snowflex“ enthält, wird der Ereignistyp auf „SERVICE_UNSPECIFIED“ gesetzt. – Wenn der Ereignisname „Ein Konto wurde erfolgreich angemeldet“ enthält, wird der Ereignistyp auf „USER_LOGIN“ festgelegt. – Wenn der Ereignisname „Initialization status for service objects“ enthält, wird der Ereignistyp auf „GENERIC_EVENT“ gesetzt. – Wenn keine der oben genannten Bedingungen erfüllt ist, wird der Ereignistyp auf „GENERIC_EVENT“ festgelegt.
metadata.vendor_name metadata.vendor_name Der Wert ist auf „MCAFEE“ festgelegt.
network.direction network.direction Der Wert wird auf „INBOUND“ gesetzt, wenn das Feld „deviceDirection“ in der geparsten JSON-Nutzlast den Wert 0 hat. Andernfalls wird es auf „OUTBOUND“ gesetzt.
security_result.severity security_result.severity Der Wert wird auf „LOW“ festgelegt, wenn das Feld „cef_event_severity“ in der geparsten JSON-Nutzlast den Wert „1“ hat, auf „MEDIUM“, wenn es den Wert „2“ hat, auf „HIGH“, wenn es den Wert „3“ hat, und auf „CRITICAL“, wenn es den Wert „9“ hat.

Änderungen

2024-03-21

  • Neu erstellter Parser.