F5 VPN-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie F5 VPN-Logs mit Bindplane in Google Security Operations aufnehmen. Der Parser extrahiert sicherheitsrelevante Informationen aus den Logs. Dabei werden reguläre Ausdrücke verwendet, um Schlüsselfelder wie Zeitstempel, IP-Adressen und Hostnamen zu identifizieren und zu parsen. Anschließend werden diese Daten zur Analyse in das Google SecOps Unified Data Model (UDM)-Format strukturiert.

Hinweise

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

  • Eine Google SecOps-Instanz
  • Windows 2016 oder höher oder ein Linux-Host mit systemd
  • Wenn die Ausführung hinter einem Proxy erfolgt, sind die Firewallports geöffnet.
  • Privilegierter Zugriff auf F5 BIG-IP APM (Access Policy Manager)

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

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
    

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. Rufen Sie die Konfigurationsdatei auf:
    • Suchen Sie die Datei config.yaml. Normalerweise befindet sie 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).
  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_file_path: '/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
            log_type: 'F5_VPN'
            raw_log_field: body
            ingestion_labels:
    
    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 Kunden-ID.
    • 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

  1. Führen Sie den folgenden Befehl aus, um den Bindplane-Agent unter Linux neu zu starten:

    sudo systemctl restart bindplane-agent
    
  2. 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
    

