Collecter les journaux d'activité Microsoft Graph
Présentation
Cet analyseur extrait les champs des journaux d'activité Microsoft Graph et les transforme au format UDM (Unified Data Model). Il initialise les champs UDM, analyse la charge utile, extrait les codes temporels, mappe différentes propriétés aux 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 principales et réseau.
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes :
- Instance Google SecOps.
- Accès privilégié aux comptes Microsoft Entra ID et de stockage Azure.
Configurer un compte de stockage Azure
- Dans la console Azure, recherchez les 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é (le niveau 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.
- Examinez l'aperçu 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 key1 ou key2.
- Cliquez sur Copier dans le presse-papiers pour copier la clé.
- Enregistrez la clé dans un endroit sûr pour pouvoir la retrouver facilement.
- Sur la page Présentation 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 pouvoir vous y référer ultérieurement.
Configurer l'exportation des journaux d'activité Microsoft Graph vers un compte de stockage
- Dans la console Azure, recherchez Entra ID.
- 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 des flux
Il existe deux points d'entrée différents pour configurer les flux dans la plate-forme Google SecOps :
- Paramètres SIEM> Flux
- Plate-forme de contenu > Packs de contenu
Configurer des flux à partir de Paramètres SIEM > Flux
Pour configurer un flux, procédez comme suit :
- Accédez à Paramètres SIEM > Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configurer un seul flux.
- 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 du 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-)
URI is a : sélectionnez le type d'URI en fonction de la configuration du flux de journaux (Single fileS | Directory | Directory which includes subdirectories).
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.
Cliquez sur Suivant.
Vérifiez la configuration de votre nouveau flux sur l'écran Finaliser, puis cliquez sur Envoyer.
Configurer des flux depuis le Hub de contenu
Indiquez les valeurs des champs suivants :
- URI Azure : URL du point de terminaison du 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-)
- URI is a : sélectionnez le type d'URI en fonction de la configuration du flux de journaux (Single fileS | Directory | Directory which includes subdirectories).
- 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.
Options avancées
- Nom du flux : valeur préremplie qui identifie le flux.
- Type de source : méthode utilisée pour collecter les journaux dans Google SecOps.
- Espace de noms de l'élément : espace de noms associé au flux.
- Libellés d'ingestion : libellés appliqués à tous les événements de ce flux.
Table 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 journaux bruts properties.ipAddress est extraite et copiée dans le champ UDM. |
properties.ipAddress |
principal.ip |
L'adresse IP du champ de journaux bruts 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é et converti en code temporel, puis 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". |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.