Integra Security Command Center en 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 comenzar

Para integrar Security Command Center, debes completar los siguientes pasos:

  1. Crea un rol personalizado de Identity and Access Management (IAM) con los permisos necesarios.

  2. Configura la autenticación con una de las siguientes opciones:

Crea y configura un rol de IAM

Para crear y configurar un rol de IAM personalizado para la integración, completa los siguientes pasos:

  1. En la consola de Google Cloud , ve a la página Roles de IAM.

    Ir a Funciones

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

  3. Ingresa un Título, una Descripción y un ID único.

  4. Establece la etapa de lanzamiento del rol en General Availability.

  5. Agrega los siguientes permisos al rol creado:

    • securitycenter.assets.list

    • securitycenter.findings.list

    • securitycenter.findings.setMute

    • securitycenter.findings.setState

  6. Haz clic en Crear.

Configura la autenticación

Para autenticar la integración, usa 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 claves JSON estático para autenticar la cuenta de servicio.

Crea una cuenta de servicio

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

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

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

  3. Haz clic en Crear cuenta de servicio.

    Si prefieres usar una cuenta de servicio existente, selecciona la cuenta de servicio que deseas usar y genera una clave JSON.

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

  5. En el paso Otorga a esta cuenta de servicio acceso al proyecto, agrega el rol personalizado que creaste.

  6. Haz clic en Listo para terminar de crear la cuenta.

Genera una clave JSON

Completa los siguientes pasos para generar el archivo de claves JSON requerido:

  1. En la lista de cuentas de servicio, selecciona la dirección de correo electrónico de la cuenta de servicio que creaste (o seleccionaste) para abrir sus detalles.

  2. Haz clic en la pestaña Claves.

  3. Haz clic en Agregar clave > Crear clave nueva.

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

  5. El archivo de claves JSON se descargará en tu computadora. Almacena este archivo de forma segura y pega todo su contenido en User's Service Account cuando configures 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 controlar secretos de larga duración.

Para configurar Workload Identity, completa los siguientes pasos:

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

  2. Selecciona una cuenta de servicio existente o crea una nueva.

  3. Otorga el rol personalizado que creaste a la cuenta de servicio.

  4. Otorga el rol de Consumidor de Service Usage a la cuenta de servicio. Este permiso es obligatorio para asociar el uso de la API con el proyecto definido en Quota Project ID.

  5. Otorga 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. Toma nota del correo electrónico del cliente de la cuenta de servicio y usa este valor en Correo electrónico de la identidad para cargas de trabajo cuando configures 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.

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

Organization ID

Es opcional.

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

Project ID

Es opcional.

ID del proyecto Google Cloud que se usa para definir el alcance de las consultas de la instancia de Security Command Center.

Quota Project ID

Es opcional.

Es el ID del proyecto Google Cloud que se usa para la facturación y el uso de la API.

User's Service Account

Es opcional.

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

Solo usa este parámetro si te autenticas con una clave JSON.

Workload Identity Email

Es opcional.

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

Solo usa este parámetro si te autenticas con una identidad para cargas de trabajo.

Si configuras este parámetro, también debes configurar Quota Project ID.

Verify SSL

Obligatorio.

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

Habilitada de forma predeterminada.

Si quieres 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 escritorio y Cómo realizar una acción manual.

Obtén detalles del hallazgo

Usa la acción Get Finding Details para recuperar detalles sobre un hallazgo en Security Command Center.

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

Entradas de acción

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

Parámetro Descripción
Finding Name

Obligatorio.

Nombres completos de los recursos de los hallazgos para devolver detalles, en el formato organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID.

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

Resultados de la acción

La acción Get Finding Details 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 Disponible
Tabla de enriquecimiento No disponible
Resultado de JSON Disponible
Mensajes de salida Disponible
Resultado de secuencia de comandos Disponible
Tabla del muro 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 formato JSON que se recibe cuando se usa la acción Get Finding Details:

