Cloudflare WAF-Logs erfassen

Unterstützt in:

Dieser Parser extrahiert Felder aus JSON-Logs der Cloudflare Web Application Firewall (WAF), transformiert sie und ordnet sie dem einheitlichen Datenmodell (Unified Data Model, UDM) zu. Es verarbeitet verschiedene Cloudflare-Aktionen, reichert die Daten mit Metadaten und Netzwerkinformationen an und strukturiert die Ausgabe dann im UDM-Format.

Hinweise

Prüfen Sie, ob die folgenden Voraussetzungen erfüllt sind:

  • Google SecOps-Instanz.
  • Privilegierter Zugriff auf Google Cloud.
  • Cloudflare Enterprise-Abo.
  • Privilegierter Zugriff auf Cloudflare.

Google Cloud Storage-Bucket erstellen

  1. Melden Sie sich in der Google Cloud -Konsole an.
  2. Rufen Sie die Seite Cloud Storage-Buckets auf.

    Buckets aufrufen

  3. Klicken Sie auf Erstellen.

  4. Konfigurieren Sie den Bucket:

    • Name: Geben Sie einen eindeutigen Namen ein, der den Anforderungen für Bucket-Namen entspricht (z. B. cloudflare-waf).
    • Speicherort für Daten auswählen: Wählen Sie einen Standort aus.
    • Speicherklasse für Ihre Daten auswählen: Wählen Sie entweder eine Standardspeicherklasse für den Bucket oder Autoclass für die automatische Verwaltung der Speicherklassen aus.
    • Legen Sie fest, wie der Zugriff auf Objekte gesteuert wird: Wählen Sie nicht aus, um die Verhinderung des öffentlichen Zugriffs zu erzwingen, und wählen Sie ein Zugriffssteuerungsmodell für die Objekte Ihres Buckets aus.
    • Speicherklasse: Wählen Sie die Option aus, die Ihren Anforderungen am besten entspricht (z. B. Standard).
  5. Klicken Sie auf Erstellen.

Cloudflare-IAM-Nutzer Bucket-Berechtigungen erteilen

  1. Gehen Sie in Google Cloudzu Storage > Browser > Bucket > Berechtigungen.
  2. Fügen Sie das Konto logpush@cloudflare-data.iam.gserviceaccount.com mit der Berechtigung „Storage-Objekt-Administrator“ hinzu.

Logpush-Job für WAF-Logs über die Cloudflare-Benutzeroberfläche erstellen

  1. Melden Sie sich in Cloudflare an.
  2. Rufen Sie Analytics & Logs > Logpush auf.
  3. Wählen Sie Logpush-Job erstellen aus.
  4. Wählen Sie unter Ziel auswählen die Option Google Cloud Storage aus.
  5. Geben Sie die folgenden Zielinformationen ein:
    • Bucket: Google Cloud Name des Storage-Buckets
    • Pfad: Bucket-Speicherort im Speichercontainer
    • Wählen Sie Logs in täglichen Unterordnern organisieren aus.
  6. Klicken Sie auf Weiter.
  1. Wählen Sie das Dataset Security (WAF) aus, das in den Speicher übertragen werden soll.
  2. Logpush-Job konfigurieren:
    • Geben Sie den Jobnamen ein.
    • Unter „Wenn Protokolle übereinstimmen“ können Sie die Ereignisse auswählen, die in Ihre Protokolle aufgenommen bzw. daraus entfernt werden sollen. Weitere Informationen finden Sie unter Filter. Diese Option ist nicht für alle Datasets verfügbar.
    • In den Feldern unter Folgendes senden können Sie entweder alle Logs an Ihr Speicherziel senden oder auswählen, welche Logs gesendet werden sollen.
  3. Klicken Sie auf Senden.

Feeds einrichten

Es gibt zwei verschiedene Einstiegspunkte zum Einrichten von Feeds in der Google SecOps-Plattform:

  • SIEM-Einstellungen > Feeds
  • Content Hub> Content-Pakete

Feeds über „SIEM-Einstellungen“ > „Feeds“ einrichten

So konfigurieren Sie einen Feed:

  1. Rufen Sie die SIEM-Einstellungen > Feeds auf.
  2. Klicken Sie auf Neuen Feed hinzufügen.
  3. Klicken Sie auf der nächsten Seite auf Einen einzelnen Feed konfigurieren.
  4. Geben Sie im Feld Feed name (Feedname) einen Namen für den Feed ein, z. B. Cloudflare WAF Logs (Cloudflare WAF-Logs).
  5. Wählen Sie Google Cloud Storage als Quelltyp aus.
  6. Wählen Sie Cloudflare WAF als Logtyp aus.
  7. Klicken Sie auf Dienstkonto abrufen.
  8. Klicken Sie auf Weiter.
  9. Geben Sie Werte für die folgenden Eingabeparameter an:

    • GCS-URI: Die Cloud Storage-URL.
    • URI ist ein: Wählen Sie Verzeichnis mit Unterverzeichnissen aus.
    • Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Option aus.
  10. Klicken Sie auf Weiter.

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

