Usar fluxos em playbooks
Compatível com:
Este documento explica como o componente Fluxo direciona as próximas etapas de um playbook usando um sistema de ramificação para tomar decisões.
Os fluxos de condição são essenciais para permitir que um playbook tome decisões, encaminhando um caso por caminhos diferentes com base nos dados de alerta recebidos, nos resultados de ações anteriores ou na entrada do usuário.
As seguintes opções de fluxo estão disponíveis:
- Condição: condições complexas baseadas em marcadores de posição, dados de casos atuais e o fluxo Ações anteriores.
- Pergunta de múltipla escolha: perguntas que os analistas precisam responder manualmente.
Adicionar fluxos de condição
Nesta seção, descrevemos como usar fluxos de condição para criar uma lógica dinâmica e ramificada nos playbooks.
Adicionar um fluxo de condição única
Para adicionar um único fluxo de condição, siga estas etapas:
- Na página Resposta > Playbooks, clique em Abrir seleção de etapas.
- Em Seleção de etapa, selecione a seção Fluxo.
- Arraste a condição para a etapa ou entre duas ações, dependendo de como você está criando o playbook.
- Clique duas vezes na condição para abrir a caixa de diálogo.
- Selecione as entidades necessárias. Se você estiver usando marcadores de posição, eles serão definidos para esse grupo de entidades.
- Decida quantas ramificações você quer criar. Cada ramificação tem um OR entre elas.
- Selecione e adicione parâmetros para cada ramificação da seguinte forma:
- Selecione o marcador de posição relevante que você quer avaliar na lista de marcadores de posição atuais. Para novos usuários, esse campo fica vazio se você ainda não ingeriu nenhum alerta.
- Selecione o operador necessário (por exemplo, Igual a, Não contém).
- Escolha um valor.
- Defina uma "ramificação de fallback" para evitar condições com falha. Se uma condição for baseada em ações anteriores e uma delas falhar (e for ignorada), a condição vai continuar para a ramificação de substituição, em vez de parar. Para selecionar uma ramificação substituta, consulte Definir uma ramificação substituta.
- Clique em Salvar. O manual agora tem três ramificações: 1, 2 e E (Else).
- Defina o resultado de pelo menos uma ramificação para marcar o playbook como concluído.
Adicionar um fluxo de perguntas de múltipla escolha
- Arraste a condição Perguntas de múltipla escolha para a caixa Etapa final.
- Clique em Perguntas de múltipla escolha para abrir a caixa de diálogo.
- Adicione uma pergunta com quantas respostas forem necessárias.
- Clique em Salvar. O playbook abre quatro ramificações.
- Defina o resultado de pelo menos uma ramificação para marcá-la como concluída.
Adicionar um fluxo de condições
Para adicionar um fluxo de condições, siga estas etapas:
- Arraste as Condições para a caixa Etapa final.
- Clique em Condições para abrir a caixa de diálogo.
- Decida quantas ramificações criar. Cada ramificação tem um OR entre elas.
- Adicionar um parâmetro: selecione o parâmetro necessário. A lista mostra apenas os resultados do script de ação deste playbook.
- Selecione o operador necessário: Igual a/Diferente de, Contém/Não contém, Começa com ou Maior que/Menor que.
- Escolha o valor (o resultado da ação).
- É possível adicionar mais parâmetros a cada ramificação e escolher um operador lógico: AND ou OR.
- Clique em Salvar. O playbook abre três ramificações: 1, 2 e Else.
- Defina o resultado de pelo menos uma ramificação para concluir o playbook.
Definir uma ramificação de fallback
- Em um dos fluxos (condição), selecione a ramificação que será usada como alternativa. Este exemplo usa Branch – not risky. Não é necessário adicionar uma ramificação de substituição.
- Quando o playbook é executado e as ações anteriores falham, ele escolhe a ramificação de substituição e continua.
Gerenciar falhas de etapa
As etapas do playbook podem falhar durante a execução. Por padrão, um playbook é projetado para parar se uma etapa falhar. Esse é um mecanismo de segurança crucial para evitar a continuidade com dados incompletos ou incorretos. No entanto, há casos em que você quer que um playbook continue mesmo que uma etapa não retorne os resultados esperados. Isso é especialmente verdadeiro para ações de enriquecimento em que os dados que você está procurando podem não existir em todos os casos. Você pode decidir se quer interromper o manual ou pular para a próxima etapa. Se a etapa com falha for crucial para a tomada de decisões, verifique se a etapa anterior falhou na próxima e decida como proceder de acordo (por exemplo, se uma etapa falhar, vá para uma ramificação de substituição).
Pular em caso de falha
Para qualquer ação, é possível configurar para pular a etapa se ela falhar. Quando você ativa essa configuração, o playbook continua para a próxima etapa, mesmo que a ação não seja executada ou retorne um erro.
Para ativar essa configuração, siga estas etapas:
- Clique duas vezes no bloco de ação para abrir o painel de configurações.
- Na guia Configurações, acesse a seção Se a etapa falhar.
- Selecione Pular etapa.
Usar uma condição para tratamento de erros avançado
A opção "pular se falhar" funciona bem para casos básicos, mas um método mais robusto é usar um fluxo de condição para criar um caminho dedicado de tratamento de erros. Isso permite que o playbook execute um conjunto diferente de ações quando uma etapa falha, como notificar um analista ou registrar o erro.
Para criar um caminho de tratamento de erros, siga estas etapas:
- Depois de uma ação que pode falhar e para a qual você quer definir um caminho de falha específico, adicione um bloco de fluxo Condição.
- Clique duas vezes no bloco Condição para abrir a caixa de diálogo.
- Acesse a guia Configurações e, na seção Se a ação anterior falhar, selecione para qual ramificação direcionar o fluxo. Importante: a condição Se a ação anterior falhar não verifica apenas qualquer falha anterior. Ela verifica se uma ação anterior, cujos resultados estão sendo usados na avaliação da condição atual, falhou. Se essa ação dependente falhar, a condição não poderá ser decidida, e o fluxo será direcionado para a ramificação selecionada. Isso permite que você processe casos em que uma dependência falhou, impedindo que a condição seja resolvida.
- Nessa ramificação de falha, você pode adicionar ações como enviar um e-mail de notificação, criar uma tarefa ou registrar a falha.
Por exemplo, considere um playbook que tenta resolver o proprietário de um usuário. Se a ação Resolver proprietário do usuário falhar (por exemplo, se o usuário não existir no Active Directory), o playbook não será interrompido. Em vez disso, o bloco de condição vai detectar a falha e direcionar o fluxo para uma ramificação separada, onde poderá enviar um e-mail à equipe de segurança sobre os dados ausentes, garantindo que o playbook continue sendo executado sem interrupção. <
Remover um fluxo
Ao remover um fluxo de um playbook, o sistema pede que você remova toda a ramificação ou apenas um aspecto dela.
Mesclar ramificações
Você pode mesclar diferentes ramificações do playbook em uma só. Para fazer isso, arraste uma ação de uma das ramificações e solte na caixa Etapa final de outra ramificação. O playbook pode continuar depois disso ou terminar aqui.
Como os operadores lógicos funcionam em uma condição
Esta seção explica como os operadores condicionais nos playbooks avaliam campos com um ou vários itens (por exemplo, entidades ou eventos em um alerta). É fundamental entender se um campo é uma string ou uma lista para a lógica do playbook.
O papel dos tipos de dados na avaliação de condições
O comportamento do operador (Equals, Contains) varia de acordo com o tipo de dados:
- Contexto de item único:campos como
[Entity.Identifier]de um alerta com uma entidade são tratados como uma string única. - Contexto de vários itens:o mesmo campo de um alerta com várias entidades é uma lista de strings.
Comportamento do operador de equals e contains
As seções a seguir explicam como esses operadores funcionam.
Operador Equals
O operador Equals compara diretamente dois valores.
- O campo de item único (string) verifica se há uma correspondência exata.
- Supondo que
[Entity.Identifier]seja"Tom". - Então, a condição
if [Entity.Identifier] equals "Tom"é True.
- Supondo que
- O campo de vários itens (lista) verifica se a lista inteira é igual à string especificada. Uma lista nunca será igual a uma única string.
- Supondo que
[Entity.Identifier]seja uma lista(Tom, Kai) - Então, a condição
if [Entity.Identifier] equals "Tom, Kai"é sempre Falsa. Isso acontece porque[Entity.Identifier]é uma lista e "Tom, Kai" é uma string.
- Supondo que
Operador Contains
O operador Contains também muda de acordo com o tipo de dados:
- O campo de item único (string) realiza uma pesquisa de substring. Retorna
Truese a string contiver o valor.- Supondo que
[Entity.Identifier]seja"user-1234". - Então, a condição
if [Entity.Identifier] contains "user"é True.
- Supondo que
- O campo de vários itens (lista) verifica se há uma correspondência exata de um item na lista. Nenhuma pesquisa de substring é realizada.
- Supondo que
[Entity.Identifier]seja uma lista ("UserA@corp.com", "UserB@corp.com"). - Então, a condição
if [Entity.Identifier] contains "corp"é False.
- Supondo que
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.