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 SecOps.
- 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.
Il existe deux points d'entrée différents pour configurer des flux dans la plate-forme Google SecOps:
- Paramètres du SIEM > Flux
- Hub de contenu > Packs de contenu
Configurez les flux dans Paramètres du SIEM > Flux.
Pour configurer un flux, procédez comme suit:
- Accédez à Paramètres du SIEM > Flux.
- Cliquez sur Ajouter un flux.
- Sur la page suivante, cliquez sur Configurer un flux.
- 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.
- 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.
Configurer des flux depuis le Centre de contenu
Indiquez les valeurs des champs 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.
- Clé partagée: saisissez la valeur de la clé partagée que vous avez capturée précédemment.
Options avancées
- Nom du flux: valeur préremplie qui identifie le flux.
- Source Type (Type de source) : méthode utilisée pour collecter les journaux dans Google SecOps.
- Espace de noms de l'asset: espace de noms associé au flux.
- Libellés d'ingestion: libellés appliqués à tous les événements de ce flux.
Référence de mappage de champ
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 "Unknown". |
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" de 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" (Critique), 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" de 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 le code temporel, 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".
- Mappage de "category.value" 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", la valeur "createdDateTime" est mappée 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
- Mise en correspondance de "properties.requestbody.properties.roleDefinitionId" et "properties.requestbody.properties.principalId" avec "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".
- "properties.hardwareProfile.vmSize", "properties.provisioningState" et "properties.requestbody.Properties.RoleDefinitionId" ont été mappés sur "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 prise en charge des 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".
- Mappage de "properties.incomingTokenType" et "properties.deviceDetail.browser" sur "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".
- "properties.userAgentHeader" a été mappé 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 :
- "properties.eventCategory" a été mappé sur "security_result.detection_fields".
- Mappage de "opproperties.operationIderationName" sur "security_result.detection_fields".
- "properties.eventName" a été mappé sur "security_result.summary".
- "properties.EventName" a été mappé sur "security_result.summary".
- Mappage de "properties.legacyResourceType" 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".
- Mappage de "properties.targetResources.displayName" sur "target.resource.name".
- "properties.targetResources.id" a été mappé sur "target.resource.product_object_id".
- Mappage de "properties.targetResources.modifiedProperties.displayName" sur "target.user.attribute.labels".
- Mappage de "properties.additionalDetails" sur "additional.fields".
- Mappage de "properties.loggedByService" sur "target.application".
- Mappage de "properties.userId" 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".
- Mappage de "properties.location.state" 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".
- Mappage de "properties.deviceDetail.operatingSystem" 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".
- "properties.eventProperties.accountSessionId" a été mappé sur "network.session_id".
- Mappage de "properties.eventProperties.suspiciousProcess" 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.