Fortinet Web Proxy-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Fortinet Web Proxy-Logs mit dem Bindplane-Agent in Google Security Operations aufnehmen.

Der Fortinet FortiGate-Webproxy generiert Protokolle für explizite und transparente Proxy-Sitzungen und erfasst HTTP-/HTTPS-Traffic, Entscheidungen zur URL-Filterung und Webzugriffsereignisse. Die Logs verwenden das Syslog-Schlüssel/Wert-Format und enthalten Netzwerkmetadaten, Sicherheitsaktionen und Informationen zur Nutzeridentität.

Hinweis

Prüfen Sie, ob folgende Voraussetzungen erfüllt sind:

  • Eine Google SecOps-Instanz
  • Windows Server 2016 oder höher oder Linux-Host mit systemd
  • Netzwerkverbindung zwischen dem Bindplane-Agent und der FortiGate-Appliance
  • Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Privilegierter Zugriff auf die FortiGate-Appliance mit Administratorberechtigungen

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Collection Agents auf.
  3. Laden Sie die Authentifizierungsdatei für die Aufnahme herunter.
  4. 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-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > Profile auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

Installieren Sie den Bindplane-Agent auf Ihrem Windows- oder Linux-Betriebssystem gemäß der folgenden Anleitung.

Fenstereinbau

  1. Öffnen Sie die Eingabeaufforderung oder 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
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sc query observiq-otel-collector
    

    Der Dienst sollte als RUNNING (Wird ausgeführt) angezeigt werden.

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
    
  3. Warten Sie, bis die Installation abgeschlossen ist.

  4. Überprüfen Sie die Installation mit folgendem Befehl:

    sudo systemctl status observiq-otel-collector
    

    Der Dienst sollte als aktiv (wird ausgeführt) angezeigt werden.

Zusätzliche Installationsressourcen

Weitere Installationsoptionen und Informationen zur Fehlerbehebung finden Sie in der Installationsanleitung für den Bindplane-Agent.

BindPlane-Agent zum Erfassen von Syslog-Daten und Senden an Google SecOps konfigurieren

Konfigurationsdatei suchen

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Konfigurationsdatei bearbeiten

  • Ersetzen Sie den gesamten Inhalt von config.yaml durch die folgende Konfiguration:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/fortinet_webproxy:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: FORTINET_WEBPROXY
            raw_log_field: body
            ingestion_labels:
                env: production
    
    service:
        pipelines:
            logs/webproxy_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/fortinet_webproxy
    

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Konfiguration des Empfängers:

    • udplog: Der Empfängertyp basierend auf dem Protokoll:
      • udplog für UDP-Syslog
      • tcplog für TCP-Syslog
    • 0.0.0.0: IP-Adresse, auf der gelauscht werden soll:
      • 0.0.0.0, um alle Schnittstellen zu überwachen (empfohlen)
      • Bestimmte IP-Adresse, die auf einer Schnittstelle überwacht werden soll
    • 514: Portnummer, die überwacht werden soll (z. B. 514, 1514, 6514)
  • Exporter-Konfiguration:

    • fortinet_webproxy: Beschreibender Name für den Exportvorgang
    • creds_file_path: Vollständiger Pfad zur Datei für die Authentifizierung bei der Aufnahme:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • <customer_id>: Kunden-ID aus dem vorherigen Schritt
    • endpoint: Regionale Endpunkt-URL:
      • USA: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Asien: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Eine vollständige Liste finden Sie unter Regionale Endpunkte.
    • FORTINET_WEBPROXY: Logtyp genau wie in Chronicle
    • ingestion_labels: Optionale Labels im YAML-Format (z. B. env: production)
  • Pipelinekonfiguration:

    • webproxy_to_chronicle: Aussagekräftiger Name für die Pipeline

Konfigurationsdatei speichern

  • Speichern Sie die Datei nach der Bearbeitung:
    • Linux: Drücken Sie Ctrl+O, dann Enter und dann Ctrl+X.
    • Windows: Klicken Sie auf Datei > Speichern.

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 observiq-otel-collector
    
    1. Prüfen Sie, ob der Dienst ausgeführt wird:

      sudo systemctl status observiq-otel-collector
      
    2. Logs auf Fehler prüfen:

      sudo journalctl -u observiq-otel-collector -f
      
  • Wählen Sie eine der folgenden Optionen aus, um den Bindplane-Agent unter Windows neu zu starten:

    • Eingabeaufforderung oder PowerShell als Administrator:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Services-Konsole:

      1. Drücken Sie Win+R, geben Sie services.msc ein und drücken Sie die Eingabetaste.
      2. Suchen Sie nach observIQ OpenTelemetry Collector.
      3. Klicken Sie mit der rechten Maustaste und wählen Sie Neu starten aus.
      4. Prüfen Sie, ob der Dienst ausgeführt wird:

        sc query observiq-otel-collector
        
      5. Logs auf Fehler prüfen:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Syslog-Weiterleitung für Fortinet FortiGate-Webproxy konfigurieren

  1. Melden Sie sich in der Weboberfläche von FortiGate an.
  2. Gehen Sie zu Log & Report > Log Settings (Protokoll & Bericht > Protokolleinstellungen).
  3. Scrollen Sie nach unten zum Abschnitt Remote Logging and Archiving (Remote-Protokollierung und ‑Archivierung).
  4. Klicken Sie unter Syslog auf Hinzufügen.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Name: Geben Sie einen aussagekräftigen Namen ein, z. B. Chronicle-Bindplane.
    • IP-Adresse/FQDN: Geben Sie die IP-Adresse des Bindplane-Agent-Hosts ein (z. B. 192.168.1.100).
    • Port: Geben Sie 514 ein (muss mit dem Empfängerport des BindPlane-Agenten übereinstimmen).
    • Protokoll: Wählen Sie UDP aus.
    • Mindeststufe: Wählen Sie Informationen oder Benachrichtigung aus.
  6. Achten Sie darauf, dass die Logkategorie Web-Proxy aktiviert ist. Alternativ können Sie den Syslog-Filter über die Befehlszeile konfigurieren:

    config log syslogd setting
        set status enable
        set server <BINDPLANE_AGENT_IP>
        set port 514
    end
    config log syslogd filter
        set filter "logid(0300)"
        set filter-type include
    end
    
    • Der Log-ID-Bereich 0300 umfasst Webproxy-Ereignisse. Passen Sie den Filter an Ihre Umgebung an.
    • Ersetzen Sie <BINDPLANE_AGENT_IP> durch die IP-Adresse des Bindplane-Agent-Hosts.
  7. Klicken Sie zum Speichern auf OK.

  8. Klicken Sie rechts oben auf Übernehmen, um die Konfiguration zu übernehmen.

  9. Prüfen Sie anhand der Bindplane-Agent-Logs, ob Syslog-Nachrichten empfangen werden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
