Collecter les journaux Cloudflare WAF
Version de l'analyseur : 6.0
Cet analyseur extrait les champs des journaux JSON du pare-feu d'application Web (WAF) Cloudflare, les transforme et les mappe au modèle de données unifié (UDM). Il gère différentes actions Cloudflare, enrichit les données avec des métadonnées et des informations réseau, puis structure la sortie au format UDM.
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes :
- Instance Google SecOps.
- Accès privilégié à Google Cloud.
- Forfait Cloudflare Enterprise.
- Accès privilégié à Cloudflare. Pour en savoir plus, consultez Cloudflare.
Créer un bucket Google Cloud Cloud Storage
- Connectez-vous à la console Google Cloud .
Accédez à la page Buckets Cloud Storage.
Cliquez sur Créer.
Configurez le bucket :
- Nom : saisissez un nom unique qui répond aux exigences de dénomination des buckets (par exemple, cloudflare-waf).
- Choisissez où stocker vos données : sélectionnez un emplacement.
- Choisissez une classe de stockage pour vos données : sélectionnez une classe de stockage par défaut pour le bucket ou bien classe automatique pour gérer automatiquement les classes de stockage.
- Choisissez comment contrôler l'accès aux objets : sélectionnez ne pas appliquer la protection contre l'accès public, puis sélectionnez un modèle de contrôle des accès pour les objets de votre bucket.
- Classe de stockage : choisissez en fonction de vos besoins (par exemple, Standard).
Cliquez sur Créer.
Accorder des autorisations de bucket à l'utilisateur IAM Cloudflare
- Dans Google Cloud, accédez à Stockage > Navigateur > Bucket > Autorisations.
- Ajoutez le compte logpush@cloudflare-data.iam.gserviceaccount.com avec les autorisations d'administrateur des objets de l'espace de stockage.
Créer un job Logpush pour les journaux WAF à l'aide de l'UI Cloudflare
- Connectez-vous à Cloudflare.
- Accédez à Analytics & Logs > Logpush.
- Sélectionnez Create a Logpush job (Créer un job Logpush).
- Dans Sélectionner une destination, choisissez Google Cloud Storage.
- Saisissez les informations de destination suivantes :
- Bucket : Google Cloud Nom du bucket de stockage
- Chemin : emplacement du bucket dans le conteneur de stockage
- Sélectionnez Organiser les journaux dans des sous-dossiers quotidiens.
- Cliquez sur Continuer.
- Sélectionnez l'ensemble de données Sécurité (WAF) à transférer vers l'espace de stockage.
- Configurez le job Logpush :
- Saisissez le nom du job.
- Sous "Si les journaux correspondent", vous pouvez sélectionner les événements à inclure ou à supprimer de vos journaux. Pour en savoir plus, consultez Filtres. Cette option n'est pas disponible pour tous les ensembles de données.
- Dans les champs Envoyer les éléments suivants, vous pouvez choisir de transférer tous les journaux vers votre destination de stockage ou de sélectionner ceux que vous souhaitez transférer.
- Cliquez sur Envoyer.
Configurer des flux
Pour configurer un flux, procédez comme suit :
- Accédez à Paramètres > Gestion des données > Flux. Si vous utilisez une plate-forme SIEM uniquement, accédez à Paramètres > Flux.
- Cliquez sur Ajouter un flux d'actualités.
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Cloudflare WAF).
- Sélectionnez Google Cloud Storage V2 comme Type de source.
- Sélectionnez Cloudflare WAF comme Type de journal.
- Cliquez sur Get Service Account (Obtenir un compte de service).
- Cliquez sur Suivant.
Spécifiez les valeurs des paramètres d'entrée suivants :
- URI du bucket de stockage : URL Cloud Storage.
- Options de suppression de la source : sélectionnez l'option de suppression de votre choix.
Cliquez sur Suivant.
Vérifiez la configuration de votre nouveau flux d'actualités sur l'écran Finaliser, puis cliquez sur Envoyer.
Table de mappage UDM
| Champ du journal | Mappage UDM | Logique |
|---|---|---|
Action |
security_result.action_details |
La valeur de Action du journal brut est directement attribuée à ce champ UDM. |
Action |
security_result.action |
La valeur de ce champ est dérivée du champ Action dans le journal brut. Si Action est défini sur "allow", le champ UDM est défini sur ALLOW. Si Action est "challengeSolved", "jschallengeSolved", "managedchallengenoninteractivesolved" ou "managedchallengeinteractivesolved", le champ UDM est défini sur ALLOW_WITH_MODIFICATION. Si Action est défini sur "drop", "block" ou "connectionclose", le champ UDM est défini sur BLOCK. Si Action est défini sur "challengefailed" ou "jschallengefailed", le champ UDM est défini sur FAIL. Sinon, elle est définie sur UNKNOWN_ACTION. |
ClientASN |
network.asn |
La valeur de ClientASN du journal brut est directement attribuée à ce champ UDM après sa conversion en chaîne. |
ClientASNDescription |
additional.fields.key |
La clé est définie de manière statique sur "ClientASNDescription". |
ClientASNDescription |
additional.fields.value.string_value |
La valeur de ClientASNDescription du journal brut est directement attribuée à ce champ UDM. |
ClientCountry |
principal.location.country_or_region |
La valeur de ClientCountry du journal brut est directement attribuée à ce champ UDM. |
ClientIP |
principal.ip |
La valeur de ClientIP du journal brut est directement attribuée à ce champ UDM. |
ClientRefererHost |
intermediary.hostname |
La valeur de ClientRefererHost du journal brut est directement attribuée à ce champ UDM. |
ClientRefererPath |
network.http.referral_url |
La valeur de ClientRefererPath du journal brut est directement attribuée à ce champ UDM. |
ClientRequestHost |
target.hostname |
La valeur de ClientRequestHost du journal brut est directement attribuée à ce champ UDM. |
ClientRequestMethod |
network.http.method |
La valeur de ClientRequestMethod du journal brut est directement attribuée à ce champ UDM. |
ClientRequestPath |
target.file.full_path |
La valeur de ClientRequestPath du journal brut est directement attribuée à ce champ UDM. |
ClientRequestProtocol |
network.application_protocol |
La partie protocole de ClientRequestProtocol (par exemple, "HTTP" de "HTTP/1.1") est extraite à l'aide de grok, convertie en majuscules et attribuée à ce champ UDM. |
ClientRequestUserAgent |
network.http.user_agent |
La valeur de ClientRequestUserAgent du journal brut est directement attribuée à ce champ UDM. |
Datetime |
metadata.event_timestamp |
La valeur de Datetime du journal brut est analysée en tant que code temporel RFC 3339 et attribuée à ce champ UDM. |
EdgeColoCode |
additional.fields.key |
La clé est définie de manière statique sur "EdgeColoCode". |
EdgeColoCode |
additional.fields.value.string_value |
La valeur de EdgeColoCode du journal brut est directement attribuée à ce champ UDM. |
EdgeResponseStatus |
network.http.response_code |
La valeur de EdgeResponseStatus du journal brut est directement attribuée à ce champ UDM et convertie en entier. |
Kind |
metadata.product_event_type |
La valeur de Kind du journal brut est directement attribuée à ce champ UDM. |
Metadata.filter |
target.resource.attribute.labels.value |
La valeur de Metadata.filter du journal brut est attribuée au champ value d'une étiquette dans target.resource.attribute.labels. Le key de ce libellé est défini de manière statique sur "Filtre de métadonnées". |
Metadata.type |
target.resource.attribute.labels.value |
La valeur de Metadata.type du journal brut est attribuée au champ value d'une étiquette dans target.resource.attribute.labels. La valeur key de ce libellé est définie de manière statique sur "Type de métadonnées". La valeur de ce champ est calculée en fonction de la présence et des valeurs de ClientIP, ClientRequestHost et app_protocol. Consultez le code de l'analyseur pour connaître la logique spécifique. Défini de manière statique sur "Cloudflare". Défini de manière statique sur "Cloudflare log Aggregator". Valeur statique définie sur "CLOUDFLARE_WAF". |
RayID |
metadata.product_log_id |
La valeur de RayID du journal brut est directement attribuée à ce champ UDM. |
RuleID |
security_result.rule_id |
La valeur de RuleID du journal brut est directement attribuée à ce champ UDM. |
Source |
security_result.rule_name |
La valeur de Source du journal brut est directement attribuée à ce champ UDM. |
timestamp |
metadata.event_timestamp, events.timestamp |
La valeur de timestamp du journal brut est directement attribuée à ces champs UDM. |
Journal des modifications
Afficher le journal des modifications de cet analyseur
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.