Integrar Security Command Center con Google SecOps

Versión de integración: 14.0

En este documento se explica cómo integrar Security Command Center con Google Security Operations.

.

Antes de empezar

Para integrar Security Command Center, debes seguir estos pasos:

  1. Crea un rol de Gestión de Identidades y Accesos (IAM) personalizado con los permisos necesarios.

  2. Configure la autenticación mediante una de las siguientes opciones:

Crear y configurar un rol de gestión de identidades y accesos

Para crear y configurar un rol de gestión de identidades y accesos personalizado para la integración, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Roles de Gestión de identidades y accesos.

    Ir a Roles

  2. Haz clic en Crear rol para crear un rol personalizado con los permisos necesarios para la integración.

  3. Escribe un título, una descripción y un ID único.

  4. Asigna el valor General Availability a Fase de lanzamiento del rol.

  5. Añade los siguientes permisos al rol creado:

    • securitycenter.assets.list

    • securitycenter.findings.list

    • securitycenter.findings.setMute

    • securitycenter.findings.setState

  6. Haz clic en Crear.

Configurar la autenticación

Para autenticar la integración, utiliza una cuenta de servicio con una clave JSON o con Workload Identity.

Autenticación con una clave JSON

Este método usa un archivo de clave JSON estático para autenticar la cuenta de servicio.

Crear una cuenta de servicio

Para autenticarte con una clave JSON, primero debes crear una cuenta de servicio:

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

  2. Selecciona el proyecto en el que quieras crear la cuenta de servicio.

  3. Haz clic en Create Service Account (Crear cuenta de servicio).

    Si prefieres usar una cuenta de servicio que ya tengas, selecciónala y genera una clave JSON.

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

  5. En el paso Conceder a esta cuenta de servicio acceso al proyecto, añade el rol personalizado que has creado.

  6. Haga clic en Hecho para terminar de crear la cuenta.

Generar una clave JSON

Sigue estos pasos para generar el archivo de clave JSON necesario:

  1. En la lista de cuentas de servicio, selecciona la dirección de correo de la cuenta de servicio que has creado (o seleccionado) para abrir sus detalles.

  2. Haga clic en la pestaña Claves.

  3. Haz clic en Añadir clave > Crear clave.

  4. Selecciona JSON como tipo de clave y haz clic en Crear.

  5. El archivo de clave JSON se descarga en tu ordenador. Guarda este archivo de forma segura y pega todo su contenido en User's Service Account al configurar los parámetros de integración.

Autenticación con Workload Identity (recomendado)

Este método permite que la integración suplante la identidad de una cuenta de servicio sin necesidad de gestionar secretos de larga duración.

Para configurar una identidad de carga de trabajo, sigue estos pasos:

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

  2. Selecciona una cuenta de servicio o crea una.

  3. Asigna el rol personalizado que has creado a la cuenta de servicio.

  4. Asigna el rol Consumidor de uso del servicio a la cuenta de servicio. Este permiso es necesario para asociar el uso de la API con el proyecto definido en Quota Project ID.

  5. Asigna el rol Creador de tokens de cuenta de servicio a la cuenta de servicio.

    Este permiso permite que la integración genere las credenciales de corta duración necesarias para la autenticación.

  6. Anota el correo del cliente de la cuenta de servicio y usa este valor en Correo de identidad de carga de trabajo al configurar los parámetros de integración.

Parámetros de integración

La integración de Security Command Center requiere los siguientes parámetros:

Parámetro Descripción
API Root

Obligatorio.

La raíz de la API de la instancia de Security Command Center.

Organization ID

Opcional.

ID de la organización que se usará para acotar las consultas de integración de Security Command Center. Google Cloud

Project ID

Opcional.

El ID de proyecto que se usa para acotar las consultas de la instancia de Security Command Center. Google Cloud

Quota Project ID

Opcional.

El Google Cloud ID de proyecto que se usa con fines de uso de la API y facturación.

User's Service Account

Opcional.

El contenido completo del archivo JSON de la clave de la cuenta de servicio.

Utiliza este parámetro solo si te autenticas con una clave JSON.

Workload Identity Email

Opcional.

La dirección de correo del cliente de tu cuenta de servicio.

Utiliza este parámetro solo si te autenticas con una identidad de carga de trabajo.

Si configura este parámetro, también debe configurar Quota Project ID.

Verify SSL

Obligatorio.

Si se selecciona esta opción, la integración valida el certificado SSL al conectarse al servidor de Security Command Center.

Esta opción está habilitada de forma predeterminada.

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

Si es necesario, puedes hacer cambios más adelante. Después de configurar una instancia de integración, puedes usarla en los cuadernos de estrategias. Para obtener más información sobre cómo configurar y admitir varias instancias, consulta Admitir varias instancias.

Acciones

Para obtener más información sobre las acciones, consulta Responder a acciones pendientes desde Tu espacio de trabajo y Realizar una acción manual.

Get Finding Details

Usa la acción Get Finding Details (Obtener detalles de la detección) para consultar los detalles de una detección en Security Command Center.

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

Entradas de acciones

La acción Get Finding Details requiere los siguientes parámetros:

Parámetro Descripción
Finding Name

Obligatorio.

Los nombres de recursos completos de los hallazgos de los que se deben devolver los detalles, con el formato organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID.

Este parámetro acepta varios valores en una lista separada por comas.

Resultados de la acción

La acción Obtener detalles de la detección proporciona los siguientes resultados:

Tipo de salida de la acción Disponibilidad
Adjunto del panel de casos No disponible
Enlace del panel de casos No disponible
Tabla del panel de casos Disponible
Tabla de enriquecimiento No disponible
Resultado de JSON Disponible
Mensajes de salida Disponible
Resultado de la secuencia de comandos Disponible
Tabla del panel de casos

La acción Get Finding Details puede devolver la siguiente tabla:

Título de la tabla: Detalles del hallazgo

Columnas de la tabla:

  • Categoría
  • Estado
  • Gravedad
  • Tipo
Resultado de JSON

En el siguiente ejemplo se muestra el resultado en JSON que se obtiene al usar la acción Get Finding Details (Obtener detalles de la detección):

{
   {
      "finding_name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
      "finding": {
        "name": "organizations/ORGANIZATION_ID/sources/2678067631293752869/findings/hvX6WwbvFyBGqPbEs9WH9m",
        "parent": "organizations/ORGANIZATION_ID/sources/2678067631293752869",
        "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "state": "ACTIVE",
        "category": "Discovery: Service Account Self-Investigation",
        "sourceProperties": {
          "sourceId": {
            "projectNumber": "PROJECT_ID",
            "customerOrganizationNumber": "ORGANIZATION_ID"
          },
          "detectionCategory": {
            "technique": "discovery",
            "indicator": "audit_log",
            "ruleName": "iam_anomalous_behavior",
            "subRuleName": "service_account_gets_own_iam_policy"
          },
          "detectionPriority": "LOW",
          "affectedResources": [
            {
              "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID"
            }
          ],
          "evidence": [
            {
              "sourceLogId": {
                "projectId": "PROJECT_ID",
                "resourceContainer": "projects/PROJECT_ID",
                "timestamp": {
                  "seconds": "1622678907",
                  "nanos": 448368000
                },
                "insertId": "ID"
              }
            }
          ],
          "properties": {
            "serviceAccountGetsOwnIamPolicy": {
              "principalEmail": "prisma-cloud-serv@PROJECT_ID.iam.gserviceaccount.com",
              "projectId": "PROJECT_ID",
              "callerIp": "192.0.2.41",
              "callerUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)",
              "rawUserAgent": "Redlock/GC-MDC/resource-manager/PROJECT_ID Google-API-Java-Client HTTP-Java-Client/1.34.0 (gzip),gzip(gfe)"
            }
          },
          "contextUris": {
            "mitreUri": {
              "displayName": "Permission Groups Discovery: Cloud Groups",
              "url": "https://attack.mitre.org/techniques/ID/003/"
            },
            "cloudLoggingQueryUri": [
              {
                "displayName": "Cloud Logging Query Link",
                "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%222021-06-03T00:08:27.448368Z%22%0AinsertId%3D%22ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project=PROJECT_ID"
              }
            ]
          }
        },
        "securityMarks": {
          "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
        },
        "eventTime": "2021-06-03T00:08:27.448Z",
        "createTime": "2021-06-03T00:08:31.074Z",
        "severity": "LOW",
        "canonicalName": "projects/PROJECT_ID/sources/SOURCE_ID/findings/FINDING_ID",
        "mute": "UNDEFINED",
        "findingClass": "THREAT",
        "mitreAttack": {
          "primaryTactic": "DISCOVERY",
          "primaryTechniques": [
            "PERMISSION_GROUPS_DISCOVERY",
            "CLOUD_GROUPS"
          ]
        }
      },
      "resource": {
        "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_ID",
        "projectDisplayName": "PROJECT_ID",
        "parentName": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID",
        "parentDisplayName": "example.net",
        "type": "google.cloud.resourcemanager.Project",
        "displayName": "PROJECT_ID"
      }
    }
}
Mensajes de salida

La acción Get Finding Details puede devolver los siguientes mensajes de salida:

Mensaje resultante Descripción del mensaje

Successfully returned details about the following findings in Security Command Center: FINDING_NAMES.

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES.

None of the provided findings were found in Security Command Center.

La acción se ha realizado correctamente.
Error executing action "Get Finding Details". Reason: ERROR_REASON

No se ha podido realizar la acción.

Comprueba la conexión al servidor, los parámetros de entrada o las credenciales.

Resultado de la secuencia de comandos

En la siguiente tabla se muestra el valor del resultado de la secuencia de comandos cuando se usa la acción Obtener detalles de la detección:

Nombre del resultado del script Valor
is_success true o false

List Asset Vulnerabilities

Usa la acción List Asset Vulnerabilities (Listar vulnerabilidades de recursos) para enumerar las vulnerabilidades relacionadas con las entidades de Security Command Center.

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

Entradas de acciones

La acción List Asset Vulnerabilities requiere los siguientes parámetros:

Parámetro Descripción
Asset Resource Names

Obligatorio.

Lista separada por comas de los identificadores únicos (nombres de recursos completos) de los recursos de los que se van a obtener datos.

Timeframe

Opcional.

El periodo durante el que se buscarán las vulnerabilidades o los errores de configuración.

Estos son los valores posibles:

  • Last Week
  • Last Month
  • Last Year
  • All Time

El valor predeterminado es All Time.

Record Types

Opcional.

El tipo de registro que se va a devolver.

Estos son los valores posibles:

  • Vulnerabilities + Misconfigurations
  • Vulnerabilities
  • Misconfigurations

El valor predeterminado es Vulnerabilities + Misconfigurations.

Output Type

Opcional.

El tipo de salida que se devolverá en el resultado JSON de cada recurso.

Estos son los valores posibles:

  • Statistics
  • Data
  • Statistics + Data

El valor predeterminado es Statistics.

Max Records To Return

Opcional.

Número máximo de registros que se deben devolver por cada tipo de registro.

El valor predeterminado es 100.

Resultados de la acción

La acción List Asset Vulnerabilities (Listar vulnerabilidades de recursos) proporciona los siguientes resultados:

Tipo de salida de la acción Disponibilidad
Adjunto del panel de casos No disponible
Enlace del panel de casos No disponible
Tabla del panel de casos Disponible
Tabla de enriquecimiento No disponible
Resultado de JSON Disponible
Mensajes de salida Disponible
Resultado de la secuencia de comandos Disponible
Tabla del panel de casos

La acción List Asset Vulnerabilities puede devolver las siguientes tablas:

Título de la tabla: ASSET_ID Vulnerabilidades

Columnas de la tabla:

  • Categoría
  • Descripción
  • Gravedad
  • Hora del evento
  • CVE

Título de la tabla: ASSET_ID Misconfigurations

Columnas de la tabla:

  • Categoría
  • Descripción
  • Gravedad
  • Hora del evento
  • Recomendación
Resultado de JSON

En el siguiente ejemplo se muestra la salida de resultados JSON recibida al usar la acción List Asset Vulnerabilities (Listar vulnerabilidades de recursos):

{
   ."siemplify_asset_display_name":[1] [2]  ""
"vulnerabilities": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "cve_id": "CVE_ID"
                "event_time": "EVENT_TIME"
                "related_references": "RELATED_REFERENCES"
                "severity": "SEVERITY"
            }
        ]
    },
    "misconfigurations": {
        "statistics": {
            "critical": 1,
            "high": 1,
            "medium": 1,
            "low": 1,
            "undefined": 1
        },
        "data": [
            {
                "category": "CATEGORY"
                "description": "DESCRIPTION"
                "recommendation": "RECOMMENDATION"
                "event_time": "EVENT_TIME"
                "severity": "SEVERITY"
            }
        ]
    },
}
Mensajes de salida

