Raccogli i log WAF di Cloudflare

Versione parser: 6.0

Supportata in:

Questo parser estrae i campi dai log JSON di Cloudflare Web Application Firewall (WAF), li trasforma e li mappa al modello UDM (Unified Data Model). Gestisce varie azioni di Cloudflare, arricchendo i dati con metadati e informazioni di rete prima di strutturare l'output nel formato UDM.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps.
  • Accesso privilegiato a Google Cloud.
  • Piano Cloudflare Enterprise.
  • Accesso con privilegi a Cloudflare. Per maggiori dettagli, consulta Cloudflare.

Crea un bucket di archiviazione Google Cloud

  1. Accedi alla console Google Cloud .
  2. Vai alla pagina Bucket Cloud Storage.

    Vai a Bucket

  3. Fai clic su Crea.

  4. Configura il bucket:

    • Nome: inserisci un nome univoco che soddisfi i requisiti per i nomi dei bucket (ad esempio cloudflare-waf).
    • Scegli dove archiviare i tuoi dati: seleziona una località.
    • Scegli una classe di archiviazione per i tuoi dati: seleziona una classe di archiviazione predefinita per il bucket o seleziona Autoclass per la gestione automatica della classe di archiviazione.
    • Scegli come controllare l'accesso agli oggetti: seleziona no per applicare la prevenzione dell'accesso pubblico e seleziona un modello di controllo dell'accesso per gli oggetti del bucket.
    • Classe di archiviazione: scegli in base alle tue esigenze (ad esempio, Standard).
  5. Fai clic su Crea.

Concedi le autorizzazioni per i bucket all'utente IAM di Cloudflare

  1. In Google Cloud, vai a Storage > Browser > Bucket > Autorizzazioni.
  2. Aggiungi l'account logpush@cloudflare-data.iam.gserviceaccount.com con l'autorizzazione Storage Object Admin.

Crea un job Logpush per i log WAF utilizzando l'interfaccia utente di Cloudflare

  1. Accedi a Cloudflare.
  2. Vai ad Analytics & Logs (Analisi e log) > Logpush.
  3. Seleziona Create a Logpush job (Crea un job Logpush).
  4. In Seleziona una destinazione, scegli Google Cloud Storage.
  5. Inserisci i seguenti dettagli della destinazione:
    • Bucket: Google Cloud Nome bucket di archiviazione
    • Percorso: posizione del bucket all'interno del container di archiviazione
    • Seleziona Organizza i log in sottocartelle giornaliere.
  6. Fai clic su Continua.
  1. Seleziona il set di dati Sicurezza (WAF) da inviare allo spazio di archiviazione.
  2. Configura il job logpush:
    • Inserisci il Nome job.
    • In Se i log corrispondono, puoi selezionare gli eventi da includere o rimuovere dai log. Per saperne di più, consulta Filtri. Questa opzione non è disponibile per tutti i set di dati.
    • Nei campi Invia i seguenti elementi, puoi scegliere di inviare tutti i log alla destinazione di archiviazione o selezionare i log che vuoi inviare.
  3. Fai clic su Invia.

Configura i feed

Per configurare un feed:

  1. Vai a Impostazioni > Gestione dei dati > Feed. Se utilizzi una piattaforma solo SIEM, vai a Impostazioni > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Log di Cloudflare WAF).
  5. Seleziona Google Cloud Storage V2 come Tipo di origine.
  6. Seleziona Cloudflare WAF come Tipo di log.
  7. Fai clic su Ottieni service account.
  8. Fai clic su Avanti.
  9. Specifica i valori per i seguenti parametri di input:

    • URI bucket di archiviazione: l'URL di Cloud Storage.
    • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
  10. Fai clic su Avanti.

  11. Controlla la nuova configurazione del feed di notizie nella schermata Finalizza e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
