Integra Pub/Sub con Google SecOps

En este documento, se proporciona orientación para integrar Pub/Sub con Google Security Operations (Google SecOps).

Versión de la integración: 1.0

Antes de comenzar

Para usar la integración de Pub/Sub, necesitas lo siguiente:

Parámetros de integración

La integración de Pub/Sub requiere los siguientes parámetros:

Parámetros Descripción
Workload Identity Email Optional

Es la dirección de correo electrónico del cliente de tu federación de identidades para cargas de trabajo.

Puedes configurar este parámetro o el parámetro Service Account JSON File Content.

Para actuar como cuentas de servicio con la federación de identidades para cargas de trabajo, otorga el rol de Service Account Token Creator a tu cuenta de servicio. Para obtener más detalles sobre las identidades de cargas de trabajo y cómo trabajar con ellas, consulta Identidades para cargas de trabajo.

Service Account JSON File Content Optional

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

Puedes configurar este parámetro o el parámetro Workload Identity Email.

Para configurar este parámetro, proporciona el contenido completo del archivo JSON de la clave de la cuenta de servicio que descargaste cuando creaste una cuenta de servicio.

Para obtener más información sobre el uso de cuentas de servicio como método de autenticación, consulta Descripción general de las cuentas de servicio.

Quota Project ID Optional

ID del proyecto Google Cloud que usas para las APIs y la facturación. Google Cloud Este parámetro requiere que otorgues el rol Service Usage Consumer a tu cuenta de servicio. Para obtener más información sobre los roles de IAM, consulta Control de acceso con IAM.

La integración adjunta este valor del parámetro a todas las solicitudes de la API.

Si no configuras un valor para este parámetro, la integración recupera el ID del proyecto de cuota de tu cuenta de servicio Google Cloud .

Project ID Optional

ID del proyecto que se usará en la integración.

Si no configuras un valor para este parámetro, la integración recupera el ID del proyecto de tu cuenta de servicio de Google Cloud .

Verify SSL Obligatorio

Si se selecciona, la integración verifica que el certificado SSL para conectarse a Pub/Sub sea válido.

Esta opción se selecciona de forma predeterminada.

Si deseas obtener instrucciones para configurar una integración en Google SecOps, consulta Configura integraciones.

Si es necesario, puedes hacer 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 Compatibilidad con varias instancias.

Acciones

Para obtener más información sobre las acciones, consulta Cómo responder a las acciones pendientes de Tu Workdesk y Cómo realizar una acción manual.

Ping

Usa la acción Ping para probar la conectividad a Pub/Sub.

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 salida de la acción Disponibilidad
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 salida:

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

No se pudo realizar la acción.

Verifica la conexión al 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

Conectores

Si quieres obtener instrucciones detalladas para configurar un conector en Google SecOps, consulta Ingiere tus datos (conectores).

Pub/Sub: conector de mensajes

En la plataforma de SecOps de Google, el conector de Pub/Sub – Messages se llama conector de PubSub – Messages.

Usa el conector de Pub/Sub – Messages para recuperar mensajes de Pub/Sub.

Asignación de gravedad de JSON

Para mapear la gravedad de la alerta, debes especificar qué campo usa el conector de Pub/Sub – Messages para obtener el valor de gravedad en el parámetro Severity Mapping JSON. La respuesta del conector puede contener tipos de valores, como integer, float y string.

El conector de mensajes de Pub/Sub lee los valores de integer y float y los asigna según la configuración de Google SecOps. En la siguiente tabla, se muestra la asignación de los valores de integer a la gravedad en Google SecOps:

Valor del número entero Gravedad asignada
100 Critical
Desde 80 hasta 100 High
Desde 60 hasta 80 Medium
Desde 40 hasta 60 Low
Menos de 40 Informational

Si la respuesta contiene el valor string, el conector de Pub/Sub – Messages requiere configuración adicional.

Inicialmente, el valor predeterminado aparece de la siguiente manera:

{
    "Default": 60
}

Si los valores necesarios para la asignación se encuentran en la clave JSON event_severity, los valores pueden ser los siguientes:

  • "Malicious"
  • "Benign"
  • "Unknown"

Para analizar los valores de clave JSON de event_severity y garantizar que el objeto JSON tenga el formato correcto, configura el parámetro Severity Mapping JSON de la siguiente manera:

{
    "event_severity": {
        "Malicious": 100,
        "Unknown": 60,
        "Benign": -1
    },
    "Default": 50
}

El valor de "Default" es obligatorio.

En el caso de que haya varias coincidencias para el mismo objeto JSON, el conector de mensajes de Pub/Sub prioriza la primera clave del objeto JSON.

