Automatiser des tâches avec les boucles de playbook
La fonctionnalité Boucles de playbook se concentre sur les boucles for-each pour itérer sur les listes et exécuter un ensemble d'actions une fois pour chaque élément.
Les boucles de playbook vous permettent de traiter efficacement plusieurs éléments, tels que des entités, en exécutant une seule action ou une série d'actions plusieurs fois. Vous n'avez ainsi plus besoin de personnaliser ni de dupliquer manuellement les actions lorsque vous devez effectuer des étapes répétitives sur plusieurs entités ou d'autres types de données. Vous pouvez également simplifier les workflows en plaçant des blocs dans des boucles ou en imbriquant des boucles dans des blocs.
Types de boucles compatibles
Les boucles de playbook sont compatibles avec l'itération sur les types de données suivants :
- Entités : vous pouvez itérer sur une liste d'entités dans une alerte.
- Listes : vous pouvez itérer sur une liste d'éléments définie par l'utilisateur ou sur une liste résolue de manière dynamique à l'aide d'un espace réservé.
Structurer vos boucles
Une boucle de playbook se compose d'une étape Loop Start (Début de la boucle) et d'une étape Loop End (Fin de la boucle) correspondante. Les actions que vous souhaitez répéter pour chaque élément de votre liste sont placées entre ces deux étapes.
Début de la boucle
L'étape Début de la boucle marque le début de votre boucle et inclut sa configuration.
- Vous pouvez attribuer un nom à votre boucle à l'étape Début de la boucle. Ce nom s'affiche dans les étapes Début de la boucle et Fin de la boucle.
- Cette étape définit le paramètre Loop Over (Entities ou List) et configure les paramètres spécifiques pour le type sélectionné.
- Cette étape vous permet de configurer le comportement de la boucle lorsqu'elle atteint sa limite d'itérations (actuellement limitée à 100 itérations) ou rencontre un problème.
- Une fois la boucle démarrée, une coche s'affiche.
Fin de la boucle
L'étape Fin de la boucle marque le point de terminaison de votre boucle.
- Vous ne pouvez pas modifier directement l'étape Fin de la boucle. Sa configuration est liée à l'étape Début de la boucle.
- Lorsque la boucle termine toutes ses itérations avec succès, l'étape Fin de boucle renvoie un état de réussite (indiqué par une coche) et un résultat JSON inclut le nombre d'itérations exécutées.
- Si la boucle s'arrête avant le traitement de tous les éléments (en raison de l'atteinte de la limite d'itérations maximales), le résultat JSON inclut une liste des éléments ignorés.
Définir des actions dans la boucle
Les actions placées entre les étapes Début de la boucle et Fin de la boucle s'exécutent de manière répétée. Vous pouvez faire glisser n'importe quelle action de playbook standard dans cette zone, y compris les actions et les blocs conditionnels.
Boucles qui itèrent sur des entités
Par défaut, lorsqu'une boucle itère sur des entités, les actions de cette boucle ne sont appliquées qu'à l'entité actuelle à chaque itération. L'action traite une entité à la fois à mesure que la boucle progresse.
Pour les actions qui fonctionnent sur des entités (par exemple, VirusTotal – Enrichir le hachage), l'action est automatiquement limitée à l'entité actuelle dans la boucle. Les espaces réservés pour les entités utilisés dans la boucle ne font référence qu'à l'entité de la boucle actuelle.
Pour illustrer cela, prenons le cas d'utilisation suivant : Analyser les hachages et créer des tickets pour les hachages malveillants.
Boucles avancées qui itèrent sur des entités
Dans certains cas d'utilisation, vous devrez peut-être accéder à la fois aux informations de l'entité itérée actuelle et à celles d'autres entités d'alerte. Pour ce faire, désactivez l'option Verrouiller le champ d'application sur l'itération pour cette action de boucle spécifique.
- Lorsque le bouton bascule est activé, les données et les espaces réservés des entités sont limités à l'entité mise en boucle actuelle uniquement.
- Lorsque le bouton bascule est désactivé, les données et les espaces réservés des entités peuvent accéder à toutes les entités d'alerte, en fonction de la configuration du menu Entités.
- Utilisez des espaces réservés
Entity
pour accéder aux données d'entité à l'échelle de l'alerte. - Utilisez
Loop.Entity
pour faire référence uniquement à l'entité en boucle actuelle.
Pour illustrer cela, prenons l'exemple suivant : Créer des tickets à priorité élevée pour les fichiers malveillants en fonction du poste de l'utilisateur.
Boucles qui itèrent sur des listes
Une boucle peut exécuter un ensemble d'actions pour chaque élément d'une liste définie. Vous pouvez effectuer les opérations suivantes :
- Définissez la liste directement ou utilisez un espace réservé qui renvoie à une liste.
- Personnalisez le délimiteur en fonction de vos besoins (par exemple, une virgule ou une barre oblique).
- Référencez l'élément itéré à l'aide de l'espace réservé
Loop.item
.
Pour illustrer cela, prenons le cas d'utilisation suivant : Notifier les utilisateurs en cas de fuite de mot de passe.
Utiliser des blocs dans des boucles
Vous pouvez inclure des blocs de playbook directement dans une boucle. Lorsqu'un bloc est déplacé dans une boucle, ses actions s'exécutent une fois pour chaque élément ou entité que la boucle traite.
Si la boucle itère sur des entités, le bloc inclut un bouton à bascule Limiter le champ d'application à l'itération. Ce bouton bascule contrôle la manière dont les actions accèdent aux données de l'entité de blocage :
- Activé : toutes les étapes du bloc sont limitées à l'entité actuelle de cette itération de boucle spécifique. Cela garantit que les actions et les espaces réservés pour les entités du bloc ne fonctionnent que sur les données pertinentes pour cette itération.
- Désactivé : les étapes du bloc ont accès à toutes les entités d'alerte. Le bloc reçoit toutes les entités de l'alerte, et pas seulement celle traitée par la boucle parente. Dans ce cas, des espaces réservés
loop.entity
s'affichent dans le menu et peuvent être utilisés pour accéder à l'entité itérée uniquement.
Utiliser des boucles dans des blocs
Vous pouvez placer des boucles à l'intérieur des blocs de playbook pour effectuer des tâches répétitives dans la logique du bloc. Cela vous permet d'itérer sur des éléments ou des entités dans une section à portée définie du playbook.
La configuration d'une boucle à l'intérieur d'un bloc suit le même processus que la configuration de toute autre boucle dans un playbook.
Pour en savoir plus, consultez Configurer les actions de boucle de playbook.
Configurer des actions de boucle de playbook
Pour configurer les actions de boucle de playbook, procédez comme suit :
- Dans le menu Navigation, accédez à Réponse > Playbooks.
- Ouvrez le playbook que vous souhaitez modifier ou créez-en un.
- Cliquez sur + Ouvrir la sélection d'étape.
- Cliquez sur l'onglet Boucles.
- Faites glisser l'action Pour chaque boucle sur le canevas de votre playbook. Cette option crée automatiquement les étapes Début de la boucle et Fin de la boucle avec une zone désignée pour ajouter des actions entre les deux.
- Configurez le début de la boucle :
- Cliquez sur l'étape Début de la boucle pour ouvrir le panneau latéral Boucle Pour chaque.
- Dans l'onglet Paramètres, sélectionnez l'élément sur lequel itérer la boucle (Entités ou Liste).
- Entités : sélectionnez le champ d'application des entités (Toutes les entités, Entités suspectes ou champ d'application personnalisé).
- Liste : dans le champ Éléments, saisissez votre liste d'éléments, manuellement ou à l'aide d'un espace réservé. Définissez le délimiteur (par exemple, une virgule ou une barre oblique) pour séparer les éléments.
- Dans l'onglet Paramètres, configurez le comportement de la boucle :
- Type d'action : choisissez entre Automatique (démarre immédiatement) ou Manuelle (nécessite une action de l'utilisateur).
- Si l'étape échoue ou si le nombre maximal d'itérations est dépassé : indiquez si la boucle doit Ignorer les éléments restants et continuer ou Arrêter le playbook.
- Ajoutez des actions avant ou après la boucle pour préparer les données ou traiter les résultats de la boucle.
Limites
Les liens d'approbation ne sont pas compatibles avec les boucles de playbook.
Utiliser des vues et des boucles de playbook
Cette section explique comment les widgets personnalisés et prédéfinis affichent les informations des boucles de playbook dans les vues. Elle aborde également les aspects importants de la visualisation des données générées par les boucles.
Widgets personnalisés
Bien que vous ne puissiez pas référencer directement les espaces réservés à partir des étapes de boucle interne, vous pouvez agréger les résultats lors de l'exécution de la boucle et les afficher dans le widget. Pour afficher des résultats agrégés dans un widget personnalisé, utilisez des valeurs de contexte dans la boucle (par exemple, utilisez l'action Ajouter à la valeur de contexte du Power-Up Outils).
Widgets prédéfinis
Google fournit des widgets prédéfinis qui s'intègrent parfaitement aux actions compatibles dans le concepteur de playbooks. Lorsque vous faites glisser une action compatible dans le concepteur de playbooks, le système suggère des widgets prédéfinis pertinents. Ces widgets se connectent directement à l'action, même lorsqu'ils sont utilisés dans une boucle.
Boucles dans le simulateur de playbook
Le simulateur de playbook offre une visualisation détaillée des playbooks qui incluent des boucles et des blocs. Il prend également en charge les structures imbriquées, telles que les boucles imbriquées dans des blocs et les blocs imbriqués dans des boucles. Dans le lecteur du simulateur, les étapes s'affichent de haut en bas (les plus anciennes en haut, les plus récentes en bas), avec un défilement automatique pour afficher la dernière activité.
Pour en savoir plus, consultez Utiliser le simulateur de playbook.
Aperçu de la demande
Lorsqu'un playbook contenant une boucle s'exécute, des informations sur sa progression et les résultats de chaque itération sont disponibles dans plusieurs zones de la page Requêtes.
Les sections suivantes décrivent comment les widgets, le lecteur de playbook et le mur de requêtes présentent les informations liées à ces boucles.
Widgets
Les widgets prédéfinis dans les résultats de la vue d'ensemble des demandes sont générés à partir de leurs actions correspondantes. Si l'action s'exécute dans une boucle, le widget est mis à jour de manière dynamique pour afficher les résultats de la dernière itération de la boucle.
Lecteur de playbook
Lorsque vous exécutez un playbook avec une boucle, vous pouvez suivre sa progression et les résultats de chaque itération dans le lecteur de playbook. Pour y accéder, sélectionnez l'alerte concernée dans la demande, puis cliquez sur l'onglet Playbooks.
Le lecteur de playbook affiche les boucles et les blocs dans une structure hiérarchique. Cette organisation vous aide à visualiser le flux des processus imbriqués et à comprendre le contexte de chaque étape.
Dans la visionneuse de playbooks, vous pouvez effectuer les opérations suivantes :
- Examinez chaque itération, car les étapes de la boucle sont regroupées.
- Passez d'une itération à l'autre pour examiner les résultats individuels.
- Sélectionnez une étape dans une boucle pour afficher un numéro d'itération dans le panneau latéral.
- Cliquez sur Afficher les résultats pour afficher le nom de la boucle et le numéro d'itération.
Mur des cas
Chaque résultat des itérations de la boucle s'affiche sur le mur de cas, avec une indication de boucle, telle que le numéro d'itération. Cela permet de suivre et de différencier les actions effectuées lors de chaque itération.
Exemples de cas d'utilisation
Cette section fournit des exemples pratiques d'utilisation des boucles de playbooks pour automatiser différents types de workflows.
Analyser les hachages et créer des tickets pour les hachages malveillants
Dans ce cas d'utilisation, procédez comme suit :
- Analysez les hachages de tous les fichiers de l'alerte à l'aide de VirusTotal.
- Créez automatiquement un ticket unique pour chaque fichier identifié comme malveillant.
Pour créer un playbook :
Pour créer un playbook :
- Faites glisser l'action VirusTotal – Enrichir le hachage sur le canevas du playbook et configurez-la avant d'ajouter la boucle.
- Faites glisser l'élément Pour chaque boucle sur le canevas.
- Cliquez sur Début de la boucle.
- Dans l'onglet Paramètres, sélectionnez Entités comme type Répéter.
- Sélectionnez Toutes les entités marquées comme suspectes dans le menu Entités. Cette étape permet de s'assurer que l'exécution de la boucle ne concerne que les entités marquées comme suspectes par l'action VirusTotal – Enrichir le hachage de l'étape précédente.
- Faites glisser une action Create Ticket (Créer une demande) dans la boucle. Le nom et la configuration exacts de cette action varient en fonction de l'intégration du système de billetterie utilisé.
- Dans la configuration de l'action Créer un ticket :
- Saisissez un titre de billet, tel que
Malicious File Detected
. - Dans le champ Description, utilisez le menu des espaces réservés pour insérer des informations sur l'entité actuelle dans la boucle (par exemple,
Entity.Identifier
ouEntity.Type
). Incluez toutes les informations pertinentes de l'enrichissement VirusTotal, désormais associées à l'entité suspecte.
- Saisissez un titre de billet, tel que
Pour chaque hachage de fichier identifié comme malveillant par VirusTotal, un ticket unique est créé avec les informations pertinentes.
Créer des demandes prioritaires pour les fichiers malveillants en fonction du poste de l'utilisateur
Dans ce cas d'utilisation, après avoir identifié les fichiers malveillants (comme dans le cas d'utilisation précédent), créez une demande avec différentes priorités selon que le titre du poste de l'utilisateur interne associé au fichier contient "PDG".
Avant de commencer, assurez-vous d'avoir effectué les étapes initiales du cas d'utilisation précédent :
- Une action VirusTotal – Enrich Hash avant la boucle, ciblant toutes les entités de hachage de fichier.
- Une action For Each Loop itérant sur les entités avec la portée définie sur Toutes les entités marquées comme suspectes.
Pour créer des demandes prioritaires pour les fichiers malveillants, procédez comme suit :
- Ajoutez une action conditionnelle dans la boucle.
- Désactivez l'option Verrouiller le champ d'application sur l'itération pour autoriser l'accès à d'autres entités d'alerte en plus de l'entité en boucle.
- Sélectionnez Utilisateurs internes dans le menu Entités.
- Configurez la condition pour vérifier si
Entity.job
contientCEO
. Cette action définit la priorité sur CRITICAL. - Utilisez la branche ELSE pour gérer un scénario dans lequel
CEO
n'est pas impliqué (la priorité sera alors définie sur HIGH). - Faites glisser une action Create Ticket (Créer une demande) dans la première branche :
- Créez le titre (par exemple,
CRITICAL: Malicious File Detected - Potential CEO Impact
). - Configurez la priorité de l'incident sur CRITICAL.
- Dans le champ Description, incluez les informations pertinentes sur l'utilisateur et les informations issues de l'enrichissement VirusTotal.
- Faites glisser une autre action Create Ticket (Créer une demande) dans la branche ELSE (SINON) :
- Créez le titre (par exemple,
Attention: Malicious File Detected
). - Définissez la priorité de l'incident sur HIGH (ÉLEVÉE).
- Dans le champ Description, incluez les informations pertinentes sur l'utilisateur et les informations issues de l'enrichissement VirusTotal.
Pour chaque fichier malveillant, le playbook vérifie le poste de l'utilisateur interne associé. Si le titre contient CEO
, un ticket de priorité CRITICAL est créé. Sinon, il crée un ticket de priorité HIGH.
Informer les utilisateurs des mots de passe divulgués
Une solution de détection des fuites de données fournit une liste des noms d'utilisateur (adresses e-mail) dont les mots de passe ont été compromis lors d'une récente fuite de données. Vous souhaitez envoyer une notification par e-mail personnalisée à chaque utilisateur concerné, plutôt qu'un seul e-mail à tous les utilisateurs. La liste des utilisateurs concernés est disponible dans le champ alert.affected_users.
Pour créer un playbook :
- Faites glisser une action de boucle Pour chaque sur le canevas du playbook.
- Cliquez sur l'étape Début de la boucle.
- Dans l'onglet Paramètres, sélectionnez Liste comme type Répéter.
- Dans le champ Items (Éléments), utilisez l'espace réservé
alert.affected_users
. - Si la liste dans
alert.affected_users
utilise un délimiteur autre qu'une virgule, modifiez-le dans le champ Délimiteur. - Faites glisser l'action E-mail – Envoyer un e-mail dans la boucle.
- Dans la configuration de l'action E-mail – Envoyer un e-mail :
- Dans le champ Destinataires, utilisez l'espace réservé
Loop.Item
. Lorsque la boucle de liste itère sur la listealert.affected_users
, l'espace réservéLoop.Item
représente l'adresse e-mail en cours de traitement, de sorte que chaque utilisateur reçoit un e-mail unique. - Configurez l'objet et le contenu de l'e-mail pour informer l'utilisateur que son mot de passe a été piraté.
- Dans le champ Destinataires, utilisez l'espace réservé
Chaque utilisateur (adresse e-mail) de la liste alert.affected_users
reçoit une notification par e-mail personnalisée concernant son mot de passe piraté.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.