Configurar campos calculados

Compatível com:

Este guia é destinado a analistas de segurança e gerentes de SOC que querem automatizar o aprimoramento de dados nas operações de segurança. Ele explica como criar e gerenciar campos calculados usando fórmulas lógicas para derivar novos valores de dados de casos e alertas atuais. Ao seguir esse método, você elimina a entrada manual de dados e garante que as métricas críticas sejam atualizadas em tempo real. A conclusão bem-sucedida melhora os recursos analíticos da plataforma e acelera a triagem de incidentes com o preenchimento automático de campos.

Com os campos calculados, é possível derivar dinamicamente novos pontos de dados em casos e alertas do Google Security Operations. Ao definir fórmulas lógicas, é possível calcular valores com base em campos personalizados ou do sistema. O valor calculado é avaliado e armazenado automaticamente em um campo personalizado preexistente selecionado pelo usuário (marcado como Campo de destino) em tempo real.

Casos de uso comuns

Os cenários a seguir representam as maneiras mais frequentes de as organizações aproveitarem os campos calculados para melhorar a eficiência operacional e a clareza dos dados.

Pontuação de risco automatizada

  • Objetivo: categorizar casos com base no volume de eventos ou nos níveis de prioridade.
  • Valor: padroniza a triagem e garante que os incidentes de alto risco fiquem visíveis para a equipe imediatamente.

Normalização de dados

  • Objetivo: sinalizar alertas como Teste ou Produção com base em convenções de nomenclatura.
  • Valor: reduz o ruído ao permitir que os analistas filtrem dados de teste não críticos da visualização principal.

Terminologia importante

  • Fórmula: uma expressão lógica baseada em texto que você define usando funções, operadores e referências de campo para calcular um valor.
  • Campo de destino: um campo personalizado (tipo Texto livre) em que o cálculo do resultado da fórmula é armazenado.
  • Dependências: os campos referenciados na fórmula. Quando o valor de um campo de dependência muda, o campo calculado é reavaliado de forma síncrona.

Antes de começar

Antes de criar um cálculo, verifique se o ambiente atende aos seguintes requisitos técnicos:

  • Permissões: é necessário ter acesso administrativo ao menu Configurações e permissões para gerenciar os dados do caso.
  • Verificação do ambiente: confira se você tem campos personalizados ativos (tipo texto livre) para usar como campos de destino.

Verifique se você tem campos personalizados existentes para usar como campos de destino no seu sistema. Caso contrário, siga estas etapas:

  1. Acesse Configurações > Dados de caso > Campos personalizados.
  2. Crie um campo personalizado e defina o tipo como Texto livre.

Para mais informações sobre campos personalizados, consulte Criar um campo personalizado.

Restrições técnicas e regras de validação

Antes de definir um cálculo, verifique se os campos de destino e a lógica seguem estas restrições do sistema. Essas regras determinam como o mecanismo do Google SecOps valida e persiste os resultados das fórmulas.

Critérios de validação de campo

O mecanismo de cálculo aplica estritamente os seguintes requisitos para qualquer campo designado como Campo de destino:

  • Tipo de dados: o campo precisa ser do tipo Texto livre.
  • Status operacional: o campo precisa ser Ativo. O sistema não pode gravar em campos excluídos ou invalidados.
  • Mapeamento de dependências: para evitar lógica circular, um campo não pode ser um destino se já for uma dependência de outro campo calculado.

Escopo de campo

Quando você cria um campo personalizado com um escopo Both, o sistema gera entradas exclusivas para cada contexto. Isso permite manter uma lógica separada para casos e alertas na mesma categoria lógica.

No menu Campo de destino, selecione o escopo específico relevante para sua fórmula:

  • Escopo do caso: rotulado como CaseCustom.YourField (por exemplo, CaseCustom.RiskLevel)
  • Escopo do alerta: marcado como AlertCustom.YourField (por exemplo, AlertCustom.RiskLevel)

Criar e gerenciar campos calculados

Nesta seção, mostramos como definir um novo cálculo e resolver problemas comuns durante o processo de configuração.

Criar um novo cálculo

Para criar um cálculo, faça o seguinte:

  1. Acesse Configurações > Dados do caso > Campos calculados.
  2. Clique em adicionar Adicionar.
  3. No campo Nome do campo calculado, insira um nome e uma descrição exclusivos para o cálculo.
  4. Na área Campo de destino, selecione o Campo personalizado em que o resultado será armazenado.

    1. Falha prevista: o campo selecionado não aparece no menu.
    2. Etapa corretiva: verifique se o campo personalizado está ativo, definido como Texto livre e não é uma dependência de outro cálculo.
  5. No editor de texto, crie sua fórmula usando as funções, os operadores e a sintaxe compatíveis. Crie uma expressão lógica (por exemplo, IF ([case.priority] == "High") THEN "Urgent" ELSE "Standard"). Para mais detalhes, consulte Linguagem e sintaxe de fórmulas.

  6. Clique em Salvar.

    1. Falha prevista: o sistema rejeita o salvamento e mostra um destaque de erro vermelho.
    2. Etapa corretiva: verifique se há erros de sintaxe, como parênteses ausentes em torno de condições IF ou palavras-chave em letras minúsculas.

Acessar recursos e referências avançados

As fórmulas precisam seguir regras rígidas de gramática e diferenciação de maiúsculas e minúsculas para todos os operadores e funções integrados. Use as especificações técnicas a seguir para garantir que seus cálculos sejam válidos.

Exemplos de fórmulas

Os modelos a seguir demonstram como combinar funções e operadores para automatizar o aprimoramento de dados. Você pode copiar e adaptar esses snippets para corresponder aos nomes de campo específicos e aos requisitos organizacionais.

Exemplo 1: definir um nível de risco

Use esta fórmula para categorizar casos com base em palavras-chave específicas encontradas no título.

  • Campo de destino: CaseCustom.risk_level (texto)
  • Objetivo: atribuir automaticamente o status "Alto" a incidentes urgentes
  • Fórmula:

    IF (CONTAINS([case.name], "urgent")) THEN "High" ELSE "Medium"

Exemplo 2: sinalizar alertas de teste

Essa lógica identifica e rotula dados de teste para ajudar os analistas a filtrar as visualizações principais e manter o foco nos incidentes de produção.

  • Campo de destino: AlertCustom.is_test (texto)
  • Objetivo: detectar o sufixo -TEST ou a string TEST no nome de um alerta
  • Fórmula:

    IF (CONTAINS([alert.name], "TEST") OR ENDS_WITH([alert.name], "-TEST"))
    THEN "TRUE"
    ELSE "FALSE"
    

Exemplo 3: combinação de condições

Este exemplo demonstra a lógica aninhada para priorizar as revisões com base no volume de eventos e nos níveis de prioridade atuais.

  • Campo de destino: CaseCustom.review_status (texto)
  • Meta: acionar uma revisão manual somente quando o comprimento do registro for significativo e a prioridade não for Low.
  • Fórmula:

    IF (LENGTH(\[AlertCustom.event\_details\]) \> 100 AND NOT IS(\[case.priority\], "Low"))
    THEN "Needs Review"
    ELSE "Auto-Closed"
    

Linguagem e sintaxe de fórmulas

O mecanismo de cálculo diferencia maiúsculas de minúsculas para todos os operadores, palavras-chave e funções integrados. Você precisa escrever palavras-chave (por exemplo, IF, THEN, ELSE, AND, OR, NOT) e nomes de funções (por exemplo, CONTAINS, LENGTH, STARTS_WITH, ENDS_WITH, IS, IS_NOT, DOES_NOT_CONTAIN) em maiúsculas. No entanto, o teste de strings de texto em funções e operadores de igualdade não diferencia maiúsculas de minúsculas. Por exemplo, se você pesquisar "phishing", os resultados vão incluir "PHISHING" ou "Phishing".