Para trabajar con campos que contienen valores integer o float, configura la clave y una cadena vacía en el parámetro Severity Mapping JSON:

{
  "Default":"60",
  "integer_field": "",
  "float_field": ""
}

Entradas del conector

El conector de Pub/Sub – Messages requiere los siguientes parámetros:

Parámetro Descripción
Product Field Name Obligatorio

Es el nombre del campo en el que se almacena el nombre del producto.

El valor predeterminado es Product Name.

Event Field Name Obligatorio

Es el nombre del campo que se usa para determinar el nombre del evento (subtipo).

El valor predeterminado es event_type.

Environment Field Name Optional

Nombre del campo en el que se almacena el nombre del entorno.

Si no se encuentra el campo del entorno, se establece el entorno predeterminado.

El valor predeterminado es "".

Environment Regex Pattern Optional

Es un patrón de expresión regular que se ejecutará en el valor que se encuentra en el campo Environment Field Name. Este parámetro te permite manipular el campo del entorno con la lógica de expresiones regulares.

Usa el valor predeterminado .* para recuperar el valor Environment Field Name sin procesar requerido.

Si el patrón de expresión regular es nulo o está vacío, o si el valor del entorno es nulo, el resultado final del entorno es el entorno predeterminado.

Script Timeout (Seconds) Obligatorio

Es el límite de tiempo de espera en segundos para el proceso de Python que ejecuta la secuencia de comandos actual.

El valor predeterminado es 300 seconds.

Service Account JSON File Content Optional

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

Puedes configurar este parámetro o el parámetro Workload Identity Email.

Para configurar este parámetro, proporciona el contenido completo del archivo JSON de la clave de la cuenta de servicio que descargaste cuando creaste una cuenta de servicio.

Para el conector de Pub/Sub – Messages, la autenticación con el archivo JSON de la clave de la cuenta de servicio tiene prioridad sobre la federación de identidades para cargas de trabajo.

Workload Identity Email Optional

Es la dirección de correo electrónico del cliente de tu cuenta de servicio.

Puedes configurar este parámetro o el parámetro Service Account JSON File Content.

Para actuar como cuentas de servicio con la federación de identidades para cargas de trabajo, otorga el rol Service Account Token Creator a tu cuenta de servicio.

Project ID Optional

Es el ID del proyecto que se usará en el conector.

Quota Project ID Optional

ID del proyecto Google Cloud que usas para las APIs y la facturación. Google Cloud Este parámetro requiere que otorgues el rol Service Usage Consumer a tu cuenta de servicio. Para obtener más información sobre los roles de IAM, consulta Control de acceso con IAM.

La integración adjunta este valor del parámetro a todas las solicitudes de la API.

Subscription ID Obligatorio

Es el ID de la suscripción a Pub/Sub.

Case Name Template Optional

Es el nombre de un caso personalizado.

Cuando configuras este parámetro, el conector agrega una clave nueva llamada custom_case_name al evento de Google SecOps.

Puedes proporcionar marcadores de posición en el siguiente formato: [name of the field].

Ejemplo: Phishing - [event_mailbox]

En el caso de los marcadores de posición, el conector usa el primer evento de Google SecOps. El conector solo controla las claves que contienen el valor de cadena. Para configurar este parámetro, especifica campos de eventos sin prefijos.

Alert Name Template Obligatorio

Es el nombre de una alerta personalizada.

Puedes proporcionar marcadores de posición en el siguiente formato: [name of the field].

Ejemplo: Phishing - [event_mailbox].

En el caso de los marcadores de posición, el conector usa el primer evento de Google SecOps. El conector solo controla las claves que contienen el valor de cadena. Si no proporcionas ningún valor o usas una plantilla no válida, el conector usará un valor de resguardo con el siguiente formato: CONNECTOR_NAME - Alert. Para configurar este parámetro, especifica campos de eventos sin prefijos.

Rule Generator Template Obligatorio

Un generador de reglas personalizadas

Puedes proporcionar marcadores de posición en el siguiente formato: [name of the field].

Ejemplo: Phishing - [event_mailbox].

En el caso de los marcadores de posición, el conector usa el primer evento de Google SecOps. El conector solo controla las claves que contienen el valor de cadena. Si no proporcionas ningún valor o usas una plantilla no válida, el conector usará un valor de resguardo con el siguiente formato: CONNECTOR_NAME - Rule Generator. Para configurar este parámetro, especifica campos de eventos sin prefijos.

Timestamp Field Obligatorio

Es el nombre del campo para definir la marca de tiempo de la alerta de Google SecOps.

Si la marca de tiempo no usa el formato de hora de época de Unix, define el formato de marca de tiempo en el parámetro Timestamp Format.

El valor predeterminado es message_publishTime.

Timestamp Format Optional

Es el formato de la marca de tiempo del mensaje.

El conector requiere la marca de tiempo para procesar el mensaje correctamente. Si la marca de tiempo no usa el formato de hora de época de Unix y no configuras un formato de marca de tiempo, el conector fallará.

El valor predeterminado es %Y-%m-%dT%H:%M:%S.%fZ.

Severity Mapping JSON Obligatorio

Es el objeto JSON que define cómo el conector extrae el nivel de gravedad del mensaje.

El valor predeterminado es el siguiente:

    {
      "Default": "60"
    }
    

Para obtener más información sobre la asignación de gravedad, consulta Asignación de gravedad de JSON.

Unique ID Field Optional

Nombre del campo para confirmar que el mensaje es único.

Si no estableces un valor, el conector genera un hash SHA-256 y lo usa como identificador del mensaje.

Max Messages To Fetch Optional

Es la cantidad máxima de mensajes que se procesarán en cada iteración del conector.

La cantidad máxima es 100.

Disable Overflow Optional

Si se selecciona, el conector ignora el mecanismo de desbordamiento de Google SecOps durante la creación de alertas.

Esta opción se selecciona de forma predeterminada.

Verify SSL Obligatorio

Si se selecciona, la integración verifica que el certificado SSL para conectarse a Pub/Sub sea válido.

Se selecciona de forma predeterminada.

Proxy Server Address Optional

Es la dirección del servidor proxy que se usará.

Proxy Username Optional

Nombre de usuario del proxy con el que se realizará la autenticación.

Proxy Password Optional

Contraseña del proxy para la autenticación.

Reglas del conector

El conector de Pub/Sub: Messages admite proxies.

Eventos del conector

En el siguiente ejemplo, se muestra el resultado JSON de un evento de SecOps de Google que genera el conector de Pub/Sub – Messages:

{
   "notificationConfigName": "organizations/ORGANIZATION_ID/notificationConfigs/soar_connector_toxic_notifications_config",
   "finding": {
       "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
       "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
       "resourceName": "//compute.googleapis.com/projects/PROJECT_ID/global/firewalls/FIREWALL_ID",
       "state": "ACTIVE",
       "category": "OPEN_NETBIOS_PORT",
       "externalUri": "https://console.cloud.google.com/networking/firewalls/details/default-allow-rdp?project\u003dPROJECT_ID",
       "sourceProperties": {
           "Recommendation": "Restrict the firewall rules at: https://console.cloud.google.com/networking/firewalls/details/default-allow-rdp?project\u003dPROJECT_ID",
           "ExceptionInstructions": "Add the security mark \"allow_open_netbios_port\" to the asset with a value of \"true\" to prevent this finding from being activated again.",
           "Explanation": "Firewall rules that allow connections from all IP addresses on TCP ports 137-139 or UDP ports 137-139 may expose NetBIOS services to attackers.",
           "ScannerName": "FIREWALL_SCANNER",
           "ResourcePath": [
               "projects/PROJECT_ID/",
               "folders/FOLDER_ID/",
               "folders/FOLDER_ID/",
               "organizations/ORGANIZATION_ID/"
           ],
           "ExposedService": "NetBIOS",
           "OpenPorts": {
               "TCP": [
                   137.0,
                   138.0,
                   139.0
               ],
               "UDP": [
                   137.0,
                   138.0,
                   139.0
               ]
           },
           "compliance_standards": {
               "iso": [
                   {
                       "ids": [
                           "A.13.1.1"
                       ]
                   }
               ],
               "pci": [
                   {
                       "ids": [
                           "1.2.1"
                       ]
                   }
               ],
               "nist": [
                   {
                       "ids": [
                           "SC-7"
                       ]
                   }
               ]
           },
           "ReactivationCount": 4.0
       },
       "securityMarks": {
           "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks",
           "marks": {
               "peter": "e2e1"
           }
       },
       "eventTime": "2024-08-30T14:44:37.973090Z",
       "createTime": "2024-06-24T07:08:54.777Z",
       "propertyDataTypes": {
           "ResourcePath": {
               "listValues": {
                   "propertyDataTypes": [
                       {
                           "primitiveDataType": "STRING"
                       }
                   ]
               }
           },
           "ReactivationCount": {
               "primitiveDataType": "NUMBER"
           },
           "Explanation": {
               "primitiveDataType": "STRING"
           },
           "ExposedService": {
               "primitiveDataType": "STRING"
           },
           "ScannerName": {
               "primitiveDataType": "STRING"
           }
       }
   }
}

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