Collecter les journaux Microsoft Sentinel
Présentation
Cet analyseur extrait des champs des journaux JSON Microsoft Sentinel, effectue des transformations telles que l'extraction d'adresses IP et la manipulation de chaînes, et met en correspondance les données extraites avec l'UDM, y compris les champs principal, target, security_result et metadata. Il gère également différents types de données et fusionne les entités extraites dans la structure UDM.
Avant de commencer
- Assurez-vous de disposer d'une instance Google SecOps.
- Accès à Microsoft Sentinel
Configurer un flux dans Google SecOps pour ingérer les journaux Microsoft Sentinel
- 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 Microsoft Sentinel).
- Sélectionnez Webhook comme type de source.
- Sélectionnez Microsoft Sentinel comme Type de journal.
- Cliquez sur Suivant.
- Facultatif: spécifiez des valeurs pour les paramètres d'entrée suivants :
- Délimiteur de fractionnement: délimiteur utilisé pour séparer les lignes de journal, par exemple
\n
. - Espace de noms des éléments : espace de noms des éléments.
- Libellés d'ingestion: libellé à appliquer aux événements de ce flux.
- Délimiteur de fractionnement: délimiteur utilisé pour séparer les lignes de journal, par exemple
- Cliquez sur Suivant.
- Vérifiez la configuration de votre nouveau flux dans l'écran Finaliser, puis cliquez sur Envoyer.
- Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.
- Copiez et stockez la clé secrète, car vous ne pourrez plus la consulter à nouveau. Vous pouvez générer à nouveau une clé secrète, mais la régénération de la clé secrète rend l'ancienne clé secrète obsolète.
- Dans l'onglet Détails, copiez l'URL du point de terminaison du flux dans le champ Informations sur le point de terminaison. Vous devez spécifier cette URL de point de terminaison dans votre application cliente.
- Cliquez sur OK.
Créer une clé API pour le flux webhook
Accédez à la console Google Cloud > Identifiants.
Cliquez sur Créer des identifiants, puis sélectionnez Clé API.
Limitez l'accès de la clé API à l'API Google Security Operations.
Spécifier l'URL du point de terminaison
- Dans votre application cliente, spécifiez l'URL du point de terminaison HTTPS fournie dans le flux de webhook.
Activez l'authentification en spécifiant la clé API et la clé secrète dans l'en-tête personnalisé au format suivant:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Recommandation: Spécifiez la clé API en tant qu'en-tête plutôt que dans l'URL. Si votre client webhook n'est pas compatible avec les en-têtes personnalisés, vous pouvez spécifier la clé API et la clé secrète à l'aide de paramètres de requête au format suivant:
ENDPOINT_URL?key=API_KEY&secret=SECRET
Remplacez les éléments suivants :
ENDPOINT_URL
: URL du point de terminaison du flux.API_KEY
: clé API permettant de s'authentifier auprès de Google Security Operations.SECRET
: clé secrète que vous avez générée pour authentifier le flux.
Configurer une application logique pour les incidents Microsoft Sentinel
Pour configurer une application logique pour les incidents Microsoft Sentinel, procédez comme suit:
- Connectez-vous au portail Azure.
- Cliquez sur Créer une ressource.
- Recherchez "Logic App".
- Cliquez sur Créer pour lancer le processus de création.
- 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.
- Nom: saisissez un nom pour l'application logique.
- Région: sélectionnez la région.
- Espace de travail Log Analytics: sélectionnez l'espace de travail Log Analytics.
- Cliquez sur Examiner et créer.
- Cliquez sur Créer.
- Une fois l'application logique créée, cliquez sur Accéder à la ressource.
- Cliquez sur Outils de développement > Concepteur d'application logique.
- Cliquez sur Ajouter un déclencheur.
- Recherchez Microsoft Sentinel.
- Sélectionnez Incident Microsoft Sentinel comme déclencheur.
- Si vous n'avez pas encore créé de connexion à Microsoft Sentinel, vous devez le faire maintenant. Cliquez sur Créer, puis suivez les instructions pour vous authentifier.
- Cliquez sur Insérer une étape.
- Cliquez sur Ajouter une action.
- Recherchez et sélectionnez HTTP comme action.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- URI: URL du point de terminaison du flux.
- Méthode: POST
- En-têtes: ajoutez les en-têtes suivants :
- Content-Type: application/json
- X-goog-api-key: clé API permettant de s'authentifier auprès de Google Security Operations.
- X-Webhook-Access-Key: clé secrète que vous avez générée pour authentifier le flux.
Configurer une application logique pour les alertes Microsoft Sentinel
Pour configurer une application logique pour les alertes Microsoft Sentinel, procédez comme suit:
- Accédez à la page d'accueil du portail Azure.
- Cliquez sur Créer une ressource.
- Recherchez "Logic App".
- Cliquez sur Créer pour lancer le processus de création.
- 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.
- Nom: saisissez un nom pour l'application logique.
- Région: sélectionnez la région.
- Espace de travail Log Analytics: sélectionnez l'espace de travail Log Analytics.
- Cliquez sur Examiner et créer.
- Cliquez sur Créer.
- Une fois l'application logique créée, cliquez sur Accéder à la ressource.
- Cliquez sur Outils de développement > Concepteur d'application logique.
- Cliquez sur Ajouter un déclencheur.
- Recherchez Microsoft Sentinel.
- Sélectionnez Alerte Microsoft Sentinel comme déclencheur.
- Si vous n'avez pas encore créé de connexion à Microsoft Sentinel, vous devez le faire maintenant. Cliquez sur Créer, puis suivez les instructions pour vous authentifier.
- Cliquez sur Insérer une étape.
- Cliquez sur Ajouter une action.
- Recherchez et sélectionnez HTTP comme action.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- URI: URL du point de terminaison du flux.
- Méthode: POST
- En-têtes: ajoutez les en-têtes suivants :
- Content-Type: application/json
- X-goog-api-key: clé API permettant de s'authentifier auprès de Google Security Operations.
- X-Webhook-Access-Key: clé secrète que vous avez générée pour authentifier le flux.
Configurer des règles d'automatisation pour Microsoft Sentinel
Pour configurer des règles d'automatisation pour Microsoft Sentinel, procédez comme suit:
- Accédez à votre espace de travail Microsoft Sentinel.
- Cliquez sur Configuration > Automatisation.
- Cliquez sur Créer.
- Sélectionnez Règle d'automatisation.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- Nom: saisissez un nom pour la règle d'automatisation.
- Déclencheur: sélectionnez When incident is created (Lorsque l'incident est créé).
- Actions: sélectionnez Exécuter le playbook > Appli logique créée pour les incidents.
- Cliquez sur Appliquer.
- Cliquez sur Créer.
- Sélectionnez Règle d'automatisation.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- Nom: saisissez un nom pour la règle d'automatisation.
- Déclencheur: sélectionnez When incident is updated (Lorsque l'incident est mis à jour).
- Condition: cliquez sur Ajouter > Condition (Et) > État > Modifié.
- Actions: sélectionnez Exécuter le playbook > Appli logique créée pour les incidents.
- Cliquez sur Appliquer.
- Cliquez sur Créer.
- Sélectionnez Règle d'automatisation.
- Spécifiez les valeurs des paramètres d'entrée suivants :
- Nom: saisissez un nom pour la règle d'automatisation.
- Déclencheur: sélectionnez Lorsque l'alerte est créée.
- Actions: sélectionnez Exécuter le playbook > Appli logique créée pour les alertes.
- Cliquez sur Appliquer.
Tableau de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
AlertGenerationStatus |
security_result.detection_fields.AlertGenerationStatus |
Mappé directement à partir du champ ExtendedProperties après l'analyse JSON. |
AlertLink |
principal.labels.AlertLink |
Mappage direct. |
AlertName |
security_result.rule_name |
Mappage direct. |
AlertSeverity |
security_result.severity |
Mappé directement, converti en majuscules. Si la valeur est "HIGH", "MEDIUM", "LOW", "CRITICAL" ou "UNKNOWN_SEVERITY", elle est mappée sur security_result.severity . Sinon, il est mappé sur security_result.severity_details . |
AlertType |
security_result.threat_name |
Mappage direct. |
Category |
security_result.detection_fields.Category |
Mappé directement à partir du champ ExtendedProperties après l'analyse JSON. |
CompromisedEntity |
principal.resource.attribute.labels.CompromisedEntity |
Mappage direct. |
CompromisedEntityId |
security_result.detection_fields.CompromisedEntityId |
Mappé directement à partir du champ ExtendedProperties après l'analyse JSON. |
ConfidenceLevel |
security_result.confidence_details |
Mappage direct. |
ConfidenceScore |
security_result.detection_fields.ConfidenceScore |
Mappage direct. |
cribl_pipe |
additional.fields.cribl_pipe |
Mappage direct. |
Description |
security_result.description |
Mappage direct. |
DestinationDevice |
security_result.detection_fields.DestinationDevice OU target.ip |
Mappé à partir du champ ExtendedProperties après l'analyse JSON. Si la valeur est une adresse IP valide, elle est mappée sur target.ip . Dans le cas contraire, il est mappé en tant que champ de détection. |
DestinationDeviceAddress |
target.ip |
Mappé à partir du champ ExtendedProperties après l'analyse JSON, uniquement s'il s'agit d'une adresse IP valide. |
DeviceId |
security_result.detection_fields.DeviceId |
Mappé directement à partir du champ ExtendedProperties après l'analyse JSON. |
DisplayName |
security_result.summary |
Mappage direct. |
EndTime |
about.labels.EndTime |
Mappage direct. |
Entities.Address |
principal.asset.ip |
Extrait du tableau Entities après l'analyse JSON. Seules les adresses IP sont mappées. |
Entities.HostName |
principal.asset.hostname OU principal.asset.ip |
Extrait du tableau Entities après l'analyse JSON. Si la valeur est une adresse IP valide, elle est mappée sur principal.asset.ip . Sinon, il est mappé sur principal.asset.hostname . |
Entities.IoTDevice.DeviceId |
security_result.detection_fields.IoTDeviceID |
Extrait du tableau Entities après l'analyse JSON. |
Entities.IoTDevice.DeviceType |
security_result.detection_fields.IoTDeviceType |
Extrait du tableau Entities après l'analyse JSON. |
Entities.IoTDevice.DeviceTypeId |
security_result.detection_fields.IoTDeviceTypeId |
Extrait du tableau Entities après l'analyse JSON. |
Entities.IoTDevice.Importance |
security_result.detection_fields.IoTDeviceImportance |
Extrait du tableau Entities après l'analyse JSON. |
Entities.IoTDevice.IoTSecurityAgentId |
security_result.detection_fields.IoTSecurityAgentId |
Extrait du tableau Entities après l'analyse JSON. |
Entities.IoTDevice.Manufacturer |
security_result.detection_fields.IoT Manufacturer |
Extrait du tableau Entities après l'analyse JSON. |
Entities.IoTDevice.OperatingSystem |
principal.asset.platform_software.platform_version |
Extrait du tableau Entities après l'analyse JSON, les espaces de fin sont supprimés. |
Entities.IoTDevice.PurdueLayer |
security_result.detection_fields.IoT PurdueLayer |
Extrait du tableau Entities après l'analyse JSON. |
Entities.IoTDevice.Sensor |
security_result.detection_fields.IoT Sensor |
Extrait du tableau Entities après l'analyse JSON. |
ExtendedProperties.Protocol |
security_result.detection_fields.Protocol |
Mappé directement à partir du champ ExtendedProperties après l'analyse JSON. |
ExtendedProperties.SensorId |
security_result.detection_fields.SensorId |
Mappé directement à partir du champ ExtendedProperties après l'analyse JSON. |
ExtendedProperties.SourceDevice |
principal.ip OU security_result.detection_fields.SourceDevice |
Mappé à partir du champ ExtendedProperties après l'analyse JSON. Si la valeur est une adresse IP valide, elle est mappée sur principal.ip . Dans le cas contraire, il est mappé en tant que champ de détection. |
ExtendedProperties.SourceDeviceAddress |
principal.ip |
Mappé à partir du champ ExtendedProperties après l'analyse JSON, uniquement s'il s'agit d'une adresse IP valide. |
IsIncident |
security_result.detection_fields.IsIncident |
Mappé directement, converti en chaîne. |
ProcessingEndTime |
about.labels.ProcessingEndTime |
Mappage direct. |
ProductComponentName |
principal.resource.attribute.labels.ProductComponentName |
Mappage direct. |
ProductName |
principal.resource.attribute.labels.ProductName |
Mappage direct. |
ProviderName |
principal.resource.attribute.labels.ProviderName |
Mappage direct. |
ResourceId |
principal.resource.product_object_id , target.resource.name |
Mappage direct. |
SourceComputerId |
principal.asset.asset_id |
Mappé directement, avec le préfixe "SourceComputerId:". |
SourceSystem |
security_result.detection_fields.SourceSystem |
Mappage direct. |
StartTime |
about.labels.StartTime |
Mappage direct. |
Status |
security_result.detection_fields.Status |
Mappage direct. |
SystemAlertId |
metadata.product_log_id |
Mappage direct. |
Tactics |
security_result.attack_details.tactics.name |
Extrait du champ Tactics après l'analyse JSON et la suppression des barres obliques arrière. |
Techniques |
security_result.attack_details.techniques.id |
Extrait du champ Techniques après l'analyse JSON et la suppression des barres obliques arrière. |
TenantId |
additional.fields.TenantId |
Mappage direct. |
TimeGenerated |
about.labels.TimeGenerated |
Mappage direct. |
timestamp |
metadata.event_timestamp , events.timestamp |
Mappage direct. |
VendorName |
metadata.vendor_name |
Mappage direct. |
VendorOriginalId |
additional.fields.VendorOriginalId |
Mappage direct. |
_time |
metadata.event_timestamp , events.timestamp |
Analyse en tant que code temporel au format UNIX ou UNIX_MS. |
(Logique de l'analyseur) | metadata.event_type |
Défini sur "USER_RESOURCE_ACCESS" si les valeurs "principal", "target" et "ResourceId" sont présentes. Sinon, définissez-le sur "GENERIC_EVENT". |
(Logique de l'analyseur) | metadata.log_type |
Définissez-le sur "MICROSOFT_SENTINEL". |
(Logique de l'analyseur) | metadata.product_name |
Définissez-le sur "MICROSOFT_SENTINEL". |
Modifications
2023-11-03
- Mappage de "ResourceId" sur "target.resource.name".
- Lorsque "ResourceId" est "not null" et que l'événement comporte l'un des éléments "principal" ou "target" comme "not null", mappez "metadata.event_type" sur "USER_RESOURCE_ACCESS".
2023-08-31
- Analyseur nouvellement créé.