Collecter les journaux Microsoft Sentinel

Compatible avec :

Présentation

Ce parseur extrait les champs des journaux JSON Microsoft Sentinel, effectue des transformations telles que l'extraction d'adresses IP et la manipulation de chaînes, et mappe les données extraites à 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 remplir les conditions préalables suivantes :

  • Instance Google SecOps.
  • Accès à Microsoft Sentinel.

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 :

  1. Accédez à Paramètres SIEM > Flux.
  2. Cliquez sur Add New Feed (Ajouter un flux).
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Microsoft Sentinel).
  5. Sélectionnez Webhook comme type de source.
  6. Sélectionnez Microsoft Sentinel comme type de journal.
  7. Cliquez sur Suivant.
  8. Facultatif : Spécifiez les valeurs des paramètres d'entrée suivants :
    • Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux, tel que \n.
  9. Cliquez sur Suivant.
  10. Vérifiez la configuration de votre nouveau flux sur l'écran Finaliser, puis cliquez sur Envoyer.
  11. Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.
  12. Copiez et stockez la clé secrète, car vous ne pourrez plus l'afficher. Vous pouvez générer à nouveau une clé secrète, mais cela rendra l'ancienne clé secrète obsolète.
  13. Dans l'onglet Détails, copiez l'URL du point de terminaison du flux à partir du champ Informations sur le point de terminaison. Vous devez spécifier cette URL de point de terminaison dans votre application cliente.
  14. Cliquez sur OK.

Configurer des flux depuis le Hub de contenu

Indiquez les valeurs des champs suivants :

  • Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux, tel que \n.

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.

  • 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 l'afficher. Vous pouvez générer à nouveau une clé secrète, mais cela rendra l'ancienne clé secrète obsolète.

  • Dans l'onglet Détails, copiez l'URL du point de terminaison du flux à partir du champ Informations sur le point de terminaison. Vous devez spécifier cette URL de point de terminaison dans votre application cliente.

Créer une clé API pour le flux de webhook

  1. Accédez à la consoleGoogle 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 au lieu de la spécifier dans l'URL. Si votre client de webhook n'accepte pas 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 pour 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 Logic App 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'applications logiques.
  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 nouvelle é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 Logic App 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'applications logiques.
  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 nouvelle é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 les 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 Lorsqu'un incident est créé.
    • Actions : sélectionnez Exécuter le playbook > Application 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 Quand l'incident est mis à jour.
    • Condition : cliquez sur Ajouter > Condition (AND) > État > Modifié.
    • Actions : sélectionnez Exécuter le playbook > Application 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 Lors de la création de l'alerte.
    • Actions : sélectionnez Exécuter le playbook > Application logique créée pour les alertes.
  14. Cliquez sur Appliquer.

Table 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 Mappé directement.
AlertName security_result.rule_name Mappé directement.
AlertSeverity security_result.severity Mappé directement et 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 Mappé directement.
Category security_result.detection_fields.Category Mappé directement à partir du champ ExtendedProperties après l'analyse JSON.
CompromisedEntity principal.resource.attribute.labels.CompromisedEntity Mappé directement.
CompromisedEntityId security_result.detection_fields.CompromisedEntityId Mappé directement à partir du champ ExtendedProperties après l'analyse JSON.
ConfidenceLevel security_result.confidence_details Mappé directement.
ConfidenceScore security_result.detection_fields.ConfidenceScore Mappé directement.
cribl_pipe additional.fields.cribl_pipe Mappé directement.
Description security_result.description Mappé directement.
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 si l'adresse IP est valide.
DeviceId security_result.detection_fields.DeviceId Mappé directement à partir du champ ExtendedProperties après l'analyse JSON.
DisplayName security_result.summary Mappé directement.
EndTime about.labels.EndTime Mappé directement.
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 si l'adresse IP est valide.
IsIncident security_result.detection_fields.IsIncident Mappé directement, converti en chaîne.
ProcessingEndTime about.labels.ProcessingEndTime Mappé directement.
ProductComponentName principal.resource.attribute.labels.ProductComponentName Mappé directement.
ProductName principal.resource.attribute.labels.ProductName Mappé directement.
ProviderName principal.resource.attribute.labels.ProviderName Mappé directement.
ResourceId principal.resource.product_object_id, target.resource.name Mappé directement.
SourceComputerId principal.asset.asset_id Mappé directement, avec le préfixe "SourceComputerId:".
SourceSystem security_result.detection_fields.SourceSystem Mappé directement.
StartTime about.labels.StartTime Mappé directement.
Status security_result.detection_fields.Status Mappé directement.
SystemAlertId metadata.product_log_id Mappé directement.
Tactics security_result.attack_details.tactics.name Extrait du champ Tactics après l'analyse JSON et la suppression des barres obliques inverses.
Techniques security_result.attack_details.techniques.id Extrait du champ Techniques après l'analyse JSON et la suppression des barres obliques inverses.
TenantId additional.fields.TenantId Mappé directement.
TimeGenerated about.labels.TimeGenerated Mappé directement.
timestamp metadata.event_timestamp, events.timestamp Mappé directement.
VendorName metadata.vendor_name Mappé directement.
VendorOriginalId additional.fields.VendorOriginalId Mappé directement.
_time metadata.event_timestamp, events.timestamp Analysé comme un code temporel au format UNIX ou UNIX_MS.
(Logique de l'analyseur) metadata.event_type Définissez sur "USER_RESOURCE_ACCESS" si le compte principal, la cible et ResourceId sont présents. Sinon, définissez-le sur "GENERIC_EVENT".
(Logique de l'analyseur) metadata.log_type Défini sur "MICROSOFT_SENTINEL".
(Logique de l'analyseur) metadata.product_name Défini sur "MICROSOFT_SENTINEL".

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.