Action security_result.action_details Il valore di Action del log non elaborato viene assegnato direttamente a questo campo UDM.
Action security_result.action Il valore di questo campo è derivato dal campo Action nel log non elaborato. Se Action è "allow", il campo UDM è impostato su ALLOW. Se Action è "challengeSolved", "jschallengeSolved", "managedchallengenoninteractivesolved" o "managedchallengeinteractivesolved", il campo UDM è impostato su ALLOW_WITH_MODIFICATION. Se Action è "drop", "block" o "connectionclose", il campo UDM è impostato su BLOCK. Se Action è "challengefailed" o "jschallengefailed", il campo UDM è impostato su FAIL. In caso contrario, è impostato su UNKNOWN_ACTION.
ClientASN network.asn Il valore di ClientASN del log non elaborato viene assegnato direttamente a questo campo UDM dopo la conversione in una stringa.
ClientASNDescription additional.fields.key La chiave è impostata in modo statico su "ClientASNDescription".
ClientASNDescription additional.fields.value.string_value Il valore di ClientASNDescription del log non elaborato viene assegnato direttamente a questo campo UDM.
ClientCountry principal.location.country_or_region Il valore di ClientCountry del log non elaborato viene assegnato direttamente a questo campo UDM.
ClientIP principal.ip Il valore di ClientIP del log non elaborato viene assegnato direttamente a questo campo UDM.
ClientRefererHost intermediary.hostname Il valore di ClientRefererHost del log non elaborato viene assegnato direttamente a questo campo UDM.
ClientRefererPath network.http.referral_url Il valore di ClientRefererPath del log non elaborato viene assegnato direttamente a questo campo UDM.
ClientRequestHost target.hostname Il valore di ClientRequestHost del log non elaborato viene assegnato direttamente a questo campo UDM.
ClientRequestMethod network.http.method Il valore di ClientRequestMethod del log non elaborato viene assegnato direttamente a questo campo UDM.
ClientRequestPath target.file.full_path Il valore di ClientRequestPath del log non elaborato viene assegnato direttamente a questo campo UDM.
ClientRequestProtocol network.application_protocol La parte del protocollo di ClientRequestProtocol (ad es. "HTTP" da "HTTP/1.1") viene estratta utilizzando grok, convertita in lettere maiuscole e assegnata a questo campo UDM.
ClientRequestUserAgent network.http.user_agent Il valore di ClientRequestUserAgent del log non elaborato viene assegnato direttamente a questo campo UDM.
Datetime metadata.event_timestamp Il valore di Datetime del log non elaborato viene analizzato come timestamp RFC 3339 e assegnato a questo campo UDM.
EdgeColoCode additional.fields.key La chiave è impostata in modo statico su "EdgeColoCode".
EdgeColoCode additional.fields.value.string_value Il valore di EdgeColoCode del log non elaborato viene assegnato direttamente a questo campo UDM.
EdgeResponseStatus network.http.response_code Il valore di EdgeResponseStatus del log non elaborato viene assegnato direttamente a questo campo UDM e convertito in un numero intero.
Kind metadata.product_event_type Il valore di Kind del log non elaborato viene assegnato direttamente a questo campo UDM.
Metadata.filter target.resource.attribute.labels.value Il valore di Metadata.filter del log non elaborato viene assegnato al campo value di un'etichetta all'interno di target.resource.attribute.labels. Il key per questa etichetta è impostato in modo statico su "Filtro metadati".
Metadata.type target.resource.attribute.labels.value Il valore di Metadata.type del log non elaborato viene assegnato al campo value di un'etichetta all'interno di target.resource.attribute.labels. Il valore key per questa etichetta è impostato in modo statico su "Tipo di metadati". Il valore di questo campo viene ricavato in base alla presenza e ai valori di ClientIP, ClientRequestHost e app_protocol. Per la logica specifica, consulta il codice del parser. Impostato in modo statico su "Cloudflare". Impostato in modo statico su "Cloudflare log Aggregator". Impostato in modo statico su "CLOUDFLARE_WAF".
RayID metadata.product_log_id Il valore di RayID del log non elaborato viene assegnato direttamente a questo campo UDM.
RuleID security_result.rule_id Il valore di RuleID del log non elaborato viene assegnato direttamente a questo campo UDM.
Source security_result.rule_name Il valore di Source del log non elaborato viene assegnato direttamente a questo campo UDM.
timestamp metadata.event_timestamp, events.timestamp Il valore di timestamp del log non elaborato viene assegnato direttamente a questi campi UDM.

Log delle modifiche

Visualizza il log delle modifiche per questo parser

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.