Utiliser des flux dans les playbooks

Compatible avec :

Ce document explique comment le composant Flow dirige les prochaines étapes d'un playbook à l'aide d'un système de branchement pour prendre des décisions.

Les flux de conditions sont essentiels pour permettre à un playbook de prendre des décisions, en orientant une requête vers différents chemins en fonction des données d'alerte entrantes, des résultats des actions précédentes ou des saisies utilisateur.

Les options de flux suivantes sont disponibles :

  • Condition : conditions complexes basées sur des espaces réservés, des données de cas existantes et le flux Actions précédentes.
  • Question à choix multiples : questions auxquelles les analystes doivent répondre manuellement.

Ajouter des flux de conditions

Cette section explique comment utiliser les flux de conditions pour créer une logique dynamique et ramifiée dans vos playbooks.

Ajouter un flux de condition unique

Pour ajouter un flux de condition unique, procédez comme suit :

  1. Sur la page Réponse > Playbooks, cliquez sur Ouvrir la sélection d'étapes.
  2. Dans Sélection de l'étape, sélectionnez la section Flux.
  3. Faites glisser la condition vers l'étape ou entre deux actions, selon la façon dont vous créez votre playbook.
  4. Double-cliquez sur la condition pour ouvrir la boîte de dialogue.
  5. Sélectionnez les entités requises. Si vous utilisez des espaces réservés, ils sont limités à ce groupe d'entités.
  6. Déterminez le nombre de branches que vous souhaitez créer. Chaque branche est séparée par un OR.
  7. Sélectionnez et ajoutez des paramètres pour chaque branche, comme suit :
    1. Sélectionnez l'espace réservé que vous souhaitez évaluer dans la liste des espaces réservés existants. Pour les nouveaux utilisateurs, ce champ est vide si vous n'avez pas encore ingéré d'alertes.
    2. Sélectionnez l'opérateur requis (par exemple, Est égal(e) à ou Ne contient pas).
    3. Choisissez une valeur.
  8. Définissez une "branche de secours" pour éviter les conditions non remplies. Si une condition est basée sur des actions précédentes et que l'une de ces actions a échoué (et a été ignorée), la condition passe à la branche de secours au lieu de s'arrêter. Pour sélectionner une branche de remplacement, consultez Définir une branche de remplacement.
  9. Cliquez sur Enregistrer. Le playbook comporte désormais trois branches : 1, 2 et E (Autre).
  10. Définissez le résultat d'au moins une branche pour marquer le playbook comme terminé.

Ajouter un flux de questions à choix multiples

  1. Faites glisser la condition Questions à choix multiples vers la zone Étape finale.
  2. Cliquez sur Questions à choix multiples pour ouvrir la boîte de dialogue.
  3. Ajoutez une question avec autant de réponses que nécessaire.
  4. Cliquez sur Enregistrer. Le playbook ouvre quatre branches.
  5. Définissez le résultat d'au moins une branche pour la marquer comme terminée.

Ajouter un flux de conditions