Tipos de dados e literais

Um literal é um valor fixo usado em expressões. Recomendamos que você verifique se as operações e os argumentos de função usam tipos compatíveis.

Tipo Sintaxe e regras Exemplo
STRING Texto entre aspas duplas. "critical", "N/A"
NUMBER Números inteiros ou decimais. 100, 3.14
BOOLEAN Precisa estar em maiúsculas. TRUE, FALSE
NULL Representa um valor vazio. NULL

Referências de campo

Para usar o valor de outro campo, coloque o nome dele entre colchetes, como [object.field_name].

  • Regra de sintaxe:use um prefixo com referências de campo. Você precisa usar um prefixo (por exemplo, case. ou AlertCustom.) seguido por um ponto e o nome do campo. O nome do campo pode conter letras, números, sublinhados e espaços. Por exemplo: [case.name], [alert.priority], [AlertCustom.my_custom_field].
  • Você pode usar estes campos do sistema: case.name, case.stage, case.priority, alert.name, alert.priority, alert.rule_generator.
  • É possível fazer referência a todos os campos personalizados definidos pelo usuário.
  • Uma fórmula de campo calculado não pode fazer referência a outro campo calculado.

Operadores

Use operadores para comparações e operações lógicas. Use parênteses () para substituir a precedência padrão e agrupar expressões

  • Operadores de comparação: ==, !=, >, >=, <, <=
  • Operadores lógicos: AND, OR, NOT
  • Precedência de operadores: NOT, >, >=, <, <=, AND, OR,

Expressões condicionais

O sistema aceita lógica condicional usando a sintaxe IF (condition) THEN expression1 ELSE expression2. A parte ELSE é opcional. Se você omitir essa parte e a condição for FALSE, o resultado será NULL por padrão.

A condição precisa ser uma expressão que seja avaliada como TRUE ou FALSE.

Por exemplo, IF ( [CaseCustom.score] > 75 ) THEN "High Risk" ELSE "Low Risk"

Funções

As funções são operações predefinidas que precisam estar totalmente em maiúsculas. A tabela a seguir lista as funções compatíveis com a manipulação e avaliação de dados.

Função Descrição Sintaxe Tipo de retorno
CONTAINS(field, substring) Verifica se um campo de texto contém uma substring (não diferencia maiúsculas de minúsculas) CONTAINS([case.name], "phishing") BOOLEAN
DOES_NOT_CONTAIN(field, substring) Verifica se um campo de texto não contém uma substring (não diferencia maiúsculas de minúsculas) DOES_NOT_CONTAIN([case.name], "test") BOOLEAN
LENGTH(field) Retorna o número de caracteres em um campo. LENGTH([case.name]) NUMBER
STARTS_WITH(field, prefix) Verifica se o campo começa com um prefixo (não diferencia maiúsculas de minúsculas) STARTS_WITH([CaseCustom.hostname], "srv-") BOOLEAN
ENDS_WITH(field, suffix) Verifica se o campo termina com um sufixo (não diferencia maiúsculas de minúsculas). ENDS_WITH([AlertCustom.filename], ".exe") BOOLEAN
IS(field, literal) Verifica se o valor do campo é igual ao literal (não diferencia maiúsculas de minúsculas) IS([alert.priority], "High") BOOLEAN
IS_NOT(field, literal) Verifica se o valor do campo NÃO é igual ao literal (sem diferenciar maiúsculas de minúsculas). IS_NOT([alert.priority], "Low") BOOLEAN

Palavras-chave e identificadores reservados

O mecanismo de cálculo reserva palavras específicas para operações e funções lógicas. Não é possível usar estes termos como nomes de campos personalizados ou outros identificadores em uma fórmula:

  • Lógica: AND, OR, NOT, IF, THEN, ELSE
  • Valores: NULL, TRUE, FALSE
  • Funções: CONTAINS, LENGTH, STARTS_WITH, ENDS_WITH, IS, IS_NOT, DOES_NOT_CONTAIN

