FireEye HX-Logs erfassen
In diesem Dokument wird beschrieben, wie Sie FireEye Endpoint Security (HX)-Logs mit Bindplane in Google Security Operations erfassen. Der Parser versucht, die Eingabenachricht als JSON zu verarbeiten. Wenn die Nachricht nicht im JSON-Format vorliegt, werden mit Grok-Mustern Felder extrahiert und dann wird eine bedingte UDM-Zuordnung basierend auf dem extrahierten Ereignistyp und anderen Kriterien durchgeführt.
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 FireEye Endpoint Security 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 BindPlane 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 zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren
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 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
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 den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:
sudo systemctl restart bindplane-agent
Wenn Sie den Bindplane-Agent unter Windows neu starten möchten, können Sie entweder die Konsole Dienste verwenden oder den folgenden Befehl eingeben:
net stop BindPlaneAgent && net start BindPlaneAgent
Syslog für FireEye HX Event Streamer über die Benutzeroberfläche konfigurieren
- Melden Sie sich in der FireEye HX-Verwaltungskonsole an.
- Rufen Sie Event Streamer auf.
- Wählen Sie Event Streamer auf dem Host aktivieren aus.
- Speichern Sie die Richtlinienänderungen.
- Gehen Sie zu Ziele > Servereinstellungen > Syslog-Ziel hinzufügen.
- Geben Sie die folgenden Konfigurationsdetails an:
- Name: Geben Sie einen eindeutigen Namen ein, um den Google SecOps-Log-Collector zu kennzeichnen.
- IP-Adresse: Geben Sie die IP-Adresse des Bindplane-Agents ein.
- Port: Geben Sie die Portnummer des Bindplane-Agents ein.
- Speichern Sie die Änderungen, um sie zu übernehmen.
FireEye HX Event Streamer-Syslog über die Befehlszeile konfigurieren
- Melden Sie sich über die Befehlszeile (Command Line Interface, CLI) in der FireEye HX-Appliance an.
Führen Sie den folgenden Befehl aus, um den Konfigurationsmodus zu aktivieren:
enable configure terminal
Führen Sie den folgenden Befehl aus, um ein Ziel für einen Remote-Syslog-Server hinzuzufügen:
logging BINDPLANE_IP_ADDRESS port PORT_NUMBER port
- Dabei gilt:
BINDPLANE_IP_ADDRESS
: die IP-Adresse des Google SecOps-ForwardersPORT_NUMBER
: die Portnummer
- Dabei gilt:
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 Agent-ID aus dem Rohlog mit dem Präfix AGENT ID: |
alert.agent.url | principal.labels.value | Die Agent-URL aus dem Rohlog. |
alert.condition._id | additional.fields.value.string_value | Die Bedingungs-ID aus dem Rohlog, wobei = Zeichen entfernt wurden. |
alert.condition.url | additional.fields.value.string_value | Die Bedingungs-URL aus dem Rohlog, wobei = Zeichen entfernt wurden. |
alert.decorators[].data.fireeye_report.indicator_verdict.malware_families.0 | security_result.threat_name | Die Malware-Familie aus dem FireEye-Bericht im Feld „decorators“ des Rohprotokolls. |
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 Feld „decorators“ des Rohlogs. |
alert.event_at | read_only_udm.metadata.event_timestamp | Der Ereigniszeitstempel aus dem Rohlog. |
alert.event_id | read_only_udm.metadata.product_log_id | Die Ereignis-ID aus dem Rohlog. |
alert.event_type | read_only_udm.metadata.product_event_type | Der Ereignistyp aus dem Rohlog. |
alert.event_values.fileWriteEvent/fullPath | target.file.full_path | Der vollständige Pfad der Datei, die aus dem Rohlog geschrieben wurde. |
alert.event_values.fileWriteEvent/md5 | target.file.md5 | Der MD5-Hash der Datei, die aus dem Rohlog geschrieben wurde. |
alert.event_values.fileWriteEvent/pid | principal.process.pid | Die Prozess-ID, die die Datei aus dem Rohlog geschrieben hat. |
alert.event_values.fileWriteEvent/processPath | principal.process.file.full_path | Der Pfad des Prozesses, der die Datei aus dem Rohlog geschrieben hat. In Kombination mit „alert.event_values.fileWriteEvent/process“ wird der vollständige Pfad erstellt, 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 Rohlog geschrieben hat. |
alert.event_values.ipv4NetworkEvent/localIP | principal.ip | Die lokale IP-Adresse aus dem Rohlog. |
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 Rohlog. |
alert.event_values.ipv4NetworkEvent/process | principal.process.file.full_path | Der Prozessname aus dem Rohlog. Wird in Kombination mit „alert.event_values.ipv4NetworkEvent/processPath“ verwendet, 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 Rohlog. Wird in Kombination mit „alert.event_values.ipv4NetworkEvent/process“ verwendet, 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 Rohlog. |
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 Ereigniszeitstempel aus dem Rohlog. |
alert.event_values.ipv4NetworkEvent/username | principal.user.userid | Der Nutzer aus dem Rohlog. |
alert.event_values.processEvent/md5 | target.process.file.md5 | Der MD5-Hash des Prozesses aus dem Rohlog. |
alert.event_values.processEvent/parentPid | principal.process.pid | Die ID des übergeordneten Prozesses aus dem Rohlog. |
alert.event_values.processEvent/parentProcess | principal.process.file.full_path | Der Name des übergeordneten Prozesses aus dem Rohlog. |
alert.event_values.processEvent/parentProcessPath | principal.process.file.full_path | Der Pfad des übergeordneten Prozesses aus dem Rohlog. |
alert.event_values.processEvent/pid | target.process.pid | Die Prozess-ID aus dem Rohlog. |
alert.event_values.processEvent/process | target.process.file.full_path | Der Prozessname aus dem Rohlog. |
alert.event_values.processEvent/processCmdLine | target.process.command_line | Die Befehlszeile des Prozesses aus dem Rohlog. |
alert.event_values.processEvent/processPath | target.process.file.full_path | Der Prozesspfad aus dem Rohlog. |
alert.event_values.processEvent/timestamp | read_only_udm.metadata.event_timestamp | Der Ereigniszeitstempel aus dem Rohlog. |
alert.event_values.processEvent/username | principal.user.userid | Der Nutzer aus dem Rohlog. |
alert.event_values.urlMonitorEvent/hostname | target.hostname | Der Hostname aus dem Rohlog. |
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 Rohlog. |
alert.event_values.urlMonitorEvent/process | principal.process.file.full_path | Der Prozessname aus dem Rohlog. 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 Rohlog. 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 Rohlog. |
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 Rohlog. |
alert.event_values.urlMonitorEvent/timestamp | read_only_udm.metadata.event_timestamp | Der Ereigniszeitstempel aus dem Rohlog. |
alert.event_values.urlMonitorEvent/urlMethod | network.http.method | Die HTTP-Methode aus dem Rohlog. |
alert.event_values.urlMonitorEvent/userAgent | network.http.user_agent | Der User-Agent aus dem Rohlog. |
alert.event_values.urlMonitorEvent/username | principal.user.userid | Der Nutzer aus dem Rohlog. |
alert.indicator._id | security_result.about.labels.value | Die Indikator-ID aus dem Rohlog. |
alert.indicator.name | read_only_udm.security_result.summary | Der Name des Indikators aus dem Rohlog. |
alert.indicator.url | security_result.about.labels.value | Die Indikator-URL aus dem Rohlog. |
alert.multiple_match | read_only_udm.metadata.description | Die Nachricht über mehrere Übereinstimmungen aus dem Rohlog. |
alert.source | additional.fields.value.string_value | Die Quelle der Benachrichtigung aus dem Rohlog. |
authmethod | extensions.auth.mechanism | Die Authentifizierungsmethode aus dem Rohlog. Legen Sie den Wert auf LOCAL fest, wenn der Wert local oder LOCAL ist. Legen Sie ihn andernfalls auf MECHANISM_OTHER fest. |
authsubmethod | extensions.auth.auth_details | Die Authentifizierungsunterverfahren aus dem Rohlog, in Großbuchstaben. |
Client | principal.ip | Die Client-IP-Adresse aus dem Rohlog. |
conditions.data.tests[].token | security_result.detection_fields.key | Das Token aus den Bedingungstests im Rohlog. |
conditions.data.tests[].value | security_result.detection_fields.value | Der Wert aus den Bedingungstests im Rohlog. |
description | read_only_udm.metadata.description | Die Beschreibung aus dem Rohlog. |
host.agent_version | read_only_udm.metadata.product_version | Die Agent-Version aus dem Rohlog. |
host.containment_state | read_only_udm.principal.containment_state | Der Eindämmungsstatus aus dem Rohlog. |
host.domain | read_only_udm.principal.administrative_domain | Die Domain aus dem Rohlog. |
host.hostname | read_only_udm.principal.hostname | Der Hostname aus dem Rohlog. |
host.os.platform | read_only_udm.principal.platform | Die Betriebssystemplattform aus dem Rohlog. |
host.os.product_name | read_only_udm.principal.platform_version | Der Produktname des Betriebssystems aus dem Rohlog. |
host.primary_ip_address | read_only_udm.principal.ip | Die primäre IP-Adresse aus dem Rohlog. |
host.primary_mac | read_only_udm.principal.mac | Die primäre MAC-Adresse aus dem Rohlog, wobei - -Zeichen durch : ersetzt werden. |
host_ | principal.hostname | Der Hostname aus dem Rohlog. |
host_details.data.agent_version | read_only_udm.metadata.product_version | Die Agent-Version aus dem Rohlog. |
host_details.data.containment_state | read_only_udm.security_result.severity_details | Der Eindämmungsstatus aus dem Rohlog. |
host_details.data.domain | read_only_udm.principal.administrative_domain | Die Domain aus dem Rohlog. |
host_details.data.hostname | read_only_udm.principal.hostname | Der Hostname aus dem Rohlog. |
host_details.data.os.platform | read_only_udm.principal.platform | Die Betriebssystemplattform aus dem Rohlog. |
host_details.data.os.product_name | read_only_udm.principal.platform_version | Der Produktname des Betriebssystems aus dem Rohlog. |
host_details.data.primary_ip_address | read_only_udm.principal.ip | Die primäre IP-Adresse aus dem Rohlog. |
host_details.data.primary_mac | read_only_udm.principal.mac | Die primäre MAC-Adresse aus dem Rohlog, wobei - -Zeichen durch : ersetzt werden. |
indicators.data.description | read_only_udm.metadata.description | Die Beschreibung des Indikators aus dem Rohlog. |
Linie | target.application | Die Zeile aus dem Rohlog. |
lokaler Nutzername | target.user.user_display_name | Der lokale Nutzername aus dem Rohlog. |
principal_ip | principal.ip | Die primäre IP-Adresse aus dem Rohlog. |
verarbeiten | read_only_udm.principal.application | Der Prozessname aus dem Rohlog. |
process_id | read_only_udm.principal.process.pid | Die Prozess-ID aus dem Rohlog. |
referrer | network.http.referral_url | Die Referrer-URL aus dem Rohlog. |
remoteaddress | principal.ip | Die Remote-Adresse aus dem Rohlog. |
Anfrage | additional.fields.value.string_value | Die Anfrage aus dem Rohlog. |
Rolle | target.user.role_name | Die Rolle aus dem Rohlog. |
Server | target.resource.attribute.labels.value | Der Server aus dem Rohlog. |
sessionID | network.session_id | Die Sitzungs-ID aus dem Rohlog. |
die Ausprägung | security_result.severity | Legen Sie dafür LOW , MEDIUM oder HIGH fest, je nach Schweregrad im Rohlog. |
target_host | read_only_udm.target.hostname | Der Ziel-Hostname aus dem Rohlog. |
target_ip | target.ip | Die Ziel-IP-Adresse aus dem Rohlog. |
target_ip1 | target.ip | Die IPv6-Zieladresse aus dem Rohlog. |
timestamp | timestamp | Der Zeitstempel aus dem Rohlog. |
Upstream | target.url | Die Upstream-URL aus dem Rohlog. |
Nutzername | target.user.userid | Der Nutzername aus dem Rohlog. |
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten