Automatizar tareas con bucles de guías

Disponible en:

La función Bucle de guía se centra en los bucles foreach para iterar listas y ejecutar un conjunto de acciones una vez por cada elemento.

Con Playbook Loops, puedes procesar de forma eficiente varios elementos, como entidades, ejecutando una sola acción o una serie de acciones varias veces. De esta forma, no es necesario personalizar ni duplicar manualmente las acciones cuando tengas que realizar pasos repetitivos en varias entidades u otros tipos de datos. También puedes optimizar los flujos de trabajo colocando bloques dentro de bucles o insertando bucles dentro de bloques.

Tipos de bucles admitidos

Los bucles de Playbook admiten la iteración de los siguientes tipos de datos:

  • Entidades: puedes iterar sobre una lista de entidades dentro de una alerta.
  • Listas: puedes iterar sobre una lista de elementos definida por el usuario o una lista resuelta dinámicamente mediante un marcador de posición.

Estructurar los bucles

Un bucle de la guía consta de un paso Inicio del bucle y un paso Fin del bucle correspondiente. Las acciones que quieras repetir para cada elemento de la lista se colocan entre estos dos pasos.

Inicio del bucle

El paso Inicio del bucle marca el principio del bucle e incluye su configuración.

  • Puedes asignar un nombre al bucle en el paso Iniciar bucle. Este nombre se muestra en los pasos Inicio del bucle y Fin del bucle.
  • En este paso se define el parámetro Iterar sobre (Entidades o Lista) y se configuran los ajustes específicos del tipo seleccionado.
  • Este paso te permite configurar el comportamiento del bucle cuando alcanza su límite de iteraciones (actualmente, 100 iteraciones) o cuando se produce un problema.
  • Cuando el bucle se inicia correctamente, aparece una marca de verificación.

Fin del bucle

El paso Fin de bucle marca el punto final del bucle.

  • No puedes editar directamente el paso Fin del bucle, ya que su configuración está vinculada al paso Inicio del bucle.
  • Cuando el bucle completa todas sus iteraciones correctamente, el paso Fin de bucle devuelve un estado de éxito (indicado con una marca de verificación) y un resultado JSON incluye el número de iteraciones ejecutadas.
  • Si el bucle se detiene antes de procesar todos los elementos (porque se ha alcanzado el límite máximo de iteraciones), el resultado JSON incluye una lista de elementos omitidos.

Definir acciones dentro del bucle

Las acciones que se colocan entre los pasos Inicio de bucle y Fin de bucle se ejecutan repetidamente. Puedes arrastrar cualquier acción de guía estándar a esta zona, incluidas las acciones y los bloques condicionales.

Bucles que iteran sobre entidades

De forma predeterminada, cuando un bucle itera sobre entidades, las acciones de ese bucle solo se aplican a la entidad actual en cada iteración. La acción procesa una entidad a la vez a medida que avanza el bucle.

En el caso de las acciones que operan en entidades (por ejemplo, VirusTotal - Enrich Hash), la acción se limita automáticamente a la entidad actual dentro del bucle. Los marcadores de posición de entidad que se usan en el bucle también hacen referencia únicamente a la entidad del bucle actual.

Para ilustrarlo, vamos a ver este caso práctico: Analizar hashes y crear incidencias para los maliciosos.

Bucles avanzados que iteran sobre entidades

En algunos casos prácticos, es posible que necesites acceder tanto a la información de la entidad iterada actual como a otras entidades de alerta. Para ello, desactiva el interruptor Bloquear ámbito a iteración de esa acción de bucle específica.

  • Cuando el interruptor está activado, los datos de la entidad y los marcadores de posición se restringen solo a la entidad en bucle actual.
  • Si el interruptor está desactivado, los datos de las entidades y los marcadores de posición pueden acceder a todas las entidades de alerta, según la configuración del menú Entidades.
    • Usa marcadores de posición Entity para acceder a los datos de la entidad de toda la alerta.
    • Usa Loop.Entity para hacer referencia solo a la entidad en bucle actual.

Para ilustrarlo, veamos este caso práctico: Crear incidencias prioritarias para archivos maliciosos en función del cargo del usuario.

