McAfee Firewall Enterprise-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie McAfee Firewall Enterprise-Logs erfassen können. Der Parsercode extrahiert zuerst Felder mithilfe einer Reihe von Grok-Mustern, wobei sowohl SYSLOG- als auch JSON-Formate verarbeitet werden. Anschließend werden je nach identifizierter Logkategorie bestimmte Grok-Muster und Schlüssel-Wert-Extraktionen angewendet, um die Daten dem UDM-Schema von Google Security Operations zuzuordnen.
Hinweise
- Prüfen Sie, ob Sie eine Google Security Operations-Instanz haben.
- Achten Sie darauf, dass Sie Windows 2016 oder höher oder einen Linux-Host mit
systemd
verwenden. - Wenn Sie einen Proxy verwenden, müssen die Firewallports geöffnet sein.
- Prüfen Sie, ob Sie privilegierten Zugriff auf McAfee ESM haben.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie SIEM-Einstellungen > Collection Agents auf.
- Laden Sie die Authentifizierungsdatei für die Aufnahme herunter. Speichern Sie die Datei sicher auf dem System, auf dem der BindPlane-Agent installiert wird.
Google SecOps-Kundennummer abrufen
- Melden Sie sich in der Google SecOps-Konsole an.
- Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
- Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Fenstereinbau
- Ö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" /quiet
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.sh
Zusätzliche Installationsressourcen
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass Syslog-Daten aufgenommen und an Google SecOps gesendet werden
Greifen Sie auf die Konfigurationsdatei zu:
- Suchen Sie die Datei
config.yaml
. Normalerweise befindet es sich unter Linux im Verzeichnis/etc/bindplane-agent/
oder unter Windows im Installationsverzeichnis. - Öffnen Sie die Datei mit einem Texteditor (z. B.
nano
,vi
oder Notepad).
- Suchen Sie die Datei
Bearbeiten Sie die Datei
config.yaml
so: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
Ersetzen Sie den Port und die IP-Adresse nach Bedarf in Ihrer Infrastruktur.
Ersetzen Sie
<customer_id>
durch die tatsächliche Kunden-ID.Aktualisieren Sie
/path/to/ingestion-authentication-file.json
auf den Pfad, in dem die Authentifizierungsdatei im Abschnitt Google SecOps-Aufnahmeauthentifizierungsdatei abrufen gespeichert wurde.
Bindplane-Agent neu starten, um die Änderungen zu übernehmen
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-Agent entweder über die Konsole Dienste neu starten oder den folgenden Befehl eingeben:
net stop BindPlaneAgent && net start BindPlaneAgent
McAfee ESM für die Weiterleitung von Syslog konfigurieren
- Melden Sie sich in der McAfee ESM-Konsole an.
- Rufen Sie die System Properties (Systemeigenschaften) > Event Forwarding (Ereignisweiterleitung) auf.
- Klicken Sie auf Hinzufügen, um eine neue Syslog-Weiterleitungsregel zu erstellen.
- Legen Sie folgende Einstellungen fest:
- Name: Geben Sie einen aussagekräftigen Namen ein, z. B. „Google SecOps Forwarding“.
- Ziel-IP-Adresse: Geben Sie die IP-Adresse Ihres Syslog-Servers (oder BindPlane-Agents) ein.
- Zielport: Verwenden Sie 514 für UDP. Sie können je nach Syslog-Server-/Bindplane-Konfiguration auch einen anderen Port angeben.
- Protokoll: Wählen Sie UDP aus. Andere Optionen sind TCP oder TLS, je nach Syslog-Server- oder Bindplane-Konfiguration.
- Format: Wählen Sie CEF (Common Event Format) oder ASCII aus (empfohlenes Format für McAfee-Logs).
- Filter: Hier können Sie beispielsweise Ereignistypen definieren, die weitergeleitet werden sollen, z. B. Firewall-Logs, Authentifizierungsereignisse oder Bedrohungserkennungen.
- Klicken Sie auf Speichern.
- 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 | In diesem Feld wird der Ereignistyp anhand des Werts festgelegt. | |
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 anhand seines Werts einer UDM-Wichtigkeitsstufe zugeordnet: LOW (1–32), MEDIUM (33–65), HIGH (66–100). |
data.sig.name | security_result.description | Der Wert stammt aus dem Feld „sig.name“ in der geparsten JSON-Nutzlast. |
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 stammt aus dem Feld „hostname“, 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 stammt aus dem Feld „log_type“, das vom Grok-Muster extrahiert wird. |
Nachricht | Dieses Feld wird geparst, um je nach Logkategorie verschiedene Felder zu extrahieren. | |
nitroURL | Dieses Feld ist im UDM nicht dem IDM-Objekt zugeordnet. | |
pid | principal.process.pid | Der Wert wird aus dem Feld „pid“ übernommen, das vom Grok-Muster extrahiert wird. |
process_id | about.process.pid | Der Wert stammt aus dem Feld „process_id“, 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 stammt aus dem Feld „type“, das vom kv-Filter extrahiert wurde. |
uid | principal.user.userid | Der Wert stammt aus dem Feld „uid“, das vom kv-Filter extrahiert wird. |
metadata.event_type | metadata.event_type | Der Wert wird basierend auf dem Ereignisnamen und anderen Feldern im Log festgelegt. Die Logik zur Bestimmung des Ereignistyps ist wie folgt: - 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 „User Accessed“ oder „denied by access-list“ enthält, wird der Ereignistyp auf „USER_RESOURCE_ACCESS“ festgelegt. – Wenn der Ereignisname „Data Source Idle“ enthält, wird der Ereignistyp auf „STATUS_UPDATE“ festgelegt. – Wenn der Ereignisname „Comm with snowflex“ enthält, wird der Ereignistyp auf „SERVICE_UNSPECIFIED“ festgelegt. – Wenn der Ereignisname „An account was successfully logged on“ (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“ festgelegt. – 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 0 ist. Andernfalls wird sie 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 1 ist, auf „MEDIUM“, wenn es 2 ist, auf „HIGH“, wenn es 3 ist, und auf „CRITICAL“, wenn es 9 ist. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten