Resultados de la consulta en la consola de Google Cloud

En esta página, se describe cómo crear y editar consultas de resultados de Security Command Center mediante el panel Editor de consultas en la página Resultados de la consola de Google Cloud.

Usa las consultas para recuperar resultados específicos y filtrarlos que se muestran en el panel Resultados de la consulta de resultados.

Editar consultas de resultados

En el panel Editor de consultas, puedes agregar y editar filtros en tus consultas para seleccionar los resultados según sus valores de propiedad o atributos. Puedes filtrar según la presencia de valores, la ausencia de valores o la coincidencia de una string parcial.

A medida que editas una consulta, el editor destaca cualquier error que haya en ella para que puedas corregirlo antes de enviarla.

Para editar tu consulta con el panel Editor de consultas, sigue estos pasos:

  1. Ve a la página Resultados en la consola de Google Cloud:

    Ir a hallazgos

  2. Si es necesario, selecciona tu organización o proyecto de Google Cloud.

    Selector de proyectos

    La página Resultados se carga con la consulta predeterminada que se muestra en el campo Vista previa de la consulta.

  3. A la derecha de la sección Vista previa de la consulta, haz clic en Editar consulta o en el ícono del panel de expansión para abrir el panel Editor de consultas.

  4. Selecciona Agregar filtro para navegar, buscar y agregar filtros de atributos predefinidos a la consulta.

    El diálogo Seleccionar filtro te permite elegir atributos y valores admitidos de resultados. Diálogo de filtro de consulta

    1. Selecciona un atributo de resultado o escribe su nombre en el cuadro Buscar atributos de resultados. Aparecerá una lista de los atributos secundarios disponibles.
    2. Selecciona un atributo secundario. Se muestra un campo de selección para tus opciones de evaluación sobre una lista de los valores de los atributos secundarios que se encuentran en los resultados del panel Resultados de la consulta de resultados.
    3. Selecciona una opción de evaluación para los valores del atributo secundario seleccionado. Para obtener más información sobre las opciones de evaluación y los operadores y funciones que usan, revisa Operadores de consulta en el menú Agregar filtros.
    4. Selecciona Apply (Apply).

      Se cerrará el cuadro de diálogo y se actualizará tu consulta.

    5. Repite hasta que la consulta de los resultados contenga todos los atributos que deseas.

Como alternativa, puedes formar una consulta de resultados de forma manual de la misma manera que formas un filtro de resultados mediante la API de Security Command Center. A medida que escribes tu consulta, aparece un menú de autocompletado, en el que puedes seleccionar funciones y nombres de filtros.

Cuando trabajas en el compilador de consultas en la página Resultados, la sección Filtros rápidos se desactiva para evitar conflictos entre ambos.

Operadores de consultas

Las instrucciones de consulta para los resultados de Security Command Center admiten los operadores que admite la mayoría de las API de Google Cloud.

En la siguiente lista, se muestra el uso de varios operadores:

  • state="ACTIVE" AND NOT mute="MUTED"
  • create_time>"2023-08-15T19:05:32.428Z"
  • resource.parent_name:"prod"
  • severity="CRITICAL" OR severity="HIGH"

En la siguiente lista, se muestran todos los operadores y las funciones que se admiten en las instrucciones de consulta para los resultados:

  • Para cadenas:
    • = para una igualdad total
    • : para la coincidencia parcial de cadenas
  • Para los números:
    • <, >, <=, >= para desigualdades
    • =, != para igualdad
  • Para valores booleanos:
    • = para la igualdad
  • Para relaciones lógicas:
    • AND
    • OR
    • NOT o -
  • Para agrupar expresiones:
    • (, ) (paréntesis)
  • Para arrays:
    • contains(), una función para consultar resultados con un campo de array que contiene al menos un elemento que coincide con el filtro especificado
    • containsOnly(), una función para consultar resultados con un campo de array que solo contiene elementos que coinciden con el filtro especificado
  • Para direcciones IP:
    • inIpRange(), una función para consultar direcciones IP dentro de un rango CIDR especificado

Operadores de consulta en el menú Agregar filtros

En el menú Agregar filtros del Editor de consultas en la consola de Google Cloud, los operadores y las funciones de consulta se representan con palabras o frases, como las siguientes:

  • Igual: Coincide con los resultados con este valor de filtro exacto.
  • No es igual a: Coincide con los resultados que no tienen este valor de filtro exacto.
  • Después: Hace coincidir los resultados con una hora de creación o actualización después de un tiempo especificado.
  • Antes: Hace coincidir los resultados con una hora de creación o actualización anterior a una hora especificada.
  • Has: Coincide con los resultados con valores de filtro que contienen el texto que ingresaste en el campo Palabra clave.
  • No tiene: Coincide con los resultados con valores de filtro que no contienen el texto que ingresaste en el campo Palabra clave.
  • Para encontrar atributos que contengan arrays, haz lo siguiente:
    • Contiene cualquiera: Coincide con los resultados que tienen un valor de array que contiene el texto ingresado en el campo Palabra clave.
    • Contiene todo: Coincide con los resultados que tienen un valor de array que contiene todo el texto que ingreses en el campo Palabra clave.
    • No contiene: Coincide con los resultados que no tienen un valor de array que contenga el texto que ingreses en el campo Keyword.
    • Solo contiene: Coincide con los resultados que tienen un atributo de array que contiene solo el valor que ingresas en el campo Palabra clave, sin otros valores.
  • Para direcciones IP:
    • Cualquiera dentro del rango de IP: Coincide con los resultados que tienen una dirección IP en un rango de CIDR especificado.
    • No tiene ninguno dentro del rango de IP: Coincide con los resultados que tienen una dirección IP que no está en un rango de CIDR especificado.

Funciones de consulta

Una función de consulta proporciona evaluaciones más complejas de los valores de los atributos que los operadores de consulta comunes.

Función contains

Usa la función contains para evaluar atributos o subcampos de atributos que pueden aparecer varias veces en el mismo resultado.

De forma interna, estos atributos o subcampos de atributos se almacenan en los elementos de una estructura de datos de array, por lo que se denominan atributos de tipo de array.

Por ejemplo, algunos resultados pueden hacer referencia a varias conexiones de red, por lo que el atributo connections es un atributo de tipo de array. De manera similar, algunos hallazgos de amenazas pueden hacer referencia a varias direcciones IP como indicadores de un compromiso, por lo que el subcampo ip_addresses del atributo indicator es un atributo de tipo de array.

La función contains usa la siguiente sintaxis:

contains(ARRAY_ATTRIBUTE_NAME, SUBFILTER)

Reemplaza lo siguiente:

  • ARRAY_ATTRIBUTE_NAME: Es el nombre del atributo de tipo de array que se almacena en un array. Si el atributo de tipo de array es un subcampo de otro atributo, especifica el nombre del atributo y el nombre del subcampo separados por un punto.

    En el siguiente ejemplo, el atributo de tipo de array, ip_addresses, es un subcampo de indicator, por lo que ambos se especifican en la posición ARRAY_ATTRIBUTE_NAME:

    contains(indicator.ip_addresses, elem="192.0.2.80")
  • SUBFILTER: Es una expresión que define cómo evaluar cada instancia del atributo de tipo de array. Se admiten operadores de consulta y declaraciones de evaluación de Security Command Center estándar.

    Si el valor que se va a comprobar está en un subcampo de un atributo de tipo de arreglo, especifica el nombre del subcampo a la izquierda de la expresión. La siguiente función contains evalúa cada elemento de un array de connections, que es un atributo de tipo de array que contiene subcampos. Los valores que se consultan están en el subcampo destination_ip, que no es un campo de tipo de array. Los valores que se deben consultar se especifican con el nombre del subcampo, destination_ip, en lugar del parámetro elem.

    contains(connections, destination_ip="192.0.2.80")

    Si el subcampo es el atributo de tipo de array, especifica el atributo de tipo de array a la izquierda de la expresión con su elemento superior y usa el parámetro elem a la derecha de la expresión para especificar el valor que se debe buscar. Por ejemplo, la siguiente función contains evalúa cada elemento de un array de ip_addresses, que es un subcampo del atributo indicator. El atributo indicator no es un campo de tipo de array.

    contains(indicator.ip_addresses, elem="192.0.2.80")

La función contains en el menú Agregar filtro

En el menú Agregar filtro, según el atributo de resultado que estés evaluando, la función contains se enumera de forma explícita o se incluye automáticamente cuando seleccionas otra opción de filtro que lo requiera.

Por ejemplo, para el subcampo de direcciones IP del atributo Indicator, puedes seleccionar las siguientes opciones de filtro:

  • Contiene cualquiera
  • Contiene todo
  • No contiene

Por el contrario, si filtras en el subcampo IP de destino del atributo Conexiones y seleccionas Cualquiera dentro del rango de IP, las funciones contains se agregan automáticamente a la instrucción de consulta, como se muestra en el siguiente ejemplo:

contains(connections, inIpRange(destination_ip, "2001:db8::/32"))

Para obtener más información sobre la función contains, consulta Filtra en campos de tipo de array.

Función containsOnly

La función containsOnly te permite consultar los resultados de atributos o subcampos de tipo de array que contienen solo los valores que se especifican en el subfiltro, y no otros.

