Forcepoint Web Security-Logs erfassen

Unterstützt in:

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

Forcepoint Web Security ist ein Webproxy und ein Sicherheitsgateway, das Syslog-Meldungen im CEF-Format (Common Event Format) für Webzugriff, Sicherheitsereignisse, Authentifizierung und Richtliniendurchsetzung generiert. Der Parser extrahiert Felder aus CEF- und Syslog-formatierten Logs und ordnet sie dem Unified Data Model (UDM) zu.

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 Forcepoint Web Security
  • Wenn Sie den Agent hinter einem Proxy ausführen, müssen die Firewallports gemäß den Anforderungen des Bindplane-Agents geöffnet sein.
  • Administratorzugriff auf Forcepoint Security Manager oder die Appliance-Verwaltungsoberfläche

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 der BindPlane-Agent 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

Sie können den Bindplane-Agent so konfigurieren, dass er Syslog-Nachrichten über TCP (empfohlen) oder UDP empfängt.

Konfigurationsdatei suchen

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

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

Konfigurationsdatei bearbeiten

Ersetzen Sie den gesamten Inhalt von config.yaml durch die Konfiguration für das von Ihnen ausgewählte Protokoll:

  • Option A: TCP-Konfiguration (empfohlen)

    receivers:
        tcplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/forcepoint_webproxy:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: FORCEPOINT_WEBPROXY
            raw_log_field: body
    
    service:
        pipelines:
            logs/forcepoint_tcp_to_chronicle:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/forcepoint_webproxy
    
  • Option B: UDP-Konfiguration

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

Konfigurationsparameter

Ersetzen Sie die folgenden Platzhalter:

  • Empfängerkonfiguration:

    • listen_address: IP-Adresse und Port, auf die gewartet werden soll:
      • 0.0.0.0, um alle Schnittstellen zu überwachen (empfohlen)
      • Port 514 ist der Standard-Syslog-Port (erfordert Root unter Linux; verwenden Sie 1514 für Nicht-Root).
  • Exporter-Konfiguration:

    • 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, die aus der Google SecOps Console kopiert wurde
    • 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.

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 in Forcepoint Web Security konfigurieren

Konfigurieren Sie Forcepoint Web Security so, dass Logs im CEF-Format (Common Event Format) an den BindPlane-Agenten weitergeleitet werden.

Forcepoint Security Manager verwenden

  1. Melden Sie sich mit Administratoranmeldedaten im Forcepoint Security Manager an.
  2. Gehen Sie zu den Einstellungen > „Logging“.
  3. Wählen Sie in der linken Navigationsleiste Log Servers (Protokollserver) aus.
  4. Klicken Sie auf Hinzufügen, um eine neue Logserverkonfiguration zu erstellen.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Server Type (Servertyp): Wählen Sie Syslog Server (Syslog-Server) oder CEF Server (CEF-Server) aus.
    • Name: Geben Sie einen aussagekräftigen Namen ein, z. B. Google Security Operations Bindplane CEF.
    • Host: Geben Sie die IP-Adresse oder den Hostnamen des Bindplane-Agents ein.
    • Port: Geben Sie die Portnummer des Bindplane-Agents ein, z. B. 514.
    • Protokoll: Wählen Sie das Protokoll aus, das Ihrer Bindplane-Konfiguration entspricht:
      • Wählen Sie TCP aus, wenn Sie den tcplog-Empfänger in Bindplane konfiguriert haben (empfohlen).
      • Wählen Sie UDP aus, wenn Sie den udplog-Empfänger in Bindplane konfiguriert haben.
    • Format: Wählen Sie CEF (Common Event Format) aus.
    • Einrichtung: Wählen Sie Local0 oder eine andere verfügbare Einrichtung aus.
    • Schweregrad: Wählen Sie Informational aus, um alle Logebenen zu erfassen.
  6. Wählen Sie unter Log Categories (Protokollkategorien) oder Event Types (Ereignistypen) die weiterzuleitenden Ereignisse aus:
    • Web Access Logs (Transaktionsprotokolle)
    • Sicherheitsereignisse (Bedrohungserkennung)
    • Authentifizierungsereignisse (Nutzeranmeldung/-abmeldung)
    • Systemereignisse (System- und Konfigurationsänderungen)
    • Sie können auch Alle Ereignisse auswählen, um alle verfügbaren Protokolltypen weiterzuleiten.
  7. Optional: Konfigurieren Sie zusätzliche Einstellungen:
    • Batchgröße: Auf 1 für die Echtzeitweiterleitung oder höher für die Batchverarbeitung festlegen.
    • Nachrichtenformat: Achten Sie darauf, dass das CEF-Format ausgewählt ist.
    • Nutzerinformationen einbeziehen: Aktivieren Sie diese Option, um die Nutzeridentität in Protokolle aufzunehmen.
  8. Klicken Sie auf Verbindung testen, um die Verbindung zum BindPlane-Agent zu prüfen.
  9. Klicken Sie auf Speichern, um die Konfiguration anzuwenden.
  10. Klicken Sie auf Bereitstellen, um die Konfiguration an alle Forcepoint Web Security-Gateways zu übertragen.