Feeds über den Content Hub einrichten

Geben Sie Werte für die folgenden Felder an:

  • GCS-URI: Die Cloud Storage-URL.
  • URI ist ein: Wählen Sie Verzeichnis mit Unterverzeichnissen aus.
  • Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus.

Erweiterte Optionen

  • Feedname: Ein vorausgefüllter Wert, der den Feed identifiziert.
  • Quelltyp: Methode, die zum Erfassen von Logs in Google SecOps verwendet wird.
  • Asset-Namespace: Der Namespace, der dem Feed zugeordnet ist.
  • Aufnahmelabels: Labels, die auf alle Ereignisse aus diesem Feed angewendet werden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Action security_result.action_details Der Wert von Action aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
Action security_result.action Der Wert dieses Felds wird aus dem Feld Action im Rohlog abgeleitet. Wenn Action auf „allow“ gesetzt ist, wird das UDM-Feld auf ALLOW gesetzt. Wenn Action „challengeSolved“, „jschallengeSolved“, „managedchallengenoninteractivesolved“ oder „managedchallengeinteractivesolved“ ist, wird das UDM-Feld auf ALLOW_WITH_MODIFICATION festgelegt. Wenn Action „drop“, „block“ oder „connectionclose“ ist, wird das UDM-Feld auf BLOCK festgelegt. Wenn Action „challengefailed“ oder „jschallengefailed“ ist, wird das UDM-Feld auf FAIL gesetzt. Andernfalls wird er auf UNKNOWN_ACTION gesetzt.
ClientASN network.asn Der Wert von ClientASN aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen, nachdem er in einen String konvertiert wurde.
ClientASNDescription additional.fields.key Der Schlüssel ist statisch auf „ClientASNDescription“ festgelegt.
ClientASNDescription additional.fields.value.string_value Der Wert von ClientASNDescription aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
ClientCountry principal.location.country_or_region Der Wert von ClientCountry aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
ClientIP principal.ip Der Wert von ClientIP aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
ClientRefererHost intermediary.hostname Der Wert von ClientRefererHost aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
ClientRefererPath network.http.referral_url Der Wert von ClientRefererPath aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
ClientRequestHost target.hostname Der Wert von ClientRequestHost aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
ClientRequestMethod network.http.method Der Wert von ClientRequestMethod aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
ClientRequestPath target.file.full_path Der Wert von ClientRequestPath aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
ClientRequestProtocol network.application_protocol Der Protokollteil von ClientRequestProtocol (z.B. „HTTP“ aus „HTTP/1.1“ wird mit grok extrahiert, in Großbuchstaben umgewandelt und diesem UDM-Feld zugewiesen.
ClientRequestUserAgent network.http.user_agent Der Wert von ClientRequestUserAgent aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
Datetime metadata.event_timestamp Der Wert von Datetime aus dem Rohlog wird als RFC 3339-Zeitstempel geparst und diesem UDM-Feld zugewiesen.
EdgeColoCode additional.fields.key Der Schlüssel ist statisch auf „EdgeColoCode“ festgelegt.
EdgeColoCode additional.fields.value.string_value Der Wert von EdgeColoCode aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
EdgeResponseStatus network.http.response_code Der Wert von EdgeResponseStatus aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen und in eine Ganzzahl umgewandelt.
Kind metadata.product_event_type Der Wert von Kind aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
Metadata.filter target.resource.attribute.labels.value Der Wert von Metadata.filter aus dem Rohlog wird dem Feld value eines Labels in target.resource.attribute.labels zugewiesen. Der key für dieses Label ist statisch auf „Metadatenfilter“ festgelegt.
Metadata.type target.resource.attribute.labels.value Der Wert von Metadata.type aus dem Rohlog wird dem Feld value eines Labels in target.resource.attribute.labels zugewiesen. Der key für dieses Label ist statisch auf „Metadatentyp“ festgelegt. Der Wert dieses Felds wird anhand der Anwesenheit und der Werte von ClientIP, ClientRequestHost und app_protocol abgeleitet. Die spezifische Logik finden Sie im Parsercode. Statisch auf „Cloudflare“ festgelegt. Statisch auf „Cloudflare Log Aggregator“ festgelegt. Statisch auf „CLOUDFLARE_WAF“ festgelegt.
RayID metadata.product_log_id Der Wert von RayID aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
RuleID security_result.rule_id Der Wert von RuleID aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
Source security_result.rule_name Der Wert von Source aus dem Rohlog wird diesem UDM-Feld direkt zugewiesen.
timestamp metadata.event_timestamp, events.timestamp Der Wert von timestamp aus dem Rohlog wird diesen UDM-Feldern direkt zugewiesen.

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