La función containsOnly usa la siguiente sintaxis:

containsOnly(ARRAY_ATTRIBUTE_NAME,SUBFILTER)

Reemplaza lo siguiente:

  • ARRAY_ATTRIBUTE_NAME: Es el nombre del atributo de tipo de array. Si el atributo de tipo de array es un subcampo de otro atributo, especifica el nombre del atributo y el nombre del subcampo separados por un punto. Cuando ejecutas consultas con la consola de Google Cloud, esta función solo admite los atributos de array iam_bindings.member y iam_bindings.role.

  • SUBFILTER: Es una expresión que define cómo evaluar cada elemento del atributo de tipo de array. Se admiten los operadores de consulta de Security Command Center estándar y las instrucciones de evaluación.

En el menú Agregar filtro, las siguientes opciones de filtro usan la función containsOnly:

  • Vinculación de IAM > Miembro: Selecciona solo resultados que incluyen a los usuarios, las cuentas de servicio o los grupos especificados.

  • Vinculación de IAM > Función: Selecciona solo los resultados que incluyen las funciones especificadas.

En el siguiente ejemplo, se muestra una consulta de resultado en la consola de Google Cloud que muestra resultados activos y con sonido activado para los usuarios del grupo example-group:

state="ACTIVE"
  AND NOT mute="MUTED"
  AND containsOnly(iam_bindings,member="group:example-group@example.com")

Función inIpRange

La función inIpRange verifica si la dirección IP en un atributo de búsqueda seleccionado se encuentra dentro de un rango de direcciones IP que especificas mediante la notación CIDR (un rango CIDR). A continuación, se muestra la sintaxis de la función inIpRange:

inIpRange(ATTRIBUTE_WITH_IP, "CIDR_RANGE")

En el menú Agregar filtro, las siguientes opciones de filtro usan la función inIpRange:

  • Cualquiera dentro del rango de IP: Selecciona solo los resultados que contienen direcciones IP dentro del rango especificado.
  • No tiene ninguno dentro del rango de IP: Selecciona solo los resultados que no contienen direcciones IP dentro del rango especificado.

En el siguiente ejemplo, se muestra una consulta de resultado en la consola de Google Cloud que muestra resultados activos y no silenciados en los que el subcampo caller_ip del objeto access contiene una dirección IPv6 en el rango CIDR de 2001:db8::/32:

state="ACTIVE"
AND NOT mute="MUTED"
AND inIpRange(access.caller_ip, "2001:db8::/32")

En el siguiente ejemplo, se muestra una consulta de resultados que muestra resultados activos y no silenciados en los que el subcampo caller_ip del objeto access no contiene una dirección IP en el rango de CIDR de IPv4 de 192.0.2.0/24:

state="ACTIVE"
AND NOT mute="MUTED"
AND NOT inIpRange(access.caller_ip, "192.0.2.0/24")

Si una dirección IP se encuentra en un atributo que puede aparecer varias veces en un resultado, usa la función contains con la función inIpRange para verificar cada instancia del atributo para la dirección IP. Por ejemplo:

contains(connections, inIpRange(source_ip, "192.0.2.0/24"))

Para obtener más información sobre la función contains(), consulta La función contains.

Encuentra atributos para las consultas

Security Command Center selecciona los resultados que se mostrarán y evalúa los atributos de cada resultado almacenado con los filtros de atributos que especificas en la consulta.

Puedes consultar la mayoría de los atributos de resultados. Algunos atributos son comunes a todos los resultados. Otros atributos pueden ser específicos de un problema de seguridad, una categoría de hallazgo o un servicio de detección en particular.

En el menú Agregar filtro del panel Editor de consultas, las opciones que puedes aplicar a un filtro de atributo son diferentes según el tipo de atributo que selecciones y si el atributo tiene subcampos o un arreglo de valores.

En el menú Agregar filtro, haz clic en cualquiera de los siguientes atributos de nivel superior para mostrar los atributos secundarios y los valores que puedes usar en una consulta de resultados:

  • Buscando
  • Recurso
  • Access (access)
  • Puntuación de exposición al ataque
  • Recuperación ante desastres de la copia de seguridad
  • Cumplimientos (compliances[])
  • Conexiones (connections[])
  • Contactos
  • Contenedores
  • Base de datos
  • Robo de datos (exfiltration)
  • Archivos
  • Vinculación de IAM (iamBindings[])
  • Indicador
  • Rootkit de Kernel
  • Kubernetes
  • MITRE ATT&CK (mitreAttack)
  • Procesos (processes[])
  • Postura de seguridad
  • Sensitive Data Protection
  • Vulnerabilidad