La acción List Asset Vulnerabilities puede devolver los siguientes mensajes de salida:

Mensaje resultante Descripción del mensaje

Successfully returned related vulnerabilities and misconfigurations to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found to the following entities in Security Command Center: ASSET_IDS.

No vulnerabilities and misconfigurations were found for the provided assets in Security Command Center.

La acción se ha realizado correctamente.
Error executing action "List Asset Vulnerabilities". Reason: ERROR_REASON

No se ha podido realizar la acción.

Comprueba la conexión al servidor, los parámetros de entrada o las credenciales.

Resultado de la secuencia de comandos

En la siguiente tabla se muestra el valor de la salida del resultado de la secuencia de comandos al usar la acción List Asset Vulnerabilities (Listar vulnerabilidades de recursos):

Nombre del resultado del script Valor
is_success true o false

Ping

Usa la acción Ping para probar la conectividad con Security Command Center.

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

Entradas de acciones

Ninguno

Resultados de la acción

La acción Ping proporciona las siguientes salidas:

Tipo de salida de la acción Disponibilidad
Adjunto del panel de casos No disponible
Enlace del panel de casos No disponible
Tabla del panel de casos No disponible
Tabla de enriquecimiento No disponible
Resultado de JSON No disponible
Mensajes de salida Disponible
Resultado de la secuencia de comandos Disponible
Mensajes de salida

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

Mensaje resultante Descripción del mensaje
Successfully connected to the Security Command Center server with the provided connection parameters! La acción se ha realizado correctamente.
Failed to connect to the Security Command Center server! Error is ERROR_REASON

No se ha podido realizar la acción.

Comprueba la conexión al servidor, los parámetros de entrada o las credenciales.

Resultado de la secuencia de comandos

En la siguiente tabla se muestra el valor de la salida del resultado de la secuencia de comandos al usar la acción Ping:

Nombre del resultado del script Valor
is_success true o false

Actualizar resultado

Usa la acción Update Finding para actualizar un resultado en Security Command Center.

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

Entradas de acciones

La acción Update Finding requiere los siguientes parámetros:

Parámetro Descripción
Finding Name

Obligatorio.

Los nombres de recursos completos de los hallazgos de los que se deben devolver los detalles, con el formato organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID.

Este parámetro acepta varios valores en una lista separada por comas.

Mute Status

Opcional.

El estado de silencio del resultado.

Estos son los valores posibles:

  • Mute
  • Unmute
State Status

Opcional.

El estado del resultado.

Estos son los valores posibles:

  • Active
  • Inactive

Resultados de la acción

La acción Actualizar detección proporciona los siguientes resultados:

Tipo de salida de la acción Disponibilidad
Adjunto del panel de casos No disponible
Enlace del panel de casos No disponible
Tabla del panel de casos No disponible
Tabla de enriquecimiento No disponible
Resultado de JSON No disponible
Mensajes de salida Disponible
Resultado de la secuencia de comandos Disponible
Mensajes de salida

La acción Update Finding puede devolver los siguientes mensajes de salida:

Mensaje resultante Descripción del mensaje

Successfully updated the following findings in Security Command Center: FINDING_NAMES

Action wasn't able to find the following findings in Security Command Center: FINDING_NAMES

None of the provided findings were found in Security Command Center.

La acción se ha realizado correctamente.
Error executing action "Update Finding". Reason: ERROR_REASON

No se ha podido realizar la acción.

Comprueba la conexión al servidor, los parámetros de entrada o las credenciales.

Resultado de la secuencia de comandos

En la siguiente tabla se muestra el valor de la salida del resultado de la secuencia de comandos cuando se usa la acción Actualizar detección:

Nombre del resultado del script Valor
is_success true o false

Conectores

Para obtener más información sobre cómo configurar conectores en Google SecOps, consulta el artículo Ingerir datos (conectores).

Security Command Center - Findings Connector

Usa el conector de resultados de Security Command Center para obtener información sobre los resultados de Security Command Center.

Este conector permite filtrar los resultados por categoría mediante la lista dinámica.

Entradas de conectores

