Integra BigQuery con Google SecOps

En este documento, se explica cómo integrar BigQuery en Google Security Operations.

Casos de uso

La integración de BigQuery usa las funciones de Google SecOps para admitir los siguientes casos de uso:

  • Enriquecimiento de la inteligencia contra amenazas: Enriquece automáticamente las alertas de seguridad con datos de inteligencia contra amenazas almacenados en BigQuery para evaluar la gravedad y la credibilidad de las amenazas potenciales.

  • Análisis del comportamiento de los usuarios: Identifica la actividad anómala de los usuarios analizando los registros históricos almacenados en BigQuery para detectar amenazas internas y cuentas hackeadas.

  • Análisis de data lake de seguridad: Usa las capacidades de consulta de BigQuery para analizar grandes volúmenes de datos de seguridad agregados de varias fuentes para mejorar la búsqueda de amenazas.

  • Análisis avanzado de AA/IA: Crea modelos personalizados para la defensa predictiva y la puntuación de riesgo automatizada con datos de seguridad históricos y BigQuery ML.

  • Retención de datos a largo plazo: Archiva los datos de incidentes resueltos en BigQuery para un almacenamiento rentable a largo plazo, lo que respalda el cumplimiento y las auditorías forenses.

Antes de comenzar

Antes de configurar la integración de BigQuery en Google SecOps, completa los siguientes pasos de requisitos previos:

  1. Otorga los roles de Identity and Access Management necesarios a tu cuenta de servicio.

  2. Crea una cuenta de servicio.

  3. Elige y configura uno de los siguientes métodos de autenticación:

    • Opción 1: Workload Identity (recomendado): Este método usa tokens de acceso temporales de corta duración con la identidad temporal como cuenta de servicio.

    • Opción 2: Clave JSON de la cuenta de servicio: Este método se basa en un archivo de clave secreta estático y de larga duración.

Asigna roles de IAM

Si otorgas los permisos necesarios a tu cuenta de servicio, la integración podrá ejecutar trabajos y acceder a tus datos. Los siguientes roles estándar los administra Google Cloud y se actualizan automáticamente si cambian los requisitos de la API. Para asignar estos roles a tu cuenta de servicio, completa los siguientes pasos:

  1. En la consola de Google Cloud , ve a IAM.

    Ir a IAM

  2. Ubica tu cuenta de servicio en la lista de principales y haz clic en Editar principal (edit).

  3. Haz clic en Agregar otro rol y selecciona lo siguiente:

    • Usuario de BigQuery (roles/bigquery.user): Permite que la integración ejecute trabajos, incluidas las consultas, dentro del proyecto.

    • Visualizador de datos de BigQuery (roles/bigquery.dataViewer): Permite que la integración lea datos y metadatos de conjuntos de datos y tablas.

    • Consumidor de Service Usage (roles/serviceusage.serviceUsageConsumer): Es obligatorio si configuras Quota Project ID en los parámetros de configuración de la integración.

  4. Haz clic en Guardar.

Crea una cuenta de servicio

  1. En la consola de Google Cloud , ve a IAM y administración > Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Haz clic en addCrear cuenta de servicio.

  3. Proporciona un nombre y una descripción, y haz clic en Crear y continuar.

  4. En el paso Otorga acceso al proyecto a esta cuenta de servicio, agrega los roles identificados en el paso anterior.

  5. Haz clic en Listo. Toma nota de la dirección de correo electrónico de la cuenta de servicio.

Configura las credenciales de Workload Identity

Workload Identity es el enfoque recomendado, ya que usa tokens de acceso de corta duración con la identidad temporal como cuenta de servicio.

Identifica la identidad única de la instancia

Para establecer una conexión, debes otorgar permiso a tu instancia de Google SecOps para que use la identidad de tu cuenta de servicio.

  1. En Google SecOps, ve a Centro de contenido > Integraciones de respuesta.

  2. Selecciona la integración de BigQuery y, luego, ingresa el correo electrónico de tu cuenta de servicio en el campo Workload Identity Email.

  3. Haz clic en Guardar > Probar. Se espera que la prueba falle.

  4. Haz clic en el botón close_small junto a Prueba y busca el correo electrónico de identidad que comienza con gke-init-python@... o soar-python@....

  5. Copia esta dirección de correo electrónico única.

Autoriza la identidad de la instancia en Google Cloud

  1. En la consola de Google Cloud , ve a IAM y administración > Cuentas de servicio.

    Ir a Cuentas de servicio

  2. Selecciona la cuenta de servicio de destino y ve a Permisos > Otorgar acceso.

  3. Pega la dirección de correo electrónico única en el campo Principales nuevas y asigna el rol de Creador de tokens de cuenta de servicio (roles/iam.serviceAccountTokenCreator).

Configura una clave JSON

Los archivos de claves secretas estáticas y de larga duración requieren una rotación manual. Usa este método solo si la autenticación de Workload Identity no está disponible.

  1. En la consola de Google Cloud , ve a IAM y administración > Cuentas de servicio y selecciona tu cuenta de servicio.

    Ir a Cuentas de servicio

  2. Ve a la pestaña Claves y haz clic en Agregar clave > Crear clave nueva.

  3. Selecciona JSON y haz clic en Crear. El archivo se descargará automáticamente en tu computadora.

Configura parámetros individuales de forma manual

Si eliges ingresar las credenciales de forma manual, mantén abierto el archivo de claves JSON descargado en un editor de texto para copiar los valores individuales que se requieren en la configuración de la integración.

Parámetros de integración

Para establecer una conexión entre Google SecOps y BigQuery, debes configurar los siguientes parámetros. La integración admite tres rutas de autenticación distintas. Elige uno de los siguientes métodos para proporcionar credenciales.

  • Workload Identity: Usa Workload Identity Email y Quota Project ID.

  • Archivo JSON de la cuenta de servicio: Usa Service Account Json File Content para proporcionar la clave completa de una sola vez.

  • Parámetros individuales manuales: Usa campos separados copiados manualmente de una clave JSON.

Parámetro Descripción
API Root

Es opcional.

Es la raíz de la API de la instancia de BigQuery (por ejemplo, https://bigquery.googleapis.com).

Workload Identity Email

Es opcional.

Es la dirección de correo electrónico del cliente de tu cuenta de servicio. Usa esto para la autenticación de Workload Identity.

Service Account Json File Content

Es opcional.

Es el contenido completo del archivo JSON de la clave de la cuenta de servicio.

Si configuras este parámetro, la integración ignora los parámetros de credenciales individuales.

Quota Project ID

Es opcional.

Es el ID del proyecto que se usa para el uso y la facturación de la API. Este parámetro es obligatorio cuando se usa la autenticación de Workload Identity.

Project ID

Es opcional.

Es el ID del proyecto al que se orientará en BigQuery.

Verify SSL

Obligatorio.

Valida el certificado SSL para la conexión. Habilitada de forma predeterminada.

Parámetros de credenciales individuales

Usa los siguientes parámetros solo si ingresas las credenciales de forma manual, en lugar de usar el contenido completo del archivo JSON o una Workload Identity.

Parámetro Descripción
Account Type

Es opcional.

Es el valor que se encuentra en el campo type de tu clave JSON (por lo general, service_account).

Private Key ID

Es opcional.

Es el valor que se encuentra en el campo private_key_id de tu clave JSON.

Private Key

Es opcional.

Es el valor que se encuentra en el campo private_key de tu clave JSON.

Client Email

Es opcional.

Es el valor que se encuentra en el campo client_email de tu clave JSON.

Client ID

Es opcional.

Es el valor que se encuentra en el campo client_id de tu clave JSON.

Auth URI

Es opcional.

Es el valor que se encuentra en el campo auth_uri de tu clave JSON.

El valor predeterminado es https://accounts.google.com/o/oauth2/auth.

Token URI

Es opcional.

Es el valor que se encuentra en el campo token_uri de tu clave JSON.

El valor predeterminado es https://oauth2.googleapis.com/token.

Auth Provider X509 URL

Es opcional.

Es el valor que se encuentra en el campo auth_provider_x509_cert_url de tu clave JSON.

Client X509 URL

Es opcional.

Es el valor que se encuentra en el campo client_x509_cert_url de tu clave JSON.

Para obtener instrucciones sobre cómo configurar una integración en Google SecOps, consulta Configura integraciones.

Si es necesario, puedes realizar cambios más adelante. Después de configurar una instancia de integración, puedes usarla en las guías. Para obtener más información sobre cómo configurar y admitir varias instancias, consulta Cómo admitir varias instancias.

Acciones

Para obtener más información sobre las acciones, consulta Responde a las acciones pendientes desde tu escritorio y Ejecuta una acción manual en tu caso.

Ping

Usa la acción Ping para probar la conectividad a BigQuery.

Esta acción no se ejecuta en las entidades de Google SecOps.

Entradas de acción

Ninguno

Resultados de la acción

La acción Ping proporciona los siguientes resultados:

Tipo de resultado de la acción Disponibilidad
Archivo adjunto del muro de casos No disponible
Vínculo al muro de casos No disponible
Tabla del muro de casos No disponible
Tabla de enriquecimiento No disponible
Resultado de JSON No disponible
Mensajes de salida Disponible
Resultado de secuencia de comandos Disponible
Mensajes de salida

La acción Ping puede devolver los siguientes mensajes de resultado:

Mensaje de salida Descripción del mensaje
Successfully connected to the Google BigQuery server with the provided connection parameters! La acción se realizó correctamente.
Failed to connect to the Google BigQuery server! Error is ERROR_REASON

No se pudo realizar la acción.

Verifica la conexión con el servidor, los parámetros de entrada o las credenciales.

Resultado de secuencia de comandos

En la siguiente tabla, se indica el valor del resultado de la secuencia de comandos cuando se usa la acción Ping:

Nombre del resultado de la secuencia de comandos Valor
is_success True o False

Ejecuta una consulta personalizada

Usa la acción Ejecutar consulta personalizada para ejecutar consultas personalizadas en BigQuery.

Esta acción no se ejecuta en las entidades de Google SecOps.

Entradas de acción

La acción Ejecutar consulta personalizada requiere los siguientes parámetros:

Parámetros Descripción
Query

Obligatorio.

Es la consulta en SQL que se ejecutará.

Max Results To Return

Es opcional.

Es la cantidad de resultados que se mostrarán para cada respuesta.

El valor predeterminado es 50.

Resultados de la acción

La acción Ejecutar consulta personalizada proporciona los siguientes resultados:

Tipo de resultado de la acción Disponibilidad
Archivo adjunto del muro de casos No disponible
Vínculo al muro de casos No disponible
Tabla del muro de casos No disponible
Tabla de enriquecimiento No disponible
Resultado de JSON Disponible
Mensajes de salida Disponible
Resultado de secuencia de comandos Disponible
Resultado de JSON

En el siguiente ejemplo, se muestra el resultado JSON que se recibe cuando se usa la acción Ejecutar consulta personalizada:

{
    "Airport_Code": "CODE",
    "Airport_Name": "NAME",
    "Time_Label": "2015/05",
    "Time_Month": 5,
    "Time_Month_Name": "May",
    "Time_Year": 2015,
    "Statistics___of_Delays_Carrier": 351,
    "Statistics___of_Delays_Late_Aircraft": 546,
    "Statistics___of_Delays_National_Aviation_System": 292,
    "Statistics___of_Delays_Security": 2,
    "Statistics___of_Delays_Weather": 100,
    "Statistics_Carriers_Names": "Example Air Lines Inc., Example Airlines Co.",
    "Statistics_Carriers_Total": 3,
    "Statistics_Flights_Cancelled": 88,
    "Statistics_Flights_Delayed": 1289,
    "Statistics_Flights_Diverted": 32,
    "Statistics_Flights_On_Time": 6182,
    "Statistics_Flights_Total": 7591,
    "Statistics_Minutes_Delayed_Carrier": 19332,
    "Statistics_Minutes_Delayed_Late_Aircraft": 34376,
    "Statistics_Minutes_Delayed_National_Aviation_System": 12346,
    "Statistics_Minutes_Delayed_Security": 48,
    "Statistics_Minutes_Delayed_Total": 76163,
    "Statistics_Minutes_Delayed_Weather": 100061
}
Mensajes de salida

La acción Ejecutar consulta personalizada puede devolver los siguientes mensajes de salida:

Mensaje de salida Descripción del mensaje
Successfully executed query in Google BigQuery! La acción se realizó correctamente.
Error executing action "Run Custom Query". Reason: ERROR_REASON

No se pudo realizar la acción.

Verifica la conexión con el servidor, los parámetros de entrada o las credenciales.

Resultado de secuencia de comandos

En la siguiente tabla, se muestra el valor del resultado de la secuencia de comandos cuando se usa la acción Ejecutar consulta personalizada:

Nombre del resultado de la secuencia de comandos Valor
is_success True o False

Ejecuta una consulta en SQL

Usa la acción Ejecutar consulta en SQL para ejecutar consultas en BigQuery.

Esta acción no se ejecuta en las entidades de Google SecOps.

Entradas de acción

La acción Ejecutar consulta en SQL requiere los siguientes parámetros:

Parámetros Descripción
Dataset Name

Obligatorio.

Es el nombre del conjunto de datos que se usará cuando se ejecuten las consultas.

Query

Obligatorio.

Es la consulta en SQL que se ejecutará.

Max Results To Return

Es opcional.

Es la cantidad de resultados que se mostrarán para cada respuesta.

El valor predeterminado es 50.

Resultados de la acción

La acción Ejecutar consulta en SQL proporciona los siguientes resultados:

Tipo de resultado de la acción Disponibilidad
Archivo adjunto del muro de casos No disponible
Vínculo al muro de casos No disponible
Tabla del muro de casos No disponible
Tabla de enriquecimiento No disponible
Resultado de JSON No disponible
Mensajes de salida Disponible
Resultado de secuencia de comandos Disponible
Resultado de JSON

En el siguiente ejemplo, se describe el resultado JSON que se recibe cuando se usa la acción Ejecutar consulta en SQL:

{
    "Airport_Code": "CODE",
    "Airport_Name": "NAME",
    "Time_Label": "2015/05",
    "Time_Month": 5,
    "Time_Month_Name": "May",
    "Time_Year": 2015,
    "Statistics___of_Delays_Carrier": 351,
    "Statistics___of_Delays_Late_Aircraft": 546,
    "Statistics___of_Delays_National_Aviation_System": 292,
    "Statistics___of_Delays_Security": 2,
    "Statistics___of_Delays_Weather": 100,
    "Statistics_Carriers_Names": "Example Airlines Inc.,Example Airlines Co.",
    "Statistics_Carriers_Total": 3,
    "Statistics_Flights_Cancelled": 88,
    "Statistics_Flights_Delayed": 1289,
    "Statistics_Flights_Diverted": 32,
    "Statistics_Flights_On_Time": 6182,
    "Statistics_Flights_Total": 7591,
    "Statistics_Minutes_Delayed_Carrier": 19332,
    "Statistics_Minutes_Delayed_Late_Aircraft": 34376,
    "Statistics_Minutes_Delayed_National_Aviation_System": 12346,
    "Statistics_Minutes_Delayed_Security": 48,
    "Statistics_Minutes_Delayed_Total": 76163,
    "Statistics_Minutes_Delayed_Weather": 100061
}
Mensajes de salida

La acción Ejecutar consulta en SQL puede devolver los siguientes mensajes de salida:

Mensaje de salida Descripción del mensaje
Successfully executed query in the BigQuery dataset DATASET_NAME. La acción se realizó correctamente.
Error executing action "Run SQL Query". Reason: ERROR_REASON

No se pudo realizar la acción.

Verifica la conexión con el servidor, los parámetros de entrada o las credenciales.

Resultado de secuencia de comandos

En la siguiente tabla, se muestra el valor del resultado de la secuencia de comandos cuando se usa la acción Ejecutar consulta en SQL:

Nombre del resultado de la secuencia de comandos Valor
is_success True o False

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