Raccogli i log WAF di Cloudflare
Versione parser: 6.0
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
- Accedi alla console Google Cloud .
Vai alla pagina Bucket Cloud Storage.
Fai clic su Crea.
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).
Fai clic su Crea.
Concedi le autorizzazioni per i bucket all'utente IAM di Cloudflare
- In Google Cloud, vai a Storage > Browser > Bucket > Autorizzazioni.
- 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
- Accedi a Cloudflare.
- Vai ad Analytics & Logs (Analisi e log) > Logpush.
- Seleziona Create a Logpush job (Crea un job Logpush).
- In Seleziona una destinazione, scegli Google Cloud Storage.
- 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.
- Fai clic su Continua.
- Seleziona il set di dati Sicurezza (WAF) da inviare allo spazio di archiviazione.
- 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.
- Fai clic su Invia.
Configura i feed
Per configurare un feed:
- Vai a Impostazioni > Gestione dei dati > Feed. Se utilizzi una piattaforma solo SIEM, vai a Impostazioni > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio, Log di Cloudflare WAF).
- Seleziona Google Cloud Storage V2 come Tipo di origine.
- Seleziona Cloudflare WAF come Tipo di log.
- Fai clic su Ottieni service account.
- Fai clic su Avanti.
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.
Fai clic su Avanti.
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.