group, profile, agent, subtype, catdesc, reqtype additional.fields Mit Labels zusammengeführt, die aus den einzelnen Feldern erstellt wurden
action, has_network, has_principal, has_target metadata.event_type Auf USER_LOGIN setzen, wenn die Aktion „auth-logon“ ist, andernfalls auf NETWORK_HTTP, wenn „has_network“ auf „true“ gesetzt ist, andernfalls auf NETWORK_CONNECTION, wenn „has_principal“ und „has_target“ auf „true“ gesetzt sind, andernfalls auf STATUS_UPDATE, wenn „has_principal“ auf „true“ gesetzt ist, andernfalls auf GENERIC_EVENT.
eventtype metadata.product_event_type Wert direkt kopiert
logid metadata.product_log_id Wert direkt kopiert
metadata.product_name Auf „FORTINET_WEBPROXY“ festgelegt
metadata.vendor_name Auf „FORTINET_WEBPROXY“ festgelegt
Dienst network.application_protocol Wert wird direkt kopiert, wenn der Dienst in HTTP oder HTTPS ist
direction network.direction Auf INBOUND festlegen, wenn die Richtung „incoming“, „inbound“ oder „response“ ist, andernfalls auf OUTBOUND, wenn die Richtung „outgoing“ oder „outbound“ ist.
httpmethod network.http.method Wert wird direkt kopiert, wenn httpmethod in GET, POST
referralurl network.http.referral_url Wert direkt kopiert
proto, subtype, service network.ip_protocol Auf UDP setzen, wenn proto=17, auf TCP, wenn proto=6 oder subtype=wad, auf IP6IN4, wenn proto=41, auf ICMP, wenn service=PING oder proto=1 oder service mit ICMP übereinstimmt
rcvdbyte network.received_bytes In vorzeichenlose Ganzzahl konvertiert
sentbyte network.sent_bytes In vorzeichenlose Ganzzahl konvertiert
sessionid network.session_id Wert direkt kopiert
devname principal.asset.hostname Wert direkt kopiert
srcip principal.asset.ip Wert direkt kopiert
devname principal.hostname Wert direkt kopiert
srcip principal.ip Wert direkt kopiert
srccountry principal.location.country_or_region Wert wird direkt kopiert, wenn er nicht reserviert und nicht leer ist
srcport principal.port In Ganzzahl konvertiert
srcuuid principal.user.product_object_id Wert direkt kopiert
vd principal.user.user_display_name Wert direkt kopiert
Nutzer principal.user.userid Wert direkt kopiert
filtername security_result.about.resource.attribute.labels Wird mit dem Label zusammengeführt, das aus dem Filternamen erstellt wurde, wenn dieser nicht leer und nicht „-“ ist.
Aktion security_result.action Auf BLOCK setzen, wenn action=blocked, auf ALLOW, wenn action in accept, passthrough
devid, policyid, srcintf, srcintfrole, ratemethod, cat security_result.detection_fields Mit Labels zusammengeführt, die aus den einzelnen Feldern erstellt wurden
msg security_result.description Wert direkt kopiert
poluuid security_result.rule_id Wert direkt kopiert
policytype security_result.rule_type Wert direkt kopiert
level security_result.severity Auf „HIGH“ setzen, wenn level=warning, auf „MEDIUM“, wenn level=notice
Typ security_result.summary Wert direkt kopiert
dstip target.asset.ip Wert direkt kopiert
filename target.file.full_path Wert direkt kopiert
filetype target.file.mime_type Wert direkt kopiert
filesize target.file.size In vorzeichenlose Ganzzahl konvertiert
Hostname target.hostname Wert direkt kopiert
dstip target.ip Wert direkt kopiert
dstcountry target.location.country_or_region Wert direkt kopiert
dstport target.port In Ganzzahl konvertiert
dstintf, dstintfrole target.resource.attribute.labels Mit Labels zusammengeführt, die aus den einzelnen Feldern erstellt wurden
dstuuid target.resource.product_object_id Wert direkt kopiert
URL target.url Wert direkt kopiert

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten