Usar secuencias de comandos de ingestión implementadas como funciones de Cloud Run

Disponible en:

Google Security Operations ha proporcionado un conjunto de secuencias de comandos de ingestión escritas en Python que se pueden implementar como funciones de Cloud Run. Estos scripts le permiten ingerir datos de las siguientes fuentes de registro, que se indican por nombre y tipo de registro.

  • Armis Google SecOps Integration
  • Aruba Central (ARUBA_CENTRAL)
  • Azure Event Hub (configurable log type)
  • Box (BOX)
  • Citrix Cloud audit logs (CITRIX_MONITOR)
  • Citrix session metadata (CITRIX_SESSION_METADATA)
  • Cloud Storage (configurable log type)
  • Duo Activity (DUO_ACTIVITY)
  • Duo Admin (DUO_ADMIN)
  • MISP (MISP_IOC)
  • OneLogin (ONELOGIN_SSO)
  • OneLogin user context (ONELOGIN_USER_CONTEXT)
  • Proofpoint (configurable log type)
  • Pub/Sub (configurable log type)
  • Slack audit logs (SLACK_AUDIT)
  • STIX/TAXII threat intelligence (STIX)
  • Tenable.io (TENABLE_IO)
  • Trend Micro Cloud App Security (configurable log type)
  • Trend Micro Vision One audit logs (TREND_MICRO_VISION_AUDIT)

Estas secuencias de comandos se encuentran en el repositorio de GitHub de Google SecOps.

Limitación conocida: Cuando estos scripts se usan en un entorno sin estado, como las funciones de Cloud Run, es posible que no envíen todos los registros a Google SecOps porque no tienen funcionalidad de punto de control. Google SecOps ha probado las secuencias de comandos con el runtime de Python 3.9.

Antes de empezar

Consulta los siguientes recursos, que proporcionan contexto e información general para que puedas usar los scripts de ingestión de Google SecOps de forma eficaz.

Reúne los archivos de un solo tipo de registro

Cada subdirectorio de Google SecOps GitHub contiene archivos que ingieren datos de un solo tipo de registro de Google SecOps. La secuencia de comandos se conecta a un único dispositivo de origen y, a continuación, envía los registros sin procesar a Google SecOps mediante la API Ingestion. Te recomendamos que implementes cada tipo de registro como una función de Cloud Run independiente. Accede a las secuencias de comandos en el repositorio de GitHub de Google SecOps. Cada subdirectorio de GitHub contiene los siguientes archivos específicos del tipo de registro que ingiere.

  • main.py es la secuencia de comandos de ingestión específica del tipo de registro. Se conecta al dispositivo de origen e ingiere datos en Google SecOps.
  • .env.yml almacena la configuración que necesita la secuencia de comandos de Python y es específica de la implementación. Modifica este archivo para definir los parámetros de configuración que necesita la secuencia de comandos de ingestión.
  • README.md proporciona información sobre los parámetros de configuración.
  • Requirements.txt define las dependencias que necesita la secuencia de comandos de ingestión. Además, la carpeta common contiene funciones de utilidad de las que dependen todas las secuencias de comandos de ingestión.

Sigue estos pasos para ensamblar los archivos que ingieren datos de un solo tipo de registro:

  1. Crea un directorio de implementación para almacenar los archivos de la función de Cloud Run. Contendrá todos los archivos necesarios para la implementación.
  2. Copia todos los archivos del subdirectorio de GitHub del tipo de registro seleccionado (por ejemplo, Contexto de usuario de OneLogin) en este directorio de implementación.
  3. Copia la carpeta common y todo su contenido en el directorio de implementación.
  4. El contenido del directorio será similar al siguiente:

    one_login_user
    ├─common
    │  ├─__init__.py
    │  ├─auth.py
    │  ├─env_constants.py
    │  ├─ingest.py
    │  ├─status.py
    │  └─utils.py
    ├─env.yml
    ├─main.py
    └─requirements.txt
    

Configurar las secuencias de comandos

  1. Inicia una sesión de Cloud Shell.
  2. Conéctate a una Google Cloud VM de Linux con SSH. Consulta Conectarse a máquinas virtuales de Linux con herramientas de Google.
  3. Sube los scripts de ingestión haciendo clic en Más > Subir o Descargar para mover tus archivos o carpetas a Cloud Shell o desde él.

    Los archivos y las carpetas solo se pueden subir y descargar desde tu directorio principal. Para ver más opciones para transferir archivos entre Cloud Shell y tu estación de trabajo local, consulta [Subir y descargar archivos y carpetas de Cloud Shell](/shell/docs/uploading-and-downloading-files#upload_and_download_files_and_folders).

  4. Edita el archivo .env.yml de la función y rellena las variables de entorno necesarias. En la siguiente tabla se enumeran las variables del entorno de ejecución comunes a todas las secuencias de comandos de ingestión.

    Nombre de variable Descripción Obligatorio Predeterminado Secret
    CHRONICLE_CUSTOMER_ID ID de cliente de Chronicle (Google SecOps). Ninguno No
    CHRONICLE_REGION Región de Chronicle (Google SecOps). us
    Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
    No
    CHRONICLE_SERVICE_ACCOUNT Contenido del archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
    CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. No Ninguno No

  5. Cada secuencia de comandos requiere variables de entorno específicas. Consulta los parámetros de configuración por tipo de registro para obtener información sobre las variables de entorno que requiere cada tipo de registro.

Las variables de entorno marcadas con Secret = Yes deben configurarse como secretos en Secret Manager. Consulta los precios de Secret Manager para obtener información sobre el coste de usar Secret Manager.

Consulta las instrucciones detalladas para crear y acceder a secretos.

Una vez que se hayan creado los secretos en Secret Manager, utilice el nombre de recurso del secreto como valor de las variables de entorno. Por ejemplo: projects/{project_id}/secrets/{secret_id}/versions/{version_id}, donde {project_id}, {secret_id} y {version_id} son específicos de tu entorno.

Configurar un programador o un activador

Todos los scripts, excepto Pub/Sub, se implementan para recoger los datos a intervalos periódicos de un dispositivo de origen. Debes configurar un activador con Cloud Scheduler para obtener datos a lo largo del tiempo. La secuencia de comandos de ingestión de Pub/Sub monitoriza continuamente la suscripción de Pub/Sub. Para obtener más información, consulta Ejecutar servicios de forma programada y Usar Pub/Sub para activar una función de Cloud Run.

Desplegar la función de Cloud Run

  1. Inicia una sesión de Cloud Shell.
  2. Conéctate mediante SSH a una Google Cloud máquina virtual Linux. Consulta Conectarse a máquinas virtuales de Linux con herramientas de Google.
  3. Cambia al directorio en el que has copiado las secuencias de comandos de ingestión.
  4. Ejecuta el siguiente comando para implementar la función de Cloud Run.

    gcloud functions deploy <FUNCTION NAME> --service-account <SERVICE_ACCOUNT_EMAIL> --entry-point main --trigger-http --runtime python39 --env-vars-file .env.yml

    Sustituye <FUNCTION_NAME> por el nombre que definas para la función de Cloud Run.

    Sustituye <SERVICE_ACCOUNT_EMAIL> por la dirección de correo de la cuenta de servicio que quieras que use tu función de Cloud Run. cuenta de servicio que quieras que use tu función de Cloud Run.

    Si no cambias el directorio a la ubicación de los archivos, asegúrate de usar la opción --source para especificar la ubicación de las secuencias de comandos de implementación.

    La cuenta de servicio que ejecuta tu función de Cloud Run debe tener los roles Invocador de Cloud Functions (roles/cloudfunctions.invoker) y Accessor de secretos de Secret Manager (roles/secretmanager.secretAccessor).

Ver registros del entorno de ejecución

Las secuencias de comandos de ingestión imprimen mensajes de tiempo de ejecución en stdout. Cloud Run Functions proporciona un mecanismo para ver los mensajes de registro.

Parámetros de configuración por tipo de registro

Integración de Armis con Google SecOps

Esta secuencia de comandos recoge los datos mediante llamadas a la API de la plataforma Armis para diferentes tipos de eventos, como alertas, actividades, dispositivos y vulnerabilidades. Los datos recogidos se ingieren en Google SecOps y se analizan con los analizadores correspondientes.

Flujo de la secuencia de comandos

A continuación, se muestra el flujo de la secuencia de comandos:

  1. Verifica las variables de entorno.

  2. Despliega la secuencia de comandos en Cloud Run Functions.

  3. Recopila datos mediante la secuencia de comandos de ingestión.

  4. Ingiere los datos recogidos en Google SecOps.

  5. Analiza los datos recogidos con los analizadores correspondientes en Google SecOps.

Usar una secuencia de comandos para recoger e ingerir datos en Google SecOps

  1. Verifica las variables de entorno.

    Variable Descripción Obligatorio Predeterminado Secreto
    CHRONICLE_CUSTOMER_ID ID de cliente de Chronicle (Google SecOps). - No
    CHRONICLE_REGION Región de Chronicle (Google SecOps). US
    CHRONICLE_SERVICE_ACCOUNT Contenido del archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). -
    CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). No - No
    POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener información adicional. Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 10 No
    ARMIS_SERVER_URL URL del servidor de la plataforma Armis. - No
    ARMIS_API_SECRET_KEY Se necesita una clave secreta para autenticar. -
    HTTPS_PROXY URL del servidor proxy. No - No
    CHRONICLE_DATA_TYPE Tipo de datos de Chronicle (Google SecOps) para enviar datos a Google SecOps. - No
  2. Configura el directorio.

    Crea un directorio para la implementación de las funciones de Cloud Run y añade a él un directorio common y el contenido de la secuencia de comandos de ingestión (armis).

  3. Define las variables de entorno de tiempo de ejecución necesarias.

    Define las variables de entorno necesarias en el archivo .env.yml.

  4. Usa secretos.

    Las variables de entorno marcadas como secretas deben configurarse como secretos en Secret Manager. Para obtener más información sobre cómo crear secretos, consulta Crear un secreto.

    Después de crear los secretos en Secret Manager, usa el nombre de recurso del secreto como valor de las variables de entorno. Por ejemplo:

    CHRONICLE_SERVICE_ACCOUNT: projects/{project_id}/secrets/{secret_id}/versions/{version_id}

  5. Configura el espacio de nombres.

    Define la variable de entorno CHRONICLE_NAMESPACE para configurar el espacio de nombres. Los registros de Chronicle (Google SecOps) se ingieren en el espacio de nombres.

  6. Despliega las funciones de Cloud Run.

    Ejecuta el siguiente comando desde el directorio que has creado anteriormente para desplegar la función en la nube. gcloud functions deploy <FUNCTION NAME> --gen2 --entry-point main --trigger-http --runtime python39 --env-vars-file .env.yml

  7. Especificaciones predeterminadas de Cloud Run Functions.

    Variable Predeterminado Descripción
    Memoria 256 MB Ninguno Ninguno
    Timedout 60 segundos Ninguno Ninguno
    Región us-central1 Ninguno Ninguno
    Número mínimo de instancias 0 Ninguno Ninguno
    Número máximo de instancias 100 Ninguno Ninguno

    Para obtener más información sobre cómo configurar estas variables, consulta Configurar funciones de Cloud Run.

  8. Obtener el historial de datos.

    Para obtener el historial de datos y seguir recogiendo datos en tiempo real, haga lo siguiente:

    1. Configura la variable de entorno POLL_INTERVAL en minutos para la que se deben obtener los datos históricos.
    2. Activa la función mediante un programador o manualmente ejecutando el comando en la CLI de Google Cloud después de configurar Cloud Run functions.

Aruba Central

Esta secuencia de comandos obtiene registros de auditoría de la plataforma Aruba Central y los ingiere en Google SecOps con el tipo de registro ARUBA_CENTRAL. Para obtener información sobre cómo se puede usar la biblioteca, consulta el SDK de Python pycentral.

Define las siguientes variables de entorno en el archivo .env.yml.

Variable Descripción Predeterminado Secreto
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Chronicle (Google SecOps), consulta Trabajar con espacios de nombres de activos. Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 10 No
ARUBA_CLIENT_ID ID de cliente de la pasarela de APIs de Aruba Central. Ninguno No
ARUBA_CLIENT_SECRET_SECRET_PATH Secreto de cliente de la pasarela de API de Aruba Central. Ninguno
ARUBA_USERNAME Nombre de usuario de la plataforma Aruba Central. Ninguno No
ARUBA_PASSWORD_SECRET_PATH Contraseña de la plataforma Aruba Central. Ninguno
ARUBA_BASE_URL URL base de la pasarela de APIs de Aruba Central. Ninguno No
ARUBA_CUSTOMER_ID ID de cliente de la plataforma Aruba Central. Ninguno No

Azure Event Hub

A diferencia de otras secuencias de comandos de ingestión, esta usa funciones de Azure para obtener eventos de Azure Event Hub. Una función de Azure se activa cada vez que se añade un evento a un segmento y cada evento se ingiere gradualmente en Google SecOps.

Pasos para implementar funciones de Azure:

  1. Descarga del repositorio el archivo del conector de datos llamado Azure_eventhub_API_function_app.json.
  2. Inicia sesión en el portal de Microsoft Azure.
  3. Ve a Microsoft Sentinel > selecciona tu espacio de trabajo de la lista > Selecciona Conector de datos en la sección de configuración y haz lo siguiente:
  4. Haz clic en el botón Implementar en Azure para implementar tu función y sigue los pasos que se indican en la misma página.
  5. Selecciona la Suscripción, el Grupo de recursos y la Ubicación que prefieras y proporciona los valores necesarios.
  6. Haz clic en Revisar y crear.
  7. Haz clic en Crear para implementar.

Box

Esta secuencia de comandos obtiene detalles sobre los eventos que se producen en Box y los ingiere en Google SecOps con el tipo de registro BOX. Los datos proporcionan información valiosa sobre las operaciones CRUD en objetos del entorno de Box. Para obtener información sobre los eventos de Box, consulta la API de eventos de Box.

Define las siguientes variables de entorno en el archivo .env.yml. Para obtener más información sobre el ID de cliente, el secreto de cliente y el ID de asunto de Box, consulta ClientCredentialsGrant .

Nombre de variable Descripción Valor predeterminado Secret
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 5 No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
BOX_CLIENT_ID ID de cliente de la plataforma Box, disponible en la consola para desarrolladores de Box. Ninguno No
BOX_CLIENT_SECRET Ruta al secreto de Secret Manager que almacena el secreto de cliente de la plataforma Box que se usa para la autenticación. Ninguno
BOX_SUBJECT_ID ID de usuario o ID de empresa de Box. Ninguno No
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No

Registros de auditoría de Citrix Cloud

Esta secuencia de comandos recoge registros de auditoría de Citrix Cloud y los ingiere en Google SecOps con el tipo de registro CITRIX_MONITOR. Estos registros ayudan a identificar las actividades realizadas en el entorno de Citrix Cloud proporcionando información sobre qué ha cambiado, quién lo ha cambiado, cuándo se ha cambiado, etc. Para obtener más información, consulta la API SystemLog de Citrix Cloud.

Define las siguientes variables de entorno en el archivo .env.yml. Para obtener información sobre los IDs y los secretos de cliente de Citrix, consulta el artículo Empezar a usar las APIs de Citrix.

Nombre de variable Descripción Valor predeterminado Secret
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
CITRIX_CLIENT_ID ID de cliente de la API de Citrix. Ninguno No
CITRIX_CLIENT_SECRET Ruta al secreto de Secret Manager que almacena el secreto de cliente de la API de Citrix que se usa para la autenticación. Ninguno
CITRIX_CUSTOMER_ID ID de cliente de Citrix. Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se recogen datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 30 No
URL_DOMAIN Citrix Cloud Endpoint. Ninguno No
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Chronicle (Google SecOps), consulta Trabajar con espacios de nombres de activos. Ninguno No

Metadatos de la sesión de Citrix