Syslog für F5 BIG-IP APM v11.x und höher konfigurieren

  1. Melden Sie sich mit der CLI oder SSH in F5 BIG-IP APM an.
  2. Geben Sie den folgenden Befehl ein, um den Syslog-Server hinzuzufügen:

    tmsh syslog remote server {<Name> {host <bindplane-ip> remote-port <bindplane-port>}}
    

    Ersetzen Sie die folgenden Parameter:

    • <Name>: Geben Sie den Namen der F5 BIG-IP APM-Quelle ein, z. B. BIGIP_APM.
    • <bindplane-ip>: Geben Sie die IP-Adresse des Bindplane-Agents ein.
    • <bindplane-port>: Geben Sie die Portnummer des Bindplane-Agents ein.
  3. Geben Sie den folgenden Befehl ein, um die Änderungen zu speichern:

    tmsh save sys config partitions all
    

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
cmd_data principal.process.command_line Der Wert wird aus dem Feld „msg“ extrahiert.
errdefs_msgno additional.fields.errdefs_msgno.string_value Der Wert wird aus dem Feld „msg“ extrahiert.
event_time metadata.event_timestamp Der Wert wird geparst und in einen Zeitstempel konvertiert.
Hostname principal.hostname, observer.hostname, principal.asset.hostname, observer.asset.hostname, hostip Der Wert wird aus dem Nachrichtenfeld extrahiert und zum Ausfüllen der Hostname-Felder im UDM verwendet. Auch zum Füllen des Felds „hostip“ verwendet
msg security_result.description Der Wert wird aus dem Nachrichtenfeld extrahiert und zum Ausfüllen des Beschreibungsfelds im security_result-Objekt verwendet.
prin_ip principal.ip, principal.asset.ip Der Wert wird aus dem Nachrichtenfeld extrahiert und zum Ausfüllen der IP-Adressfelder im UDM verwendet.
additional.fields.Canonical_Info.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.IDP.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.Plugin_Support.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.SMB Stage.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.SP.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.Timezone.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.Tunnel Type.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.UI_Mode.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.Version.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.from_rule_item.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.policy_result.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.ppp_id.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.resource.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.rule.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.server_vip_ip.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.server_vip_name.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.to_rule_item.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
additional.fields.tunnel_resource.string_value Der Wert wird aus der Log-Nachricht abgeleitet.
metadata.description Der Wert wird aus der Log-Nachricht abgeleitet.
metadata.event_type Der Wert ist für einige Ereignisse im Parsercode hartcodiert und wird für andere aus der Log-Nachricht abgeleitet.
metadata.log_type Der Wert wird auf den Batchtyp festgelegt.
metadata.product_event_type Der Wert wird aus der Log-Nachricht abgeleitet.
metadata.product_name Der Wert ist im Parsercode hartcodiert.
metadata.vendor_name Der Wert ist im Parsercode hartcodiert.
network.application_protocol Der Wert wird aus der Log-Nachricht abgeleitet.
network.direction Der Wert wird aus der Log-Nachricht abgeleitet.
network.http.method Der Wert wird aus der Log-Nachricht abgeleitet.
network.http.parsed_user_agent Der Wert wird aus dem Feld „network.http.user_agent“ abgeleitet.
network.http.referral_url Der Wert wird aus der Log-Nachricht abgeleitet.
network.http.response_code Der Wert wird aus der Log-Nachricht abgeleitet.
network.http.user_agent Der Wert wird aus der Log-Nachricht abgeleitet.
network.ip_protocol Der Wert wird aus der Log-Nachricht abgeleitet.
network.received_bytes Der Wert wird aus der Log-Nachricht abgeleitet.
network.sent_bytes Der Wert wird aus der Log-Nachricht abgeleitet.
network.session_id Der Wert wird aus der Log-Nachricht abgeleitet.
network.tls.cipher Der Wert wird aus der Log-Nachricht abgeleitet.
network.tls.version Der Wert wird aus der Log-Nachricht abgeleitet.
observer.asset.hostname Der Wert wird auf das Feld „Hostname“ festgelegt.
observer.asset.ip Der Wert wird auf das Feld „hostip“ festgelegt.
observer.hostname Der Wert wird auf das Feld „Hostname“ festgelegt.
observer.ip Der Wert wird auf das Feld „hostip“ festgelegt.
principal.application Der Wert wird aus der Log-Nachricht abgeleitet.
principal.asset.hostname Der Wert wird auf das Feld „Hostname“ festgelegt.
principal.asset.ip Der Wert wird auf das Feld „hostip“ oder „prin_ip“ festgelegt, falls es vorhanden ist.
principal.asset.product_object_id Der Wert wird aus der Log-Nachricht abgeleitet.
principal.hostname Der Wert wird auf das Feld „Hostname“ festgelegt.
principal.ip Der Wert wird auf das Feld „hostip“ oder „prin_ip“ festgelegt, falls es vorhanden ist.
principal.location.country_or_region Der Wert wird aus der Log-Nachricht abgeleitet.
principal.platform Der Wert wird aus der Log-Nachricht abgeleitet.
principal.port Der Wert wird aus der Log-Nachricht abgeleitet.
principal.process.command_line Der Wert wird aus der Log-Nachricht abgeleitet.
principal.process.pid Der Wert wird aus der Log-Nachricht abgeleitet.
principal.resource.name Der Wert wird aus der Log-Nachricht abgeleitet.
principal.resource.type Der Wert ist für einige Ereignisse im Parsercode hartcodiert und wird für andere aus der Log-Nachricht abgeleitet.
principal.user.email_addresses Der Wert wird aus der Log-Nachricht abgeleitet.
principal.user.userid Der Wert wird aus der Log-Nachricht abgeleitet.
security_result.action Der Wert wird aus der Log-Nachricht abgeleitet.
security_result.description Der Wert wird aus der Log-Nachricht abgeleitet.
security_result.rule_name Der Wert wird aus der Log-Nachricht abgeleitet.
security_result.severity Der Wert wird aus der Log-Nachricht abgeleitet.
security_result.severity_details Der Wert wird aus der Log-Nachricht abgeleitet.
security_result.summary Der Wert wird aus der Log-Nachricht abgeleitet.
src.ip Der Wert wird aus der Log-Nachricht abgeleitet.
src.location.country_or_region Der Wert wird aus der Log-Nachricht abgeleitet.
src.port Der Wert wird aus der Log-Nachricht abgeleitet.
target.asset.hostname Der Wert wird aus der Log-Nachricht abgeleitet.
target.asset.ip Der Wert wird aus der Log-Nachricht abgeleitet.
target.hostname Der Wert wird aus der Log-Nachricht abgeleitet.
target.ip Der Wert wird aus der Log-Nachricht abgeleitet.
target.port Der Wert wird aus der Log-Nachricht abgeleitet.
target.process.command_line Der Wert wird aus der Log-Nachricht abgeleitet.
target.process.pid Der Wert wird aus der Log-Nachricht abgeleitet.
target.resource.id Der Wert wird aus der Log-Nachricht abgeleitet.
target.url Der Wert wird aus der Log-Nachricht abgeleitet.
target.user.userid Der Wert wird aus der Log-Nachricht abgeleitet.

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