Collecter les journaux Cloudflare
Présentation
Cet analyseur gère différents types de journaux Cloudflare (DNS, HTTP, audit, Zero Trust, CASB). Il normalise d'abord les champs courants, puis applique une logique conditionnelle basée sur des champs spécifiques tels que QueryName (Nom de la requête), Action (Action) et ID (ID) pour extraire et mapper les données pertinentes sur l'UDM. Il effectue également des conversions de types de données, des correspondances grok pour les adresses IP et les hachages, et gère les charges utiles JSON imbriquées.
Avant de commencer
- Assurez-vous de disposer d'une instance Google SecOps.
- Assurez-vous de disposer d'un accès privilégié à Google Cloud IAM.
- Assurez-vous de disposer d'un accès privilégié à Google Cloud Storage.
- Assurez-vous de disposer d'un accès privilégié à Cloudflare.
Créer un bucket Google Cloud Storage
- Se connecter à la console Google Cloud
Accédez à la page Buckets Cloud Storage.
Cliquez sur Créer.
Sur la page Créer un bucket, saisissez les informations concernant votre bucket. Après chacune de ces étapes, cliquez sur Continuer pour passer à l'étape suivante:
Dans la section Premiers pas, procédez comme suit :
- Saisissez un nom unique qui répond aux exigences de dénomination des buckets (par exemple, cloudflare-data).
- Pour activer l'espace de noms hiérarchique, cliquez sur la flèche d'expansion pour développer la section Optimiser pour les charges de travail orientées fichiers et à forte intensité de données, puis sélectionnez Activer l'espace de noms hiérarchique sur ce bucket.
- Pour ajouter une étiquette de bucket, cliquez sur la flèche de développement pour développer la section Étiquettes.
- Cliquez sur Ajouter un libellé, puis spécifiez une clé et une valeur pour votre libellé.
Dans la section Choisir l'emplacement de stockage de vos données, procédez comme suit :
- Sélectionnez un type d'emplacement.
- Utilisez le menu déroulant du type d'emplacement pour sélectionner un emplacement où les données d'objets de votre bucket seront stockées de manière permanente.
- Si vous sélectionnez le type d'emplacement birégional, vous pouvez également choisir d'activer la réplication turbo à l'aide de la case à cocher correspondante.
- Pour configurer la réplication entre buckets, développez la section Configurer la réplication entre buckets.
Dans la section Choisir 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 une gestion automatique des classes de stockage des données de votre bucket.
Dans la section Choisir comment contrôler l'accès aux objets, sélectionnez non pour 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.
Dans la section Choisir comment protéger les données d'objet, procédez comme suit:
- Sélectionnez l'une des options sous Protection des données que vous souhaitez définir pour votre bucket.
- Pour choisir comment vos données d'objet seront chiffrées, cliquez sur la flèche d'expansion intitulée Chiffrement des données, puis sélectionnez une méthode de chiffrement des données.
Cliquez sur Créer.
Créer un compte de service Google Cloud
- Accédez à IAM et administration > Comptes de service.
- Créez un compte de service.
- Attribuez-lui un nom descriptif (par exemple, cloudflare-logs).
- Attribuez au compte de service le rôle Créateur d'objets de stockage sur le bucket GCS que vous avez créé à l'étape précédente.
- Créez une clé SSH pour le compte de service.
- Téléchargez un fichier de clé JSON pour le compte de service. Conservez ce fichier dans un endroit sécurisé.
Activer l'IAM Cloudflare pour Google Cloud Storage
- Accédez à Storage (Stockage) > Browser (Navigateur) > Bucket (Bucket) > Permissions (Autorisations).
- Ajoutez le membre
logpush@cloudflare-data.iam.gserviceaccount.com
avec l'autorisation Administrateur des objets de l'espace de stockage.
Configurer un flux dans Google SecOps pour ingérer les journaux Cloudflare
- Accédez à Paramètres du SIEM > Flux.
- Cliquez sur Ajouter.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Cloudflare).
- Sélectionnez Google Cloud Storage comme Type de source.
- Sélectionnez Cloudflare comme Type de journal.
- Cliquez sur Obtenir un compte de service comme compte de service Chronicle.
- Cliquez sur Suivant.
Spécifiez les valeurs des paramètres d'entrée suivants:
- URI du bucket Storage: URL du bucket Google Cloud Storage au format
gs://my-bucket/<value>
. - Un URI est: sélectionnez Un répertoire qui inclut des sous-répertoires.
- Options de suppression de la source: sélectionnez l'option de suppression de votre choix.
- Espace de noms des éléments: espace de noms des éléments.
- Libellés d'ingestion: libellé appliqué aux événements de ce flux.
- URI du bucket Storage: URL du bucket Google Cloud Storage au format
Cliquez sur Suivant.
Vérifiez la configuration de votre nouveau flux dans l'écran Finaliser, puis cliquez sur Envoyer.
Configurer Cloudflare pour envoyer des journaux à Google Cloud Storage
- Connectez-vous au tableau de bord Cloudflare.
- Sélectionnez le compte ou domaine d'entreprise (également appelé zone) que vous souhaitez utiliser avec Logpush.
- Accédez à Données analytiques et journaux > Logpush.
- Sélectionnez Créer une tâche Logpush.
- Dans Sélectionner une destination, sélectionnez Google Cloud Storage.
Saisissez ou sélectionnez les informations de destination suivantes:
- Bucket: nom du bucket GCS
- Path (Chemin d'accès) : emplacement du bucket dans le conteneur de stockage
- Case à cocher: organiser les journaux dans des sous-dossiers quotidiens (recommandé)
Cliquez sur Continuer.
Validation de la propriété:
- Cloudflare enverra un fichier dans votre bucket.
- Copiez et collez le jeton :
- Connectez-vous à la console Google Cloud > Stockage > Bucket Cloudflare.
- Ouvrez le fichier de contestation de propriété.
- Copiez le jeton de propriété.
- Saisissez le jeton de propriété dans la console Cloudflare.
- Cliquez sur Continuer.
- Sélectionnez l'ensemble de données à transférer vers le bucket.
Configurez la tâche logpush:
- Saisissez le nom de la tâche.
- Sous Si les journaux correspondent, vous pouvez sélectionner les événements à inclure et/ou à supprimer de vos journaux.
- Envoyer les champs suivants: sélectionnez l'option Transmettre tous les journaux ou choisissez les journaux que vous souhaitez transmettre.
Sélectionnez Envoyer pour finaliser la configuration.
Tableau de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
AccountID |
target.resource.id , target.resource.product_object_id |
ID du compte associé à l'événement. |
Action |
security_result.action |
Action effectuée en fonction de l'événement. allow ou allowed* génère ALLOW . unknown génère UNKNOWN_ACTION . Les autres valeurs renvoient BLOCK . Pour les journaux d'accès, login est mappé sur USER_LOGIN , logout sur USER_LOGOUT et les autres valeurs sur USER_RESOURCE_ACCESS si une adresse e-mail est présente. |
ActionResult |
security_result.action |
Si la valeur est true , elle est mappée sur ALLOW . Si la valeur est false , elle est mappée sur BLOCK . Sinon, il est mappé sur UNKNOWN_ACTION . |
ActionType |
security_result.description |
Description de l'action effectuée. |
ActorEmail |
principal.user.email_addresses |
Adresse e-mail de l'acteur à l'origine de l'événement. |
ActorID |
principal.user.product_object_id |
ID de l'acteur à l'origine de l'événement. |
ActorIP |
principal.ip , principal.asset.ip |
Adresse IP de l'acteur à l'origine de l'événement. |
Allowed |
security_result.action |
Si la valeur est true , elle est mappée sur ALLOW . Sinon, il est mappé sur BLOCK . |
AppDomain |
target.administrative_domain |
Domaine de l'application impliquée dans l'événement. |
AppUUID |
target.resource.product_object_id |
UUID de l'application impliquée dans l'événement. |
AssetDisplayName |
principal.asset.attribute.labels.value où la clé est AssetDisplayName |
Nom à afficher de l'asset. |
AssetExternalID |
principal.asset_id (avec le préfixe "Cloudflare:") |
ID externe de l'élément. |
AssetLink |
principal.url |
Lien associé à l'élément. |
AssetMetadata.agreedToTerms |
principal.user.attribute.labels.value où la clé est agreedToTerms |
Indique si l'utilisateur a accepté les conditions. |
AssetMetadata.changePasswordAtNextLogin |
principal.user.attribute.labels.value où la clé est changePasswordAtNextLogin |
Indique si l'utilisateur doit modifier son mot de passe lors de sa prochaine connexion. |
AssetMetadata.clientId |
principal.user.userid |
ID client à partir des métadonnées de l'élément. |
AssetMetadata.customerId |
principal.user.userid |
Numéro client à partir des métadonnées de l'élément. |
AssetMetadata.familyName |
principal.user.last_name |
Nom de famille de l'utilisateur à partir des métadonnées de l'élément. |
AssetMetadata.givenName |
principal.user.first_name |
Prénom de l'utilisateur à partir des métadonnées de l'élément. |
AssetMetadata.includeInGlobalAddressList |
principal.user.attribute.labels.value où la clé est includeInGlobalAddressList |
Indique si l'utilisateur est inclus dans la liste d'adresses globale. |
AssetMetadata.ipWhitelisted |
principal.user.attribute.labels.value où la clé est ipWhitelisted |
Indique si l'adresse IP de l'utilisateur figure sur la liste blanche. |
AssetMetadata.isAdmin |
principal.user.attribute.labels.value où la clé est isAdmin |
Indique si l'utilisateur est un administrateur. |
AssetMetadata.isDelegatedAdmin |
principal.user.attribute.labels.value où la clé est isDelegatedAdmin |
Indique si l'utilisateur est un administrateur délégué. |
AssetMetadata.isEnforcedIn2Sv |
principal.user.attribute.labels.value où la clé est isEnforcedIn2Sv |
Indique si la validation en deux étapes est appliquée pour l'utilisateur. |
AssetMetadata.isEnrolledIn2Sv |
principal.user.attribute.labels.value où la clé est isEnrolledIn2Sv |
Indique si l'utilisateur est inscrit ou non à la validation en deux étapes. |
AssetMetadata.kind |
(Non mappé) | Non mappé sur l'objet IDM. |
AssetMetadata.lastLoginTime |
principal.user.attribute.labels.value où la clé est lastLoginTime |
Heure de la dernière connexion de l'utilisateur. |
AssetMetadata.login |
principal.user.userid |
Nom d'utilisateur à partir des métadonnées de l'asset. |
AssetMetadata.name.familyName |
principal.user.last_name |
Nom de famille à partir des métadonnées de l'asset. |
AssetMetadata.name.fullName |
principal.user.user_display_name |
Nom complet à partir des métadonnées de l'asset. |
AssetMetadata.name.givenName |
principal.user.first_name |
Prénom indiqué dans les métadonnées de l'asset. |
AssetMetadata.nativeApp |
security_result.detection_fields.value où la clé est nativeApp |
Indique si l'application est native. |
AssetMetadata.owner.id |
principal.user.userid |
ID du propriétaire à partir des métadonnées de l'élément. |
AssetMetadata.primaryEmail |
principal.user.email_addresses |
Adresse e-mail principale provenant des métadonnées de l'élément. |
AssetMetadata.scopes |
(Non mappé) | Non mappé sur l'objet IDM. |
AssetMetadata.site_admin |
principal.user.attribute.labels.value où la clé est site_admin |
Indique si l'utilisateur est un administrateur du site. |
AssetMetadata.suspended |
principal.user.attribute.labels.value où la clé est suspended |
Indique si l'utilisateur est suspendu. |
AssetMetadata.url |
principal.url |
URL des métadonnées de l'élément. |
AssetMetadata.userKey |
principal.user.attribute.labels.value où la clé est userKey |
Clé utilisateur à partir des métadonnées de l'élément. |
BlockedFileHash |
target.file.md5 , target.file.sha1 , target.file.sha256 |
Sommes de contrôle du fichier bloqué. Analyse avec grok pour extraire md5, sha1 ou sha256. |
BlockedFileName |
security_result.about.file.full_path |
Nom du fichier bloqué. |
BlockedFileReason |
security_result.summary |
Motif du blocage du fichier. |
BlockedFileSize |
target.file.size |
Taille du fichier bloqué. |
BotScore |
security_result.detection_fields.value où la clé est BotScore |
Score de bot attribué à la requête. |
BytesReceived |
network.received_bytes |
Nombre d'octets reçus. |
BytesSent |
network.sent_bytes |
Nombre d'octets envoyés. |
CacheCacheStatus |
additional.fields.value.string_value où la clé est CacheCacheStatus |
État du cache. |
CacheResponseBytes |
additional.fields.value.string_value où la clé est CacheResponseBytes |
Nombre d'octets dans la réponse mise en cache. |
CacheResponseStatus |
additional.fields.value.string_value où la clé est CacheResponseStatus |
Code d'état de la réponse mise en cache. |
ClientASN |
(Non mappé) | Non mappé sur l'objet IDM. |
ClientCountry |
principal.location.country_or_region |
Pays du client. |
ClientDeviceType |
additional.fields.value.string_value où la clé est ClientDeviceType |
Type de l'appareil client. |
ClientIP |
principal.ip , principal.asset.ip |
Adresse IP du client. |
ClientRequestMethod |
network.http.method |
Méthode de requête HTTP utilisée par le client. |
ClientRequestHost |
target.hostname , target.asset.hostname |
Nom d'hôte demandé par le client. |
ClientRequestPath |
(Non mappé) | Non mappé sur l'objet IDM. |
ClientRequestProtocol |
network.application_protocol |
Protocole utilisé dans la requête client (par exemple, HTTP, HTTPS). La version du protocole est supprimée. |
ClientRequestReferer |
network.http.referral_url |
URL de provenance de la requête client. |
ClientRequestURI |
target.url (associé à ClientRequestHost , le cas échéant) |
URI demandé par le client. |
ClientRequestUserAgent |
network.http.user_agent |
User-agent de la requête client. Il est également analysé et mappé sur network.http.parsed_user_agent . |
ClientSSLCipher |
network.tls.cipher |
Algorithme de chiffrement SSL utilisé par le client. |
ClientSSLProtocol |
network.tls.version |
Protocole SSL utilisé par le client. |
ClientSrcPort |
principal.port |
Port source du client. |
ClientTCPHandshakeDurationMs |
additional.fields.value.string_value où la clé est ClientTCPHandshakeDurationMs |
Durée du handshake TCP client. |
ClientTLSHandshakeDurationMs |
additional.fields.value.string_value où la clé est ClientTLSHandshakeDurationMs |
Durée du handshake TLS client. |
ClientTLSVersion |
network.tls.version |
Version TLS utilisée par le client. |
ColoID |
(Non mappé) | Non mappé sur l'objet IDM. |
Connection |
target.resource.attribute.labels.value où la clé est Connection |
Type de connexion (par exemple, SAML) |
ConnectionCloseReason |
additional.fields.value.string_value où la clé est ConnectionCloseReason |
Motif de la fermeture de la connexion. |
ConnectionReuse |
additional.fields.value.string_value où la clé est ConnectionReuse |
Indique si la réutilisation de la connexion s'est produite. |
Country |
target.location.country_or_region |
Pays associé à l'événement. |
CreatedAt |
metadata.event_timestamp |
Code temporel de création de l'événement. |
Datetime |
metadata.event_timestamp |
Date et heure de l'événement. |
DestinationIP |
target.ip , target.asset.ip |
Adresse IP de destination. |
DestinationPort |
target.port |
Port de destination. |
DestinationTunnelID |
additional.fields.value.string_value où la clé est DestinationTunnelID |
ID du tunnel de destination. |
DeviceID |
principal.asset_id (avec le préfixe "Cloudflare:") |
ID de l'appareil. |
DeviceName |
principal.hostname , principal.asset.hostname , principal.asset.attribute.labels.value , où la clé est DeviceName |
Nom de l'appareil. |
DownloadedFileNames |
security_result.about.labels.value où la clé est DownloadFileNames |
Noms des fichiers téléchargés. |
DstIP |
target.ip , target.asset.ip |
Adresse IP de destination. |
DstPort |
target.port |
Port de destination. |
EdgeColoCode |
additional.fields.value.string_value où la clé est EdgeColoCode |
Code de l'emplacement de point de terminaison Cloudflare. |
EdgeColoID |
additional.fields.value.string_value où la clé est EdgeColoID |
ID de l'emplacement de point de terminaison Cloudflare. |
EdgeEndTimestamp |
(Non mappé) | Non mappé sur l'objet IDM. |
EdgeResponseBytes |
network.received_bytes |
Nombre d'octets dans la réponse du point de terminaison. |
EdgeResponseContentType |
target.file.mime_type |
Type de contenu de la réponse de l'edge. |
EdgeResponseStatus |
network.http.response_code |
Code d'état de la réponse du point de terminaison. |
EdgeServerIP |
target.ip , target.asset.ip |
Adresse IP du serveur de bord. |
EdgeStartTimestamp |
metadata.event_timestamp |
Code temporel du début de la requête au niveau du point de terminaison. |
Email |
principal.user.email_addresses , target.user.email_addresses |
Adresse e-mail associée à l'événement. |
EgressColoName |
additional.fields.value.string_value où la clé est EgressColoName |
Nom du centre de données de sortie. |
EgressIP |
principal.ip , principal.asset.ip |
Adresse IP de sortie. Définit network.direction sur OUTBOUND . |
EgressPort |
principal.port |
Port de sortie. |
EgressRuleID |
additional.fields.value.string_value où la clé est EgressRuleID |
ID de la règle de sortie. |
EgressRuleName |
additional.fields.value.string_value où la clé est EgressRuleName |
Nom de la règle de sortie. |
FindingTypeDisplayName |
security_result.description |
Nom à afficher du type de résultat. |
FindingTypeID |
security_result.rule_id |
ID du type de résultat. |
FindingTypeSeverity |
security_result.severity |
Gravité du type de résultat. |
FirewallMatchesActions |
security_result.action |
Actions effectuées par les règles de pare-feu. allow , Allow , ALLOW , skip , SKIP , Skip sont mappés sur ALLOW . challengeSolved et jschallengeSolved correspondent à ALLOW_WITH_MODIFICATION . drop et block correspondent à BLOCK . Les autres valeurs sont mappées sur UNKNOWN_ACTION . |
FirewallMatchesRuleIDs |
security_result.rule_id (pour le premier ID), les ID suivants créent des objets security_result . |
ID des règles de pare-feu correspondantes. |
FirewallMatchesSources |
security_result.rule_name |
Sources des règles de pare-feu qui correspondent. |
HTTPHost |
target.hostname |
Hôte HTTP. |
HTTPMethod |
network.http.method |
Méthode HTTP. |
HTTPVersion |
network.application_protocol |
Si la valeur contient "HTTP", définit network.application_protocol sur HTTP . |
ID |
metadata.product_log_id |
ID de l'événement. |
IngressColoName |
additional.fields.value.string_value où la clé est IngressColoName |
Nom du centre de données d'entrée. |
InstanceID |
principal.resource.product_object_id |
ID de l'instance. |
IntegrationDisplayName |
additional.fields.value.string_value où la clé est IntegrationDisplayName |
Nom à afficher de l'intégration. |
IntegrationID |
metadata.product_deployment_id |
ID de l'intégration. |
IntegrationPolicyVendor |
additional.fields.value.string_value où la clé est IntegrationPolicyVendor |
Fournisseur de la règle d'intégration. |
IPAddress |
target.ip , target.asset.ip |
Adresse IP associée à l'événement. |
IsIsolated |
about.labels.value où la clé est IsIsolated , security_result.about.resource.attribute.labels.value où la clé est IsIsolated |
Indique si l'événement est isolé. |
Location |
principal.location.name |
Lieu associé à l'événement. |
NewValue |
security_result.about.labels.value où la clé est NewValue |
Nouvelle valeur après une mise à jour. |
Offramp |
additional.fields.value.string_value où la clé est Offramp |
Sortie utilisée dans la connexion. |
OldValue |
security_result.about.labels.value où la clé est OldValue |
Ancienne valeur avant une mise à jour. |
OriginIP |
intermediary.ip , target.ip , target.asset.ip |
Adresse IP d'origine. |
OriginPort |
target.port |
Port d'origine. |
OriginResponseBytes |
additional.fields.value.string_value où la clé est OriginResponseBytes |
Nombre d'octets dans la réponse d'origine. |
OriginResponseStatus |
additional.fields.value.string_value où la clé est OriginResponseStatus |
Code d'état de la réponse d'origine. |
OriginResponseTime |
additional.fields.value.string_value où la clé est OriginResponseTime |
Temps de réponse de l'origine. |
OriginSSLProtocol |
(Non mappé) | Non mappé sur l'objet IDM. |
OriginTLSCertificateIssuer |
additional.fields.value.string_value où la clé est OriginTLSCertificateIssuer |
Émetteur du certificat TLS d'origine. |
OriginTLSCertificateValidationResult |
additional.fields.value.string_value où la clé est OriginTLSCertificateValidationResult |
Résultat de la validation du certificat TLS d'origine. |
OriginTLSCipher |
additional.fields.value.string_value où la clé est OriginTLSCipher |
Algorithme de chiffrement utilisé dans la connexion TLS d'origine. |
OriginTLSHandshakeDurationMs |
additional.fields.value.string_value où la clé est OriginTLSHandshakeDurationMs |
Durée du handshake TLS d'origine. |
OriginTLSVersion |
additional.fields.value.string_value où la clé est OriginTLSVersion |
Version TLS utilisée par l'origine. |
OwnerID |
target.user.product_object_id |
ID du propriétaire. |
Policy |
security_result.rule_name |
Règle associée à l'événement. |
PolicyID |
security_result.rule_id |
ID de la stratégie. |
PolicyName |
security_result.rule_name |
Nom de la stratégie |
Protocol |
network.application_protocol , network.ip_protocol |
Protocole utilisé dans la connexion. Si la valeur n'est pas "tls" ou "TLS", elle est convertie en majuscules et mappée sur network.application_protocol . Sinon, il est analysé à l'aide d'un fichier d'inclusion et mappé sur network.ip_protocol . |
PurposeJustificationPrompt |
(Non mappé) | Non mappé sur l'objet IDM. |
PurposeJustificationResponse |
(Non mappé) | Non mappé sur l'objet IDM. |
QueryCategoryIDs |
security_result.about.labels.value , security_result.about.resource.attribute.labels.value où la clé est QueryCategoryIDs |
ID des catégories de requêtes. |
QueryName |
network.dns.questions.name |
Nom de la requête DNS. Définit metadata.event_type sur NETWORK_DNS et network.application_protocol sur DNS . |
QueryNameReversed |
network.dns.questions.name |
Nom inversé de la requête DNS. |
QuerySize |
network.sent_bytes |
Taille de la requête. |
QueryType |
network.dns.questions.type |
Type de la requête DNS. Correspond à des valeurs numériques en fonction des codes de type de requête DNS. |
RData |
network.dns.answers.type , network.dns.answers.data |
Données d'enregistrement DNS. Chaque élément du tableau RData crée un objet answer . |
RayID |
metadata.product_log_id |
ID de rayon associé à la requête. |
Referer |
network.http.referral_url |
URL de provenance. |
RequestID |
metadata.product_log_id |
ID de la requête. |
ResolverDecision |
security_result.summary |
Décision prise par le résolveur. |
ResourceID |
target.resource.id , target.resource.product_object_id |
ID de la ressource. |
ResourceType |
target.resource.resource_subtype |
Type de la ressource. |
RuleEvaluationDurationMs |
additional.fields.value.string_value où la clé est RuleEvaluationDurationMs |
Durée de l'évaluation des règles. |
SNI |
network.tls.client.server_name |
Indication du nom du serveur (SNI) dans le message "hello" du client TLS. |
SecurityAction |
security_result.action |
Action de sécurité prise. Une valeur vide ou l'absence de SecurityAction est mappée sur ALLOW . challengeSolved ou jschallengeSolved correspond à ALLOW_WITH_MODIFICATION . drop ou block correspond à BLOCK . |
SecurityLevel |
security_result.severity |
Niveau de sécurité. high correspond à HIGH , med à MEDIUM et low à LOW . |
SessionEndTime |
additional.fields.value.string_value où la clé est SessionEndTime |
Heure de fin de la session. |
SessionID |
network.session_id |
ID de la session. |
SessionStartTime |
metadata.event_timestamp |
Heure de début de la session. |
SourceIP |
principal.ip , principal.asset.ip , src.ip , src.asset.ip |
Adresse IP source. |
SourcePort |
principal.port , src.port |
Port source |
SrcIP |
principal.ip , principal.asset.ip |
Adresse IP source. |
SrcPort |
principal.port |
Port source |
TemporaryAccessDuration |
network.session_duration.seconds |
Durée de l'accès temporaire. |
Timestamp |
metadata.event_timestamp |
Code temporel de l'événement. |
Transport |
network.ip_protocol |
Protocole de transport. Converti en majuscules et analysé à l'aide d'un fichier d'inclusion. |
UploadedFileNames |
security_result.about.labels.value où la clé est UploadedFileNames |
Noms des fichiers importés. |
URL |
target.url |
URL impliquée dans l'événement. |
UserAgent |
network.http.user_agent |
Chaîne user-agent. Il est également analysé et mappé sur network.http.parsed_user_agent . |
UserID |
principal.user.product_object_id , event.idm.read_only_udm.target.user.product_object_id |
ID de l'utilisateur. |
UserUID |
target.user.product_object_id |
UID de l'utilisateur. |
VirtualNetworkID |
principal.resource.product_object_id |
ID du réseau virtuel. |
WAFAction |
security_result.about.labels.value où la clé est WAFAction |
Action effectuée par le pare-feu d'application Web (WAF). |
WAFAttackScore |
security_result.about.resource.attribute.labels.value où la clé est WAFAttackScore |
Score d'attaque attribué par le WAF. |
WAFFlags |
security_result.about.resource.attribute.labels.value où la clé est WAFFlags |
Options WAF |
WAFMatchedVar |
(Non mappé) | Non mappé sur l'objet IDM. |
WAFProfile |
security_result.about.labels.value où la clé est WAFProfile |
Profil WAF |
WAFRCEAttackScore |
security_result.about.resource.attribute.labels.value où la clé est WAFRCEAttackScore |
Score d'attaque par exécution de code à distance (RCE) du WAF |
WAFRuleID |
security_result.threat_id , security_result.about.labels.value où la clé est WAFRuleID |
ID de la règle WAF. |
WAFRuleMessage |
security_result.rule_name , security_result.threat_name |
Message associé à la règle WAF. |
WAFSQLiAttackScore |
security_result.about.resource.attribute.labels.value où la clé est WAFSQLiAttackScore |
Score d'attaque par injection SQL du WAF. |
WAFXSSAttackScore |
security_result.about.resource.attribute.labels.value où la clé est WAFXSSAttackScore |
Score d'attaque par script intersites (XSS) du WAF. |
ZoneID |
additional.fields.value.string_value où la clé est ZoneID |
ID de zone. |
event.idm.read_only_udm.metadata.event_type |
metadata.event_type |
Type de l'événement. Défini par l'analyseur en fonction des données du journal. La valeur par défaut est GENERIC_EVENT si elle n'est pas définie ou si un événement NETWORK_DNS n'a pas de principal ni de cible. Il peut s'agir de NETWORK_DNS , NETWORK_CONNECTION , USER_LOGIN , USER_LOGOUT , USER_RESOURCE_ACCESS , USER_RESOURCE_UPDATE_CONTENT ou GENERIC_EVENT . |
event.idm.read_only_udm.metadata.log_type |
metadata.log_type |
Type de journal, défini sur "CLOUDFLARE". |
event.idm.read_only_udm.metadata.product_deployment_id |
metadata.product_deployment_id |
ID de déploiement du produit. |
event.idm.read_only_udm.metadata.product_log_id |
metadata.product_log_id |
ID de journal du produit. |
event.idm.read_only_udm.metadata.product_name |
metadata.product_name |
Nom du produit. Défini par l'analyseur en fonction des données du journal. Peut être "Cloudflare Gateway DNS", "Cloudflare Gateway HTTP", "Cloudflare Audit" ou "Web Application Firewall". |
event.idm.read_only_udm.metadata.vendor_name |
metadata.vendor_name |
Nom du fournisseur, défini sur "Cloudflare". |
event.idm.read_only_udm.metadata.event_timestamp |
metadata.event_timestamp |
Code temporel de l'événement. |
event.idm.read_only_udm.network.application_protocol |
network.application_protocol |
Protocole d'application utilisé dans la connexion réseau. |
event.idm.read_only_udm.network.direction |
network.direction |
Sens de la connexion réseau. Définissez ce paramètre sur OUTBOUND lorsque EgressIP et SourceIP sont présents. |
event.idm.read_only_udm.network.dns.answers |
network.dns.answers |
Réponses DNS. |
event.idm.read_only_udm.network.dns.questions |
network.dns.questions |
Questions sur le DNS |
event.idm.read_only_udm.network.http.method |
network.http.method |
Méthode HTTP. |
event.idm.read_only_udm.network.http.parsed_user_agent |
network.http.parsed_user_agent |
User-agent analysé. |
event.idm.read_only_udm.network.http.referral_url |
network.http.referral_url |
URL de provenance HTTP. |
event.idm.read_only_udm.network.http.response_code |
network.http.response_code |
Code de réponse HTTP. |
event.idm.read_only_udm.network.http.user_agent |
network.http.user_agent |
User-agent HTTP. |
event.idm.read_only_udm.network.ip_protocol |
network.ip_protocol |
Protocole IP. |
event.idm.read_only_udm.network.received_bytes |
network.received_bytes |
Nombre d'octets reçus. |
event.idm.read_only_udm.network.sent_bytes |
network.sent_bytes |
Nombre d'octets envoyés. |
event.idm.read_only_udm.network.session_duration.seconds |
network.session_duration.seconds |
Durée de la session réseau en secondes. |
event.idm.read_only_udm.network.session_id |
network.session_id |
ID de session réseau. |
event.idm.read_only_udm.network.tls.cipher |
network.tls.cipher |
Suite de chiffrement TLS. |
event.idm.read_only_udm.network.tls.client.server_name |
network.tls.client.server_name |
Nom du serveur client TLS. |
event.idm.read_only_udm.network.tls.version |
network.tls.version |
Version TLS. |
event.idm.read_only_udm.principal.asset.attribute.labels |
principal.asset.attribute.labels |
Libellés associés à l'élément principal. |
event.idm.read_only_udm.principal.asset.hostname |
principal.asset.hostname |
Nom d'hôte de l'élément principal. |
event.idm.read_only_udm.principal.asset.ip |
principal.asset.ip |
Adresse IP de l'élément principal. |
event.idm.read_only_udm.principal.asset_id |
principal.asset_id |
ID de l'élément principal. |
event.idm.read_only_udm.principal.hostname |
principal.hostname |
Nom d'hôte du principal. |
event.idm.read_only_udm.principal.ip |
principal.ip |
Adresse IP du principal. |
event.idm.read_only_udm.principal.location.country_or_region |
principal.location.country_or_region |
Pays ou région où se trouve le responsable. |
event.idm.read_only_udm.principal.location.name |
principal.location.name |
Nom de l'établissement du responsable. |
event.idm.read_only_udm.principal.port |
principal.port |
Port utilisé par l'entité principale. |
event.idm.read_only_udm.principal.resource.product_object_id |
principal.resource.product_object_id |
ID de l'objet produit de la ressource du principal. |
event.idm.read_only_udm.principal.url |
principal.url |
URL associée au principal. |
event.idm.read_only_udm.principal.user.attribute.labels |
principal.user.attribute.labels |
Libellés associés à l'utilisateur principal. |
event.idm.read_only_udm.principal.user.email_addresses |
principal.user.email_addresses |
Adresses e-mail de l'utilisateur principal. |
event.idm.read_only_udm.principal.user.first_name |
principal.user.first_name |
Prénom de l'utilisateur principal. |
event.idm.read_only_udm.principal.user.last_name |
principal.user.last_name |
Nom de famille de l'utilisateur principal. |
event.idm.read_only_udm.principal.user.product_object_id |
principal.user.product_object_id |
ID de l'objet produit de l'utilisateur principal. |
event.idm.read_only_udm.principal.user.userid |
principal.user.userid |
ID utilisateur de l'utilisateur principal. |
event.idm.read_only_udm.principal.user.user_display_name |
principal.user.user_display_name |
Nom à afficher de l'utilisateur principal. |
event.idm.read_only_udm.src.asset.ip |
src.asset.ip |
Adresse IP de l'élément source. |
event.idm.read_only_udm.src.ip |
src.ip |
Adresse IP de la source. |
event.idm.read_only_udm.src.port |
src.port |
Port de la source. |
event.idm.read_only_udm.target.administrative_domain |
target.administrative_domain |
Domaine administratif de la cible. |
event.idm.read_only_udm.target.asset.hostname |
target.asset.hostname |
Nom d'hôte de l'asset cible. |
event.idm.read_only_udm.target.asset.ip |
target.asset.ip |
Adresse IP de l'élément cible. |
event.idm.read_only_udm.target.file.mime_type |
target.file.mime_type |
Type MIME du fichier cible. |
event.idm.read_only_udm.target.file.md5 |
target.file.md5 |
Hachage MD5 du fichier cible. |
event.idm.read_only_udm.target.file.sha1 |
target.file.sha1 |
Hachage SHA1 du fichier cible. |
event.idm.read_only_udm.target.file.sha256 |
target.file.sha256 |
Hachage SHA-256 du fichier cible. |
event.idm.read_only_udm.target.file.size |
target.file.size |
Taille du fichier cible. |
event.idm.read_only_udm.target.hostname |
target.hostname |
Nom d'hôte de la cible. |
event.idm.read_only_udm.target.ip |
target.ip |
Adresse IP de la cible. |
event.idm.read_only_udm.target.location.country_or_region |
target.location.country_or_region |
Pays ou région de l'emplacement de la cible. |
event.idm.read_only_udm.target.port |
target.port |
Port de la cible. |
event.idm.read_only_udm.target.resource.attribute.labels |
target.resource.attribute.labels |
Libellés associés à la ressource cible. |
event.idm.read_only_udm.target.resource.id |
target.resource.id |
ID de la ressource cible. |
event.idm.read_only_udm.target.resource.product_object_id |
target.resource.product_object_id |
ID de l'objet produit de la ressource cible. |
event.idm.read_only_udm.target.resource.resource_subtype |
target.resource.resource_subtype |
Sous-type de la ressource cible. |
event.idm.read_only_udm.target.url |
target.url |
URL de la cible. |
event.idm.read_only_udm.target.user.email_addresses |
target.user.email_addresses |
Adresses e-mail de l'utilisateur cible. |
event.idm.read_only_udm.target.user.product_object_id |
target.user.product_object_id |
ID de l'objet produit de l'utilisateur cible. |
event.idm.read_only_udm.security_result.about.file.full_path |
security_result.about.file.full_path |
Chemin d'accès complet du fichier impliqué dans le résultat de sécurité. |
event.idm.read_only_udm.security_result.about.labels |
security_result.about.labels |
Libellés associés au résultat de sécurité. |
event.idm.read_only_udm.security_result.about.resource.attribute.labels |
security_result.about.resource.attribute.labels |
Libellés associés à la ressource dans le résultat de sécurité. |
event.idm.read_only_udm.security_result.action |
security_result.action |
Action effectuée dans le résultat de sécurité. |
event.idm.read_only_udm.security_result.detection_fields |
security_result.detection_fields |
Champs de détection dans le résultat de sécurité. |
event.idm.read_only_udm.security_result.description |
security_result.description |
Description du résultat de sécurité. |
event.idm.read_only_udm.security_result.rule_id |
security_result.rule_id |
ID de la règle du résultat de sécurité. |
event.idm.read_only_udm.security_result.rule_name |
security_result.rule_name |
Nom de la règle du résultat de sécurité. |
event.idm.read_only_udm.security_result.severity |
security_result.severity |
Gravité du résultat de sécurité. |
event.idm.read_only_udm.security_result.summary |
security_result.summary |
Résumé du résultat de sécurité. |
event.idm.read_only_udm.security_result.threat_id |
security_result.threat_id |
ID de la menace du résultat de sécurité. |
event.idm.read_only_udm.security_result.threat_name |
security_result.threat_name |
Nom de la menace du résultat de sécurité. |
event.idm.read_only_udm.extensions.auth.type |
extensions.auth.type |
Type d'authentification. Définissez la valeur sur MACHINE pour les événements de connexion et de déconnexion. |
event.idm.read_only_udm.about |
about |
Informations |
event.idm.read_only_udm.additional.fields |
additional.fields |
Champs supplémentaires. |
event.idm.read_only_udm.intermediary |
intermediary |
Informations intermédiaires. |
Modifications
2024-02-19
- Correction de bug:
- En l'absence de données sur le principal et la machine cible, la valeur "metadata.event_type" a été mappée sur "GENERIC_EVENT".
- Lorsque le champ "Date et heure" est manquant et que le champ "Code temporel" est présent, le champ "Code temporel" est mappé sur "metadata.event_timestamp".
- Mappage de "ClientIP" sur "principal.ip".
- Mappage de "RayID" sur "metadata.product_log_id".
- Mappage de "EdgeResponseStatus" sur "network.http.response_code".
- Mappage de "ClientRequestMethod" sur "network.http.method".
- Mappage de "ClientRequestURI" sur "target.uri".
- Mappage de "ClientRequestHost" sur "target.hostname".
2024-01-31
- Mappage de "BotScore" sur "security_result.detection_fields".
- Mise en correspondance des mappages "principal.hostname", "target.hostname", "principal.asset.hostname" et "target.asset.hostname".
- Mise en correspondance des "principal.ip", "target.ip", "principal.asset.ip" et "target.asset.ip".
2024-01-08
- Lorsque "Action" contient "allow", définissez "security_result.action" sur "ALLOW".
- Ajout de la mise en correspondance de "DeviceName" avec "principal.hostname" et "principal.asset.hostname".
- Ajout du mappage de "SourceIP" sur "principal.ip" pour les journaux DNS.
- Ajout d'une vérification conditionnelle de valeur nulle avant de mapper "principal" sur "event.idm.read_only_udm.principal".
- Ajout d'une vérification conditionnelle nulle avant de mapper "target" sur "event.idm.read_only_udm.target".
2023-11-22
- "WAFRuleID" a été mappé sur "security_result.threat_id".
- "WAFRuleMessage" a été mappé sur "security_result.threat_name".
- Mappage de "WAFRCEAttackScore", "WAFSQLiAttackScore", "WAFXSSAttackScore", "WAFAttackScore" et "WAFFlags" sur "security_result.about.resource.attribute.labels".
2023-10-09
- Lorsque la valeur "SecurityAction" est nulle ou absente, définissez "security_result.action" sur "ALLOW".
2023-09-26
- Les mappages ont été modifiés pour passer des champs UDM obsolètes à d'autres champs.
- Ajout d'un mappage de "security_result.about.labels" à "security_result.about.resource.attribute.labels".
- Ajout d'un mappage de "about.labels" à "security_result.about.resource.attribute.labels".
- Ajout d'un mappage de "target.resource.id" à "target.resource.product_object_id".
2023-04-25
- Amélioration du mappage des champs de journal bruts suivants sur les champs UDM:
- Initialisation de "EdgeStartTimestamp", "ClientIP", "ClientRequestHost", "ClientRequestURI", "ClientRequestMethod", "Datetime", "ActorEmail" et "ActorIP" sur "null".
- Mappage de "AssetExternalID" sur "principal.asset_id".
- "AssetDisplayName" a été mappé sur "principal.asset.attribute.labels".
- Mappage de "AssetLink" sur "principal.url".
- Mappage de "AssetMetadata.userKey" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.clientId" sur "principal.user.userid".
- Mappage de "AssetMetadata.anonymous" sur "security_result.detection_fields".
- Mappage de "AssetMetadata.nativeApp" sur "security_result.detection_fields".
- Mappage de "DetectedTimestamp" sur "metadata.event_timestamp".
- Mappage de "FindingTypeDisplayName" sur "security_result.description".
- Mappage de "FindingTypeID" sur "security_result.rule_id".
- Mappage de "FindingTypeSeverity" sur "security_result.severity".
- Mappage de "InstanceID" sur "principal.resource.product_object_id".
- Mappage de "IntegrationDisplayName" sur "additional.fields".
- "IntegrationID" a été mappé sur "metadata.product_deployment_id".
- Mappage de "IntegrationPolicyVendor" sur "additional.fields".
- Mappage de "AssetMetadata.customerId" sur "principal.user.userid".
- Mappage de "AssetMetadata.primaryEmail" sur "principal.user.email_addresses".
- Mappage de "AssetMetadata.agreedToTerms" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.ipWhitelisted" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.lastLoginTime" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.isEnforcedIn2Sv" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.isEnrolledIn2Sv" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.isDelegatedAdmin" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.changePasswordAtNextLogin" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.includeInGlobalAddressList" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.isAdmin" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.suspended" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.url" sur "principal.url".
- Mappage de "AssetMetadata.site_admin" sur "principal.user.attribute.labels".
- Mappage de "AssetMetadata.login" sur "principal.user.userid".
- Mappage de "AssetMetadata.owner.id" sur "principal.user.userid".
- Mappage de "AssetMetadata.name.fullName" sur "principal.user.user_display_name".
- Mappage de "AssetMetadata.name.givenName" sur "principal.user.first_name".
- "AssetMetadata.name.familyName" a été mappé sur "principal.user.last_name".
- "Autorisé" a été mappé sur "security_result.action".
- Mappage de "AppDomain" sur "target.administrative_domain".
- "AppUUID" a été mappé sur "target.resource.product_object_id".
- "Connection" a été mappé sur "target.resource.attribute.labels".
- Mappage de "Pays" sur "target.location.country_or_region".
- Mappage de "CreatedAt" sur "metadata.event_timestamp".
- Mappage de "IPAddress" sur "target.ip".
- Mappage de "RayID" sur "metadata.product_log_id".
- Mappage de "E-mail" sur "principal.user.email_addresses" et "target.user.email_addresses".
- Mappage de "TemporaryAccessDuration" sur "network.session_duration.seconds".
- Mappage de "UserUID" sur "target.user.product_object_id".
- Mappage de "UserAgent" sur "network.http.parsed_user_agent".
- Mappage de "ClientRequestUserAgent" sur "network.http.parsed_user_agent".
- "PolicyName" a été mappé sur "security_result.rule_name".
- Mappage de "SessionID" sur "network.session_id".
- "Transport" a été mappé sur "network.ip_protocol".
- Mappage de "SNI" sur "tls.client.server_name".
- Mappage de "DeviceName" sur "principal.asset.attribute.labels".
- Mappage de "BytesReceived" sur "network.received_bytes".
- Mappage de "BytesSent" sur "network.sent_bytes".
- Mappage de "Protocole" sur "network.ip_protocol".
- Mappage de "ClientTCPHandshakeDurationMs" sur "additional.fields".
- Mappage de "ClientTLSCipher" sur "network.tls.cipher".
- Mappage de "ClientTLSHandshakeDurationMs" sur "additional.fields".
- Mappage de "ClientTLSVersion" sur "network.tls.version".
- Mappage de "ConnectionCloseReason" sur "additional.fields".
- Mappage de "ConnectionReuse" sur "additional.fields".
- Mappage de "DestinationTunnelID" sur "additional.fields".
- "EgressIP" a été mappé sur "principal.ip".
- Mappage de "EgressPort" sur "principal.port".
- Mappage de "EgressRuleID" sur "additional.fields".
- "EgressRuleName" a été mappé sur "additional.fields".
- Mappage de "IngressColoName" sur "additional.fields".
- "Offramp" a été mappé sur "additional.fields".
- Mappage de "OriginIP" sur "target.ip".
- Mappage de "OriginPort" sur "target.port".
- Mappage de "OriginTLSCertificateIssuer" sur "additional.fields".
- Mappage de "OriginTLSCertificateValidationResult" sur "additional.fields".
- Mappage de "OriginTLSCipher" sur "additional.fields".
- Mappage de "OriginTLSHandshakeDurationMs" sur "additional.fields".
- Mappage de "OriginTLSVersion" sur "additional.fields".
- Mappage de "RuleEvaluationDurationMs" sur "additional.fields".
- Mappage de "SessionEndTime" sur "additional.fields".
- Mappage de "SessionStartTime" sur "metadata.event_timestamp".
- Mappage de "SourceIP" sur "src.ip".
- Mappage de "SourcePort" sur "src.port".
- "UserID" a été mappé sur "principal.user.product_object_id".
- "VirtualNetworkID" a été mappé sur "principal.resource.product_object_id".
2023-04-06
- Amélioration : déclaration des champs "WAFRuleMessage", "WAFAction", "QueryType", "RayID" et "Email" au niveau global.
- "metadata.event_type" a été mappé sur "NETWORK_UNCATEGORIZED", où les champs "QueryName" et "QueryNameReversed" sont nuls.
- Ajout de vérifications d'erreur pour les champs suivants: RData[n].type, RData[n].data, EdgeResponseBytes, ClientRequestBytes, EdgeResponseStatus.
- Ajout de la conversion de chaîne pour les champs "SourcePort" et "DestinationPort".
2022-10-10
- Amélioration
- "metadata.product_name" a été mappé sur "Web Application Firewall".
- "metadata.vendor_name" a été mappé sur "Cloudflare".
2022-05-23
- Amélioration de la mise en correspondance des éléments de journaux bruts suivants avec des éléments UDM:
- Mappage de "ClientASN" sur "network.asn".
- Mappage de "ClientSSLCipher" sur "network.tls.cipher".
- Mappage de "ClientSSLProtocol" sur "network.tls.version".
- Mappage de "EdgeResponseContentType" sur "target.file.mime_type".
- Mappage de "OriginIP" sur "intermediary.ip".
- Mappage de "FirewallMatchesActions" sur "security_result.action".
- Mappage de "FirewallMatchesRuleIDs" sur "security_result.rule_id".
- Mappage de "FirewallMatchesSources" sur "security_result.rule_name".
- Mappage de "WAFRuleID" et "WAFProfile" sur "security_result.about.labels".
- Mappage de "CacheCacheStatus", "CacheResponseBytes", "CacheResponseStatus", "ClientDeviceType", "EdgeColoCode", "EdgeColoID", "OriginResponseBytes", "OriginResponseStatus", "OriginResponseTime", "ZoneID" sur "additional.fields".