Ingérer les journaux d'activité Microsoft Azure

Compatible avec:

Ce document décrit les étapes requises pour insérer les journaux d'activité Microsoft Azure (AZURE_ACTIVITY) dans Google Security Operations.

Configurer un compte de stockage

Pour configurer un compte de stockage, procédez comme suit:

  1. Dans la console Azure, recherchez Comptes de stockage.
  2. Cliquez sur Create (Créer).
  3. Sélectionnez l'abonnement, le groupe de ressources, la région, les performances (nous vous recommandons de choisir "Standard") et la redondance (nous vous recommandons de choisir "GRS" ou "LRS") nécessaires au compte, puis saisissez un nom pour le nouveau compte de stockage.
  4. Cliquez sur Examiner et créer, examinez la présentation du compte, puis cliquez sur Créer.
  5. Sur la page Vue d'ensemble du compte de stockage, sélectionnez Clés d'accès dans le panneau de navigation de gauche de la fenêtre.
  6. Cliquez sur Afficher les clés et notez la clé partagée du compte de stockage.
  7. Sélectionnez Points de terminaison dans le menu de navigation de gauche de la fenêtre.
  8. Notez le point de terminaison du service Blob. (https://<storageaccountname>.blob.core.windows.net/)

Configurer la journalisation des activités Azure

Pour configurer la journalisation des activités Azure, procédez comme suit:

  1. Dans la console Azure, recherchez Monitor (Surveillance).
  2. Cliquez sur le lien Journal d'activité dans le panneau de navigation de gauche.
  3. Cliquez sur Exporter les journaux d'activité en haut de la fenêtre.
  4. Cliquez sur Ajouter un paramètre de diagnostic.
  5. Sélectionnez toutes les catégories que vous souhaitez exporter vers Google Security Operations.
  6. Sous Détails de la destination, sélectionnez Archiver dans un compte de stockage.
  7. Sélectionnez l'abonnement et le compte de stockage que vous avez créés à l'étape précédente.
  8. Cliquez sur Enregistrer.

Configurer un flux dans Google Security Operations pour ingérer les journaux Azure

Pour configurer un flux dans Google Security Operations afin d'ingérer les journaux Azure, procédez comme suit:

  1. Accédez à Paramètres du SIEM > Flux.
  2. Cliquez sur Ajouter.
  3. Saisissez un nom unique dans le champ Nom du champ.
  4. Sélectionnez Microsoft Azure Blob Storage comme Type de source.
  5. Sélectionnez Activité Microsoft Azure comme Type de journal.
  6. Cliquez sur Suivant.
  7. Configurez les paramètres d'entrée obligatoires suivants :
    • URI Azure: saisissez la valeur du point de terminaison Service Blob que vous avez enregistrée précédemment, suivie du suffixe insights-activity-logs (par exemple, https://acme-azure-chronicle.blob.core.windows.net/insights-activity-logs).
    • Un URI est: sélectionnez Un répertoire qui inclut des sous-répertoires.
    • Option de suppression de la source: indiquez si vous souhaitez supprimer les fichiers et les répertoires après le transfert.
    • Shared key (Clé partagée) : saisissez la valeur de la clé partagée que vous avez capturée précédemment.
  8. Cliquez sur Suivant, puis sur Envoyer.

Référence de mappage de champs

Ce code d'analyseur initialise d'abord un grand nombre de champs avec des chaînes vides, puis effectue une série de manipulations de chaînes et d'opérations d'analyse JSON pour extraire les informations pertinentes du message de journal d'activité Azure. Enfin, il met en correspondance les données extraites avec les champs du modèle de données unifié (UDM), catégorise le type d'événement et l'enrichit de détails supplémentaires tels que la gravité, les informations principales et les données réseau.

Tableau de mappage UDM

Champ de journal Mappage UDM Logique
category read_only_udm.security_result.category_details Mappé directement à partir du champ "category" dans le journal brut.
callerIpAddress read_only_udm.principal.asset.ip, read_only_udm.principal.ip Mappé directement à partir du champ "callerIpAddress" dans le journal brut.
correlationId read_only_udm.security_result.detection_fields.correlationId Mappé directement à partir du champ "correlationId" dans le journal brut.
data.callerIpAddress read_only_udm.principal.asset.ip, read_only_udm.principal.ip Mappé directement à partir du champ "callerIpAddress" de l'objet "data" dans le journal brut.
data.correlationId read_only_udm.security_result.detection_fields.correlationId Mappé directement à partir du champ "correlationId" de l'objet "data" dans le journal brut.
data.DeploymentUnit read_only_udm.target.resource.name Mappé directement à partir du champ "DeploymentUnit" dans l'objet "data" du journal brut.
data.details read_only_udm.metadata.description Mappé directement à partir du champ "details" de l'objet "data" dans le journal brut, uniquement si le champ "details" n'est pas défini sur "Unknown" (Inconnu).
data.entity read_only_udm.additional.fields.entity Mappé directement à partir du champ "entité" de l'objet "données" dans le journal brut.
data.EventName read_only_udm.metadata.product_event_type Mappé directement à partir du champ "EventName" dans l'objet "data" du journal brut.
data.hierarchy read_only_udm.additional.fields.hierarchy Mappé directement à partir du champ "hiérarchie" de l'objet "données" dans le journal brut.
data.identity.authorization.action read_only_udm.security_result.detection_fields.action Mappé directement à partir du champ "action" de l'objet "authorization" de l'objet "identity" dans le journal brut.
data.identity.authorization.evidence.principalId read_only_udm.principal.user.product_object_id, read_only_udm.principal.resource.product_object_id, read_only_udm.principal.group.product_object_id Mappé directement à partir du champ "principalId" dans l'objet "evidence" de l'objet "authorization" de l'objet "identity" dans le journal brut. Le champ UDM spécifique auquel il est mappé dépend de la valeur du champ "principalType". Si "principalType" est "User" ou "ServicePrincipal", il est mappé sur principal.user.product_object_id. Si "principalType" est "Group", il est mappé sur principal.group.product_object_id. Si "principalType" est "ServicePrincipal", il est mappé sur principal.resource.product_object_id.
data.identity.authorization.evidence.principalType read_only_udm.principal.resource.resource_subtype Mappé directement à partir du champ "principalType" de l'objet "evidence" de l'objet "authorization" de l'objet "identity" dans le journal brut.
data.identity.authorization.evidence.role read_only_udm.principal.user.role_name Mappé directement à partir du champ "role" dans l'objet "evidence" de l'objet "authorization" de l'objet "identity" dans le journal brut.
data.identity.authorization.evidence.roleAssignmentId read_only_udm.principal.resource.attribute.labels.roleAssignmentId Mappé directement à partir du champ "roleAssignmentId" dans l'objet "evidence" de l'objet "authorization" de l'objet "identity" dans le journal brut.
data.identity.authorization.evidence.roleAssignmentScope read_only_udm.principal.resource.attribute.labels.roleAssignmentScope Mappé directement à partir du champ "roleAssignmentScope" dans l'objet "evidence" de l'objet "authorization" de l'objet "identity" dans le journal brut.
data.identity.authorization.evidence.roleDefinitionId read_only_udm.principal.resource.attribute.labels.roleDefinitionId Mappé directement à partir du champ "roleDefinitionId" dans l'objet "evidence" de l'objet "authorization" de l'objet "identity" dans le journal brut.
data.identity.authorization.scope read_only_udm.security_result.detection_fields.scope Mappé directement à partir du champ "scope" de l'objet "authorization" de l'objet "identity" dans le journal brut.
data.identity.claims.aio read_only_udm.security_result.detection_fields.aio Mappé directement à partir du champ "aio" dans l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.appid read_only_udm.security_result.detection_fields.appid Mappé directement à partir du champ "appid" dans l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.appidacr read_only_udm.security_result.detection_fields.appidacr Mappé directement à partir du champ "appidacr" dans l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.aud read_only_udm.security_result.detection_fields.aud Mappé directement à partir du champ "aud" de l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.exp read_only_udm.security_result.detection_fields.exp Mappé directement à partir du champ "exp" de l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.http://schemas.microsoft.com/identity/claims/identityprovider read_only_udm.security_result.detection_fields.identityprovider Mappé directement à partir du champ "http://schemas.microsoft.com/identity/claims/identityprovider" dans l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.http://schemas.microsoft.com/identity/claims/objectidentifier read_only_udm.security_result.detection_fields.objectidentifier Mappé directement à partir du champ "http://schemas.microsoft.com/identity/claims/objectidentifier" dans l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.http://schemas.microsoft.com/identity/claims/tenantid read_only_udm.security_result.detection_fields.tenantid Mappé directement à partir du champ "http://schemas.microsoft.com/identity/claims/tenantid" dans l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier read_only_udm.security_result.detection_fields.nameidentifier Mappé directement à partir du champ "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" dans l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.iat read_only_udm.security_result.detection_fields.iat Mappé directement à partir du champ "iat" de l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.iss read_only_udm.security_result.detection_fields.iss Mappé directement à partir du champ "iss" dans l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.nbf read_only_udm.security_result.detection_fields.nbf Mappé directement à partir du champ "nbf" dans l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.rh read_only_udm.security_result.detection_fields.rh Mappé directement à partir du champ "rh" dans l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.uti read_only_udm.security_result.detection_fields.uti Mappé directement à partir du champ "uti" de l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.ver read_only_udm.security_result.detection_fields.ver Mappé directement à partir du champ "ver" de l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.claims.xms_tcdt read_only_udm.security_result.detection_fields.xms_tcdt Mappé directement à partir du champ "xms_tcdt" dans l'objet "claims" de l'objet "identity" dans le journal brut.
data.identity.UserName read_only_udm.principal.user.user_display_name Mappé directement à partir du champ "UserName" de l'objet "identity" dans le journal brut.
data.level read_only_udm.security_result.severity, read_only_udm.security_result.severity_details Mappé directement à partir du champ "niveau" de l'objet "données" dans le journal brut. Le champ "niveau" permet également de déterminer la valeur du champ severity. Si "level" est défini sur "Information" ou "Informational", severity est défini sur "INFORMATIONAL". Si "level" est défini sur "Warning" (Avertissement), severity est défini sur "MEDIUM" (MOYENNE). Si "level" est défini sur "Error", severity est défini sur "ERROR". Si "level" est défini sur "Critical", severity est défini sur "CRITICAL".
data.location read_only_udm.target.location.name Mappé directement à partir du champ "location" de l'objet "data" dans le journal brut.
data.operationName read_only_udm.metadata.product_event_type Mappé directement à partir du champ "operationName" de l'objet "data" dans le journal brut.
data.properties.EventChannel read_only_udm.additional.fields.properties EventChannel Mappé directement à partir du champ "EventChannel" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.EventSource read_only_udm.additional.fields.properties EventSource Mappé directement à partir du champ "EventSource" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.EventId read_only_udm.metadata.product_log_id Mappé directement à partir du champ "EventId" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.eventProperties.cause read_only_udm.security_result.detection_fields.cause Mappé directement à partir du champ "cause" de l'objet "eventProperties" de l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.eventProperties.clientIPAddress read_only_udm.principal.asset.ip, read_only_udm.principal.ip Mappé directement à partir du champ "clientIPAddress" dans l'objet "eventProperties" de l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.eventProperties.compromisedHost read_only_udm.principal.asset.hostname, read_only_udm.principal.hostname Mappé directement à partir du champ "compromisedHost" dans l'objet "eventProperties" de l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.eventProperties.currentHealthStatus read_only_udm.security_result.detection_fields.currentHealthStatus Mappé directement à partir du champ "currentHealthStatus" dans l'objet "eventProperties" de l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.eventProperties.previousHealthStatus read_only_udm.security_result.detection_fields.previousHealthStatus Mappé directement à partir du champ "previousHealthStatus" dans l'objet "eventProperties" de l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.eventProperties.type read_only_udm.security_result.detection_fields.type Mappé directement à partir du champ "type" de l'objet "eventProperties" de l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.eventProperties.User read_only_udm.principal.user.userid Mappé directement à partir du champ "Utilisateur" de l'objet "eventProperties" de l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.eventProperties.userName read_only_udm.principal.user.user_display_name Mappé directement à partir du champ "userName" dans l'objet "eventProperties" de l'objet "properties" de l'objet "data" dans le journal brut, après avoir supprimé le préfixe "SECURE\".
data.properties.ipAddress read_only_udm.principal.asset.ip, read_only_udm.principal.ip Mappé directement à partir du champ "ipAddress" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.legacyChannels read_only_udm.security_result.detection_fields.legacyChannels Mappé directement à partir du champ "legacyChannels" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.legacyEventDataId read_only_udm.security_result.detection_fields.legacyEventDataId Mappé directement à partir du champ "legacyEventDataId" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.legacyResourceId read_only_udm.security_result.detection_fields.legacyResourceId Mappé directement à partir du champ "legacyResourceId" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.legacyResourceGroup read_only_udm.security_result.detection_fields.legacyResourceGroup Mappé directement à partir du champ "legacyResourceGroup" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.legacyResourceProviderName read_only_udm.security_result.detection_fields.legacyResourceProviderName Mappé directement à partir du champ "legacyResourceProviderName" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.legacyResourceType read_only_udm.security_result.detection_fields.legacyResourceType Mappé directement à partir du champ "legacyResourceType" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.legacySubscriptionId read_only_udm.security_result.detection_fields.legacySubscriptionId Mappé directement à partir du champ "legacySubscriptionId" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.operationId read_only_udm.security_result.detection_fields.operationId Mappé directement à partir du champ "operationId" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.result read_only_udm.security_result.action_details Mappé directement à partir du champ "result" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.statusCode read_only_udm.network.http.response_code Mappé directement à partir du champ "statusCode" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.suspiciousCommandLine read_only_udm.target.process.command_line Mappé directement à partir du champ "suspiciousCommandLine" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.suspiciousProcess read_only_udm.target.process.file.full_path Mappé directement à partir du champ "suspiciousProcess" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.suspiciousProcessId read_only_udm.target.process.pid Mappé directement à partir du champ "suspiciousProcessId" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.tlsVersion read_only_udm.network.tls.version Mappé directement à partir du champ "tlsVersion" de l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.userAgent read_only_udm.network.http.user_agent, read_only_udm.network.http.parsed_user_agent Mappé directement à partir du champ "userAgent" de l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.userAgentHeader read_only_udm.network.http.user_agent, read_only_udm.network.http.parsed_user_agent Mappé directement à partir du champ "userAgentHeader" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.properties.userId read_only_udm.target.user.product_object_id Mappé directement à partir du champ "userId" dans l'objet "properties" de l'objet "data" dans le journal brut.
data.ReleaseVersion read_only_udm.metadata.product_version Mappé directement à partir du champ "ReleaseVersion" de l'objet "data" dans le journal brut.
data.resourceId read_only_udm.target.resource.name Mappé directement à partir du champ "resourceId" de l'objet "data" dans le journal brut.
data.resourceType read_only_udm.additional.fields.resourceType Mappé directement à partir du champ "resourceType" dans l'objet "data" du journal brut.
data.resultDescription read_only_udm.metadata.description Mappé directement à partir du champ "resultDescription" de l'objet "data" dans le journal brut.
data.resultSignature read_only_udm.additional.fields.resultSignature Mappé directement à partir du champ "resultSignature" de l'objet "data" dans le journal brut.
data.resultType read_only_udm.security_result.action_details, read_only_udm.additional.fields.resultType Mappé directement à partir du champ "resultType" de l'objet "data" dans le journal brut.
data.RoleLocation read_only_udm.target.location.name Mappé directement à partir du champ "RoleLocation" dans l'objet "data" du journal brut.
data.time read_only_udm.metadata.event_timestamp Le champ "time" de l'objet "data" du journal brut est analysé pour extraire l'horodatage, qui est ensuite mappé sur event_timestamp.
data.uri read_only_udm.network.http.referral_url Mappé directement à partir du champ "uri" de l'objet "data" dans le journal brut.
read_only_udm.extensions.auth.mechanism INTERACTIVE Défini sur "INTERACTIVE" si le champ "isInteractive" de l'objet "properties" de l'objet "data" du journal brut est défini sur "true". Sinon, il est défini sur "MECHANISM_OTHER".
read_only_udm.extensions.auth.type MACHINE Défini sur "MACHINE" si le champ "category" du journal brut est "NonInteractiveUserSignInLogs", "ManagedIdentitySignInLogs" ou "ServicePrincipalSignInLogs".
read_only_udm.metadata.log_type AZURE_ACTIVITY Code dur "AZURE_ACTIVITY".
read_only_udm.metadata.vendor_name Microsoft Code codé en dur sur "Microsoft".
read_only_udm.principal.platform WINDOWS, MAC, LINUX, ANDROID Déterminé en fonction de la valeur du champ "properties.test.deviceDetail.operatingSystem". S'il contient "Win", platform est défini sur "WINDOWS". S'il contient "Mac", platform est défini sur "MAC". S'il contient "Lin", platform est défini sur "LINUX". S'il contient "Android", platform est défini sur "ANDROID".
read_only_udm.principal.resource.type SERVICE_ACCOUNT, UNSPECIFIED Déterminé en fonction de la valeur du champ "identity.authorization.evidence.principalType". S'il s'agit de "ServicePrincipal", type est défini sur "SERVICE_ACCOUNT". Sinon, elle est définie sur "UNSPECIFIED".
read_only_udm.security_result.action ALLOW, BLOCK, UNKNOWN_ACTION Déterminé en fonction des valeurs des champs "resultType", "status_errorcode" et "statusText". Si "resultType" est "Success", "success", "Succeeded", "Started", "Resolved", "Active", "Updated", "Start", "Accept", "Accepted", "0", ou si "status_errorcode" est défini sur 0, ou si "statusText" est "Success", action est défini sur "ALLOW". Si "resultType" est l'une des valeurs "Failure", "Failed", ou si "status_errorcode" n'est pas vide, ou si "resultType" n'est pas vide, action est défini sur "BLOCK". Sinon, la valeur est définie sur "UNKNOWN_ACTION".
read_only_udm.target.cloud.environment MICROSOFT_AZURE Codé en dur sur "MICROSOFT_AZURE".

Modifications

2024-07-10

  • Si "identity.authorization.evidence.principalType" est égal à "Group", mappez "identity.authorization.evidence.principalId" sur "principal.group.product_object_id".
  • Si "identity.authorization.evidence.principalType" est égal à "User" ou "ServicePrincipal", mappez "identity.authorization.evidence.principalId" sur "principal.user.product_object_id".
  • Ajout de gsub pour remplacer le champ "properties" par "properties.test" et suppression du champ commençant uniquement par "properties".

2024-07-08

  • Mappage de "properties.compromisedEntity", "properties.attackedResourceType" et "properties.intent" sur "target.resource.attribute.labels".
  • Mappage de "properties.severity" sur "security_result.severity".

2024-06-18

  • Lorsque "principal.user.userid" n'est pas présent, la mise en correspondance de "metadata.event_type" est modifiée de "USER_RESOURCE_ACCESS" à "GENERIC_EVENT".

2024-06-18

  • "operationVersion" a été mappé sur "metadata.product_version".
  • Mise en correspondance de "properties.authenticationRequirementPolicies.requirementProvider" et "properties.authenticationRequirementPolicies.detail" avec "security_result.detection_fields".
  • "properties.authenticationDetails.StatusSequence", "properties.correlationId", "properties.uniqueTokenIdentifier" et "properties.authenticationDetails.RequestSequence" ont été mappés sur "security_result.detection_fields".
  • Mappage de "properties.appDisplayName" sur "target.application".
  • "properties.conditionalAccessStatus", "properties.appliedConditionalAccessPolicies", "properties.authenticationContextClassReferences", "properties.signInTokenProtectionStatus", "properties.originalRequestId", "properties.authenticationProcessingDetails", "properties.clientCredentialType", "properties.processingTimeInMilliseconds", "properties.riskDetail", "properties.riskLevelAggregated", "properties.riskLevelDuringSignIn", "properties.riskState" et "properties.originalTransferMethod" mappés sur "additional.fields".
  • Mise en correspondance de "properties.riskEventTypes", "properties.riskEventTypes_v2", "properties.homeTenantId", "properties.autonomousSystemNumber", "properties.autonomousSystemNumber" et "properties.privateLinkDetails" avec "additional.fields".
  • "properties.resourceId", "properties.resourceTenantId" et "properties.resourceServicePrincipalId" ont été mappés sur "target.resource.attribute.labels".
  • "properties.userType" a été mappé sur "principal.user.attribute.roles".
  • Mappage de "properties.userPrincipalName" sur "principal.user.email_addresses".
  • Mappage de "properties.clientAppUsed" sur "principal.application".
  • Mappage de "properties.deviceDetail.deviceId" sur "principal.asset.asset_id" et "principal.asset_id".
  • "properties.appId" a été mappé sur "target.resource.attribute.labels".
  • Mappage de "properties.status.additionalDetails" sur "security_result.description".
  • "properties.responseBody.name" a été mappé sur "security_result.rule_name".
  • "properties.responseBody.properties.sourcePortRanges" et "properties.responseBody.properties.destinationPortRanges" ont été mappés sur "additional.fields".
  • Lorsque "properties.responseBody.properties.sourceAddressPrefixes" est une seule adresse IP, il est mappé sur "principal.ip".
  • Lorsque "properties.responseBody.properties.sourceAddressPrefixes" est une plage d'adresses IP, il est mappé sur "additional.fields".
  • Lorsque "properties.responseBody.properties.sourceAddressPrefix" est une adresse IP unique ou une adresse IP avec un port, il est mappé sur "principal.ip" et "principal.port".
  • Lorsque "properties.responseBody.properties.sourceAddressPrefix" est une plage d'adresses IP, il est mappé sur "additional.fields".
  • Lorsque "properties.responseBody.properties.destinationAddressPrefixes" est une seule adresse IP, mappez-la sur "target.ip".
  • Lorsque "properties.responseBody.properties.destinationAddressPrefixes" est une plage d'adresses IP, il a été mappé sur "additional.fields".
  • Lorsque "properties.responseBody.properties.destinationAddressPrefix" est une adresse IP unique ou une adresse IP avec un port, il a été mappé sur "target.ip" et "target.port".
  • Lorsque "properties.responseBody.properties.destinationAddressPrefix" est une plage d'adresses IP, il a été mappé sur "additional.fields".
  • Lorsque "properties.responseBody.properties.sourcePortRange" est un seul port, il est mappé sur "principal.port".
  • Lorsque "properties.responseBody.properties.sourcePortRange" est une plage de ports, il est mappé sur "additional.fields".
  • Lorsque "properties.responseBody.properties.destinationPortRange" est un seul port, il est mappé sur "target.port".
  • Lorsque "properties.responseBody.properties.destinationPortRange" est une plage de ports, il a été mappé sur "additional.fields".
  • Mise en correspondance de "properties.id" et "properties.status.errorCode" avec "security_result.detection_fields".
  • Mappage de "properties.isInteractive" sur "extensions.auth.mechanism".
  • Lorsque "properties.deviceDetail.operatingSystem" est "ANDROID", "principal.platform" est mappé sur "ANDROID".

2024-06-03

  • Mappage de "SUBSCRIPTIONS", "RESOURCEGROUPS", "STORAGEACCOUNTS", "PROVIDERS" et "SNAPSHOTS" de "resourceId" vers "target.resource.attribute.labels".

2024-05-21

  • Si "identity.authorization.evidence.principalType" est égal à "User", "Group" ou "Application", mappez "principal.resource.type" sur "UNSPECIFIED".
  • Mappage de "identity.authorization.evidence.role" sur "principal.user.role_name".
  • Mappage de "identity.authorization.evidence.principalType" sur "principal.resource.resource_subtype".
  • Mappage de "identity.authorization.evidence.principalId" sur "principal.user.product_object_id".
  • "identity.authorization.evidence.roleAssignmentId", "identity.authorization.evidence.roleAssignmentScope" et "identity.authorization.evidence.roleDefinitionId" ont été mappés sur "principal.resource.attribute.labels".

2024-05-03

  • Lorsque "category" est "SignInLogs", "properties.userDisplayName" est mappé sur "principal.user.user_display_name".
  • Mappage de "properties.requestbody.properties.priority" et "properties.response.properties.priority" sur "security_result.detection_fields".
  • "properties.requestbody.properties.protocol" a été mappé sur "network.ip_protocol".
  • Mappage de "properties.requestbody.properties.direction" sur "network.direction".
  • "properties.response.properties.protocol" a été mappé sur "network.ip_protocol".
  • Mappage de "properties.response.properties.direction" sur "network.direction".
  • Mappage de "properties.response.properties.destinationPortRange" sur "target.port".

2024-04-26

  • "operationName.value" a été mappé sur "metadata.product_event_type".
  • "category.value" a été mappé sur "security_result.category_details".
  • Mappage de "httpRequest.uri" sur "network.http.referral_url".
  • Mappage de "httpRequest.method" sur "network.http.method".
  • Mappage de "httpRequest.clientIpAddress" sur "principal.ip" et "principal.asset.ip".
  • Mappage de "eventDataId" sur "security_result.detection_fields".
  • "httpRequest.clientRequestId" a été mappé sur "additional.fields".

2024-04-16

  • Ajout de la possibilité de mapper "network.application_protocol" si "protocol" est connu, sinon mappage de "protocol" sur "additional.fields".

2024-04-12

  • Mappage de "properties.requestbody.properties.allowBlobPublicAccess" sur "security_result.detection_fields".

2024-04-10

  • "resourceId" a été mappé sur "target.resource.name".
  • Lorsque "resourceId" est présent, les éléments "targetResources.displayName", "identity", "Type" et "properties.resourceDisplayName" sont mappés sur "target.resource.attribute.labels".

2024-03-29

  • "ResourceGUID" a été mappé sur "target.resource.product_object_id".
  • Mappage de "Type" sur "target.resource.name".
  • "ClientCity" a été mappé sur "principal.location.city".
  • "ClientCountryOrRegion" a été mappé sur "principal.location.country_or_region".
  • Mappage de "ClientIP" sur "principal.ip" et "principal.asset.ip".
  • "ClientStateOrProvince" a été mappé sur "principal.location.state".
  • "ClientType" a été mappé sur "principal.resource.attribute.labels".
  • Mappage de "IKey" sur "target.resource.attribute.labels".
  • Mappage de "_BilledSize" et "DurationMs" sur "additional.fields".
  • Mappage de "OperationId", "SDKVersion" et "ItemCount" sur "properties.operationId".
  • "ParentId", "Properties.WebtestLocationId", "Properties.FullTestResultAvailable", "Properties.SourceId", "Properties._MS_altIds", "Properties.WebtestArmResourceName", "Properties.SyntheticMonitorId" et "Success" ont été mappés sur "security_result.detection_fields".
  • "Message" a été mappé sur "metadata.description".
  • "Id" a été mappé sur "principal.resource.product_object_id".
  • "Nom" a été mappé sur "principal.resource.name".

2024-03-25

  • Lorsque "category" est "ServicePrincipalSignInLogs", "NonInteractiveUserSigninLogs" ou "ManagedIdentitySignInLogs", mappez "createdDateTime" sur "metadata.event_timestamp".
  • Mise en correspondance de "properties.authenticationDetails.authenticationStepDateTime", "properties.authenticationDetails.authenticationMethod", "properties.authenticationDetails.authenticationStepResultDetail", "properties.authenticationDetails.authenticationStepRequirement", "properties.id" et "properties.resourceServicePrincipalId" avec "security_result.detection_fields".
  • Mappage de "properties.authenticationDetails.succeeded" sur "security_result.action_details".

2024-03-25

  • Lorsque "properties.requestbody.Properties.RoleDefinitionId" n'est pas vide, définissez "security_result.detection_fields.key" sur "RequestBody roleDefinitionId".
  • Mise en correspondance de "properties.roleDefinitionId", "properties.principalId", "properties.responseBody.properties.roleDefinitionId" et "properties.requestbody.Properties.PrincipalId" avec "security_result.detection_fields".

2024-03-13

  • "properties.requestbody.properties.roleDefinitionId" et "properties.requestbody.properties.principalId" ont été mappés sur "security_result.detection_fields".

2024-03-05

  • Mappage de "resultType" sur "security_result.action_details".
  • Mappage de "properties.requestbody.Properties.PrincipalId" sur "principal.user.userid".
  • Lorsque "resultType" n'est pas vide, "properties.status.failureReason" est mappé sur "security_result.detection_fields".
  • Mise en correspondance de "properties.hardwareProfile.vmSize", "properties.provisioningState" et "properties.requestbody.Properties.RoleDefinitionId" avec "security_result.detection_fields".

2024-02-13

Correction de bug:

  • Lorsque "identity.UserName" est une adresse e-mail, mappez-le sur "principal.user.email_addresses", sinon mappez-le sur "principal.user.user_display_name".

2024-02-12

  • Ajout de la compatibilité avec les journaux JSON qui sont supprimés.
  • Mappage de "OperationNameValue" sur "metadata.product_event_type".
  • "properties.eventDataId", "properties.subscriptionId", "properties.resourceGroup" et "properties.resourceProviderValue" ont été mappés sur "security_result.detection_fields".
  • Mappage de "appelant" sur "principal.user.userid".
  • Mappage de "ActivityStatusValue" sur "security_result.action".

2024-02-01

  • Correction de bug:
  • Lorsque le champ "category" a la valeur "NonInteractiveUserSignInLogs" ou que "OperationName" est "Sign-in activity" (Activité de connexion), la valeur "USER_LOGOUT" est remplacée par "USER_LOGIN" pour "metadata.event_type".
  • Mise en correspondance de "properties.incomingTokenType" et "properties.deviceDetail.browser" avec "additional.fields".
  • "properties.userAgent" a été mappé sur "network.http.user_agent".
  • Lorsque la valeur "properties.userAgent" n'existe pas, seul "properties.deviceDetail.browser" est mappé sur "network.http.user_agent".
  • Mappage de "user_agent_field" analysé à "network.http.parsed_user_agent".
  • Mappage de "properties.eventProperties.clientIPAddress" et "callerIpAddress" sur "principal.asset.ip".
  • "hostname", "rscname" et "properties.eventProperties.compromisedHost" ont été mappés sur "principal.asset.hostname".

2024-01-07

  • Correction de bug:
  • Ajout d'un format Grok pour valider "callerIpAddress" en tant qu'adresse IP.
  • Mappage de "properties.accountName" sur "principal.user.userid".
  • Mappage de "uri" sur "network.http.refferal_url".
  • Mappage de "properties.userAgentHeader" sur "network.http.user_agent".
  • Mappage de "properties.tlsVersion" sur "network.tls.version".
  • Mappage de "statusCode" sur "network.http.response_code".
  • Mappage de "protocol" sur "network.application_protocol".
  • "properties.clientRequestId", "properties.etag", "properties.objectKey", "properties.responseMd5" et "resourceType" ont été mappés sur "additional.fields".

2023-10-09

  • Ajout de la possibilité d'analyser les journaux non analysés.
  • Changement de nom des champs suivants:
  • De "OperationName" à "operationName".
  • De "CorrelationId" à "correlationId".
  • De "Catégorie" à "category".
  • De "ResourceId" à "resourceId".
  • De "ResultType" à "resultType".
  • Mappage de "ProviderName" et "ProviderGuid" sur "security_result.detection_fields".
  • Mappage de "ResultDescription" sur "metadata.description".

2023-09-13

Amélioration :

  • Mappage de "properties.eventCategory" sur "security_result.detection_fields".
  • Mappage de "opproperties.operationIderationName" sur "security_result.detection_fields".
  • Mappage de "properties.eventName" sur "security_result.summary".
  • "properties.EventName" a été mappé sur "security_result.summary".
  • "properties.legacyResourceType" a été mappé sur "security_result.detection_fields".
  • "properties.CallerCredentialType" a été mappé sur "security_result.detection_fields".
  • "properties.EventChannel" a été mappé sur "security_result.detection_fields".
  • "properties.EventSource" a été mappé sur "security_result.detection_fields".
  • "properties.legacyResourceId" a été mappé sur "security_result.detection_fields".
  • Mappage de "properties.eventProperties.User" sur "principal.user.id" et "principal.user.email_addresses".
  • Mappage de "properties.Caller" sur "principal.user.id" et "principal.user.email_addresses".
  • Mappage de "appelant" sur "principal.user.id" et "principal.user.email_addresses".
  • "properties.IpAddress" a été mappé sur "principal.ip".
  • Mappage de "properties.Description_scrubbed" sur "security_result.description".

2023-02-22

Amélioration :

  • Mappage de "tenantId" sur "metadata.product_deployment_id".
  • "operationName" a été mappé sur "metadata.product_event_type".
  • Mappage de "category" sur "security_result.category_details".
  • Mappage de "callerIpAddress" sur "principal.ip".
  • "identity" a été mappé sur "target.resource.name".
  • Mappage de "result" sur "security_result.action_details".
  • Mappage de "properties.activityDisplayName" sur "security_result.summary".
  • "location" a été mappé sur "principal.location.name".
  • Mappage de "Niveau" sur "security_result.severity_details".
  • Mappage de "properties.initiatedBy.app.displayName" sur "principal.application".
  • "properties.targetResources.displayName" a été mappé sur "target.resource.name".
  • "properties.targetResources.id" a été mappé sur "target.resource.product_object_id".
  • "properties.targetResources.modifiedProperties.displayName" a été mappé sur "target.user.attribute.labels".
  • Mappage de "properties.additionalDetails" sur "additional.fields".
  • Mappage de "properties.loggedByService" sur "target.application".
  • "properties.userId" a été mappé sur "target.user.product_object_id".
  • "properties.resourceDisplayName" a été mappé sur "target.resource.name".
  • "properties.location.city" a été mappé sur "principal.location.city".
  • "properties.location.state" a été mappé sur "principal.location.state".
  • "properties.location.countryOrRegion" a été mappé sur "principal.location.country_or_region".
  • "properties.ipAddress" a été mappé sur "principal.ip".
  • Mappage de "properties.location.geoCoordinates.latitude" sur "principal.location.region_latitude".
  • Mappage de "properties.location.geoCoordinates.longitude" sur "principal.location.region_longitude".
  • Mappage de "properties.servicePrincipalId" sur "principal.user.userid".
  • Mappage de "properties.servicePrincipalName" sur "principal.user.user_display_name".
  • "properties.tokenIssuerType", "properties.authenticationProcessingDetails.0.value", "properties.operationType", "properties.authenticationRequirement", "properties.deviceDetail.trustType" mappés sur "additional.fields".
  • Mappage de "resultDescription" sur "metadata.description".
  • "properties.userDisplayName" a été mappé sur "target.user.user_display_name".
  • Mappage de "properties.appDisplayName" sur "target.application".
  • "properties.userType" a été mappé sur "principal.user.attribute.roles".
  • "properties.status.failureReason" a été mappé sur "security_result.action_details".
  • "properties.deviceDetail.operatingSystem" a été mappé sur "principal.platform_version".
  • Mappage de "properties.deviceDetail.displayName" sur "principal.asset.hardware".
  • "properties.deviceDetail.browser" a été mappé sur "network.http.user_agent".
  • Mappage de "properties.userPrincipalName" sur "principal.user.email_addresses".

2022-11-28

Amélioration :

  • Mappage du champ "correlationId" sur "security_result.detection_fields".
  • Mappage du champ "level" sur "security_result.severity_details".
  • Ajout du mappage suivant pour la catégorie "ResourceHealth" :
  • Mappage du champ "properties.legacyEventDataId" sur "security_result.detection_fields".
  • Mappage du champ "properties.legacyChannels" sur "security_result.detection_fields".
  • Mappage du champ "properties.legacySubscriptionId" sur "security_result.detection_fields".
  • Mappage du champ "properties.legacyResourceGroup" sur "security_result.detection_fields".
  • Mappage du champ "properties.legacyResourceProviderName" sur "security_result.detection_fields".
  • Mise en correspondance du champ "properties.eventProperties.currentHealthStatus" avec "security_result.detection_fields".
  • Mappage du champ "properties.eventProperties.previousHealthStatus" sur "security_result.detection_fields".
  • Mappage du champ "properties.eventProperties.type" sur "security_result.detection_fields".
  • Mappage du champ "properties.eventProperties.cause" sur "security_result.detection_fields".

2022-09-26

Amélioration : champs ajoutés.

  • Mappage de "tenantId " sur "metadata.product_deployment_id"

2022-06-20

Amélioration :

  • Ajout d'une vérification conditionnelle pour "entity_properties".
  • lorsque "category" est égal à "Security"
  • Mappage de "properties.eventProperties.clientIPAddress" sur "principal.ip".
  • Mappage de "properties.eventProperties.accountSessionId" sur "network.session_id".
  • "properties.eventProperties.suspiciousProcess" a été mappé sur "target.process.file.full_path".
  • Mappage de "properties.eventProperties.suspiciousCommandLine" sur "target.process.command_line".
  • Mappage de "properties.eventProperties.suspiciousProcessId" sur "target.process.pid".
  • Mappage de "properties.eventProperties.compromisedHost" sur "principal.hostname".
  • Mappage de "resultDescription" sur "metadata.description"
  • "properties.legacySubscriptionId" a été mappé sur "security_result.detection_fields".
  • Mappage de "properties.legacyResourceProviderName" sur "security_result.detection_fields".

2022-05-19

Amélioration : ajout et modification de plusieurs champs.

  • claims, Identity, aud, tenantid, principalId, action, appidacr, iat, exp, nbf, rh, uti, ver, xms_tcdt, principalType, roleAssignmentId, appid, aio, iss, nameidentifier, roleDefinitionId, scope mapped to security_result.detection_fields
  • resultSignature, resultType, hierarchy, resource_type, entity, mappés à additional.fields.
  • RoleLocation mappé sur location.name.
  • catégorie mappée sur security_result.category_details.