Configura filtros de panel

Se admite en los siguientes sistemas operativos:

En este documento, se explica cómo puedes aplicar filtros a los campos de la fuente de datos para definir mejor los datos que se muestran en los gráficos correspondientes.

Agregar un filtro

Para agregar un filtro, haz lo siguiente:

  1. En la página Editar panel, haz clic en Filtro para agregar uno.

  2. En la ventana Administrar filtros, haz clic en Agregar para agregar un filtro nuevo.

  3. En el campo Field to filter, ingresa el campo que deseas usar para filtrar los datos. Para obtener más información sobre las fuentes de datos y los campos admitidos, consulta Fuentes de datos compatibles.

  4. En el campo Nombre del filtro, ingresa un nombre para el filtro.

  5. En el campo Aplicar a, selecciona los gráficos en los que se debe aplicar el filtro.

  6. Opcional: Establece un valor predeterminado para el filtro.

  7. Haz clic en Listo para agregar el filtro y cerrar la ventana Administrar filtros.

Filtro avanzado

Google Security Operations proporciona filtrado avanzado en su plataforma de panel integrada. A diferencia de los filtros básicos, que están vinculados a campos específicos, los filtros avanzados funcionan como variables de consulta, también conocidas como tokens. Esta capacidad permite que los analistas de seguridad inserten valores dinámicos, expresiones regulares complejas o lógica booleana directamente en las consultas de YARA-L durante el tiempo de ejecución.

Características clave

  • Filtrado flexible: Usa una sola entrada de filtro (por ejemplo, $token$) para filtrar simultáneamente en función de varios campos en varios gráficos dentro de un panel.
  • Opciones de menú desplegable dinámicas: Completa las opciones de filtro de forma dinámica con los resultados de una consulta de YARA-L independiente. Esto garantiza que los usuarios siempre seleccionen datos actualizados.
  • Formato flexible: Define prefijos, sufijos y delimitadores personalizados (por ejemplo, / para expresiones regulares o , para cláusulas IN) para dar formato a los valores seleccionados por el usuario antes de que se inserten en la búsqueda.
  • Valores predeterminados: Configura valores predeterminados para garantizar que los paneles se carguen con datos de inmediato y para admitir informes programados automatizados en los que no se produce interacción del usuario.
  • Compatibilidad con la selección múltiple: Permite que los usuarios seleccionen varios valores para un solo token, unidos por un separador definido por el usuario.

Seguridad y permisos

El filtrado avanzado usa los permisos existentes del control de acceso basado en roles (RBAC), por lo que no se requieren permisos nuevos. Los siguientes permisos de Identity and Access Management (IAM) son relevantes:

Permisos de IAM Objetivo
nativedashboards.update Crea y configura filtros avanzados en un panel.
nativeDashboards.get Ver paneles y usar los controles de entrada de filtros
dashboardQueries.execute Ejecuta las consultas resueltas finales con los tokens sustituidos.

En el caso de la aplicación del RBAC de datos, las consultas que se usan para completar los menús desplegables dinámicos se ejecutan en el contexto del usuario que visualiza la información. Esto garantiza que los usuarios solo vean los valores (como las IPs específicas) a los que tienen autorización para acceder.

Cómo configurar y usar filtros avanzados

En las siguientes secciones, se detalla el proceso para configurar y utilizar filtros avanzados en los paneles de Google SecOps.

Cómo crear un filtro avanzado nuevo

Para crear un filtro avanzado nuevo, haz lo siguiente:

  1. Abre el diálogo Administrar filtros en un panel.
  2. Selecciona y, luego, Filtro avanzado como el Tipo de filtro.
  3. Ingresa un Nombre del filtro (etiqueta) y una Variable de token (por ejemplo, token).
    • Restricciones de sintaxis de las variables de token: El nombre de la variable de token solo permite caracteres alfanuméricos y guiones bajos (^[a-zA-Z0-9_]+$).
    • Unicidad: Los nombres de los tokens deben ser únicos. Los conflictos impedirán que se guarde el filtro.
  4. Selecciona Generate from Query (Generar a partir de la búsqueda, resultados dinámicos de YARA-L) o Manual Entry (Entrada manual, una lista estática).
    1. Cuando se selecciona Generar a partir de una búsqueda, sucede lo siguiente:
      1. Ingresa una consulta y define un intervalo de tiempo.
      2. Haz clic en Ejecutar búsqueda.
      3. Elige una columna en el menú desplegable Seleccionar columna.
      4. Elige un valor en el menú desplegable Preview Filter Dropdown.
    2. Cuando se selecciona Entrada manual, escribe un valor en el campo Entrada manual y haz clic en Agregar.
  5. Elige un prefijo y un sufijo para incluir valores en una lógica específica, como expresiones regulares.
    • Si el token se usa dentro de delimitadores de expresiones regulares en la consulta de YARA-L (por ejemplo, principal.ip = /$token$/), por lo general, no es necesario especificar un prefijo o un sufijo.
    • Si el token se usa sin delimitadores de expresión regular, pero se pretende que funcione como una expresión regular anclada (por ejemplo, principal.ip = $token$), establece el prefijo en /^ y el sufijo en $/.
  6. Activa el botón Permitir la selección de varias opciones para definir un Delimitador (por ejemplo, | para la lógica de expresiones regulares OR).
  7. Selecciona un valor predeterminado en el menú desplegable.
  8. Selecciona o anula la selección de la casilla de verificación Aplicar prefijo/sufijo para los valores predeterminados.
  9. Haz clic en Listo.

Cómo usar tokens en las consultas de gráficos

Los creadores de paneles deben insertar manualmente el token, entre símbolos $, en la consulta del gráfico.

Ejemplos:

  • principal.hostname = $hostname$
  • re.regex(target.ip, $ip_regex$)

Para la validación de tokens, se muestra un banner de advertencia amarillo si una consulta usa un token no definido. En esos casos, el sistema trata el token como una cadena literal.

Comportamiento predeterminado al cargar

Los filtros avanzados de los paneles de Google SecOps funcionan exclusivamente a través de la sustitución de cadenas. A diferencia de los filtros estándar, el sistema no interpreta la lógica por ti, sino que realiza una operación de "buscar y reemplazar" de tu $token$ con el valor seleccionado antes de que se compile la búsqueda. La búsqueda actúa como una plantilla, y el usuario es responsable de asegurarse de que la búsqueda final con los tokens reemplazados sea sintácticamente correcta.

Valores predeterminados y validez de la búsqueda

Dado que el sistema no ignora automáticamente un token si no se proporciona ninguna entrada, debes definir valores predeterminados que mantengan una estructura de consulta válida para las cargas iniciales y los informes programados.

A continuación, se muestran ejemplos de configuraciones efectivas de Valor predeterminado:

Caso de uso Contexto de la búsqueda Configuración del valor predeterminado Lógica resultante
Concordancia exacta principal.hostname = $host$ Incorrecto: Si se deja vacío, se genera una sintaxis no válida (principal.hostname =). Correcto: Usa un marcador de posición que mantenga una sintaxis válida. Ejemplo con valor predeterminado vacío: Falla porque principal.hostname = no es un código YARA-L válido.
Concordancia exacta principal.hostname = "$host$" Dejar vacío Éxito: Se evalúa como principal.hostname = "", que no devuelve resultados, pero es sintácticamente válido.
Comodín (Mostrar todo) principal.hostname = /.*$host$.*/ .* Éxito: Se evalúa como principal.hostname = /.*/, una expresión regular "comodín" que devuelve todos los resultados.
Expresión regular (mostrar todo) principal.hostname = $host$ /.*/ Éxito: Se evalúa como principal.hostname = /.*/, que coincide con todos los nombres de host.
Ancla de expresión regular metadata.product_name = /^$token$$/ .* Éxito: Se evalúa como metadata.product_name = /^.*$/ en la carga, lo que coincide con todos los productos.
Números enteros (Mostrar todos) principal.host = $token$ 0 or 1=1 Éxito: Se evalúa como principal.host = 0 or 1=1, lo que devuelve todos los resultados de manera eficaz.
Números enteros (Mostrar todos) cast.as_string(principal.host) = $token$ /.*/ Éxito: Se evalúa como cast.as_string(principal.host) = /.*/, que coincide con todas las representaciones de cadenas de números enteros del host.
Token de selección única con lógica predeterminada de todo $log = metadata.log_type \n $log = if($log$ = "", metadata.log_type, $log$)\n match: $log Dejar vacío (con prefijo: ", sufijo: ") Éxito: Con un valor predeterminado vacío, $log se convierte en "". La sentencia if se convierte en $log = if("" = "", metadata.log_type, ""), que se simplifica a $log = metadata.log_type. Luego, la consulta coincide con todos los tipos de registros.
Un solo valor predeterminado específico $et = metadata.event_type \n $et = $et2$ \n match: $et EMAIL_TRANSACTION (con prefijo: " y sufijo: ") Éxito: Se evalúa como $et = "EMAIL_TRANSACTION" en la carga, lo que restringe los resultados predeterminados a una categoría de eventos específica.
Expresión regular de selección múltiple $log = metadata.log_type \n $log = $logs$ \n match: $log .* (con prefijo: /, sufijo: / y delimitador: |) Éxito: Se evalúa como $log = /.*/ en la carga, lo que coincide con todos los tipos de registros. Si se seleccionan varios valores (p.ej., DNS, DHCP), se evalúa como $log = /DNS|DHCP/.
Predeterminado como siempre verdadero (Mostrar todo) $et = metadata.event_type \n $et = $et4$ \n match: $et "USER_LOGIN" or 1=1 (con Delimitador: " or metadata.event_type = ", Aplicar prefijo/sufijo para los valores predeterminados: sin marcar) Éxito: Se evalúa como $et = "USER_LOGIN" or 1=1 en la carga, lo que coincide con todos los eventos. Si seleccionas opciones específicas, se reemplazará la cadena por cláusulas de igualdad OR explícitas.
Inserción de cláusula completa (selección múltiple) $et$ \n $et = metadata.event_type \n match: $et Dejar vacío (con prefijo: metadata.event_type = ", sufijo: ", delimitador: " or metadata.event_type = ", aplicar prefijo/sufijo para los valores predeterminados: sin marcar) Correcto: El token inyecta el predicado completo del campo de destino. Si seleccionas USER_LOGIN y NETWORK_DNS, se expande a metadata.event_type = "USER_LOGIN" or metadata.event_type = "NETWORK_DNS".
Regex predeterminada de captura general $pet = metadata.product_event_type \n $pet = $pet$ \n match: $pet /.*/ (con prefijo: ", sufijo: ", aplicar prefijo/sufijo para los valores predeterminados: sin marcar) Éxito: Se evalúa como $pet = /.*/ en la carga, lo que coincide con todos los tipos de eventos de productos. Si seleccionas un valor específico, se aplicarán comillas (por ejemplo, $pet = "USER_LOGIN").

