F5 Shape-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie F5 Shape-Logs mit Google Cloud Storage V2 in Google Security Operations aufnehmen.

F5 Distributed Cloud Bot Defense (früher Shape Security) schützt Anwendungen vor automatisierten Angriffen, indem es schädliche Bots identifiziert und abwehrt. Bot Defense verwendet JavaScript und native Mobile SDKs, um Telemetriedaten von Clientbrowsern und Mobilgeräten zu erfassen. Diese Telemetriedaten werden untersucht, bevor Anfragen Ihre Anwendung erreichen. Der Dienst bietet integrierte Dashboards und Berichte, in denen Sie detaillierte Informationen zum analysierten Traffic aufrufen können, einschließlich Sicherheitsereignissen, Zugriffs- und Audit-Logs.

Hinweise

Folgende Voraussetzungen müssen erfüllt sein:

  • Eine Google SecOps-Instanz
  • Ein GCP-Projekt mit aktivierter Cloud Storage API
  • Berechtigungen zum Erstellen und Verwalten von GCS-Buckets
  • Berechtigungen zum Verwalten von IAM-Richtlinien für GCS-Buckets
  • Privilegierter Zugriff auf die F5 Distributed Cloud Console
  • Ein F5 Distributed Cloud-Konto mit Zugriff auf den Dienst Multi-Cloud Network Connect oder Shared Configuration

Google Cloud Storage-Bucket erstellen

  1. Gehen Sie zur Google Cloud Console.
  2. Wählen Sie Ihr Projekt aus oder erstellen Sie ein neues.
  3. Rufen Sie im Navigationsmenü Cloud Storage > Buckets auf.
  4. Klicken Sie auf Bucket erstellen.
  5. Geben Sie die folgenden Konfigurationsdetails an:

    Einstellung Wert
    Bucket benennen Geben Sie einen global eindeutigen Namen ein, z. B. f5-xc-logs.
    Standorttyp Wählen Sie je nach Bedarf „Region“, „Dual-Region“ oder „Multi-Region“ aus.
    Standort Wählen Sie den Speicherort aus (z. B. us-central1).
    Speicherklasse Standard (empfohlen für Logs, auf die häufig zugegriffen wird).
    Zugriffskontrolle Einheitlich (empfohlen).
    Schutzmaßnahmen Optional: Aktivieren Sie die Objektversionsverwaltung oder die Aufbewahrungsrichtlinie.
  6. Klicken Sie auf Erstellen.

F5 Shape API-Anmeldedaten generieren

F5 Distributed Cloud verwendet API-Zertifikate (mTLS) oder API-Tokens für die Authentifizierung. API-Zertifikate werden für erhöhte Sicherheit empfohlen.

API-Zertifikat erstellen

  1. Melden Sie sich in der F5 Distributed Cloud Console an.
  2. Wählen Sie auf der Startseite der Konsole Administration aus.
  3. Klicken Sie im Navigationsmenü links auf Personal Management > Credentials (Personalverwaltung > Anmeldedaten).
  4. Klicken Sie auf Anmeldedaten hinzufügen.
  5. Geben Sie im Abschnitt Metadaten einen Namen für Ihr Zertifikat ein, z. B. secops-integration.
  6. Wählen Sie in der Liste Credential Type (Anmeldedatentyp) die Option API Certificate (API-Zertifikat) aus.
  7. Geben Sie ein Passwort ein und bestätigen Sie es im Feld Passwort bestätigen.
  8. Wählen Sie ein Ablaufdatum aus der Kalenderliste aus.

  9. Klicken Sie auf Herunterladen, um das Zertifikat im .p12-Dateiformat zu generieren und herunterzuladen.

  10. Speichern Sie die heruntergeladene Zertifikatsdatei und das Passwort sicher für die spätere Verwendung.

Google Cloud-Anmeldedaten in F5 Distributed Cloud erstellen

Für F5 Distributed Cloud sind Google Cloud Dienstkontoanmeldedaten erforderlich, um Logs in Ihren GCS-Bucket zu schreiben.