Bucles que iteran en listas

Un bucle puede ejecutar un conjunto de acciones para cada elemento de una lista definida, donde puedes hacer lo siguiente:

  • Define la lista directamente o usa un marcador de posición que se resuelva en una lista.
  • Personalice el delimitador según sus necesidades (por ejemplo, una coma o una barra).
  • Haga referencia al elemento iterado mediante el marcador de posición Loop.item.

Para ilustrarlo, veamos este caso práctico: Notificar a los usuarios que se han filtrado sus contraseñas.

Trabajar con bloques dentro de bucles

Puedes incluir bloques de guía directamente en un bucle. Cuando se arrastra un bloque a un bucle, sus acciones se ejecutan una vez por cada elemento o entidad que procesa el bucle.

Si el bucle itera sobre entidades, el bloque incluye un interruptor Bloquear ámbito a iteración. Este interruptor controla cómo se comportan las acciones dentro de la entidad de acceso al bloque de datos:

  • Activado: todos los pasos del bloque se limitan a la entidad actual en esa iteración específica del bucle. De esta forma, los marcadores de posición y las acciones de entidades del bloque solo operan en los datos relevantes de esa iteración.
  • Desactivar: los pasos del bloque tienen acceso a todas las entidades de alerta. El bloque recibe todas las entidades de la alerta, no solo la que está procesando el bucle principal. En este caso, se muestran marcadores de posición loop.entity en el menú y solo se pueden usar para acceder a la entidad iterada.

Trabajar con bucles dentro de bloques

Puedes colocar bucles dentro de los bloques de un libro de jugadas para realizar tareas repetitivas como parte de la lógica del bloque. De esta forma, puedes iterar sobre elementos o entidades de una sección acotada del manual.

Para configurar un bucle dentro de un bloque, se sigue el mismo proceso que para configurar cualquier otro bucle en un manual de procedimientos.

Para obtener más información, consulta Configurar acciones de Playbook Loop.

Configurar acciones de bucle de guía

Para configurar las acciones de bucle de la guía, sigue estos pasos:

  1. En el menú Navegación, ve a Respuesta > Playbooks.
  2. Abre el manual que quieras modificar o crea uno nuevo.
  3. Haz clic en + Abrir selección de pasos.
  4. Haz clic en la pestaña Bucles.
  5. Arrastra la acción En cada bucle al lienzo de la guía. De esta forma, se crearán automáticamente los pasos Inicio de bucle y Fin de bucle, con un área designada para añadir acciones entre ellos.
  6. Configura el Inicio del bucle:
    1. Haz clic en el paso Inicio del bucle para abrir el panel lateral Bucle por cada elemento.
      1. En la pestaña Parámetros, selecciona lo que quieras Iterar (Entidades o Lista).
        • Entidades: selecciona el ámbito de la entidad (Todas las entidades, Entidades sospechosas o ámbito personalizado).
        • Lista: en el campo Elementos, introduce la lista de elementos, ya sea manualmente o con un marcador de posición. Define el delimitador (por ejemplo, una coma o una barra) para separar los elementos.
      2. En la pestaña Configuración, configura el comportamiento del bucle:
        • Tipo de acción: elige entre Automático (se inicia inmediatamente) o Manual (requiere la acción del usuario).
        • Si el paso falla o se supera el número máximo de iteraciones: selecciona si el bucle debe Saltar los elementos restantes y continuar o Detener la guía.
  7. Añade acciones antes o después del bucle para preparar los datos o procesar los resultados del bucle.

Limitaciones

Los enlaces de aprobación no se admiten en los bucles de cuadernos de estrategias.

Trabajar con vistas y bucles de guías

En esta sección se explica cómo muestran la información los widgets personalizados y predefinidos de los bucles de cuadernos de estrategias en las vistas, y se tratan aspectos importantes de la visualización de datos generados por bucles.

Widgets personalizados

Aunque no puedes hacer referencia directamente a marcadores de posición de pasos de bucle internos, puedes agregar resultados durante la ejecución del bucle y mostrarlos en el widget. Para mostrar resultados agregados en un widget personalizado, usa valores de contexto en el bucle (por ejemplo, usa la acción Añadir a valor de contexto de la potencia Herramientas).

