Automatizar tarefas com loops de playbook
O recurso Loops de playbook se concentra em loops para cada para iterar em listas e executar um conjunto de ações uma vez para cada item.
Com os loops de playbook, é possível processar vários itens, como entidades, de maneira eficiente executando uma única ação ou uma série de ações várias vezes. Isso elimina a necessidade de personalizar ou duplicar ações manualmente quando você precisa realizar etapas repetitivas em várias entidades ou outros tipos de dados. Também é possível simplificar fluxos de trabalho colocando blocos dentro de loops ou incorporando loops dentro de blocos.
Tipos de loop compatíveis
Os loops de playbook são compatíveis com a iteração nos seguintes tipos de dados:
- Entidades: é possível iterar uma lista de entidades em um alerta.
- Listas: é possível iterar uma lista de itens definida pelo usuário ou uma lista resolvida dinamicamente usando um marcador de posição.
Estruturar seus loops
Um loop do Playbook consiste em uma etapa Início do loop e uma etapa Fim do loop correspondente. As ações que você quer repetir para cada item na lista são colocadas entre essas duas etapas.
Início do loop
A etapa Início do loop marca o começo do loop e inclui a configuração dele.
- Você pode atribuir um nome ao loop na etapa Início do loop. Esse nome é mostrado nas etapas Início do loop e Fim do loop.
- Esta etapa define o parâmetro Repetir (Entidades ou Lista) e configura as definições específicas para o tipo selecionado.
- Esta etapa permite configurar o comportamento do loop quando ele atinge o limite de iteração (atualmente limitado a 100 iterações) ou encontra um problema.
- Quando o loop é iniciado, uma marca de seleção aparece.
Fim do loop
A etapa Fim do loop marca o endpoint do loop.
- Não é possível editar diretamente a etapa Fim do loop. A configuração dela está vinculada à etapa Início do loop.
- Quando o loop conclui todas as iterações, a etapa Fim do loop retorna um status de sucesso (indicado por uma marca de seleção), e um resultado JSON inclui o número de iterações executadas.
- Se o loop for interrompido antes de processar todos os itens (por atingir o limite máximo de iteração), o resultado JSON vai incluir uma lista de itens ignorados.
Definir ações no loop
As ações colocadas entre as etapas Início do loop e Fim do loop são executadas repetidamente. Você pode arrastar qualquer ação padrão do manual para essa área, incluindo ações e blocos condicionais.
Loops que iteram entidades
Por padrão, quando um loop itera em entidades, as ações dentro desse loop são aplicadas apenas à entidade atual em cada iteração. A ação processa uma entidade por vez à medida que o loop avança.
Para ações que operam em entidades (por exemplo, VirusTotal - Enriquecer hash), o escopo é definido automaticamente para a entidade atual no loop. Os marcadores de posição de entidade usados no loop também fazem referência apenas à entidade do loop atual.
Para ilustrar isso, considere o seguinte caso de uso: Verificar hashes e criar tíquetes para os maliciosos.
Loops avançados que iteram entidades
Em alguns casos de uso, talvez seja necessário acessar as informações da entidade iterada atual e de outras entidades de alerta. Para isso, desative a opção Bloquear escopo para iteração na ação de loop específica.
- Quando a opção está ativada, os dados e marcadores de posição de entidade são restritos apenas à entidade em repetição atual.
- Quando a opção está desativada, os dados e marcadores de posição de entidade podem acessar todas as entidades de alerta com base na configuração do menu Entidades.
- Use marcadores de posição
Entity
para acessar dados de entidades em todo o alerta. - Use
Loop.Entity
para referenciar apenas a entidade em loop atual.
Para ilustrar isso, considere este caso de uso: Criar tíquetes de prioridade para arquivos maliciosos com base no cargo do usuário.
Repetições que iteram listas
Um loop pode executar um conjunto de ações para cada item em uma lista definida, em que é possível fazer o seguinte:
- Defina a lista diretamente ou use um marcador de posição que seja resolvido como uma lista.
- Personalize o delimitador de acordo com suas necessidades (por exemplo, uma vírgula ou uma barra).
- Faça referência ao item iterado usando o marcador de posição
Loop.item
.
Para ilustrar isso, considere o caso de uso a seguir: Notificar usuários sobre senhas vazadas.
Trabalhar com blocos dentro de loops
É possível incluir blocos de playbook diretamente em um loop. Quando um bloco é arrastado para um loop, as ações dele são executadas uma vez para cada item ou entidade que o loop processa.
Se o loop iterar sobre entidades, o bloco vai incluir uma opção de alternância Bloquear escopo para iteração. Essa opção controla como as ações dentro dos dados da entidade de bloqueio de acesso:
- Ative:todas as etapas dentro do bloco são definidas para a entidade atual nessa iteração de loop específica. Isso garante que todos os marcadores de posição e ações de entidade no bloco operem apenas nos dados relevantes para essa iteração.
- Desativar:as etapas dentro do bloco têm acesso a todas as entidades de alerta. O bloco recebe todas as entidades do alerta, não apenas aquela que está sendo processada pelo loop principal. Nesse caso, os marcadores de posição
loop.entity
são mostrados no menu e podem ser usados para acessar apenas a entidade iterada.
Trabalhar com loops dentro de blocos
É possível colocar loops dentro de blocos de playbook para realizar tarefas repetidas como parte da lógica do bloco. Isso permite iterar itens ou entidades em uma seção com escopo do playbook.
Configurar um loop dentro de um bloco segue o mesmo processo de configurar qualquer outro loop em um playbook.
Para mais detalhes, consulte Configurar ações do Playbook Loop.
Configurar ações de loop do playbook
Para configurar ações de loop do playbook, siga estas etapas:
- No menu Navegação, acesse Resposta > Playbooks.
- Abra o playbook que você quer modificar ou crie um.
- Clique em + Abrir seleção de etapa.
- Clique na guia Loops.
- Arraste a ação Para cada loop até a tela do playbook. Isso cria automaticamente as etapas Início do loop e Fim do loop com uma área designada para adicionar ações entre elas.
- Configure o Início do loop:
- Clique na etapa Início do loop para abrir o painel lateral Loop para cada.
- Na guia Parâmetros, selecione o que repetir (Entidades ou Lista).
- Entidades:selecione o escopo da entidade (Todas as entidades, Entidades suspeitas ou escopo personalizado).
- Lista:no campo Itens, insira sua lista de itens, manualmente ou com um marcador de posição. Defina o delimitador (por exemplo, vírgula ou barra) para separar os itens.
- Na guia Configurações, configure o comportamento do loop:
- Tipo de ação:escolha entre Automático (começa imediatamente) ou Manual (requer ação do usuário).
- Se a etapa falhar ou o número máximo de iterações for excedido:selecione se o loop deve Ignorar os itens restantes e continuar ou Parar o playbook.
- Adicione ações antes ou depois do loop para preparar dados ou processar os resultados dele.
Limitações
Os links de aprovação não são compatíveis com loops de playbook.
Trabalhar com visualizações e loops de playbook
Esta seção explica como os widgets personalizados e pré-criados mostram informações de loops de playbook nas visualizações e aborda aspectos importantes da visualização de dados gerados por loops.
Widgets personalizados
Embora não seja possível referenciar diretamente os marcadores de posição das etapas de loop interno, você pode agregar resultados durante a execução do loop e mostrá-los no widget. Para mostrar resultados agregados em um widget personalizado, use valores de contexto no loop. Por exemplo, use a ação Adicionar ao valor de contexto do power-up Ferramentas.
Widgets pré-criados
O Google oferece widgets pré-criados que se integram perfeitamente às ações compatíveis no designer de playbook. Quando você arrasta uma ação compatível para o designer de playbook, o sistema sugere widgets pré-criados relevantes. Esses widgets se conectam diretamente à ação, mesmo quando usados em um loop.
Repetições no simulador de playbooks
O simulador de playbook oferece uma visualização detalhada para playbooks que incluem loops e blocos. Ele também é compatível com estruturas aninhadas, como loops aninhados em blocos e blocos aninhados em loops. No visualizador do simulador, as etapas aparecem de cima para baixo (da mais antiga para a mais recente), com rolagem automática para mostrar a atividade mais recente.
Para mais informações, consulte Trabalhar com o Simulador de playbook.
Visão geral do caso
Quando um playbook com um loop é executado, as informações sobre o progresso e os resultados de cada iteração podem ser encontradas em várias áreas da página Casos.
As seções a seguir descrevem como os widgets, o visualizador de playbook e o mural de casos apresentam informações relacionadas a esses loops.
Widgets
Os widgets pré-criados em Visão geral do caso resultam das ações correspondentes. Se a ação for executada em um loop, o widget será atualizado dinamicamente para mostrar os resultados da iteração mais recente.
Visualizador de playbooks
Ao executar um playbook com um loop, é possível acompanhar o progresso e os resultados de cada iteração no visualizador de playbook. Para acessar, selecione o alerta relevante no caso e clique na guia Playbooks.
O visualizador de playbook mostra loops e blocos em uma estrutura hierárquica. Essa organização ajuda a visualizar o fluxo de processos aninhados e entender o contexto de cada etapa.
No visualizador de playbook, você pode fazer o seguinte:
- Revise cada iteração, já que as etapas do loop são agrupadas.
- Navegue entre as iterações para examinar os resultados individuais.
- Selecione uma etapa em um loop para mostrar um número de iteração na gaveta lateral.
- Clique em Ver resultados para mostrar o nome do loop e o número da iteração.
Painel de casos
Cada resultado das iterações do loop aparece no Case Wall, junto com uma indicação de loop, como o número da iteração. Isso ajuda a rastrear e diferenciar as ações realizadas durante cada iteração.
Exemplos de casos de uso
Nesta seção, mostramos exemplos práticos de como os loops de playbook podem ser usados para automatizar diferentes tipos de fluxos de trabalho.
Verificar hashes e criar tíquetes para os maliciosos
Neste caso de uso, siga estas etapas:
- Verifique os hashes de todos os arquivos no alerta usando o VirusTotal.
- Criar automaticamente um tíquete exclusivo para cada arquivo identificado como malicioso.
Siga estas etapas para criar um playbook:
Siga estas etapas para criar um playbook:
- Arraste a ação VirusTotal - Enriquecer hash para a tela do playbook e configure-a antes de adicionar o loop.
- Arraste o elemento Para cada loop até o quadro.
- Clique em Início do loop.
- Na guia Parâmetros, selecione Entidades como o tipo Repetir em.
- Selecione Todas as entidades marcadas como suspeitas no menu Entidades. Essa etapa garante que a execução do loop seja limitada apenas às entidades marcadas como suspeitas pela ação VirusTotal - Enriquecer hash na etapa anterior.
- Arraste uma ação Criar tíquete para o loop. O nome e a configuração exatos dessa ação variam de acordo com a integração do sistema de tíquetes em uso.
- Na configuração da ação Criar tíquete:
- Insira um título para o tíquete, como
Malicious File Detected
. - No campo Descrição, use o menu de marcador de posição para inserir detalhes sobre a entidade atual no loop (por exemplo,
Entity.Identifier
ouEntity.Type
). Inclua todas as informações relevantes do enriquecimento do VirusTotal, agora associadas à entidade suspeita.
- Insira um título para o tíquete, como
Para cada hash de arquivo identificado como malicioso pelo VirusTotal, um tíquete exclusivo é criado com os detalhes relevantes.
Criar tíquetes de prioridade para arquivos maliciosos com base no cargo do usuário
Nesse caso de uso, depois de identificar arquivos maliciosos (como feito no caso de uso anterior), crie um novo tíquete com prioridades diferentes com base em se o usuário interno associado ao arquivo tem um cargo que contém "CEO".
Antes de começar, verifique se você concluiu as etapas iniciais do caso de uso anterior:
- Uma ação VirusTotal - Enriquecer hash antes do loop, segmentando todas as entidades de hash de arquivo.
- Uma ação de repetição "para cada" que itera em entidades com o escopo definido como Todas as entidades marcadas como suspeitas.
Para criar tíquetes de prioridade para arquivos maliciosos, siga estas etapas:
- Adicione uma ação condicional dentro do loop.
- Desative a opção Bloquear escopo para iteração para permitir o acesso a outras entidades de alerta além da entidade em loop.
- Selecione Usuários internos no menu Entidades.
- Configure a condição para verificar se
Entity.job
contémCEO
. Essa ação define a prioridade como CRITICAL. - Use a ramificação ELSE para processar um cenário em que o
CEO
não está envolvido (isso vai definir a prioridade como ALTA). - Arraste uma ação Criar tíquete para a primeira ramificação:
- Crie o título (por exemplo,
CRITICAL: Malicious File Detected - Potential CEO Impact
). - Configure a prioridade do incidente como CRITICAL.
- No campo Descrição, inclua detalhes relevantes sobre o usuário e informações do enriquecimento do VirusTotal.
- Arraste outra ação Criar tíquete para a ramificação ELSE:
- Crie o título (por exemplo,
Attention: Malicious File Detected
). - Configure a prioridade do incidente como ALTA.
- No campo Descrição, inclua detalhes relevantes sobre o usuário e informações do enriquecimento do VirusTotal.
Para cada arquivo malicioso, o playbook verifica o cargo do usuário interno associado. Se o título contiver CEO
, um tíquete de prioridade CRITICAL será criado. Caso contrário, ele cria um tíquete de prioridade ALTA.
Notificar usuários sobre senhas vazadas
Uma solução de detecção de vazamento de dados fornece uma lista de nomes de usuário (endereços de e-mail) cujas senhas foram comprometidas em um vazamento de dados recente. Você quer enviar uma notificação por e-mail personalizada para cada usuário afetado, em vez de enviar um único e-mail para todos. A lista de usuários afetados está disponível no campo alert.affected_users.
Siga estas etapas para criar um playbook:
- Arraste uma ação de loop Para cada até a tela do playbook.
- Clique na etapa Início do loop.
- Na guia Parâmetros, selecione Lista como o tipo de Loop em.
- No campo Itens, use o marcador de posição
alert.affected_users
. - Se a lista em
alert.affected_users
usar um delimitador diferente de uma vírgula, atualize esse delimitador no campo Delimitador. - Arraste a ação E-mail - Enviar e-mail para o loop.
- Na configuração da ação E-mail - Enviar e-mail:
- No campo Destinatários, use o marcador de posição
Loop.Item
. Quando o loop "List" itera sobre a listaalert.affected_users
, o marcador de posiçãoLoop.Item
representa o endereço de e-mail atual que está sendo processado. Assim, cada usuário recebe um e-mail exclusivo. - Configure o Assunto e o Conteúdo do e-mail para informar o usuário sobre a senha comprometida.
- No campo Destinatários, use o marcador de posição
Cada usuário (endereço de e-mail) na lista alert.affected_users
recebe uma notificação por e-mail personalizada sobre a senha comprometida.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.