Forcepoint Proxy-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Forcepoint Proxy-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser bereinigt zuerst die eingehende Log-Nachricht und extrahiert Schlüssel/Wert-Paare mithilfe von Grok-Mustern und regulären Ausdrücken. Anschließend werden die extrahierten Felder anhand bestimmter Bedingungen und Feldwerte dem Unified Data Model (UDM) zugeordnet. Dabei werden verschiedene Logformate und Grenzfälle berücksichtigt, um eine einheitliche Darstellung der Daten zu gewährleisten.

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 Forcepoint Proxy haben.

Authentifizierungsdatei für die Aufnahme in Google SecOps abrufen

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie SIEM-Einstellungen > Collection Agents auf.
  3. 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

  1. Melden Sie sich in der Google SecOps-Konsole an.
  2. Rufen Sie die SIEM-Einstellungen > „Profil“ auf.
  3. Kopieren und speichern Sie die Kunden-ID aus dem Bereich Organisationsdetails.

BindPlane-Agent installieren

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
    

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
    

Zusätzliche Installationsressourcen

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

  1. Greifen Sie auf die Konfigurationsdatei zu:

    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:

    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: FORCEPOINT_WEBPROXY
                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 Kunden-ID.

  5. 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
    

Forcepoint Web Security Suite konfigurieren

  1. Melden Sie sich in der Forcepoint-Konsole an.
  2. Gehen Sie zu Web> Einstellungen> Allgemein.
  3. Klicken Sie auf SIEM-Integration.
  4. Klicken Sie das Kästchen SIEM-Integration für diesen Richtlinienserver aktivieren an.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • IP-Adresse oder Hostname: Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • Portnummer: Geben Sie die Portnummer ein, die für den Bindplane-Agent konfiguriert ist, z. B. 514.
    • Transportprotokoll: Wählen Sie das Protokoll UDP aus.
    • SIEM-Format: Wählen Sie Syslog/CEF (Arcsight) aus.
  6. Klicken Sie auf OK.
  7. Klicken Sie auf Speichern und bereitstellen.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Aktion security_result.summary Wenn action_msg nicht leer ist, wird sie security_result.summary zugeordnet. Andernfalls wird „action“ (falls nicht leer) „security_result.summary“ zugeordnet. Andernfalls wird „act“ (falls 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“ (falls nicht leer) „security_result.summary“ zugeordnet. Andernfalls wird „act“ (falls nicht leer) „security_result.summary“ zugeordnet.
App target.application Wenn „destinationServiceName“ nicht leer ist, wird es „app_name“ zugeordnet. Andernfalls wird „app“ (wenn nicht leer und ohne http oder HTTP) „app_name“ zugeordnet. Schließlich wird „app_name“ „target.application“ zugeordnet.
bytes_in network.received_bytes Wenn „in“ nicht leer ist, wird es „bytes_in“ zugeordnet. Schließlich wird „bytes_in“ „network.received_bytes“ zugeordnet.
bytes_out network.sent_bytes Wenn „out“ nicht leer ist, wird es „bytes_out“ zugeordnet. Schließlich wird „bytes_out“ „network.sent_bytes“ zugeordnet.
Katze security_result.category_details Wenn „cat“ nicht leer ist, wird es „category“ zugeordnet. Schließlich wird die Kategorie security_result.category_details zugeordnet.
cn1 security_result.detection_fields.value Wenn „cn1“ nicht leer ist, wird es „security_result.detection_fields.value“ mit dem Schlüssel Disposition Number zugeordnet.
ContentType target.file.mime_type Wenn „contentType“ nicht leer ist, wird es „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: security_result.category_details zugeordnet.
cs3 target.file.mime_type cs3 wird target.file.mime_type zugeordnet.
description metadata.description Wenn die Beschreibung nicht leer ist, wird sie metadata.description zugeordnet.
destinationServiceName target.application Wenn „destinationServiceName“ nicht leer ist, wird es „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“ „metadata.product_event_type“ zugeordnet.
disposition security_result.detection_fields.value Wenn „disposition“ nicht leer ist, wird es „security_result.detection_fields.value“ mit dem Schlüssel Disposition Number zugeordnet.
dst target.ip Wenn „dst“ nicht leer und „dvchost“ leer ist, wird „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_host“ zugeordnet. Schließlich wird „dst_host“ „target.hostname“ zugeordnet.
dst_ip target.ip Wenn „dst“ nicht leer und „dvchost“ leer ist, wird „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_port“ zugeordnet. Schließlich wird „dst_port“ „target.port“ zugeordnet.
Dauer 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 es „int_ip“ zugeordnet. Schließlich wird „int_ip“ der Variablen „intermediary.ip“ zugewiesen, sofern es sich um eine gültige IP-Adresse handelt. Andernfalls wird es „intermediary.hostname“ zugewiesen.
file_path target.file.full_path Wenn file_path nicht leer ist, wird er target.file.full_path zugeordnet.
Host principal.ip Wenn „host“ nicht leer ist, wird es „src“ zugeordnet. Schließlich wird „src“ „principal.ip“ zugeordnet.
http_method network.http.method Wenn „requestMethod“ nicht leer ist, wird es „http_method“ zugeordnet. Andernfalls wird „method“ (falls 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 es „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 es „int_ip“ zugeordnet. Schließlich wird „int_ip“ der Variablen „intermediary.ip“ zugewiesen, sofern es sich um eine gültige IP-Adresse handelt. Andernfalls wird es „intermediary.hostname“ zugewiesen.
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 der Schweregrad 7 ist, wird security_result.severity auf HIGH gesetzt.
loginID principal.user.userid Wenn „loginID“ nicht leer ist, wird sie dem Nutzer zugeordnet. Wenn „user“ nicht leer und nicht - ist und nicht LDAP enthält, wird es „principal.user.userid“ zugeordnet.
Methode network.http.method Wenn „requestMethod“ nicht leer ist, wird es „http_method“ zugeordnet. Andernfalls wird „method“ (falls 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 sie mit dem Schlüssel NatRuleId dem Feld „security_result.detection_fields.value“ zugeordnet.
out network.sent_bytes Wenn „out“ nicht leer ist, wird es „bytes_out“ zugeordnet. Schließlich wird „bytes_out“ „network.sent_bytes“ zugeordnet.
pid target.process.pid Wenn „pid“ nicht leer ist, wird es „target.process.pid“ zugeordnet.
Richtlinie target_role.description Wenn „Policy“ nicht leer ist, wird sie „policy“ zugeordnet. Wenn die Richtlinie nicht leer und nicht - ist, wird sie target_role.description zugeordnet.
Richtlinie target_role.description Wenn „Policy“ nicht leer ist, wird sie „policy“ zugeordnet. Wenn die Richtlinie nicht leer und nicht - ist, wird sie target_role.description zugeordnet.
product_event metadata.product_event_type Wenn „product“ nicht leer ist, wird es „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“ „metadata.product_event_type“ zugeordnet.
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 er 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 es „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 es „http_method“ zugeordnet. Schließlich wird „http_method“ „network.http.method“ zugeordnet.
Rolle 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 er network.http.response_code zugeordnet.
die Ausprägung 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 der Schweregrad 7 ist, wird security_result.severity auf HIGH gesetzt.
spt principal.port Wenn „spt“ nicht leer ist, wird es „src_port“ zugeordnet. Schließlich wird „src_port“ „principal.port“ zugeordnet.
src principal.ip Wenn „src_host“ nicht leer ist, wird es „source_ip_temp“ zugeordnet. Wenn „source_ip_temp“ eine gültige IP-Adresse und „src“ leer ist, wird „source_ip_temp“ „src“ zugeordnet. Wenn „host“ nicht leer ist, wird es „src“ zugeordnet. Schließlich wird „src“ „principal.ip“ zugeordnet.
src_host principal.hostname Wenn „src_host“ nicht leer ist, wird es „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 „source_ip_temp“ „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 dem Nutzer zugeordnet. Wenn „suser“ nicht leer ist, wird es „user“ zugeordnet. Wenn „user“ nicht leer und nicht - ist und nicht LDAP enthält, wird es „principal.user.userid“ zugeordnet.
URL target.url Wenn „url“ nicht leer ist, wird es „target.url“ zugeordnet.
Nutzer principal.user.userid Wenn „loginID“ nicht leer ist, wird sie dem Nutzer zugeordnet. Wenn „suser“ nicht leer ist, wird es „user“ zugeordnet. Andernfalls wird usrName, sofern nicht leer, user zugeordnet. Wenn „user“ nicht leer und nicht - ist und nicht LDAP enthält, wird es „principal.user.userid“ zugeordnet.
usrName principal.user.userid Wenn „loginID“ nicht leer ist, wird sie dem Nutzer zugeordnet. Wenn „suser“ nicht leer ist, wird es „user“ zugeordnet. Andernfalls wird usrName, sofern nicht leer, user zugeordnet. Wenn „user“ nicht leer und nicht - ist und nicht LDAP enthält, wird es „principal.user.userid“ zugeordnet.
Wann? 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 festgelegt. Wenn dst_port 443 ist, wird network.application_protocol auf HTTPS festgelegt.
principal.user.group_identifiers Wenn „user“ nicht leer und nicht - ist und LDAP enthält, wird der OU-Teil des Nutzer-Strings 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.category_details Wenn „cat“ nicht leer ist, wird es „category“ zugeordnet. Schließlich wird die Kategorie security_result.category_details zugeordnet. Wenn „cs2“ nicht leer und nicht 0 ist, wird es mit dem Präfix Dynamic Category: security_result.category_details zugeordnet.
security_result.detection_fields.key Der Wert Disposition Number ist in security_result.detection_fields.key hartcodiert, wenn die Disposition oder cn1 zugeordnet wird. Der Wert NatRuleId ist beim Zuordnen von NatRuleId in security_result.detection_fields.key fest codiert. Der Wert Category Number ist beim Zuordnen von category_no in security_result.detection_fields.key hartcodiert.
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 der Schweregrad 7 ist, wird security_result.severity auf HIGH gesetzt.
target_role.description Wenn „Policy“ nicht leer ist, wird sie „policy“ zugeordnet. Wenn die Richtlinie nicht leer und nicht - ist, wird sie target_role.description zugeordnet.
target_role.name Wenn „level“ nicht leer und „role“ leer ist, wird „level“ „role“ zugeordnet. Schließlich wird „role“ „target_role.name“ zugeordnet.
category_no security_result.detection_fields.value Wenn „category_no“ nicht leer ist, wird es „security_result.detection_fields.value“ mit dem Schlüssel Category Number zugeordnet.

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