Google Cloud Dienstkonto erstellen

  1. Wechseln Sie in der GCP Console zu IAM & Verwaltung > Dienstkonten.
  2. Klicken Sie auf Dienstkonto erstellen.
  3. Geben Sie die folgenden Konfigurationsdetails an:
    • Name des Dienstkontos: Geben Sie f5-xc-log-writer (oder Ihren bevorzugten Namen) ein.
    • Beschreibung des Dienstkontos: Geben Sie Service account for F5 Distributed Cloud to write logs to GCS ein.
  4. Klicken Sie auf Erstellen und fortfahren.
  5. Im Abschnitt Diesem Dienstkonto Zugriff auf das Projekt erteilen:
    1. Klicken Sie auf Rolle auswählen.
    2. Suchen Sie nach Storage-Objekt-Administrator und wählen Sie die Rolle aus.
  6. Klicken Sie auf Weiter.
  7. Klicken Sie auf Fertig.

IAM-Berechtigungen für GCS-Bucket erteilen

  1. Rufen Sie Cloud Storage > Buckets auf.
  2. Klicken Sie auf den Namen Ihres Buckets, z. B. f5-xc-logs.
  3. Wechseln Sie zum Tab Berechtigungen.
  4. Klicken Sie auf Zugriff erlauben.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Hauptkonten hinzufügen: Geben Sie die E-Mail-Adresse des Dienstkontos ein (z. B. f5-xc-log-writer@PROJECT_ID.iam.gserviceaccount.com).
    • Rollen zuweisen: Wählen Sie Storage-Objekt-Administrator aus.
  6. Klicken Sie auf Speichern.

Dienstkontoschlüssel erstellen

  1. Wechseln Sie in der GCP Console zu IAM & Verwaltung > Dienstkonten.
  2. Suchen Sie das Dienstkonto (z. B. f5-xc-log-writer) und klicken Sie darauf.
  3. Rufen Sie den Tab Schlüssel auf.
  4. Klicken Sie auf Schlüssel hinzufügen > Neuen Schlüssel erstellen.
  5. Wählen Sie JSON als Schlüsseltyp aus.
  6. Klicken Sie auf Erstellen.
  7. Die JSON-Schlüsseldatei wird automatisch heruntergeladen. Speichern Sie diese Datei sicher.

Google Cloud Cloud-Anmeldedaten zu F5 Distributed Cloud hinzufügen

  1. Wählen Sie in der F5 Distributed Cloud Console auf der Startseite Multi-Cloud Network Connect oder Shared Configuration aus.
  2. Klicken Sie im Navigationsmenü links auf Verwalten > Websiteverwaltung > Cloud-Anmeldedaten.
  3. Klicken Sie auf Cloud-Anmeldedaten hinzufügen.
  4. Geben Sie im Abschnitt Metadaten einen Namen ein, z. B. gcp-secops-logs.
  5. Wählen Sie in der Liste Cloud Credentials Type (Typ der Cloud-Anmeldedaten) die Option GCP Credentials (GCP-Anmeldedaten) aus.
  6. Klicken Sie im Bereich GCP Credentials (GCP-Anmeldedaten) auf Configure (Konfigurieren).
  7. Im Abschnitt Dienstkontoschlüssel:
    1. Wählen Sie in der Liste Secret Type (Geheimnistyp) die Option Blindfolded Secret (Geheimnis mit verbundenen Augen) aus.
    2. Wählen Sie in der Liste Aktion die Option Neues Secret verbergen aus.
    3. Wählen Sie in der Liste Policy Type (Richtlinientyp) die Option Built-in (Integriert) aus.
    4. Fügen Sie im Feld Secret to Blindfold (Geheimnis für Blindfold) den gesamten Inhalt der heruntergeladenen JSON-Schlüsseldatei ein.
  8. Klicken Sie auf Übernehmen.
  9. Klicken Sie auf Speichern und beenden.

Global Log Receiver für GCS konfigurieren

Der globale Log-Empfänger von F5 Distributed Cloud streamt Logs alle 5 Minuten im NDJSON-Format (durch Zeilenumbruch getrenntes JSON) an GCS.