Forcepoint Web Security Appliance verwenden (direkte Konfiguration)

Wenn Sie die Konfiguration direkt auf der Appliance vornehmen:

  1. Melden Sie sich in der Verwaltungsoberfläche der Forcepoint Web Security Appliance an.
  2. Gehen Sie zu System > Log Server.
  3. Klicken Sie auf Hinzufügen oder Bearbeiten, um einen Protokollserver zu erstellen oder zu ändern.
  4. Geben Sie die folgenden Konfigurationsdetails an:
    • Serveradresse: Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • Port: Geben Sie 514 (oder Ihren benutzerdefinierten Port) ein.
    • Protokoll: Wählen Sie TCP oder UDP aus, damit die Bindplane-Konfiguration übereinstimmt.
    • Format: Wählen Sie CEF oder Common Event Format aus.
    • Einrichtung: Wählen Sie Local0 aus.
  5. Wählen Sie unter Log-Typen die weiterzuleitenden Logs aus:
    • Zugriffslogs
    • Sicherheitsprotokolle
    • Administratorprotokolle
  6. Klicken Sie auf Übernehmen oder Speichern.
  7. Wenn Sie mehrere Geräte verwenden, wiederholen Sie diese Konfiguration auf jedem Gerät.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
action security_result.summary Wenn action_msg nicht leer ist, wird sie security_result.summary zugeordnet. Andernfalls wird action, sofern nicht leer, security_result.summary zugeordnet. Andernfalls wird act, sofern nicht leer, security_result.summary zugeordnet.
action_msg security_result.summary Wenn action_msg nicht leer ist, wird sie security_result.summary zugeordnet. Andernfalls wird action, sofern nicht leer, security_result.summary zugeordnet. Andernfalls wird act, sofern nicht leer, security_result.summary zugeordnet.
app target.application Wenn destinationServiceName nicht leer ist, wird sie app_name zugeordnet. Andernfalls wird app, wenn es nicht leer ist und nicht „http“ oder „HTTP“ enthält, app_name zugeordnet. Schließlich wird app_name target.application zugeordnet.
bytes_in network.received_bytes Wenn in nicht leer ist, wird sie bytes_in zugeordnet. Schließlich wird bytes_in network.received_bytes zugeordnet.
bytes_out network.sent_bytes Wenn out nicht leer ist, wird sie bytes_out zugeordnet. Schließlich wird bytes_out network.sent_bytes zugeordnet.
cat security_result.category_details Wenn cat nicht leer ist, wird sie category zugeordnet. Schließlich wird category security_result.category_details zugeordnet.
category_no security_result.detection_fields.value Wenn category_no nicht leer ist, wird es mit dem Schlüssel Category Number security_result.detection_fields.value zugeordnet.
cn1 security_result.detection_fields.value Wenn cn1 nicht leer ist, wird es mit dem Schlüssel Disposition Number security_result.detection_fields.value zugeordnet.
ContentType target.file.mime_type Wenn contentType nicht leer ist, wird sie ContentType zugeordnet. Schließlich wird ContentType target.file.mime_type zugeordnet.
cs1 target_role.description cs1 wird target_role.description zugeordnet.
cs2 security_result.category_details Wenn cs2 nicht leer und nicht 0 ist, wird es mit dem Präfix Dynamic Category: auf security_result.category_details abgebildet.
cs3 target.file.mime_type cs3 wird target.file.mime_type zugeordnet.
description metadata.description Wenn description nicht leer ist, wird sie metadata.description zugeordnet.
destinationServiceName target.application Wenn destinationServiceName nicht leer ist, wird sie app_name zugeordnet. Schließlich wird app_name target.application zugeordnet.
deviceFacility metadata.product_event_type Wenn product_event und deviceFacility nicht leer sind, werden sie mit - verkettet und metadata.product_event_type zugeordnet. Andernfalls wird product_event auf metadata.product_event_type abgebildet.
disposition security_result.detection_fields.value Wenn disposition nicht leer ist, wird es mit dem Schlüssel Disposition Number security_result.detection_fields.value zugeordnet.
dst target.ip Wenn dst nicht leer und dvchost leer ist, wird dst dst_ip zugeordnet. Schließlich wird dst_ip target.ip zugeordnet.
dst_host target.hostname Wenn dst nicht leer und dvchost leer ist, wird dst dst_host zugeordnet. Schließlich wird dst_host target.hostname zugeordnet.
dst_ip target.ip Wenn dst nicht leer und dvchost leer ist, wird dst dst_ip zugeordnet. Schließlich wird dst_ip target.ip zugeordnet.
dst_port target.port Wenn dst nicht leer und dvchost leer ist, wird dst dst_port zugeordnet. Schließlich wird dst_port target.port zugeordnet.
duration network.session_duration.seconds Wenn duration nicht leer und nicht 0 ist, wird es network.session_duration.seconds zugeordnet.
dvchost intermediary.ip Wenn dvchost nicht leer ist, wird sie int_ip zugeordnet. Schließlich wird int_ip intermediary.ip zugeordnet, wenn es sich um eine gültige IP-Adresse handelt. Andernfalls wird es intermediary.hostname zugeordnet.
file_path target.file.full_path Wenn file_path nicht leer ist, wird sie target.file.full_path zugeordnet.
host principal.ip Wenn host nicht leer ist, wird sie src zugeordnet. Schließlich wird src principal.ip zugeordnet.
http_method network.http.method Wenn requestMethod nicht leer ist, wird sie http_method zugeordnet. Andernfalls wird method, sofern nicht leer, http_method zugeordnet. Schließlich wird http_method network.http.method zugeordnet.
http_proxy_status_code network.http.response_code Wenn http_response leer oder 0 oder - ist und http_proxy_status_code nicht leer ist, wird es network.http.response_code zugeordnet.
http_response network.http.response_code Wenn http_response nicht leer, nicht 0 und nicht - ist, wird es network.http.response_code zugeordnet.
http_user_agent network.http.user_agent Wenn http_user_agent nicht leer und nicht - ist, wird es network.http.user_agent zugeordnet.
in network.received_bytes Wenn in nicht leer ist, wird sie bytes_in zugeordnet. Schließlich wird bytes_in network.received_bytes zugeordnet.
int_host intermediary.hostname Wenn int_ip nicht leer ist und int_host nicht leer ist und sich von int_ip unterscheidet, wird es intermediary.hostname zugeordnet.
int_ip intermediary.ip Wenn dvchost nicht leer ist, wird sie int_ip zugeordnet. Schließlich wird int_ip intermediary.ip zugeordnet, wenn es sich um eine gültige IP-Adresse handelt. Andernfalls wird es intermediary.hostname zugeordnet.
level target_role.name Wenn level nicht leer und role leer ist, wird level role zugeordnet. Schließlich wird role target_role.name zugeordnet.
log_level security_result.severity Wenn severity 1 ist oder log_level info enthält oder message notice enthält, wird security_result.severity auf INFORMATIONAL festgelegt. Wenn severity 7 ist, wird security_result.severity auf HIGH gesetzt.
loginID principal.user.userid Wenn loginID nicht leer ist, wird sie user zugeordnet. Wenn user nicht leer und nicht - ist und LDAP nicht enthält, wird es principal.user.userid zugeordnet.
method network.http.method Wenn requestMethod nicht leer ist, wird sie http_method zugeordnet. Andernfalls wird method, sofern nicht leer, http_method zugeordnet. Schließlich wird http_method network.http.method zugeordnet.
NatRuleId security_result.detection_fields.value Wenn NatRuleId nicht leer ist, wird es mit dem Schlüssel NatRuleId security_result.detection_fields.value zugeordnet.
out network.sent_bytes Wenn out nicht leer ist, wird sie bytes_out zugeordnet. Schließlich wird bytes_out network.sent_bytes zugeordnet.
pid target.process.pid Wenn pid nicht leer ist, wird sie target.process.pid zugeordnet.
policy target_role.description Wenn Policy nicht leer ist, wird sie policy zugeordnet. Wenn policy nicht leer und nicht - ist, wird es target_role.description zugeordnet.
Policy target_role.description Wenn Policy nicht leer ist, wird sie policy zugeordnet. Wenn policy nicht leer und nicht - ist, wird es target_role.description zugeordnet.
product_event metadata.product_event_type Wenn product nicht leer ist, wird sie product_event zugeordnet. Wenn product_event und deviceFacility nicht leer sind, werden sie mit - verkettet und metadata.product_event_type zugeordnet. Andernfalls wird product_event auf metadata.product_event_type abgebildet.
proxyStatus-code network.http.response_code Wenn http_response leer oder 0 oder - ist und http_proxy_status_code leer und proxyStatus-code nicht leer ist, wird es network.http.response_code zugeordnet.
refererUrl network.http.referral_url Wenn refererUrl nicht leer und nicht - ist, wird es network.http.referral_url zugeordnet.
requestClientApplication network.http.user_agent Wenn requestMethod nicht leer ist, wird sie http_user_agent zugeordnet. Schließlich wird http_user_agent network.http.user_agent zugeordnet.
requestMethod network.http.method Wenn requestMethod nicht leer ist, wird sie http_method zugeordnet. Schließlich wird http_method network.http.method zugeordnet.
role target_role.name Wenn level nicht leer und role leer ist, wird level role zugeordnet. Schließlich wird role target_role.name zugeordnet.
RuleID security_result.rule_id Wenn RuleID nicht leer ist, wird sie security_result.rule_id zugeordnet.
serverStatus-code network.http.response_code Wenn http_response leer oder 0 oder - ist und http_proxy_status_code leer und proxyStatus-code nicht leer ist, wird es network.http.response_code zugeordnet.
severity security_result.severity Wenn severity 1 ist oder log_level info enthält oder message notice enthält, wird security_result.severity auf INFORMATIONAL festgelegt. Wenn severity 7 ist, wird security_result.severity auf HIGH gesetzt.
spt principal.port Wenn spt nicht leer ist, wird sie src_port zugeordnet. Schließlich wird src_port principal.port zugeordnet.
src principal.ip Wenn src_host nicht leer ist, wird sie source_ip_temp zugeordnet. Wenn source_ip_temp eine gültige IP-Adresse und src leer ist, wird sie src zugeordnet. Wenn host nicht leer ist, wird sie src zugeordnet. Schließlich wird src principal.ip zugeordnet.
src_host principal.hostname Wenn src_host nicht leer ist, wird sie source_ip_temp zugeordnet. Wenn source_ip_temp keine gültige IP-Adresse ist, wird sie principal.hostname zugeordnet. Wenn source_ip_temp eine gültige IP-Adresse und src leer ist, wird sie src zugeordnet. Schließlich wird src principal.ip zugeordnet.
src_port principal.port Wenn src_port nicht leer ist, wird sie principal.port zugeordnet.
suser principal.user.userid Wenn loginID nicht leer ist, wird sie user zugeordnet. Wenn suser nicht leer ist, wird sie user zugeordnet. Wenn user nicht leer und nicht - ist und LDAP nicht enthält, wird es principal.user.userid zugeordnet.
url target.url Wenn url nicht leer ist, wird sie target.url zugeordnet.
user principal.user.userid Wenn loginID nicht leer ist, wird sie user zugeordnet. Wenn suser nicht leer ist, wird sie user zugeordnet. Andernfalls wird usrName, sofern nicht leer, user zugeordnet. Wenn user nicht leer und nicht - ist und LDAP nicht enthält, wird es principal.user.userid zugeordnet.
usrName principal.user.userid Wenn loginID nicht leer ist, wird sie user zugeordnet. Wenn suser nicht leer ist, wird sie user zugeordnet. Andernfalls wird usrName, sofern nicht leer, user zugeordnet. Wenn user nicht leer und nicht - ist und LDAP nicht enthält, wird es principal.user.userid zugeordnet.
when metadata.event_timestamp Wenn when nicht leer ist, wird es geparst und metadata.event_timestamp zugeordnet.
metadata.log_type Der Wert FORCEPOINT_WEBPROXY ist in metadata.log_type hartcodiert.
metadata.product_name Der Wert Forcepoint Webproxy ist in metadata.product_name hartcodiert.
metadata.vendor_name Der Wert Forcepoint ist in metadata.vendor_name hartcodiert.
network.application_protocol Wenn dst_port 80 ist, wird network.application_protocol auf HTTP gesetzt. Wenn dst_port 443 ist, wird network.application_protocol auf HTTPS gesetzt.
principal.user.group_identifiers Wenn user nicht leer und nicht - ist und LDAP enthält, wird der OU-Teil des Nutzerstrings extrahiert und principal.user.group_identifiers zugeordnet.
principal.user.user_display_name Wenn user nicht leer und nicht - ist und LDAP enthält, wird der Nutzername aus dem Nutzerstring extrahiert und principal.user.user_display_name zugeordnet.
security_result.action Wenn action_msg, action oder act nicht leer sind, wird sec_action basierend auf ihren Werten auf ALLOW oder BLOCK gesetzt. Schließlich wird sec_action security_result.action zugeordnet.
security_result.detection_fields.key Der Wert Disposition Number ist in security_result.detection_fields.key fest codiert, wenn disposition oder cn1 zugeordnet wird. Der Wert NatRuleId ist beim Zuordnen von NatRuleId in security_result.detection_fields.key hartcodiert. Der Wert Category Number ist beim Zuordnen von category_no in security_result.detection_fields.key hartcodiert.

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