Esta secuencia de comandos recoge metadatos de sesiones de Citrix de entornos de Citrix y los ingiere en Google SecOps con el tipo de registro CITRIX_MONITOR. Los datos incluyen los detalles de inicio de sesión del usuario, la duración de la sesión, la hora de creación de la sesión, la hora de finalización de la sesión y otros metadatos relacionados con la sesión. Para obtener más información, consulta la API del servicio de monitorización de Citrix.

Define las siguientes variables de entorno en el archivo .env.yml. Para obtener información sobre los IDs y los secretos de cliente de Citrix, consulta el artículo Empezar a usar las APIs de Citrix.

Nombre de variable Descripción Valor predeterminado Secret
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
URL_DOMAIN Dominio de URL de Citrix. Ninguno No
CITRIX_CLIENT_ID ID de cliente de Citrix. Ninguno No
CITRIX_CLIENT_SECRET Ruta al secreto de Secret Manager que almacena el secreto de cliente de Citrix usado para la autenticación. Ninguno
CITRIX_CUSTOMER_ID ID de cliente de Citrix. Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 30 No
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No

Cloud Storage

Esta secuencia de comandos obtiene los registros del sistema de Cloud Storage y los ingiere en Google SecOps con un valor configurable para el tipo de registro. Para obtener más información, consulta la Google Cloud biblioteca de cliente de Python.

Define las siguientes variables de entorno en el archivo .env.yml. Google Cloud tiene registros relevantes para la seguridad de los que algunos tipos de registro no se pueden exportar directamente a Google SecOps. Para obtener más información, consulta Analíticas de registros de seguridad.

Variable Descripción Predeterminado Secret
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 60 No
GCS_BUCKET_NAME Nombre del segmento de Cloud Storage del que se van a obtener los datos. Ninguno No
GCP_SERVICE_ACCOUNT_SECRET_PATH Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio. Google Cloud Ninguno
CHRONICLE_DATA_TYPE Tipo de registro para enviar datos a la instancia de Chronicle (Google SecOps). Ninguno No

Actividad de Duo

Esta secuencia de comandos obtiene los registros de actividad de Duo de Duo Admin y los ingiere en Google SecOps con el tipo de registro DUO_ACTIVITY. Para obtener más información, consulta la API Duo Admin.

Define las siguientes variables de entorno en el archivo .env.yml.

Nombre de variable Descripción Valor predeterminado Secret
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west12, me-central1, me-central2, me-west1 y northamerica-northeast2.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
BACKSTORY_API_V1_URL La ruta de URL de la API de Duo Security. Para obtener más información sobre cómo descargar un archivo JSON que contenga la clave de integración de la API Admin de Duo, consulta la documentación de Duo Admin. Ninguno
DUO_SECRET_KEY Clave secreta de DUO necesaria para obtener registros de la API de DUO. Consulta la documentación de administrador de Duo para obtener instrucciones sobre cómo descargar el archivo JSON que contiene la clave de integración de la API Admin de Duo, la clave secreta de la API Admin de Duo y el nombre de host de la API Admin de Duo.
Ninguno
DUO_INTEGRATION_KEY Clave de integración de DUO necesaria para obtener registros de la API de DUO. Consulta la documentación de administrador de Duo para obtener instrucciones sobre cómo descargar el archivo JSON que contiene la clave de integración de la API de administrador de Duo, la clave secreta de la API de administrador de Duo y el nombre de host de la API de administrador de Duo.
Ninguno
LOG_FETCH_DURATION La duración durante la que se obtienen los registros. 1 No
CHECKPOINT_FILE_PATH Ruta del archivo en el que se almacena la marca de tiempo del último registro insertado. checkpoint.json No
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No

Administrador de Duo

La secuencia de comandos obtiene eventos de Duo Admin relacionados con operaciones CRUD realizadas en varios objetos, como cuentas de usuario y seguridad. Los eventos se ingieren en Google SecOps con el tipo de registro DUO_ADMIN. Para obtener más información, consulta la API Duo Admin.

Define las siguientes variables de entorno en el archivo .env.yml.