Consideraciones sobre la sintaxis de los filtros avanzados

El sistema no realiza un escape automático de los caracteres especiales (como comillas o barras). Siempre verifica que el prefijo, el sufijo y el separador que configuraste se alineen con la sintaxis del lenguaje de consultas (YARA-L) que estás usando.

Especificaciones de la API

Para obtener especificaciones detalladas de la API, consulta AdvancedFilterConfig.

Cómo administrar el filtro de tiempo global

El filtro de tiempo global se aplica a todos los gráficos, independientemente de su fuente de datos.

Para seleccionar los gráficos a los que se puede aplicar el filtro de tiempo global, haz lo siguiente:

  1. En la página Editar panel, haz clic en Filtro para agregar uno.

  2. En la ventana Administrar filtros, selecciona Filtro de tiempo global en la lista de filtros.

  3. Haz clic en el botón de activación para asegurarte de que el filtro de hora global esté habilitado.

  4. En el campo Aplicar a, selecciona los gráficos a los que se aplicará el filtro de tiempo global.

  5. En el campo Establecer valores predeterminados, configura un período para ver los datos con valores absolutos o relativos.

  6. Haz clic en Listo para habilitar el filtro y cerrar la ventana Administrar filtros.

Cómo aplicar un filtro del panel

Para aplicar un filtro, haz lo siguiente:

  1. En la página Editar panel, haz clic en Atrás > Filtro para ver los filtros del panel.

  2. En la ventana Filtros del panel, selecciona el filtro que creaste.

  3. Ingresa un valor para el campo seleccionado.

  4. Haz clic en Aplicar. Los gráficos para los que se aplica el filtro se actualizan con datos nuevos.

Cómo cambiar el filtro de tiempo global

Cuando abres un panel, el filtro de hora global se aplica a los gráficos correspondientes con el intervalo de tiempo predeterminado.

Para cambiar el valor del filtro de tiempo global, haz lo siguiente:

  1. Haz clic en Programar.

  2. En el diálogo Global Time Filter, selecciona el operador past o between.

  3. Selecciona el período.

  4. Haz clic en Aplicar. Los gráficos seleccionados se actualizan con datos nuevos según el filtro de tiempo global.

Comprende el operador Past

El operador past calcula una hora de inicio según el valor y la unidad que proporcionas. La hora de finalización siempre es el momento actual.

El cálculo de la hora de inicio depende de la unidad:

  • Segundos, minutos y horas: Estas unidades calculan la hora de inicio restando la cantidad exacta de segundos, minutos u horas de la marca de tiempo actual.
  • Días, semanas, meses y años: Estas unidades ajustan la hora de inicio al comienzo del período actual o anterior (por ejemplo, el comienzo del día o mes actual).

En la siguiente tabla, se muestran ejemplos basados en una marca de tiempo actual de 13:13 el 2 de julio de 2025:

Valor Unidad Hora de inicio del filtro
n Segundos 13:13:00 del 2 de julio de 2025 menos n segundos
n Minutos 13:13:00 del 2 de julio de 2025 menos n minutos
n Horas 2 de julio de 2025, 13:13:00, menos n horas
1 Día 00:00:00, 2 de julio de 2025 (comienzo del día actual)
2 Días 00:00:00 del 1 de julio de 2025 (comienzo del día anterior)
1 Semana Las 00:00:00 del primer día de la semana actual. El día de inicio de la semana depende de la configuración regional de tu sistema.
1 Mes 00:00:00 del 1 de julio de 2025 (comienzo del mes actual)
2 Meses 00:00:00 del 1 de junio de 2025 (comienzo del mes anterior)
1 Año 00:00:00 del 1 de enero de 2025 (comienzo del año actual)
2 Años 00:00:00 del 1 de enero de 2024 (comienzo del año anterior)

¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.