Widgets prediseñados

Google proporciona widgets prediseñados que se integran perfectamente con las acciones admitidas en el diseñador de playbooks. Cuando arrastras una acción admitida al diseñador de cuadernos de estrategias, el sistema sugiere widgets predefinidos relevantes. Estos widgets se conectan directamente a la acción, incluso cuando se usan dentro de un bucle.

Bucles en el simulador de guías

El simulador de guías ofrece una visualización detallada de las guías que incluyen bucles y bloques. También admite estructuras anidadas, como bucles anidados en bloques y bloques anidados en bucles. En el visor del simulador, los pasos se muestran de arriba abajo (el más antiguo en la parte superior y el más reciente en la parte inferior), con desplazamiento automático para mostrar la actividad más reciente.

Para obtener más información, consulta Trabajar con el simulador de Playbook.

Descripción general del caso

Cuando se ejecuta un manual de respuestas que contiene un bucle, la información sobre su progreso y los resultados de cada iteración se pueden encontrar en varias áreas de la página Casos.

En las siguientes secciones se describe cómo presentan los widgets, el visor de manuales y el muro de casos información relacionada con estos bucles.

Widgets

Los widgets predefinidos de Resumen del caso se basan en las acciones correspondientes. Si la acción se ejecuta dentro de un bucle, el widget se actualiza dinámicamente para mostrar los resultados de la última iteración del bucle.

Visualizador de guía

Cuando ejecutas una guía con un bucle, puedes monitorizar su progreso y los resultados de cada iteración en el visor de guías. Para acceder a esta función, selecciona la alerta correspondiente en el caso y haz clic en la pestaña Guías.

El visor de guiones muestra los bucles y los bloques en una estructura jerárquica. Esta organización te ayuda a visualizar el flujo de los procesos anidados y a entender el contexto de cada paso.

En el visor de guías, puedes hacer lo siguiente:

  • Revisa cada iteración, ya que los pasos del bucle se agrupan.
  • Desplázate entre las iteraciones para examinar los resultados individuales.
  • Selecciona un paso de un bucle para que se muestre un número de iteración en el panel lateral.
  • Haz clic en Ver resultados para mostrar el nombre del bucle y el número de iteración.

Panel de casos

Cada resultado de las iteraciones del bucle aparece en el Panel de casos, junto con una indicación del bucle, como el número de iteración. Esto ayuda a hacer un seguimiento de las acciones realizadas durante cada iteración y a diferenciarlas.

Ejemplos de uso

En esta sección se proporcionan ejemplos prácticos de cómo se pueden usar los bucles de cuadernos de estrategias para automatizar diferentes tipos de flujos de trabajo.

Analiza los hashes y crea tickets para los que sean maliciosos

En este caso práctico, sigue estos pasos:

  1. Analiza los hashes de todos los archivos de la alerta con VirusTotal.
  2. Crea automáticamente un ticket único para cada archivo identificado como malicioso.

Para crear una guía, sigue estos pasos:

Sigue estos pasos para crear un manual de procedimientos:

  1. Arrastra la acción VirusTotal - Enrich Hash al lienzo del cuaderno de estrategias y configúrala antes de añadir el bucle.
  2. Arrastra el bucle For Each al lienzo.
  3. Haz clic en Inicio del bucle.
    1. En la pestaña Parámetros, selecciona Entidades como tipo de Iteración.
    2. Selecciona Todas las entidades marcadas como sospechosas en el menú Entidades. Este paso asegura que la ejecución del bucle se limite solo a las entidades marcadas como sospechosas por la acción VirusTotal - Enrich Hash (VirusTotal - Enriquecer hash) del paso anterior.
  4. Arrastra una acción Crear incidencia a la iteración. El nombre exacto y la configuración de esta acción varían en función de la integración del sistema de asistencia que se utilice.
  5. En la configuración de la acción Crear incidencia:
    1. Escribe un título para la incidencia, como Malicious File Detected.
    2. En el campo Descripción, usa el menú de marcadores de posición para insertar detalles sobre la entidad actual en el bucle (por ejemplo, Entity.Identifier o Entity.Type). Incluye cualquier información relevante del enriquecimiento de VirusTotal, que ahora está asociada a la entidad sospechosa.