Compatibilidade de tipo de dados

Para garantir uma avaliação bem-sucedida, verifique se todas as operações e argumentos de função usam tipos compatíveis. Os tipos compatíveis incluem STRING, NUMBER, BOOLEAN e NULL.

A saída final da fórmula precisa corresponder ao tipo esperado do Campo de destino. Como os campos de destino são restritos a "Texto livre", sua fórmula precisa ser resolvida como uma string ou um valor que possa ser convertido implicitamente no formato do destino.

Formatação e espaços em branco

Embora espaços, tabulações e novas linhas sejam geralmente ignorados entre tokens, eles são estritamente necessários para separar palavras-chave de identificadores. Use espaços em branco de forma estratégica para estruturar fórmulas complexas de várias linhas, facilitando a manutenção e a revisão por colegas.

Escrever fórmulas eficazes

Embora o mecanismo de cálculo seja flexível com espaços em branco, siga estes padrões de formatação para evitar erros de lógica e simplificar a solução de problemas.

  • Agrupamento explícito: use parênteses para definir a ordem das operações com clareza, mesmo quando você confia na precedência padrão. Isso ajuda a evitar ambiguidade lógica.
  • Estrutura visual: aplique espaços ao redor dos operadores (==, AND, OR) e insira novas linhas para instruções IF/THEN aninhadas para facilitar a leitura da lógica.
  • Validação de tipo: sempre verifique se a saída final da fórmula corresponde ao tipo esperado do campo de destino para evitar erros de avaliação.

    IF (
        (IS([CaseCustom.event_count], "100") AND NOT IS([case.priority], "Low"))
        OR CONTAINS([case.name], "Critical")
    )
    THEN "Needs Immediate Review"
    ELSE "Standard Review"
    

Solução de problemas

Esta seção descreve as expectativas de desempenho e oferece correções de autoatendimento para problemas comuns de implantação encontrados ao criar ou gerenciar fórmulas.

Latência e limites

Os campos calculados são avaliados de forma síncrona sempre que um campo de dependência muda. Para manter o desempenho do sistema, um campo calculado não pode fazer referência a outro campo calculado. O sistema bloqueia essas dependências encadeadas para evitar recursão e atrasos no processamento.

Correção de erros

Ao escrever fórmulas manualmente, podem ocorrer erros devido a incompatibilidades de sintaxe ou tipo de dados. Use a tabela a seguir para mapear códigos de erro específicos relacionados à jornada para correções exatas e práticas.

Tipo de erro Problema Corrigir
Sintaxe A fórmula viola regras de gramática, como parênteses incompatíveis ou palavras-chave em letras minúsculas. Coloque todas as condições IF entre parênteses () e verifique se todas as palavras-chave estão em LETRAS MAIÚSCULAS.
Validação A fórmula faz referência a um campo desconhecido (por exemplo, [\case.typo]) ou resulta em uma incompatibilidade de tipo. Verifique os nomes dos campos entre colchetes e confirme se a saída corresponde ao tipo de campo de destino.
Avaliação A fórmula é válida, mas falha durante a execução, geralmente mostrando #ERRO!. Verifique se há problemas de ambiente de execução, como transmitir um valor que não é uma string para uma função como LENGTH().

Modificar ou excluir campos de segmentação

O sistema protege ativamente os campos em que suas fórmulas se baseiam para manter a integridade de dados. Se você tentar excluir ou modificar um campo personalizado usado como um campo de destino, o sistema vai bloquear a ação e mostrar um aviso indicando o uso ativo em um campo calculado.

Validação e teste

Depois de salvar um novo cálculo, verifique os resultados acessando um caso ou alerta e atualizando um campo de dependência. Confirme se o campo de destino é preenchido com o valor esperado em tempo real.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.