{
   {
      "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 de salida 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 completó correctamente.
Error executing action "Get Finding Details". Reason: 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 del script cuando se usa la acción Get Finding Details:

Nombre del resultado de la secuencia de comandos Valor
is_success true o false

Enumera las vulnerabilidades de los activos

Usa la acción List Asset Vulnerabilities para enumerar las vulnerabilidades relacionadas con las entidades en Security Command Center.

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

Entradas de acción

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

Parámetro Descripción
Asset Resource Names

Obligatorio.

Es una lista separada por comas de los identificadores únicos (nombres de recursos completos) de los recursos sobre los que se recuperarán los datos.

Timeframe

Es opcional.

Es el período durante el que se buscarán las vulnerabilidades o los errores de configuración.

Los valores posibles son los siguientes:

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

El valor predeterminado es All Time.

Record Types

Es opcional.

Es el tipo de registro que se devolverá.

Los valores posibles son los siguientes:

  • Vulnerabilities + Misconfigurations
  • Vulnerabilities
  • Misconfigurations

El valor predeterminado es Vulnerabilities + Misconfigurations.

Output Type

Es opcional.

Es el tipo de resultado que se devolverá en el resultado JSON para cada recurso.

Los valores posibles son los siguientes:

  • Statistics
  • Data
  • Statistics + Data

El valor predeterminado es Statistics.

Max Records To Return

Es opcional.

Es la cantidad máxima de registros que se devolverán para cada tipo de registro.

El valor predeterminado es 100.

Resultados de la acción

La acción List Asset Vulnerabilities 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 Disponible
Tabla de enriquecimiento No disponible
Resultado de JSON Disponible
Mensajes de salida Disponible
Resultado de secuencia de comandos Disponible
Tabla del muro de casos

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

Título de la tabla: Vulnerabilidades de ASSET_ID

Columnas de la tabla:

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

Título de la tabla: ASSET_ID Configuraciones incorrectas

Columnas de la tabla:

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

En el siguiente ejemplo, se muestra el resultado JSON que se recibe cuando se usa la acción List Asset Vulnerabilities:

{
   ."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 de salida 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 completó correctamente.
Error executing action "List Asset Vulnerabilities". Reason: 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 del script cuando se usa la acción List Asset Vulnerabilities:

Nombre del resultado de la secuencia de comandos Valor
is_success true o false

Ping

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

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 mostrar los siguientes mensajes de salida:

Mensaje de salida Descripción del mensaje
Successfully connected to the Security Command Center server with the provided connection parameters! La acción se completó correctamente.
Failed to connect to the Security Command Center 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

Actualizar resultado

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

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

Entradas de acción

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

Parámetro Descripción
Finding Name

Obligatorio.

Nombres completos de los recursos de los hallazgos para devolver detalles, en el formato organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID.

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

Mute Status

Es opcional.

Es el estado de silencio del hallazgo.

Los valores posibles son los siguientes:

  • Mute
  • Unmute
State Status

Es opcional.

Es el estado del hallazgo.

Los valores posibles son los siguientes:

  • Active
  • Inactive

Resultados de la acción

La acción Update Finding 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 Update Finding puede devolver los siguientes mensajes de salida:

Mensaje de salida 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 completó correctamente.
Error executing action "Update Finding". Reason: 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 Update Finding:

Nombre del resultado de la secuencia de comandos Valor
is_success true o false

Conectores

Para obtener más información sobre cómo configurar conectores en Google SecOps, consulta Ingiere tus datos (conectores).

Security Command Center: Findings Connector

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

Este conector admite el filtrado de hallazgos por categoría con la lista dinámica.

Entradas del conector

El conector de Security Command Center - Findings 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 nombre del producto afecta principalmente la asignación. Para optimizar y mejorar el proceso de asignación del conector, el valor predeterminado se resuelve en un valor de resguardo al que se hace referencia desde el código. De forma predeterminada, cualquier entrada no válida para este parámetro se resuelve en un valor de resguardo.

El valor predeterminado es Product Name.

Event Field Name

Obligatorio.

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

Environment Field Name

Es opcional.

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

Si falta el campo environment, el conector usa el valor predeterminado.

El valor predeterminado es "".

Environment Regex Pattern

Es opcional.

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.

PythonProcessTime

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 180.

API Root

Obligatorio.

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

Organization ID

Es opcional.

ID de la organización Google Cloud que se usará

Project ID

Es opcional.

ID del proyecto Google Cloud que se usará.

Quota Project ID

Es opcional.

ID del proyecto Google Cloud que se usará.

User's Service Account

Obligatorio.

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

Solo usa este parámetro si te autenticas con una clave JSON.

Workload Identity Email

Es opcional.

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

Solo usa este parámetro si te autenticas con una identidad para cargas de trabajo.

Si configuras este parámetro, también debes configurar Quota Project ID.

Finding Class Filter

Es opcional.

Es una lista separada por comas de los tipos de hallazgos de seguridad que se incluirán cuando se transfieran datos desde la fuente.

Los valores posibles son los siguientes:

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

Si no se proporciona ningún valor, se incorporan los hallazgos de todas las clases.

Lowest Severity To Fetch

Es opcional.

Es la gravedad más baja de las alertas que se recuperarán.

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

Los valores posibles son los siguientes:

  • Low
  • Medium
  • High
  • Critical

Si a un hallazgo con gravedad indefinida se le asigna el nivel Fallback Severity, ese hallazgo queda exento del filtrado por este parámetro.

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

Fallback Severity

Es opcional.

Es el nivel de gravedad que se asignará a cualquier hallazgo de seguridad que se ingiera y que no tenga una calificación de gravedad definida o reconocible de la fuente.

Los valores posibles son los siguientes:

  • Low
  • Medium
  • High
  • Critical

El valor predeterminado es Medium.

Max Hours Backwards

Es opcional.

Cantidad de horas previas al momento actual para recuperar los hallazgos.

Este parámetro se puede aplicar a la iteración inicial del conector después de que lo habilites por primera vez o al valor de resguardo para la marca de tiempo de un conector vencido.

El valor máximo es 24.

El valor predeterminado es 1.

Max Findings To Fetch

Es opcional.

Es la cantidad de hallazgos que se procesarán 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 usa la lista dinámica como una lista de bloqueo.

Está inhabilitado de forma predeterminada.

Verify SSL

Obligatorio.

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

Está inhabilitado de forma predeterminada.

Proxy Server Address

Es opcional.

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

Proxy Username

Es opcional.

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

Proxy Password

Es opcional.

Es la contraseña del proxy con la que se realizará la autenticación.

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