Ingérer les journaux d'activité Microsoft Azure
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:
- Dans la console Azure, recherchez Comptes de stockage.
- Cliquez sur Create (Créer).
- 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.
- Cliquez sur Examiner et créer, examinez la présentation du compte, puis cliquez sur Créer.
- 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.
- Cliquez sur Afficher les clés et notez la clé partagée du compte de stockage.
- Sélectionnez Points de terminaison dans le menu de navigation de gauche de la fenêtre.
- 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:
- Dans la console Azure, recherchez Monitor (Surveillance).
- Cliquez sur le lien Journal d'activité dans le panneau de navigation de gauche.
- Cliquez sur Exporter les journaux d'activité en haut de la fenêtre.
- Cliquez sur Ajouter un paramètre de diagnostic.
- Sélectionnez toutes les catégories que vous souhaitez exporter vers Google Security Operations.
- Sous Détails de la destination, sélectionnez Archiver dans un compte de stockage.
- Sélectionnez l'abonnement et le compte de stockage que vous avez créés à l'étape précédente.
- 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:
- Accédez à Paramètres du SIEM > Flux.
- Cliquez sur Ajouter.
- Saisissez un nom unique dans le champ Nom du champ.
- Sélectionnez Microsoft Azure Blob Storage comme Type de source.
- Sélectionnez Activité Microsoft Azure comme Type de journal.
- Cliquez sur Suivant.
- 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.
- 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.