Globalen Log-Empfänger erstellen

  1. Wählen Sie in der F5 Distributed Cloud Console auf der Startseite Multi-Cloud Network Connect oder Shared Configuration aus.
    • Für Multi-Cloud Network Connect: Rufen Sie Verwalten > Log-Verwaltung > Globaler Log-Empfänger auf.
    • Gemeinsame Konfiguration: Rufen Sie Verwalten > Globaler Log-Empfänger auf.
  2. Klicken Sie auf Globalen Log-Empfänger hinzufügen.
  3. Geben Sie im Abschnitt Metadaten einen Namen ein, z. B. secops-gcs-receiver.
  4. Fügen Sie optional Labels und eine Beschreibung hinzu.
  5. Wählen Sie in der Liste Log Type (Logtyp) die Logtypen aus, die Sie erfassen möchten:

    • Anfragelogs: HTTP-Zugriffsprotokolle von Load-Balancern
    • Sicherheitsereignisse: Sicherheitsereignisse für Bot Defense und WAF
    • Audit-Logs: Konfigurations- und administrative Audit-Logs
    • DNS-Anfragelogs: Logs von DNS-Abfragen
  6. Gehen Sie in der Liste Log Message Selection (Auswahl von Log-Nachrichten) so vor:

    • Wenn Sie den Dienst Multi-Cloud Network Connect verwenden, wählen Sie Select logs from current namespace (System-Namespace) aus.
    • Wenn Sie den Dienst Shared Configuration (Gemeinsame Konfiguration) verwenden, wählen Sie eine der folgenden Optionen aus:
      • Logs aus dem aktuellen Namespace auswählen: Es werden nur Logs aus dem freigegebenen Namespace gesendet.
      • Logs aus allen Namespaces auswählen: Sendet Logs aus allen Namespaces.
      • Logs in bestimmten Namespaces auswählen: Geben Sie bestimmte Namespacenamen ein und klicken Sie auf Element hinzufügen, um weitere hinzuzufügen.
  7. Wählen Sie in der Liste Receiver Configuration (Empfängerkonfiguration) die Option GCP Bucket (GCP-Bucket) aus.

  8. Geben Sie im Abschnitt GCP-Bucket die folgende Konfiguration an:

    • GCP-Bucket-Name: Geben Sie den Namen Ihres GCS-Buckets ein, z. B. f5-xc-logs.
    • GCP-Cloud-Anmeldedaten: Wählen Sie in der Liste die von Ihnen erstellten Cloud-Anmeldedaten aus (z. B. gcp-secops-logs).

Erweiterte Einstellungen konfigurieren (optional)

  1. Klicken Sie auf den Umschalter Erweiterte Felder anzeigen.
  2. Konfigurieren Sie im Abschnitt Batch-Optionen optional Folgendes:

    • Batch Timeout Options (Optionen für Zeitüberschreitung bei Batch): Wählen Sie Timeout Seconds (Zeitüberschreitung in Sekunden) aus und geben Sie einen Wert ein (Standard: 300 Sekunden).
    • Batch Max Events (Maximale Anzahl von Ereignissen pro Batch): Wählen Sie Max Events (Maximale Anzahl von Ereignissen) aus und geben Sie optional einen Wert zwischen 32 und 2.000 ein.
    • Batch Bytes (Batch-Byte): Wählen Sie Max Bytes (Max. Byte) aus und geben Sie einen Wert zwischen 4.096 und 1.048.576 ein (Standard: 10485760 Byte / 10 MB).

Konfiguration abschließen und testen

  1. Klicken Sie auf Speichern und beenden, um den globalen Log-Empfänger zu erstellen.
  2. Suchen Sie in der Liste Global Log Receiver (Globaler Logempfänger) nach Ihrem Empfänger (z. B. secops-gcs-receiver).
  3. Klicken Sie in der Spalte Aktionen auf das Dreipunkt-Menü ... und wählen Sie Verbindung testen aus.
  4. Warten Sie, bis der Test abgeschlossen ist. Eine Erfolgsmeldung weist darauf hin, dass die Verbindung funktioniert.

  5. Prüfen Sie, ob Logs in GCS geschrieben werden:

    1. Rufen Sie in der GCP Console Cloud Storage > Buckets auf.
    2. Klicken Sie auf den Namen Ihres Buckets, z. B. f5-xc-logs.
    3. Innerhalb von 5 bis 10 Minuten sollten Ordner mit der folgenden Struktur erstellt werden:
      • Tagesordner: YYYY-MM-DD/
      • Stündlicher Unterordner: YYYY-MM-DD/HH/
      • Protokolldateien: YYYY-MM-DD/HH/logs_YYYYMMDDHHMMSS.ndjson.gz

