Raccogliere i log WAF di Cloudflare

Supportato in:

Questo parser estrae i campi dai log JSON del firewall per applicazioni web (WAF) di Cloudflare, li trasforma e li mappa al modello Unified Data Model (UDM). Gestisce varie azioni 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.

Crea un Google Cloud bucket di archiviazione

  1. Accedi alla Google Cloud console.
  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 del nome del 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 oppure 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 del 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 Amministratore oggetti Storage.

Crea un job Logpush per i log WAF utilizzando la UI di Cloudflare

  1. Accedi a Cloudflare.
  2. Vai ad Analytics e log > Logpush.
  3. Seleziona 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 contenitore 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 del job.
    • Nella sezione Se i log corrispondono, puoi selezionare gli eventi da includere e/o rimuovere dai log. Per saperne di più, consulta la sezione Filtri. Non tutti i set di dati hanno questa opzione disponibile.
    • Nei campi Invia quanto segue, puoi scegliere di inviare tutti i log alla destinazione di archiviazione o selezionare in modo selettivo i log che vuoi inviare.
  3. Fai clic su Invia.

Configurare i feed

Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:

  • Impostazioni SIEM > Feed
  • Hub dei contenuti > Pacchetti di contenuti

Configura i feed da Impostazioni SIEM > Feed

Per configurare un feed:

  1. Vai a Impostazioni SIEM > 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 Cloudflare WAF Logs).
  5. Seleziona Google Cloud Storage come Tipo di origine.
  6. Seleziona Cloudflare WAF come Tipo di log.
  7. Fai clic su Ottieni account di servizio.
  8. Fai clic su Avanti.
  9. Specifica i valori per i seguenti parametri di input:

    • URI GCS: l'URL Cloud Storage.
    • L'URI è un: seleziona Directory che include sottodirectory.
    • 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 nella schermata Finalizza e poi fai clic su Invia.

Configurare i feed dall'hub dei contenuti

Specifica i valori per i seguenti campi:

  • URI GCS: l'URL Cloud Storage.
  • L'URI è un: seleziona Directory che include sottodirectory.
  • Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.

Opzioni avanzate

  • Nome feed: un valore precompilato che identifica il feed.
  • Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
  • Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
  • Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
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 viene ricavato 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 staticamente 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 estratto utilizzando grok, convertito in maiuscolo e assegnato 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 staticamente 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 staticamente 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. L'elemento key per questa etichetta è impostato staticamente su "Tipo di metadati". Il valore di questo campo viene derivato in base alla presenza e ai valori di ClientIP, ClientRequestHost e app_protocol. Visualizza il codice del parser per la logica specifica. 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.

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