Por cada hash de archivo que VirusTotal haya identificado como malicioso, se crea un ticket único con los detalles pertinentes.

Crear incidencias prioritarias para archivos maliciosos en función del puesto del usuario

En este caso práctico, después de identificar los archivos maliciosos (como se ha hecho en el caso práctico anterior), crea un nuevo ticket con diferentes prioridades en función de si el usuario interno asociado al archivo tiene un puesto que incluya "CEO".

Antes de empezar, asegúrate de que has completado los pasos iniciales del caso práctico anterior:

  • Una acción VirusTotal - Enriquecer hash antes del bucle, dirigida a todas las entidades de hash de archivo.
  • Una acción Bucle For Each que itera sobre entidades con el ámbito definido como Todas las entidades marcadas como sospechosas.

Para crear incidencias prioritarias para archivos maliciosos, sigue estos pasos:

  1. Añade una acción condicional dentro del bucle.
    1. Desactiva el interruptor Bloquear ámbito a iteración para permitir el acceso a otras entidades de alerta además de la entidad en bucle.
    2. En el menú Entidades, selecciona Usuarios internos.
    3. Configura la condición para comprobar si Entity.job contiene CEO. Esta acción asigna la prioridad CRITICAL.
    4. Usa la rama ELSE para gestionar una situación en la que no se incluya CEO (esto asignará la prioridad ALTA).
  2. Arrastra una acción Crear ticket a la primera rama:
    1. Crea el título (por ejemplo, CRITICAL: Malicious File Detected - Potential CEO Impact).
    2. Configura la prioridad del incidente como CRITICAL.
    3. En el campo Descripción, incluya detalles relevantes sobre el usuario e información del enriquecimiento de VirusTotal.
  3. Arrastra otra acción Crear ticket a la rama ELSE:
    1. Crea el título (por ejemplo, Attention: Malicious File Detected).
    2. Configure la prioridad del incidente como ALTA.
    3. En el campo Descripción, incluya detalles relevantes sobre el usuario e información del enriquecimiento de VirusTotal.

En cada archivo malicioso, el manual de procedimientos comprueba el cargo del usuario interno asociado. Si el título contiene CEO, se crea un ticket de prioridad CRITICAL. De lo contrario, se creará una incidencia de prioridad ALTA.

Notificar a los usuarios sobre contraseñas filtradas

Una solución de detección de filtraciones de datos proporciona una lista de nombres de usuario (direcciones de correo electrónico) cuyas contraseñas se han visto comprometidas en una filtración de datos reciente. Quieres enviar una notificación de correo personalizada a cada usuario afectado, en lugar de enviar un solo correo a todos los usuarios. La lista de usuarios afectados está disponible en el campo alert.affected_users.

Para crear una guía, sigue estos pasos:

  1. Arrastra una acción de bucle Por cada al lienzo de la guía.
  2. Haz clic en el paso Inicio de bucle.
    1. En la pestaña Parámetros, selecciona Lista como tipo de Iteración.
    2. En el campo Items, usa el marcador de posición alert.affected_users.
  3. Si la lista de alert.affected_users usa un delimitador que no sea una coma, actualice ese delimitador en el campo Delimitador.
  4. Arrastra la acción Correo - Enviar correo a la iteración.
  5. En la configuración de la acción Correo - Enviar correo, haz lo siguiente:
    1. En el campo Destinatarios, usa el marcador de posición Loop.Item. Cuando el bucle List itera sobre la lista alert.affected_users, el marcador de posición Loop.Item representa la dirección de correo que se está procesando, de modo que cada usuario recibe un correo único.
    2. Configura el Asunto y el Contenido del correo para informar al usuario de que su contraseña se ha visto comprometida.

Cada usuario (dirección de correo electrónico) de la lista alert.affected_users recibe una notificación por correo personalizada sobre su contraseña vulnerada.

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.