El conector de resultados de Security Command Center requiere los siguientes parámetros:

Parámetro Descripción
Product Field Name

Obligatorio.

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

El nombre del producto influye principalmente en la asignación. Para optimizar y mejorar el proceso de asignación del conector, el valor predeterminado se resuelve en un valor de reserva al que se hace referencia desde el código. Cualquier entrada no válida de este parámetro se resuelve en un valor de reserva de forma predeterminada.

El valor predeterminado es Product Name.

Event Field Name

Obligatorio.

Nombre del campo que determina el nombre del evento (subtipo).

Environment Field Name

Opcional.

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

Si falta el campo de entorno, el conector usa el valor predeterminado.

El valor predeterminado es "".

Environment Regex Pattern

Opcional.

Patrón de expresión regular que se va a ejecutar en el valor encontrado en el campo Environment Field Name. Este parámetro te permite manipular el campo de entorno mediante la lógica de expresiones regulares.

Usa el valor predeterminado .* para obtener el valor sin formato Environment Field Name necesario.

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.

PythonProcessTime

Obligatorio.

El límite de tiempo de espera, en segundos, del proceso de Python que ejecuta la secuencia de comandos actual.

El valor predeterminado es 180.

API Root

Obligatorio.

La raíz de la API de la instancia de Security Command Center.

Organization ID

Opcional.

El ID de la Google Cloud organización que se va a usar

Project ID

Opcional.

El ID del proyecto que se va a usar. Google Cloud

Quota Project ID

Opcional.

El ID del proyecto que se va a usar. Google Cloud

User's Service Account

Obligatorio.

El contenido completo del archivo JSON de la clave de la cuenta de servicio.

Utiliza este parámetro solo si te autenticas con una clave JSON.

Workload Identity Email

Opcional.

La dirección de correo del cliente de tu cuenta de servicio.

Utiliza este parámetro solo si te autenticas con una identidad de carga de trabajo.

Si configura este parámetro, también debe configurar Quota Project ID.

Finding Class Filter

Opcional.

Lista separada por comas de los tipos de vulnerabilidades de seguridad que se deben incluir al ingerir datos de la fuente.

Estos son los valores posibles:

  • Threat
  • Vulnerability
  • Misconfiguration
  • SCC_Error
  • Observation
  • Toxic Combination
  • Chokepoint

Si no se proporciona ningún valor, se ingieren las detecciones de todas las clases.

Lowest Severity To Fetch

Opcional.

La gravedad más baja de las alertas que se van a obtener.

Si no configura este parámetro, el conector ingiere alertas con todos los niveles de gravedad.

Estos son los valores posibles:

  • Low
  • Medium
  • High
  • Critical

Si a una detección con una gravedad indefinida se le asigna el nivel Fallback Severity, esa detección no se filtrará por este parámetro.

Si no se proporciona ningún valor, se ingieren todos los tipos de gravedad.

Fallback Severity

Opcional.

El nivel de gravedad que se asignará a cualquier resultado de seguridad insertado que no tenga una clasificación de gravedad definida o reconocible de la fuente.

Estos son los valores posibles:

  • Low
  • Medium
  • High
  • Critical

El valor predeterminado es Medium.

Max Hours Backwards

Opcional.

Número de horas anteriores a la hora actual para obtener resultados.

Este parámetro se puede aplicar a la iteración inicial del conector después de habilitarlo por primera vez o al valor de reserva de una marca de tiempo de conector caducada.

El valor máximo es 24.

El valor predeterminado es 1.

Max Findings To Fetch

Opcional.

Número de resultados que se deben procesar en cada iteración del conector.

El valor máximo es 1000.

El valor predeterminado es 100.

Use dynamic list as a blacklist

Obligatorio.

Si se selecciona esta opción, el conector usará la lista dinámica como lista de bloqueo.

Esta opción está inhabilitada de forma predeterminada.

Verify SSL

Obligatorio.

Si se selecciona esta opción, la integración valida el certificado SSL al conectarse al servidor de Security Command Center.

Esta opción está inhabilitada de forma predeterminada.

Proxy Server Address

Opcional.

Dirección del servidor proxy que se va a usar.

Proxy Username

Opcional.

Nombre de usuario del proxy para autenticarse.

Proxy Password

Opcional.

La contraseña del proxy para autenticarte.

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