Fortinet FortiMail-Protokolle erfassen

Unterstützt in:

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

  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:

    ```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
    ```
    
  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
    

Syslog für Fortinet FortiMail konfigurieren

  1. Melden Sie sich in der Weboberfläche des FortiMail-Geräts an.
  2. Wählen Sie Protokollieren und melden > Protokolleinstellungen > Remote aus.
  3. Klicken Sie auf Neu, um einen neuen Eintrag zu erstellen.
  4. Wählen Sie im angezeigten Dialogfeld die Option Aktivieren aus, um das Logging auf einem Remote-Host zuzulassen.
  5. 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.
  6. 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