Nombre de variable Descripción Valor predeterminado Secret
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. Ninguno No
DUO_API_DETAILS Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de Duo. Contiene la clave de integración de la API de administrador de Duo, la clave secreta de la API de administrador de Duo y el nombre de host de la API de administrador de Duo. Por ejemplo:
{ "ikey": "abcd123", "skey": "def345", "api_host": "abc-123" }
Consulta las instrucciones para descargar el archivo JSON en la documentación para administradores de Duo.
Ninguno
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No

MISP

Esta secuencia de comandos obtiene información sobre las relaciones de amenazas de MISP, una plataforma de código abierto para compartir e identificar amenazas, y la ingiere en Google SecOps con el tipo de registro MISP_IOC. Para obtener más información, consulta la API de eventos de MISP.

Define las siguientes variables de entorno en el archivo .env.yml.

Variable Descripción Valor predeterminado Secret
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 5 No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
ORG_NAME Nombre de la organización para filtrar eventos. Ninguno No
API_KEY Ruta al secreto de Secret Manager que almacena la clave de API para la autenticación utilizada. Ninguno
TARGET_SERVER La dirección IP de la instancia de MISP que has creado. Ninguno No
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No

Eventos de OneLogin

Esta secuencia de comandos obtiene eventos de un entorno de OneLogin y los ingiere en Google SecOps con el tipo de registro ONELOGIN_SSO. Estos eventos proporcionan información como las operaciones en cuentas de usuario. Para obtener más información, consulta la API Events de OneLogin.

Define las siguientes variables de entorno en el archivo .env.yml. Para obtener información sobre los IDs de cliente y los secretos de cliente de OneLogin, consulta el artículo Trabajar con credenciales de API.

Nombre de variable Descripción Valor predeterminado Secret
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 5 No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
CLIENT_ID ID de cliente de la plataforma OneLogin. Ninguno No
CLIENT_SECRET Ruta al secreto de Secret Manager que almacena el secreto de cliente de la plataforma OneLogin que se usa para la autenticación. Ninguno
TOKEN_ENDPOINT URL para solicitar un token de acceso. https://api.us.onelogin.com/auth/oauth2/v2/token No
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No

Contexto de usuario de OneLogin

Esta secuencia de comandos obtiene datos relacionados con las cuentas de usuario de un entorno de OneLogin y los ingiere en Google SecOps con el tipo de registro ONELOGIN_USER_CONTEXT. Para obtener más información, consulta la API User de OneLogin.

Define las siguientes variables de entorno en el archivo .env.yml. Para obtener información sobre los IDs de cliente y los secretos de cliente de OneLogin, consulta el artículo Trabajar con credenciales de API.

Nombre de variable Descripción Valor predeterminado Secret
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 30 No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
CLIENT_ID ID de cliente de la plataforma OneLogin. Ninguno No
CLIENT_SECRET Ruta al secreto de Secret Manager que almacena el secreto de cliente de la plataforma OneLogin que se usa para la autenticación. Ninguno
TOKEN_ENDPOINT URL para solicitar un token de acceso. https://api.us.onelogin.com/auth/oauth2/v2/token No
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No

Proofpoint

Esta secuencia de comandos obtiene datos sobre los usuarios a los que se dirigen los ataques de una organización concreta en un periodo determinado e ingiere esos datos en Google SecOps. Para obtener información sobre la API utilizada, consulta la API People.

Define las siguientes variables de entorno en el archivo .env.yml. Para obtener información sobre cómo obtener el principal de servicio y el secreto de Proofpoint, consulta la guía de configuración para proporcionar las credenciales de la API TAP de Proofpoint a Arctic Wolf.

Variable Descripción Predeterminado Secret
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 360 No
CHRONICLE_DATA_TYPE Tipo de registro para enviar datos a la instancia de Chronicle (Google SecOps). Ninguno No
PROOFPOINT_SERVER_URL URL base de la pasarela de la API del servidor de Proofpoint. Ninguno No
PROOFPOINT_SERVICE_PRINCIPLE Nombre de usuario de la plataforma Proofpoint. Normalmente, se trata de la entidad de servicio. Ninguno No
PROOFPOINT_SECRET Ruta de Secret Manager con la versión en la que se almacena la contraseña de la plataforma Proofpoint. Ninguno
PROOFPOINT_RETRIEVAL_RANGE Número que indica desde cuántos días se deben recuperar los datos. Los valores aceptados son 14, 30 y 90. Ninguno No

Pub/Sub

Esta secuencia de comandos recoge mensajes de suscripciones de Pub/Sub e ingiere los datos en Google SecOps. Monitoriza continuamente la pasarela de suscripción e incorpora los mensajes más recientes cuando aparecen. Para obtener más información, consulta los siguientes documentos:

Esta secuencia de comandos de ingestión requiere que definas variables tanto en el archivo .env.yml como en la tarea de Cloud Scheduler.

  • Define las siguientes variables de entorno en el archivo .env.yml.

    Nombre de variable Descripción Valor predeterminado Secret
    CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
    CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
    Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
    No
    CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
    CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No
  • Define las siguientes variables en el campo Cuerpo del mensaje de Cloud Scheduler como una cadena con formato JSON. Consulta Crear un Cloud Scheduler para obtener más información sobre el campo Cuerpo del mensaje.

    Nombre de variable Descripción Valor predeterminado Secret
    PROJECT_ID ID de proyecto de Pub/Sub. Consulta el artículo sobre cómo crear y gestionar proyectos para obtener información sobre el ID de proyecto. Ninguno No
    SUBSCRIPTION_ID ID de suscripción de Pub/Sub. Ninguno No
    CHRONICLE_DATA_TYPE Etiqueta de ingestión del tipo de registro proporcionada al enviar datos a Chronicle (Google SecOps). Consulta la lista de tipos de registros admitidos en Analizadores predeterminados admitidos. Ninguno No

    A continuación, se muestra un ejemplo de cadena con formato JSON para el campo Cuerpo del mensaje.

    { "PROJECT_ID":"projectid-0000","SUBSCRIPTION_ID":"subscription-id","CHRONICLE_DATA_TYPE":"SQUID_PROXY"}
    

Registros de auditoría de Slack

Esta secuencia de comandos obtiene registros de auditoría de una organización de Slack Enterprise Grid y los ingiere en Google SecOps con el tipo de registro SLACK_AUDIT. Para obtener más información, consulta la API Slack Audit Logs.

Define las siguientes variables de entorno en el archivo .env.yml.

Nombre de variable Descripción Valor predeterminado Secret
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 5 No
SLACK_ADMIN_TOKEN Ruta al secreto de Secret Manager que almacena el token de autenticación de Slack.
Ninguno

CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No

STIX/TAXII

Esta secuencia de comandos extrae indicadores del servidor STIX/TAXII y los incorpora a Google SecOps. Para obtener más información, consulta la documentación de la API STIX/TAXII. Define las siguientes variables de entorno en el archivo .env.yml.

Nombre de la variable Descripción Predeterminado Secreto
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
POLL_INTERVAL Intervalo de frecuencia (en minutos) con el que se ejecuta la función. Esta duración debe ser la misma que la de la tarea de Cloud Scheduler. 60 No
TAXII_VERSION La versión de STIX/TAXII que se va a usar. Las opciones posibles son 1.1, 2.0 y 2.1. Ninguno No
TAXII_DISCOVERY_URL URL de Discovery del servidor TAXII. Ninguno No
TAXII_COLLECTION_NAMES Colecciones (CSV) de las que se obtendrán los datos. Déjelo vacío para obtener datos de todas las colecciones. Ninguno No
TAXII_USERNAME Nombre de usuario necesario para la autenticación, si procede. Ninguno No
TAXII_PASSWORD_SECRET_PATH Contraseña necesaria para la autenticación, si procede. Ninguno

Tenable.io

Esta secuencia de comandos obtiene datos de activos y vulnerabilidades de la plataforma Tenable.io y los ingiere en Google SecOps con el tipo de registro TENABLE_IO. Para obtener información sobre la biblioteca utilizada, consulta el SDK de Python pyTenable.

Define las siguientes variables de entorno en el archivo .env.yml. Para obtener más información sobre los datos de activos y vulnerabilidades, consulta la API de Tenable.io: Exportar activos y Exportar vulnerabilidades.

Variable Descripción Predeterminado Secreto
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 360 No
TENABLE_ACCESS_KEY Clave de acceso usada para la autenticación. Ninguno No
TENABLE_SECRET_KEY_PATH Ruta del Gestor de secretos de Google con la versión en la que se almacena la contraseña de Tenable Server. Ninguno
TENABLE_DATA_TYPE Tipo de datos que se van a ingerir en Google SecOps. Valores posibles: ASSETS, VULNERABILITIES. RECURSOS Y VULNERABILIDADES No
TENABLE_VULNERABILITY El estado de las vulnerabilidades que quieras incluir en la exportación. Valores posibles: `OPEN`, `REOPENED` y `FIXED`. ABIERTO, REABIERTO No

Trend Micro Cloud App Security

Esta secuencia de comandos obtiene registros de seguridad de la plataforma Trend Micro y los ingiere en Google SecOps. Para obtener información sobre la API utilizada, consulte la API de registros de seguridad. Define las siguientes variables de entorno en el archivo .env.yml.

Variable Descripción Predeterminado Secreto
CHRONICLE_CUSTOMER_ID ID de cliente de la instancia de Chronicle (Google SecOps). Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 10 No
CHRONICLE_DATA_TYPE Tipo de registro para enviar datos a la instancia de Chronicle (Google SecOps). Ninguno No
TREND_MICRO_AUTHENTICATION_TOKEN Ruta de Google Secret Manager con la versión en la que se almacena el token de autenticación de Trend Micro Server. Ninguno
TREND_MICRO_SERVICE_URL URL de servicio del servicio Cloud App Security. Ninguno No
TREND_MICRO_SERVICE Nombre del servicio protegido cuyos registros se van a obtener. Admite valores separados por comas. Valores posibles: exchange, sharepoint, onedrive, dropbox, box, googledrive, gmail, teams, exchangeserver, salesforce_sandbox, salesforce_production y teams_chat. exchange, sharepoint, onedrive, dropbox, box, googledrive, gmail, teams, exchangeserver, salesforce_sandbox, salesforce_production, teams_chat No
TREND_MICRO_EVENT Tipo de evento de seguridad cuyos registros se van a obtener. Admite valores separados por comas. Valores posibles: securityrisk, virtualanalyzer, ransomware y dlp. securityrisk, virtualanalyzer, ransomware, dlp No

Trend Micro Vision One

Esta secuencia de comandos obtiene los registros de auditoría de Trend Micro Vision One y los ingiere en Google SecOps con el tipo de registro TREND_MICRO_VISION_AUDIT. Para obtener información sobre la API utilizada, consulta la API de registros de auditoría. Define las siguientes variables de entorno en el archivo .env.yml.

Variable Descripción Predeterminado Secreto
TREND_MICRO_VISION_AUDIT ID de cliente de la instancia de Google SecOps. Ninguno No
CHRONICLE_REGION Región de la instancia de Chronicle (Google SecOps). us
Otros valores válidos: asia-northeast1, asia-south1, asia-southeast1, australia-southeast1, europe, europe-west2, europe-west3, europe-west6, europe-west9, europe-west12, me-central1, me-central2, me-west1, northamerica-northeast2 y southamerica-east1.
No
CHRONICLE_SERVICE_ACCOUNT Ruta al secreto de Secret Manager que almacena el archivo JSON de la cuenta de servicio de Chronicle (Google SecOps). Ninguno
CHRONICLE_NAMESPACE Espacio de nombres con el que se etiquetan los registros de Chronicle (Google SecOps). Para obtener información sobre los espacios de nombres de Google SecOps, consulta Trabajar con espacios de nombres de activos. Ninguno No
POLL_INTERVAL Intervalo de frecuencia con el que se ejecuta la función para obtener datos de registro adicionales (en minutos). Esta duración debe ser la misma que el intervalo de la tarea de Cloud Scheduler. 10 No
TREND_MICRO_AUTHENTICATION_TOKEN Ruta de Google Secret Manager con la versión en la que se almacena el token de autenticación de Trend Micro Server. Ninguno
TREND_MICRO_DOMAIN Región de Trend Micro Vision One en la que se encuentra el endpoint de servicio. Ninguno No

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.