Pour ajouter un flux de conditions, procédez comme suit :

  1. Faites glisser Conditions vers la zone Étape finale.
  2. Cliquez sur Conditions pour ouvrir la boîte de dialogue.
  3. Décidez du nombre de branches à créer. Chaque branche est séparée par un OR.
  4. Ajouter un paramètre : sélectionnez le paramètre requis. La liste n'affiche que les résultats du script d'action de ce playbook.
  5. Sélectionnez l'opérateur requis : Égal à/Différent de, Contient/Ne contient pas, Commence par ou Supérieur à/Inférieur à.
  6. Choisissez la valeur (le résultat de l'action).
  7. Vous pouvez ajouter des paramètres à chaque branche et choisir un opérateur logique : AND ou OR.
  8. Cliquez sur Enregistrer. Le playbook ouvre trois branches : 1, 2 et Else.
  9. Définissez le résultat d'au moins une branche pour terminer le playbook.

Définir une branche de remplacement

  1. Dans l'un des flux (Condition), sélectionnez la branche à utiliser comme branche de secours. Cet exemple utilise Branch – not risky. Vous n'êtes pas obligé d'ajouter une branche de secours.
  2. Lorsque le playbook s'exécute et que les actions précédentes échouent, il choisit la branche de secours et continue.

Gérer les échecs d'étapes

Les étapes du playbook peuvent échouer lors de l'exécution. Par défaut, un playbook est conçu pour s'arrêter si une étape échoue. Il s'agit d'un mécanisme de sécurité essentiel pour éviter de continuer avec des données incomplètes ou incorrectes. Toutefois, dans certains cas, vous souhaitez qu'un playbook se poursuive même si une étape ne renvoie pas les résultats attendus. Cela est particulièrement vrai pour les actions d'enrichissement, où les données que vous recherchez peuvent ne pas exister dans tous les cas. Vous pouvez décider d'arrêter le playbook ou de passer à l'étape suivante. Si l'étape ayant échoué était cruciale pour la prise de décision, vous pouvez vérifier si l'étape précédente a échoué à l'étape suivante et décider de la marche à suivre en conséquence (par exemple, si une étape échoue, passez à une branche de secours).

Ignorer en cas d'échec

Pour toute action, vous pouvez configurer l'étape pour qu'elle soit ignorée en cas d'échec. Lorsque vous activez ce paramètre, le playbook passe à l'étape suivante, même si l'action ne s'exécute pas ou renvoie une erreur.

Pour activer ce paramètre, procédez comme suit :

  1. Double-cliquez sur le bloc d'action pour ouvrir son panneau de paramètres.
  2. Dans l'onglet Paramètres, accédez à la section En cas d'échec de l'étape.
  3. Sélectionnez Ignorer cette étape.

Utiliser une condition pour une gestion avancée des erreurs

L'option "Ignorer en cas d'échec" fonctionne bien pour les cas de base, mais une méthode plus robuste consiste à utiliser un flux Condition pour créer un chemin de gestion des erreurs dédié. Cela permet au playbook d'effectuer un ensemble d'actions différent lorsqu'une étape échoue, comme avertir un analyste ou consigner l'erreur.

Pour créer un chemin de gestion des erreurs, procédez comme suit :

  1. Après une action susceptible d'échouer et pour laquelle vous souhaitez définir un chemin d'échec spécifique, ajoutez un bloc de flux Condition.
  2. Double-cliquez sur le bloc Condition pour ouvrir sa boîte de dialogue.
  3. Accédez à l'onglet Paramètres, puis, dans la section Si l'action précédente échoue, sélectionnez la branche vers laquelle rediriger le flux. Important : La condition Si l'action précédente échoue ne vérifie pas simplement si une action précédente a échoué. Elle vérifie si une action précédente dont les résultats sont utilisés dans l'évaluation de la condition actuelle a échoué. Si cette action dépendante a échoué, la condition ne peut pas être déterminée et le flux est redirigé vers la branche sélectionnée. Cela vous permet de gérer les cas où une dépendance a échoué, empêchant la condition d'être résolue.
  4. Dans cette branche d'échec, vous pouvez ajouter des actions telles que l'envoi d'un e-mail de notification, la création d'une tâche ou la journalisation de l'échec.

Prenons l'exemple d'un playbook qui tente de résoudre le problème de propriétaire d'un utilisateur. Si l'action Résoudre le propriétaire de l'utilisateur échoue (par exemple, si l'utilisateur n'existe pas dans Active Directory), le playbook ne s'arrête pas. Au lieu de cela, le bloc de condition détecte l'échec et redirige le flux vers une branche distincte, où il peut envoyer un e-mail à l'équipe de sécurité concernant les données manquantes, ce qui permet au playbook de continuer à s'exécuter sans interruption. <

Supprimer un flux

Lorsque vous supprimez un flux d'un playbook, le système vous invite à supprimer l'intégralité de la branche ou seulement un aspect de celle-ci.

Fusionner des branches

Vous pouvez fusionner différentes branches du playbook en une seule. Pour ce faire, faites glisser une action depuis l'une des branches et déposez-la dans la zone Étape finale d'une autre branche. Le playbook peut se poursuivre ou s'arrêter ici.

Fonctionnement des opérateurs logiques dans une condition

Cette section explique comment les opérateurs conditionnels des playbooks évaluent les champs comportant un ou plusieurs éléments (par exemple, les entités ou les événements d'une alerte). Il est essentiel de savoir si un champ est une chaîne ou une liste pour la logique du playbook.

Rôle des types de données dans l'évaluation des conditions

Le comportement des opérateurs (Equals, Contains) varie en fonction du type de données :

  • Contexte à un seul élément : les champs tels que [Entity.Identifier] d'une alerte avec une seule entité sont traités comme une chaîne unique.
  • Contexte multi-éléments : le même champ d'une alerte avec plusieurs entités est une liste de chaînes.

Comportement des opérateurs equals et contains

Les sections suivantes expliquent le fonctionnement de ces opérateurs.

Opérateur Equals

L'opérateur Equals compare directement deux valeurs.

  • Le champ à un seul élément (chaîne) recherche une correspondance exacte.
    • En supposant que [Entity.Identifier] soit "Tom".
    • La condition if [Entity.Identifier] equals "Tom" est alors définie sur True.
  • Le champ Multi-item field (list) vérifie si la liste entière est égale à la chaîne spécifiée. Une liste ne sera jamais égale à une seule chaîne.
    • En supposant que [Entity.Identifier] soit une liste (Tom, Kai)
    • La condition if [Entity.Identifier] equals "Tom, Kai" est alors toujours False. En effet, [Entity.Identifier] est une liste et "Tom, Kai" est une chaîne.

Opérateur Contains

L'opérateur Contains change également en fonction du type de données :

  • Le champ à un seul élément (chaîne) effectue une recherche de sous-chaîne. Renvoie True si la chaîne contient la valeur.
    • En supposant que [Entity.Identifier] soit "user-1234".
    • La condition if [Entity.Identifier] contains "user" est alors True.
  • Le champ à plusieurs éléments (liste) recherche une correspondance exacte d'un élément dans la liste. Aucune recherche de sous-chaîne n'est effectuée.
    • En supposant que [Entity.Identifier] soit une liste ("UserA@corp.com", "UserB@corp.com").
    • La condition if [Entity.Identifier] contains "corp" est alors False.

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