Fortinet FortiMail-Protokolle erfassen
In diesem Dokument wird beschrieben, wie Sie Fortinet FortiMail-Logs mit Bindplane erfassen. Der Parser extrahiert Schlüssel/Wert-Paare, normalisiert verschiedene Felder wie Zeitstempel und IP-Adressen und ordnet sie einem einheitlichen Datenmodell (Unified Data Model, UDM) für Google Security Operations zu. Der Ereignistyp wird anhand der verfügbaren Informationen kategorisiert.
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 Fortinet Fortimail.
Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Erfassungsagenten.
- 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
- Melden Sie sich in der Google SecOps Console an.
- Gehen Sie zu SIEM-Einstellungen > Profil.
- Kopieren und speichern Sie die Kundennummer aus dem Bereich Organisationsdetails.
BindPlane-Agent installieren
Windows-Installation
- Öffnen Sie die Eingabeaufforderung oder die 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
Weitere Installationsressourcen
- Weitere Installationsoptionen finden Sie in diesem Installationsleitfaden.
Bindplane-Agent so konfigurieren, dass er Syslog-Daten aufnimmt und an Google SecOps sendet
Rufen Sie die Konfigurationsdatei auf:
- 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:```yaml receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:5252" 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: SYSLOG namespace: fortinet_fortimail 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 Kundennummer.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
Syslog für Fortinet FortiMail konfigurieren
- Melden Sie sich in der Weboberfläche des FortiMail-Geräts an.
- Wählen Sie Protokollieren und melden > Protokolleinstellungen > Remote aus.
- Klicken Sie auf Neu, um einen neuen Eintrag zu erstellen.
- Wählen Sie im angezeigten Dialogfeld die Option Aktivieren aus, um das Logging auf einem Remote-Host zuzulassen.
- Geben Sie die folgenden Informationen ein:
- Name: Geben Sie einen eindeutigen und aussagekräftigen Namen ein.
- Servername/IP: Geben Sie die IP-Adresse von Bindplane ein.
- Serverport: Geben Sie die UDP-Portnummer der Bindebene ein.
- Level: Wählen Sie Information als Schweregrad aus.
- Facility: Geben Sie eine eindeutige Standort-ID ein und prüfen Sie, ob keine anderen Netzwerkgeräte dieselbe Standort-ID verwenden.
- Heben Sie die Auswahl des CSV-Formats auf.
- Protokoll: Wählen Sie Syslog aus.
- Konfiguration der Protokollierungsrichtlinie: Hier können Sie festlegen, dass alle Arten von Ereignissen oder Protokollen weitergeleitet werden.
- Klicken Sie auf Erstellen.
UDM-Zuordnungstabelle
Logfeld | UDM-Zuordnung | Logik |
---|---|---|
authid | read_only_udm.target.user.email_addresses | Wenn das Feld authid @ enthält, dann diesem Feld zuordnen |
authid | read_only_udm.target.user.userid | Feld authid diesem Feld zuordnen |
Chiffre | read_only_udm.network.tls.cipher | Feld cipher diesem Feld zuordnen |
client_ip | read_only_udm.principal.ip | Feld client_ip diesem Feld zuordnen |
client_name | read_only_udm.principal.hostname | Feld client_name diesem Feld zuordnen |
Detail | read_only_udm.security_result.summary | Feld detail diesem Feld zuordnen |
device_id | read_only_udm.principal.resource.id | Feld device_id diesem Feld zuordnen |
devname | read_only_udm.principal.resource.name | Feld devname diesem Feld zuordnen |
direction | read_only_udm.network.direction | Wenn das Feld direction dem Wert out entspricht, wird der Wert OUTBOUND zugeordnet. Wenn das Feld direction dem Wert in entspricht, wird der Wert INBOUND zugeordnet. Andernfalls wird der Wert UNKNOWN_DIRECTION zugeordnet. |
disposition | read_only_udm.security_result.detection_fields.value | Feld disposition diesem Feld zuordnen, wenn das Schlüsselfeld Disposition ist |
Domain | read_only_udm.principal.administrative_domain | Feld domain diesem Feld zuordnen |
dst_ip | read_only_udm.target.ip | Feld dst_ip diesem Feld zuordnen |
von | read_only_udm.network.email.from | Wenn das Feld from @ enthält, dann diesem Feld zuordnen |
log_id | read_only_udm.metadata.product_log_id | Feld log_id diesem Feld zuordnen |
message_id | read_only_udm.network.email.mail_id | Feld message_id diesem Feld zuordnen |
message_length | read_only_udm.additional.fields.value.number_value | Feld message_length diesem Feld zuordnen, wenn das Schlüsselfeld message_length entspricht |
msg | read_only_udm.security_result.description | Feld msg diesem Feld zuordnen |
polid | read_only_udm.security_result.detection_fields.value | Das Feld polid diesem Feld zuordnen, wenn das Schlüsselfeld Polid ist |
relay | read_only_udm.intermediary.ip | Feld relay diesem Feld zuordnen |
gelöst | read_only_udm.security_result.detection_fields.value | Feld resolved diesem Feld zuordnen, wenn das Schlüsselfeld Resolved ist |
session_id | read_only_udm.network.session_id | Feld session_id diesem Feld zuordnen |
src_type | read_only_udm.additional.fields.value.string_value | Das Feld src_type diesem Feld zuordnen, wenn das Schlüsselfeld src_type ist |
stat | read_only_udm.metadata.description | Feld stat diesem Feld zuordnen |
subject | read_only_udm.network.email.subject | Feld subject diesem Feld zuordnen |
bis | read_only_udm.network.email.to | Wenn das Feld to @ enthält, dann diesem Feld zuordnen |
Nutzer | read_only_udm.principal.user.userid | Feld user diesem Feld zuordnen |
– | read_only_udm.extensions.auth.mechanism | Der Wert dieses Felds ist im Parsercode als USERNAME_PASSWORD hartcodiert, wenn das Feld authid vorhanden ist. |
– | read_only_udm.extensions.auth.type | Der Wert dieses Felds ist im Parsercode als AUTHTYPE_UNSPECIFIED hartcodiert, wenn das Feld authid vorhanden ist. |
– | read_only_udm.metadata.event_type | Der Wert dieses Felds wird anhand der Parserlogik basierend auf einer Kombination der verfügbaren Felder ermittelt. Wenn das Feld from vorhanden ist, ist der Wert EMAIL_TRANSACTION . Ist das Feld to vorhanden, ist der Wert EMAIL_UNCATEGORIZED . Sind sowohl die Felder client_ip als auch dst_ip vorhanden, ist der Wert NETWORK_CONNECTION . Ist das Feld authid vorhanden, ist der Wert USER_LOGIN . Ist das Feld user vorhanden, ist der Wert USER_UNCATEGORIZED . Ist das Feld client_ip vorhanden, ist der Wert STATUS_UPDATE . Andernfalls ist der Wert GENERIC_EVENT . |
– | read_only_udm.metadata.log_type | Der Wert dieses Felds ist im Parsercode als FORTINET_FORTIMAIL hartcodiert. |
– | read_only_udm.metadata.product_name | Der Wert dieses Felds ist im Parsercode als FORTINET_FORTIMAIL hartcodiert. |
– | read_only_udm.metadata.vendor_name | Der Wert dieses Felds ist im Parsercode als FORTINET hartcodiert. |
– | read_only_udm.principal.resource.resource_type | Der Wert dieses Felds ist im Parsercode als DEVICE hartcodiert. |
Änderungen
2023-09-06
Optimierung:
- Es wurde ein Grok-Muster hinzugefügt, um die Daten zu extrahieren und fehlgeschlagene KV-Protokolle zu parsen.
2023-05-23
- Neu erstellter Parser.
Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten