Cómo consultar resultados en la consola

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

Usa consultas para recuperar resultados específicos y filtrar los que se muestran en los resultados de la consulta.

Edita las consultas de resultados

En el panel Editor de consultas, puedes agregar filtros a tus consultas para seleccionar resultados según sus valores de propiedad o atributo. Puedes filtrar elementos como la presencia de valores, la ausencia de valores o la coincidencia de una cadena parcial.

  1. En la Google Cloud consola de, ve a la página Resultados de Security Command Center.

    Ir a hallazgos

  2. Selecciona tu Google Cloud proyecto u organización. 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 para abrir el panel Editor de consultas.
  4. Selecciona Agregar filtro para navegar, buscar y agregar filtros de atributos predefinidos a la consulta.

    El menú Agregar filtro te permite elegir atributos y valores admitidos de resultados.

    1. En el menú Seleccionar filtro, selecciona un atributo de resultado o escribe su nombre en el cuadro Buscar atributos de los hallaznos. Se mostrará una lista de los subatributos disponibles.
    2. Selecciona un atributo secundario. Se mostrará un campo de selección en el que puedes compilar la instrucción de consulta con el atributo secundario que seleccionaste, un operador de consulta y uno o más valores para el atributo secundario.
    3. Selecciona el operador y uno o más valores para el atributo secundario del panel. Para obtener más información sobre los operadores de consulta y las funciones que usan, consulta Operadores de consulta en el menú Agregar filtros.

      Si quieres comenzar de nuevo, haz clic en Restablecer.

    4. Haz clic en Aplicar.

      Se cerrará el menú y se actualizará tu consulta.

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

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

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, nombres y valores de filtros. Para abrir el menú de autocompletado de forma manual, presiona Control+Space.

A medida que editas una consulta, el editor destaca cualquier error en la consulta para que puedas corregirlos antes de enviarla.

Operadores de consultas

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

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 coincidencia exacta

      Por ejemplo, resource.parent_name="prod" coincide con el valor prod. No coincide con production ni canaryprod.

    • : para una coincidencia parcial

      Por ejemplo, resource.parent_name:"prod" coincide con los valores prod, production y canaryprod.

  • Para números (excepto int64):

    • <, >, <=, >= para desigualdades
    • =, != para igualdad
  • Para números (int 64):

    • =, != para igualdad
  • Para booleanos:

    • = para 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 de CIDR especificado

Operadores de consulta en el menú Agregar filtros

En el Agregar filtro menú del Editor de consultas, 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 atributo exacto.
  • No es igual: Coincide con los resultados que no tienen este atributo exacto valor.
  • Después: Coincide con los resultados con una hora de creación o actualización posterior a una hora especificada
  • Antes: Coincide con los resultados con una hora de creación o actualización anterior a una hora especificada.
  • Mayor que: Coincide con los resultados con valores de atributos que son más altos que el valor especificado.
  • Menor que: Coincide con los resultados con valores de atributos que son más bajos que el valor especificado.
  • Tiene: Coincide con los resultados con valores de atributos que contienen el texto que ingresas en el campo Palabra clave.
  • No tiene: Coincide con los resultados con valores de atributos que no contienen el texto que ingresas en el campo Palabra clave.
  • Para atributos de resultados que contienen arrays:
    • Contiene cualquiera: Coincide con los resultados que tienen un valor de array que contiene cualquiera de los textos que ingresas en el campo Palabra clave.
    • Contiene todos: Coincide con los resultados que tienen un valor de array que contiene todo el texto que ingresas en el campo Palabra clave.
    • No contiene ninguno: Coincide con los resultados que no tienen un valor de array que contenga el texto que ingreses en el campo Palabra clave.
    • Contiene solo: Coincide con los resultados que tienen un atributo de array que contiene solo el valor que ingresas en el campo Palabra clave y ningún otro valor.
  • 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 atributos que los operadores de consulta comunes.

La función contains

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

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 conocen como atributos de tipo array.

Por ejemplo, ciertos resultados pueden hacer referencia a varias conexiones de red, por lo que el atributo connections es un atributo de tipo array. Del mismo modo, ciertos resultados de amenazas pueden hacer referencia a varias direcciones IP como indicadores de una vulneración, por lo que el subcampo ip_addresses del atributo indicator es un atributo de tipo array.

La función contains usa la siguiente sintaxis:

contains(ARRAY_ATTRIBUTE_NAME, SUBFILTER)

Reemplaza lo siguiente:

  • ARRAY_ATTRIBUTE_NAME: el nombre del atributo de tipo array que se almacena en un array. Si el atributo de tipo 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 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: una expresión que define cómo evaluar cada instancia del atributo de tipo array. Se admiten los operadores de consulta y las instrucciones de evaluación de Security Command Center Standard .

    Si el valor que se verificará está en un subcampo de un atributo de tipo array, 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 array que contiene subcampos. Los valores que se consultan están en el subcampo destination_ip, que no es un campo de tipo array. Los valores que se consultarán 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 array, especifica el atributo de tipo array a la izquierda de la expresión con su superior y usa el parámetro elem a la derecha de la expresión para especificar el valor que se 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 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 hallazgo que estés evaluando, la función contains se muestra de forma explícita o se incluye automáticamente cuando seleccionas otra opción de filtro que la requiere.

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

  • Contiene cualquiera
  • Contiene todos
  • No contiene ninguno

Por el contrario, si filtras el subcampo IP de destino del atributo Conexiones y seleccionas Cualquiera dentro del rango de IP, las contains funciones se agregarán 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 Filtrado en campos de tipo de array.

La función containsOnly

La función containsOnly te permite consultar resultados para atributos o subcampos de tipo array que contienen solo los valores que se especifican en el subfiltro y ningún otro.

La función containsOnly usa la siguiente sintaxis:

containsOnly(ARRAY_ATTRIBUTE_NAME,SUBFILTER)

Reemplaza lo siguiente:

  • ARRAY_ATTRIBUTE_NAME: el nombre del atributo de tipo array. Si el atributo de tipo 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 Google Cloud consola de, esta función solo admite los atributos de array iam_bindings.member y iam_bindings.role.

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

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

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

  • Vinculación de IAM > Rol: Selecciona solo los resultados que incluyen los roles especificados.

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

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

La función inIpRange

La función inIpRange verifica si la dirección IP de un atributo de resultado seleccionado está dentro de un rango de direcciones IP que especificas con la notación CIDR (un rango de 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 resultados en la Google Cloud consola que muestra resultados activos y no silenciados en los que el caller_ip subcampo del objeto access contiene una dirección IPv6 en el rango de 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 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 está en un atributo que puede aparecer varias veces en un hallazgo, usa la función contains con la función inIpRange para verificar cada instancia del atributo de 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.

Atributos de resultados para consultas

Security Command Center selecciona los hallazgos que se mostrarán evaluando los atributos de cada hallazgo almacenado en comparación con los filtros de atributos que especificas en la consulta.

Puedes consultar la mayoría de los atributos de hallazgos. Algunos atributos son comunes a todos los resultados. Otros atributos pueden ser específicos de un problema de seguridad, una categoría de resultado 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 atributos son diferentes según el tipo de atributo que selecciones y si el atributo tiene subcampos o un array de valores.

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

  • Hallazgo
  • Recurso
  • Acceso (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
  • Eventos de acceso a los datos
  • Eventos de flujo de datos
  • Eventos de eliminación de retención de datos (DataRetentionDeletionEvent)
  • Robo de datos (exfiltration)
  • Archivos
  • Vinculación de IAM (iamBindings[])
  • Indicador
  • Rootkit de Kernel
  • Kubernetes
  • MITRE ATT&CK (mitreAttack)
  • Procesos (processes[])
  • Postura de seguridad
  • Protección de datos sensibles
  • Vulnerabilidad