Collecter les journaux d'activité Microsoft Graph
Présentation
Cet analyseur extrait des champs des journaux d'activité Microsoft Graph et les transforme en modèle de données unifié (UDM). Il initialise les champs UDM, analyse la charge utile, extrait les codes temporels, met en correspondance diverses propriétés avec les champs UDM, gère les adresses IP et les ports, et catégorise le type d'événement en fonction de la présence d'informations sur l'utilisateur principal et le réseau.
Avant de commencer
- Assurez-vous de disposer d'une instance Google SecOps.
- Assurez-vous de disposer d'un accès privilégié à Microsoft Entra ID et aux comptes de stockage Azure.
Configurer un compte de stockage Azure
- Dans la console Azure, recherchez "comptes de stockage".
- Cliquez sur Créer.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- Abonnement: sélectionnez l'abonnement.
- Groupe de ressources: sélectionnez le groupe de ressources.
- Région: sélectionnez la région.
- Performances: sélectionnez le niveau de performances souhaité (standard est recommandé).
- Redondance: sélectionnez le niveau de redondance souhaité (GRS ou LRS recommandé).
- Nom du compte de stockage: saisissez un nom pour le nouveau compte de stockage.
- Cliquez sur Examiner et créer.
- Consultez la présentation du compte, puis cliquez sur Créer.
- Sur la page Présentation du compte de stockage, sélectionnez le sous-menu Clés d'accès dans Sécurité et mise en réseau.
- Cliquez sur Afficher à côté de clé1 ou clé2.
- Cliquez sur Copy to clipboard (Copier dans le presse-papiers) pour copier la clé.
- Enregistrez la clé dans un endroit sécurisé pour référence ultérieure.
- Sur la page Aperçu du compte de stockage, sélectionnez le sous-menu Points de terminaison dans Paramètres.
- Cliquez sur Copier dans le presse-papiers pour copier l'URL du point de terminaison du service Blob (par exemple, https://
.blob.core.windows.net ). - Enregistrez l'URL du point de terminaison dans un emplacement sécurisé pour référence ultérieure.
Configurer l'exportation des journaux d'activité Microsoft Graph vers un compte de stockage
- Dans la console Azure, recherchez ID Entra.
- Sélectionnez Surveillance > Paramètres de diagnostic.
- Cliquez sur + Ajouter un paramètre de diagnostic.
- Attribuez un nom unique au paramètre (par exemple, ms-graph-activity).
- Sélectionnez la catégorie MicrosoftGraphActivityLog que vous souhaitez exporter vers Google SecOps.
- Sous Détails de la destination, sélectionnez Archiver dans un compte de stockage.
- Sélectionnez votre abonnement et le compte de stockage que vous avez créé à l'étape précédente.
- Cliquez sur Enregistrer.
Configurer un flux dans Google SecOps pour ingérer les journaux d'activité Microsoft Graph
- Accédez à Paramètres du SIEM > Flux.
- Cliquez sur Ajouter.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux d'activité Microsoft Graph).
- Sélectionnez Microsoft Azure Blob Storage comme Type de source.
- Sélectionnez Journaux d'activité Microsoft Graph comme Type de journal.
- Cliquez sur Suivant.
Spécifiez les valeurs des paramètres d'entrée suivants:
URI Azure: URL du point de terminaison de blob.
ENDPOINT_URL/BLOB_NAME
Remplacez les éléments suivants :
ENDPOINT_URL
: URL du point de terminaison du blob (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: nom du blob (par exemple, insights-logs-)
L'URI est: sélectionnez le type d'URI en fonction de la configuration du flux de journaux (Fichier | Répertoire | Répertoire incluant des sous-répertoires).
Options de suppression de la source: sélectionnez l'option de suppression de votre choix.
- Clé partagée: clé d'accès à Azure Blob Storage.
- Espace de noms des éléments: espace de noms des éléments.
- Libellés d'ingestion: libellé à appliquer aux événements de ce flux.
Cliquez sur Suivant.
Vérifiez la configuration de votre nouveau flux dans l'écran Finaliser, puis cliquez sur Envoyer.
Tableau de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
callerIpAddress |
principal.asset.ip |
Le champ de journal brut callerIpAddress est copié dans le champ UDM. |
callerIpAddress |
principal.ip |
Le champ de journal brut callerIpAddress est copié dans le champ UDM. |
category |
security_result.category_details |
Le champ de journal brut category est copié dans le champ UDM. |
correlationId |
security_result.detection_fields.value |
Le champ de journal brut correlationId est copié dans le champ UDM, où la clé est correlationId . |
Level |
security_result.detection_fields.value |
Le champ de journal brut Level est converti en chaîne et copié dans le champ UDM, où la clé est Level . |
operationName |
metadata.product_event_type |
Le champ de journal brut operationName est copié dans le champ UDM. |
operationVersion |
additional.fields.value.string_value |
Le champ de journal brut operationVersion est copié dans le champ UDM, où la clé est operationVersion . |
properties.apiVersion |
metadata.product_version |
Le champ de journal brut properties.apiVersion est copié dans le champ UDM. |
properties.appId |
target.resource.product_object_id |
Le champ de journal brut properties.appId est copié dans le champ UDM. |
properties.atContent |
additional.fields.value.string_value |
Le champ de journal brut properties.atContent est copié dans le champ UDM, où la clé est atContent . |
properties.clientAuthMethod |
extensions.auth.auth_details |
En fonction de la valeur de properties.clientAuthMethod , le champ UDM est défini sur "Client public" (0), "ID client/Secret client" (1) ou "Certificat client" (2). |
properties.clientRequestId |
additional.fields.value.string_value |
Le champ de journal brut properties.clientRequestId est copié dans le champ UDM, où la clé est clientRequestId . |
properties.durationMs |
network.session_duration.seconds |
Le champ de journal brut properties.durationMs est converti de millisecondes en secondes et copié dans le champ UDM. |
properties.identityProvider |
security_result.detection_fields.value |
Le champ de journal brut properties.identityProvider est copié dans le champ UDM, où la clé est identityProvider . |
properties.ipAddress |
principal.asset.ip |
L'adresse IP du champ de journal brut properties.ipAddress est extraite et copiée dans le champ UDM. |
properties.ipAddress |
principal.ip |
L'adresse IP du champ de journal brut properties.ipAddress est extraite et copiée dans le champ UDM. |
properties.location |
principal.location.name |
Le champ de journal brut properties.location est copié dans le champ UDM. |
properties.operationId |
security_result.detection_fields.value |
Le champ de journal brut properties.operationId est copié dans le champ UDM, où la clé est operationId . |
properties.requestMethod |
network.http.method |
Le champ de journal brut properties.requestMethod est copié dans le champ UDM. |
properties.requestId |
metadata.product_log_id |
Le champ de journal brut properties.requestId est copié dans le champ UDM. |
properties.responseSizeBytes |
network.received_bytes |
Le champ de journal brut properties.responseSizeBytes est converti en entier non signé et copié dans le champ UDM. |
properties.responseStatusCode |
network.http.response_code |
Le champ de journal brut properties.responseStatusCode est converti en entier et copié dans le champ UDM. |
properties.roles |
additional.fields.value.string_value |
Le champ de journal brut properties.roles est copié dans le champ UDM, où la clé est roles . |
properties.scopes |
additional.fields.value.string_value |
Le champ de journal brut properties.scopes est copié dans le champ UDM, où la clé est Scopes . |
properties.servicePrincipalId |
principal.user.userid |
Le champ de journal brut properties.servicePrincipalId est copié dans le champ UDM si properties.userId est vide. |
properties.signInActivityId |
network.session_id |
Le champ de journal brut properties.signInActivityId est copié dans le champ UDM. |
properties.tenantId |
metadata.product_deployment_id |
Le champ de journal brut properties.tenantId est copié dans le champ UDM. |
properties.tokenIssuedAt |
additional.fields.value.string_value |
Le champ de journal brut properties.tokenIssuedAt est copié dans le champ UDM, où la clé est tokenIssuedAt . |
properties.userAgent |
network.http.user_agent |
Le champ de journal brut properties.userAgent est copié dans le champ UDM. |
properties.userId |
principal.user.userid |
Le champ de journal brut properties.userId est copié dans le champ UDM. |
properties.wids |
security_result.detection_fields.value |
Le champ de journal brut properties.wids est copié dans le champ UDM, où la clé est wids . |
resourceId |
target.resource.attribute.labels.value |
Le champ de journal brut resourceId est copié dans le champ UDM, où la clé est Resource ID . |
resultSignature |
additional.fields.value.string_value |
Le champ de journal brut resultSignature est copié dans le champ UDM, où la clé est resultSignature . |
time |
metadata.event_timestamp |
Le champ de journal brut time est analysé, converti en code temporel et copié dans le champ UDM. Le champ UDM event.idm.read_only_udm.metadata.event_type est défini sur "NETWORK_HTTP" si has_principal est défini sur "true" et que network.http n'est pas vide, sur "STATUS_UPDATE" si has_principal est défini sur "true" et que network.http est vide, ou sur "GENERIC_EVENT" dans le cas contraire. Le champ UDM est défini sur "Microsoft Graph". Le champ UDM est défini sur "Microsoft". |
Modifications
2024-05-27
- Définissez "metadata.vendor_name" sur "Microsoft" et "metadata.product_name" sur "Microsoft Graph".
2024-03-01
- Analyseur nouvellement créé.