Collecter les journaux Microsoft Sentinel

Compatible avec:

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

  1. Accédez à Paramètres du SIEM > Flux.
  2. Cliquez sur Ajouter.
  3. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Microsoft Sentinel).
  4. Sélectionnez Webhook comme type de source.
  5. Sélectionnez Microsoft Sentinel comme Type de journal.
  6. Cliquez sur Suivant.
  7. 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.
  8. Cliquez sur Suivant.
  9. Vérifiez la configuration de votre nouveau flux dans l'écran Finaliser, puis cliquez sur Envoyer.
  10. Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.
  11. 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.
  12. 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.
  13. Cliquez sur OK.

Créer une clé API pour le flux webhook

  1. Accédez à la console Google Cloud > Identifiants.

    Accéder à "Identifiants"

  2. Cliquez sur Créer des identifiants, puis sélectionnez Clé API.

  3. Limitez l'accès de la clé API à l'API Google Security Operations.

Spécifier l'URL du point de terminaison

  1. Dans votre application cliente, spécifiez l'URL du point de terminaison HTTPS fournie dans le flux de webhook.
  2. 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:

  1. Connectez-vous au portail Azure.
  2. Cliquez sur Créer une ressource.
  3. Recherchez "Logic App".
  4. Cliquez sur Créer pour lancer le processus de création.
  5. 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.
  6. Cliquez sur Examiner et créer.
  7. Cliquez sur Créer.
  8. Une fois l'application logique créée, cliquez sur Accéder à la ressource.
  9. Cliquez sur Outils de développement > Concepteur d'application logique.
  10. Cliquez sur Ajouter un déclencheur.
  11. Recherchez Microsoft Sentinel.
  12. Sélectionnez Incident Microsoft Sentinel comme déclencheur.
  13. 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.
  14. Cliquez sur Insérer une étape.
  15. Cliquez sur Ajouter une action.
  16. Recherchez et sélectionnez HTTP comme action.
  17. 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:

  1. Accédez à la page d'accueil du portail Azure.
  2. Cliquez sur Créer une ressource.
  3. Recherchez "Logic App".
  4. Cliquez sur Créer pour lancer le processus de création.
  5. 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.
  6. Cliquez sur Examiner et créer.
  7. Cliquez sur Créer.
  8. Une fois l'application logique créée, cliquez sur Accéder à la ressource.
  9. Cliquez sur Outils de développement > Concepteur d'application logique.
  10. Cliquez sur Ajouter un déclencheur.
  11. Recherchez Microsoft Sentinel.
  12. Sélectionnez Alerte Microsoft Sentinel comme déclencheur.
  13. 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.
  14. Cliquez sur Insérer une étape.
  15. Cliquez sur Ajouter une action.
  16. Recherchez et sélectionnez HTTP comme action.
  17. 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:

  1. Accédez à votre espace de travail Microsoft Sentinel.
  2. Cliquez sur Configuration > Automatisation.
  3. Cliquez sur Créer.
  4. Sélectionnez Règle d'automatisation.
  5. 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.
  6. Cliquez sur Appliquer.
  7. Cliquez sur Créer.
  8. Sélectionnez Règle d'automatisation.
  9. 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.
  10. Cliquez sur Appliquer.
  11. Cliquez sur Créer.
  12. Sélectionnez Règle d'automatisation.
  13. 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.
  14. 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éé.