Zulassungsliste für die Firewall konfigurieren

Für die Protokollübermittlung in F5 Distributed Cloud müssen bestimmte IP-Bereiche in Ihrer Firewall zugelassen werden.

Fügen Sie die folgenden IP-Adressbereiche der Zulassungsliste Ihrer Firewall hinzu:

  • 193.16.236.64/29
  • 185.160.8.152/29

Google SecOps-Dienstkonto abrufen

Google SecOps verwendet ein eindeutiges Dienstkonto, um Daten aus Ihrem GCS-Bucket zu lesen. Sie müssen diesem Dienstkonto Zugriff auf Ihren Bucket gewähren.

E-Mail-Adresse des Dienstkontos abrufen

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf Einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. F5 Distributed Cloud Bot Defense.
  5. Wählen Sie Google Cloud Storage V2 als Quelltyp aus.
  6. Wählen Sie F5_SHAPE als Logtyp aus.
  7. Klicken Sie auf Dienstkonto abrufen. Es wird eine eindeutige E-Mail-Adresse für das Dienstkonto angezeigt, z. B.:

    secops-12345678@secops-gcp-prod.iam.gserviceaccount.com
    
  8. Kopieren Sie die E-Mail-Adresse, um sie im nächsten Schritt zu verwenden.

  9. Klicken Sie auf Weiter.

  10. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Storage-Bucket-URL: Geben Sie den GCS-Bucket-URI mit dem Präfixpfad ein:

      gs://f5-xc-logs/
      
      • Ersetzen Sie f5-xc-logs durch den Namen Ihres tatsächlichen GCS-Buckets.
      • Wenn Sie im globalen Log-Empfänger ein bestimmtes Präfix konfiguriert haben, fügen Sie es in den Pfad ein (z. B. gs://f5-xc-logs/bot-defense/).
    • Option zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus:

      • Nie: Es werden nach Übertragungen nie Dateien gelöscht (empfohlen für Tests).
      • Übertragene Dateien löschen: Dateien werden nach der erfolgreichen Übertragung gelöscht.
      • Übertragene Dateien und leere Verzeichnisse löschen: Löscht Dateien und leere Verzeichnisse nach der erfolgreichen Übertragung.

    • Höchstalter für Dateien: Dateien einschließen, die in den letzten Tagen geändert wurden (Standardwert: 180 Tage).

    • Asset-Namespace: Der Asset-Namespace.

    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.

  11. Klicken Sie auf Weiter.

  12. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Dem Google SecOps-Dienstkonto IAM-Berechtigungen gewähren

Das Google SecOps-Dienstkonto benötigt die Rolle Storage-Objekt-Betrachter für Ihren GCS-Bucket.

  1. Rufen Sie Cloud Storage > Buckets auf.
  2. Klicken Sie auf den Namen Ihres Buckets, z. B. f5-xc-logs.
  3. Wechseln Sie zum Tab Berechtigungen.
  4. Klicken Sie auf Zugriff erlauben.
  5. Geben Sie die folgenden Konfigurationsdetails an:
    • Hauptkonten hinzufügen: Fügen Sie die E‑Mail-Adresse des Google SecOps-Dienstkontos ein.
    • Rollen zuweisen: Wählen Sie Storage-Objekt-Betrachter aus.
  6. Klicken Sie auf Speichern.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
msg.requestHeaders.Proxy-Client-IP, msg.requestHeaders.WF-Forwarded-For, msg.requestHeaders.X-Forwarded-For, msg.requestHeaders.wl-proxy-client-ip, msg.hashedUserAgent, msg.transactionId, msg.hashedUsername, msg.dcgShapeFailedOn, ShapeShifterId, eventType, eventId, latRequest, latResponse, latTotal, latRspWait, count, latEccWait additional.fields Zusammengeführt aus Labels, die aus verschiedenen Feldern erstellt wurden
Vermittler Vermittler Wert wird direkt kopiert, wenn er nicht leer ist
Beschreibung metadata.description Wert direkt kopiert
target, has_principal_machine metadata.event_type Auf NETWORK_HTTP setzen, wenn target != "", andernfalls auf STATUS_UPDATE, wenn has_principal_machine == true, andernfalls auf GENERIC_EVENT
App network.application_protocol Wert in Großbuchstaben
requestMethod, msg.method network.http.method Wert aus „requestMethod“, falls nicht leer, andernfalls „msg.method“
requestClientApplication, msg.requestHeaders.User-Agent network.http.parsed_user_agent Wert aus „requestClientApplication“, falls nicht leer, andernfalls „msg.requestHeaders.User-Agent“, in geparsten User-Agent konvertiert
requestContext, msg.requestHeaders.Referer network.http.referral_url Wert aus requestContext, falls nicht leer, andernfalls msg.requestHeaders.Referer
msg.sseResponseCode, prCode network.http.response_code Wert aus „msg.sseResponseCode“, falls nicht leer, andernfalls „prCode“, in eine Ganzzahl konvertiert
requestClientApplication, msg.requestHeaders.User-Agent network.http.user_agent Wert aus requestClientApplication, falls nicht leer, andernfalls msg.requestHeaders.User-Agent
requestHeader.x-shape-src-virtual observer.ip Wert direkt kopiert
Prinzipal Prinzipal Wert direkt kopiert
msg.host principal.asset.hostname Wert direkt kopiert
src, msg.src, msg.trueClientIP, requestHeader.X-Forwarded-For principal.asset.ip Wert aus „src“, falls nicht leer, andernfalls „msg.src“, andernfalls „msg.trueClientIP“, andernfalls erste IP aus „X-Forwarded-For“, falls ungleich „src“
msg.host principal.hostname Wert direkt kopiert
src, msg.src, msg.trueClientIP, requestHeader.X-Forwarded-For principal.ip Wert aus „src“, falls nicht leer, andernfalls „msg.src“, andernfalls „msg.trueClientIP“, andernfalls erste IP aus „X-Forwarded-For“, falls ungleich „src“
msg.requestHeaders principal.resource.attribute.labels Zusammengeführt aus Schlüssel/Wert-Paaren in msg.requestHeaders
msg.uri principal.url Wert direkt kopiert
security_result security_result Wert direkt kopiert
deviceExternalId security_result.about.asset_id Wert direkt kopiert
flowLabel, agentLabel, requestHeader.Content-Length, requestHeader.Content-Type, requestHeader.Accept, requestHeader.Accept-Encoding, browserType, accountInfo, requestHeader.Via, asn, tid, ctag, requestHeader.Cache-Control, transactionResult security_result.about.labels Zusammengeführt aus Labels, die aus verschiedenen Feldern erstellt wurden
act, msg.transactionResult security_result.action Auf ALLOW setzen, wenn „act“ mit „PASS“ übereinstimmt und „isAttack“ „true“ ist, andernfalls UNKNOWN_ACTION; oder ALLOW, wenn „msg.transactionResult“ „Success“ ist, BLOCK, wenn „Failure“
act, msg.transactionResult security_result.action_details Wert aus „act“, falls nicht leer, andernfalls „msg.transactionResult“
die Ausprägung security_result.severity Auf „HIGH“ setzen, wenn „Error“, „error“ oder „warning“; auf „CRITICAL“ setzen, wenn „critical“; auf „MEDIUM“ setzen, wenn „notice“; auf „LOW“ setzen, wenn „information“, „info“ oder „INFO“
die Ausprägung security_result.severity_details Wert direkt kopiert
attackCause security_result.threat_name Wert direkt kopiert
Ziel Ziel Wert direkt kopiert
appName target.application Wert direkt kopiert
dst, msg.dst target.asset.ip Wert von „dst“, falls nicht leer, andernfalls „msg.dst“
dhost target.hostname Wert direkt kopiert
dst, msg.dst target.ip Wert von „dst“, falls nicht leer, andernfalls „msg.dst“
countryName target.location.country_or_region Wert direkt kopiert
dpt target.port In Ganzzahl konvertiert
msg.responseHeaders target.resource.attribute.labels Zusammengeführt aus Schlüssel/Wert-Paaren in msg.responseHeaders
Anfrage target.url Wert direkt kopiert
requestHeader.X-Forwarded-For intermediary.ip Auf nachfolgende IPs aus dem X-Forwarded-For-Array festlegen
metadata.product_name Auf „Form“ festgelegt
metadata.vendor_name Auf „F5“ festgelegt

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