Configurar filtros do painel
Este documento explica como aplicar filtros aos campos da fonte de dados para refinar os dados mostrados nos gráficos aplicáveis.
Adicionar um filtro
Para adicionar um filtro, faça o seguinte:
Na página Editar painel, clique em Filtrar para adicionar um filtro.
Na janela Gerenciar filtros, clique em Adicionar para adicionar um novo filtro.
No campo Campo a ser filtrado, insira o campo que você quer usar para filtrar os dados. Para mais informações sobre as fontes de dados e os campos compatíveis, consulte Fontes de dados compatíveis.
No campo Nome do filtro, insira um nome para o filtro.
Em Aplicar ao campo, selecione os gráficos em que o filtro será aplicado.
Opcional: defina um valor padrão para o filtro.
Clique em Concluído para adicionar o filtro e fechar a janela Gerenciar filtros.
Filtragem avançada
O Google Security Operations oferece filtragem avançada na plataforma de painel integrada. Ao contrário dos filtros básicos, que estão vinculados a campos específicos, os filtros avançados funcionam como variáveis de consulta, também conhecidas como tokens. Esse recurso permite que os analistas de segurança injetem valores dinâmicos, expressões regulares complexas ou lógica booleana diretamente em consultas YARA-L no momento da execução.
Principais recursos
- Filtragem flexível:use uma única entrada de filtro (por exemplo,
$token$) para filtrar simultaneamente com base em vários campos em vários gráficos em um painel. - Opções de lista suspensa dinâmica:preencha as opções de filtro dinamicamente usando os resultados de uma consulta YARA-L separada. Isso garante que os usuários sempre selecionem dados atualizados.
- Formatação flexível: defina prefixos, sufixos e delimitadores personalizados (por exemplo,
/para expressões regulares ou,para cláusulasIN) para formatar os valores selecionados pelo usuário antes de serem injetados na consulta. - Valores padrão:configure valores padrão para garantir que os painéis sejam carregados com dados imediatamente e para oferecer suporte a relatórios programados automatizados em que não ocorre interação do usuário.
- Suporte à seleção múltipla:permita que os usuários selecionem vários valores para um único token, unidos por um separador definido pelo usuário.
Segurança e permissões
A filtragem avançada usa permissões de controle de acesso baseado em função (RBAC, na sigla em inglês) atuais, e novas permissões não são necessárias. As seguintes permissões do Identity and Access Management (IAM) são relevantes:
| Permissão do IAM | Finalidade |
|---|---|
nativedashboards.update |
Criar e configurar filtros avançados em um painel. |
nativeDashboards.get |
Ver painéis e usar os controles de entrada de filtro. |
dashboardQueries.execute |
Executar as consultas resolvidas finais com tokens substituídos. |
Para a aplicação do RBAC de dados, as consultas usadas para preencher listas suspensas dinâmicas são executadas no contexto do usuário que está visualizando. Isso garante que os usuários só vejam os valores (como IPs específicos) a que estão autorizados a acessar.
Configurar e usar filtros avançados
As seções a seguir detalham o processo de configuração e uso de filtros avançados nos painéis do Google SecOps.
Criar um novo filtro avançado
Para criar um novo filtro avançado, siga estas etapas:
- Abra a caixa de diálogo Gerenciar filtros em um painel.
- Selecione e então Filtro avançado como o Tipo de filtro.
- Insira um Nome do filtro (rótulo) e uma Variável de token (por exemplo,
token).- Restrições de sintaxe da variável de token:o nome da variável de token permite apenas caracteres alfanuméricos e sublinhados (
^[a-zA-Z0-9_]+$). - Exclusividade:os nomes dos tokens precisam ser exclusivos. Conflitos impedem que o filtro seja salvo.
- Restrições de sintaxe da variável de token:o nome da variável de token permite apenas caracteres alfanuméricos e sublinhados (
- Selecione Gerar com base na consulta (resultados dinâmicos do YARA-L) ou Entrada manual (uma lista estática).
- Quando Gerar com base na consulta estiver selecionado:
- Insira uma consulta e defina um Período.
- Clique em Executar pesquisa.
- Escolha uma coluna no menu suspenso Selecionar coluna.
- Escolha um valor no menu suspenso Visualizar lista suspensa de filtros.
- Quando Entrada manual estiver selecionada, digite um valor no campo Entrada manual e clique em Adicionar.
- Quando Gerar com base na consulta estiver selecionado:
- Escolha um Prefixo e um Sufixo para incluir valores para uma lógica específica, como expressões regulares.
- Se o token for usado em delimitadores de expressão regular na consulta YARA-L (por exemplo,
principal.ip = /$token$/), normalmente não será necessário especificar um Prefixo ou Sufixo. - Se o token for usado sem delimitadores de expressão regular, mas tiver a intenção de funcionar como uma expressão regular ancorada (por exemplo,
principal.ip = $token$), defina o Prefixo como/^e o Sufixo como$/.
- Se o token for usado em delimitadores de expressão regular na consulta YARA-L (por exemplo,
- Ative o botão Permitir seleção de várias opções para definir um Delimitador (por exemplo,
|para expressões regularesORlogic). - Selecione um Valor padrão no menu suspenso.
- Marque ou desmarque a caixa de seleção Aplicar prefixo/sufixo ao(s) valor(es) padrão.
- Clique em Concluído.
Usar tokens em consultas de gráfico
Os criadores de painéis precisam inserir manualmente o token, incluído em símbolos $, na consulta do gráfico.
Exemplos:
principal.hostname = $hostname$re.regex(target.ip, $ip_regex$)
Para a validação de tokens, um banner de aviso amarelo será mostrado se uma consulta usar um token indefinido. Nesses casos, o sistema trata o token como uma string literal.
Comportamento padrão no carregamento
Os filtros avançados nos painéis do Google SecOps operam exclusivamente por substituição de strings. Ao contrário dos filtros padrão, o sistema não interpreta a lógica para você, mas realiza uma "localização e substituição" do $token$ com o valor selecionado antes que a consulta seja compilada. A consulta funciona como um modelo, e o usuário é responsável por garantir que a consulta final substituída por token seja sintaticamente correta.
Valores padrão e validade da consulta
Como o sistema não ignora automaticamente um token se nenhuma entrada for fornecida, você precisa definir valores padrão que mantenham uma estrutura de consulta válida para carregamentos iniciais e relatórios programados.
Confira a seguir exemplos de configurações de Valor padrão eficazes:
| Caso de uso | Contexto da consulta | Configuração de valor padrão | Lógica resultante |
|---|---|---|---|
| Correspondência exata | principal.hostname = $host$ |
Incorreto:deixar vazio resulta em sintaxe inválida (principal.hostname = ). Correto:use um marcador que mantenha a sintaxe válida. |
Exemplo com padrão vazio:falha porque principal.hostname = é um YARA-L inválido. |
| Correspondência exata | principal.hostname = "$host$" |
Deixar vazio | Sucesso: avalia como principal.hostname = "", que não retorna resultados, mas é sintaticamente válido. |
| Caractere curinga (mostrar tudo) | principal.hostname = /.*$host$.*/ |
.* |
Sucesso:avalia como principal.hostname = /.*/, uma expressão regular "catch-all" que retorna todos os resultados. |
| Expressão regular (mostrar tudo) | principal.hostname = $host$ |
/.*/ |
Sucesso:avalia como principal.hostname = /.*/, que corresponde a todos os nomes de host. |
| Âncora de expressão regular | metadata.product_name = /^$token$$/ |
.* |
Sucesso:avalia como metadata.product_name = /^.*$/ no carregamento, correspondendo a todos os produtos. |
| Números inteiros (mostrar tudo) | principal.host = $token$ |
0 or 1=1 |
Sucesso:avalia como principal.host = 0 or 1=1, retornando todos os resultados. |
| Números inteiros (mostrar tudo) | cast.as_string(principal.host) = $token$ |
/.*/ |
Sucesso:avalia como cast.as_string(principal.host) = /.*/, que corresponde a todas as representações de string de números inteiros de host. |
| Token de seleção única com toda a lógica padrão | $log = metadata.log_type \n $log = if($log$ = "", metadata.log_type, $log$)\n match: $log |
Deixar vazio (com prefixo: ", sufixo: ") |
Sucesso: com um padrão vazio, $log se torna "". A instrução if se torna $log = if("" = "", metadata.log_type, ""), que é simplificada para $log = metadata.log_type. A consulta corresponde a todos os tipos de registro. |
| Valor padrão específico único | $et = metadata.event_type \n $et = $et2$ \n match: $et |
EMAIL_TRANSACTION (com prefixo: ", sufixo: ") |
Sucesso: avalia como $et = "EMAIL_TRANSACTION" no carregamento, restringindo os resultados padrão a uma categoria de evento específica. |
| Expressão regular de seleção múltipla | $log = metadata.log_type \n $log = $logs$ \n match: $log |
.* (com prefixo: /, sufixo: /, delimitador: |) |
Sucesso:avalia como $log = /.*/ no carregamento, correspondendo a todos os tipos de registro. A seleção de vários valores (por exemplo, DNS, DHCP) avalia como $log = /DNS|DHCP/. |
| Padrão sempre verdadeiro (mostrar tudo) | $et = metadata.event_type \n $et = $et4$ \n match: $et |
"USER_LOGIN" or 1=1 (com delimitador: " or metadata.event_type = ", aplicar prefixo/sufixo ao(s) valor(es) padrão: desmarcado) |
Sucesso: avalia como $et = "USER_LOGIN" or 1=1 no carregamento, que corresponde a todos os eventos. A seleção de opções específicas substitui a string por cláusulas de igualdade OR explícitas. |
| Injeção de cláusula completa (seleção múltipla) | $et$ \n $et = metadata.event_type \n match: $et |
Deixar vazio (com prefixo: metadata.event_type = ", sufixo: ", delimitador: " or metadata.event_type = ", aplicar prefixo/sufixo ao(s) valor(es) padrão: desmarcado) |
Sucesso:o token injeta o predicado de campo de destino inteiro. A seleção de USER_LOGIN e NETWORK_DNS é expandida para metadata.event_type = "USER_LOGIN" or metadata.event_type = "NETWORK_DNS". |
| Expressão regular padrão catch-all | $pet = metadata.product_event_type \n $pet = $pet$ \n match: $pet |
/.*/ (com prefixo: ", sufixo: ", aplicar prefixo/sufixo ao(s) valor(es) padrão: desmarcado) |
Sucesso:avalia como $pet = /.*/ no carregamento, correspondendo a todos os tipos de eventos de produtos. A seleção de um valor específico aplica aspas (por exemplo, $pet = "USER_LOGIN"). |
Considerações sobre a sintaxe para filtros avançados
O sistema não realiza escape automático para caracteres especiais (como aspas ou barras). Sempre verifique se o prefixo, o sufixo e o separador configurados estão alinhados com a sintaxe da linguagem de consulta (YARA-L) que você está usando.
Especificações da API
Para especificações detalhadas da API, consulte AdvancedFilterConfig.
Gerenciar o filtro de hora global
O filtro de hora global se aplica a todos os gráficos, independentemente da fonte de dados .
Para selecionar os gráficos em que o filtro de hora global pode ser aplicado, faça o seguinte:
Na página Editar painel, clique em Filtrar para adicionar um filtro.
Na janela Gerenciar filtros, selecione Filtro de hora global na lista de filtros.
Clique na opção para garantir que o filtro de hora global esteja ativado.
No campo Aplicar a, selecione os gráficos para aplicar o filtro de hora global.
No campo Definir valores padrão, defina um período para visualizar os dados, usando valores absolutos ou relativos.
Clique em Concluído para ativar o filtro e fechar a janela Gerenciar filtros.
Aplicar um filtro do painel
Para aplicar um filtro, faça o seguinte:
Na página Editar painel, clique em Voltar > Filtrar para ver os filtros do painel.
Na janela Filtros do painel, selecione o filtro que você criou.
Insira um valor para o campo selecionado.
Clique em Aplicar. Os gráficos em que o filtro é aplicável são atualizados com novos dados.
Mudar o filtro de hora global
Quando você abre um painel, o filtro de hora global é aplicado aos gráficos aplicáveis com o período padrão.
Para mudar o valor do filtro de hora global, faça o seguinte:
Clique em Programação.
Na caixa de diálogo Filtro de hora global, selecione o operador
pastoubetween.Selecione o período.
Clique em Aplicar. Os gráficos selecionados são atualizados com novos dados com base no filtro de hora global.
Entender o operador "Anterior"
O operador past calcula um horário de início com base no valor e na unidade fornecidos. O horário de término é sempre o momento atual.
O cálculo do horário de início depende da unidade:
- Segundos, minutos, horas:essas unidades calculam o horário de início subtraindo o número exato de segundos, minutos ou horas do carimbo de data/hora atual.
- Dias, semanas, meses, anos:essas unidades ajustam o horário de início para o início do período atual ou anterior (por exemplo, o início do dia ou mês atual).
A tabela a seguir mostra exemplos com base em um carimbo de data/hora atual de 13h13 de 2 de julho de 2025:
| Valor | Unidade | Horário de início do filtro |
|---|---|---|
n |
Segundos | 13h13 de 2 de julho de 2025 menos n segundos |
n |
Minutos | 13h13 de 2 de julho de 2025 menos n minutos |
n |
Horas | 13h13 de 2 de julho de 2025 menos n horas |
1 |
Dia | 00h00 de 2 de julho de 2025 (início do dia atual) |
2 |
Dias | 00h00 de 1º de julho de 2025 (início do dia anterior) |
1 |
Semana | 00h00 do primeiro dia da semana atual. O dia de início da semana depende das configurações de localidade do sistema. |
1 |
Mês | 00h00 de 1º de julho de 2025 (início do mês atual) |
2 |
Meses | 00h00 de 1º de junho de 2025 (início do mês anterior) |
1 |
Ano | 00h00 de 1º de janeiro de 2025 (início do ano atual) |
2 |
Anos | 00h00 de 1º de janeiro de 2024 (início do ano anterior) |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.