VMware Carbon Black Enterprise EDR

Versión de integración: 6.0

Casos de uso del producto

  1. Realizar acciones de investigación: Obtén datos de CB Enterprise EDR como parte de un análisis de alertas en Google Security Operations.
  2. Realizar acciones de configuración: configurar feeds o listas de vigilancia de CB Enterprise EDR desde Google SecOps

Permiso del producto

Conceptos necesarios para acceder a las APIs de Carbon Black Enterprise EDR (ThreatHunter):

  1. Nombre de host del servicio
  2. Claves de API
  3. RBAC
  4. Claves de organización

Nombres de host del servicio

Existen dos nombres de host de Carbon Black Cloud:

  • https://defense-<environment>.conferdeploy.net/
  • https://api-<environment>.conferdeploy.net/

Además, tenemos varios entornos, como los siguientes (esta no es una lista completa):

  • prod02
  • prod04
  • prod05

Para la API de Carbon Black Enterprise EDR (ThreatHunter), se usarán los siguientes nombres de host: https://defense-<environment>.conferdeploy.net/

Claves de API

Las APIs y los servicios de Carbon Black Enterprise EDR (ThreatHunter) se autentican a través de claves de API. Los usuarios pueden ver la configuración de las claves de API en la consola de Carbon Black Cloud en Configuración > Claves de API.

Las claves de API incluyen dos partes:

  • Clave secreta de la API (anteriormente, clave de API).
  • Es el ID de la API (anteriormente, ID del conector).

La autenticación se pasa a la API a través del encabezado HTTP X-Auth-Token.

  1. Para generar el encabezado adecuado, concatena la clave secreta de la API con el ID de la API, con una barra diagonal entre ellos.
  2. Por ejemplo, si la clave secreta de la API es ABCD y el ID de la API es 1234, el encabezado HTTP X-Auth-Token correspondiente será: X-Auth-Token: ABCD/1234

Todas las solicitudes a la API deben autenticarse con una clave secreta de la API y un ID de la API. Las solicitudes no autenticadas devuelven un error HTTP 401.

Cómo obtener una clave secreta de la API y un ID de la API

  1. Accede a tu organización de Carbon Black Cloud.
  2. Navega a Configuración > Claves de API.
  3. Haz clic en "Agregar clave de API".
  4. Configura el nombre, el nivel de acceso, etcétera.
  5. Obtén tu par de ID y clave secreta de la API.

Esto permite que un administrador de la organización defina una clave de API y obtenga acceso a la clave secreta de la API y al ID de la API que se requerirán para autenticar la solicitud a la API. Además, por motivos de seguridad, los administradores pueden restringir el uso de esta clave de API a un conjunto específico de direcciones IP.

Niveles de acceso a la clave de API

Actualmente, hay cuatro niveles de acceso principales para las claves de API disponibles en la página Claves de API. Cada nivel de acceso proporciona diferentes niveles de acceso a las rutas de la API:

  1. Nivel de acceso de clave personalizada: Proporciona autorización personalizable.

    • Las claves de API personalizadas son el resultado de nuestros esfuerzos por implementar el control de acceso basado en roles (RBAC).
    • Permite a los clientes aplicar controles de acceso y crear claves de API con privilegios mínimos.
    • A las claves de API personalizadas se les pueden asignar roles de usuario o niveles de acceso.
  2. Nivel de acceso de la clave de API: Proporciona acceso a todas las APIs, excepto a la API de Notifications y la API de Live Response.

  3. Nivel de acceso a la clave del SIEM: Proporciona acceso a la API de Notifications.

  4. Nivel de acceso a la clave de Live Response: Proporciona acceso a todas las APIs disponibles para (1) anterior, además de la API de Live Response.

Correlación entre el servicio de Carbon Black Enterprise EDR (ThreatHunter) y el nivel de acceso a la API La API de la plataforma está en negrita

Categoría de API o servicio Niveles de acceso permitidos de la clave de API
PSC /appservices/* Personalizado (con los permisos adecuados)
CB-TH /threathunter/* API personalizada (con los permisos adecuados)
CB-LO /livequery/* Personalizado (con los permisos adecuados)
CB-D /integrationServices/v3/notification/ SIEM
CB-D /integrationServices/* Respuesta de APILive

Claves de organización

Además de las claves de API, muchas APIs o servicios de Carbon Black Cloud requieren una org_key en la ruta de la solicitud de API. Esto es para ayudar a los clientes que administran varias organizaciones.

Puedes encontrar tu clave de organización en la consola de Carbon Black Cloud en Settings > API Keys.

Configura el acceso a la API para la integración de Carbon Black Enterprise EDR (ThreatHunter) en Google SecOps

Para configurar el acceso a la API para la integración de Google SecOps de Carbon Black Enterprise EDR (ThreatHunter), se deben seguir los siguientes pasos:

  1. Accede a la consola de Carbon Black Cloud, ve a Configuración > Acceso a la API.
  2. En la página Acceso a la API, ve a Niveles de acceso.
  3. En la página Niveles de acceso, haz clic en + Agregar nivel de acceso.
  4. En la ventana que se abrió, proporciona un nombre y una descripción para el nuevo nivel de acceso, y selecciona los permisos como se muestra en la siguiente captura de pantalla:

    Lista de permisos obligatorios

  5. Regresa a la pestaña API Access.

  6. Haz clic en “+ Agregar clave de API” para crear una clave de API nueva.

  7. En la pestaña que se abrió, completa el campo obligatorio y selecciona el nivel de acceso que configuraste en el paso 4:

    Cómo editar la configuración de la clave de API

  8. Una vez que hagas clic en Guardar, se mostrarán el ID de API y la clave secreta de la API. Guarda esos valores, ya que solo se mostrarán una vez.

  9. Una vez que se guardan el ID de la API y la clave secreta de la API, se completa el acceso a la API en Carbon Black Enterprise EDR (ThreatHunter).

Configura la integración de VMware Carbon Black Enterprise EDR (Threat Hunter) en Google SecOps

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

Parámetros de integración

Usa los siguientes parámetros para configurar la integración:

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Nombre de la instancia String N/A No Nombre de la instancia para la que deseas configurar la integración.
Descripción String N/A No Es la descripción de la instancia.
Raíz de la API String N/A Es la URL raíz de la API de VMware Carbon Black Cloud.
Clave de organización String N/A Es la clave de organización de VMware Carbon Black Cloud.
ID de API String N/A Es el ID de la API de VMware Carbon Black Cloud (ID de clave de API personalizada).
Clave secreta de la API String N/A Clave secreta de la API de VMware Carbon Black Cloud (clave secreta de la API personalizada).
Ejecutar de forma remota Casilla de verificación N/A No Marca la casilla para ejecutar la integración configurada de forma remota. Una vez que se marca, aparece la opción para seleccionar al usuario remoto (agente).

Acciones

Ping

Descripción

Prueba la conectividad con VMware Carbon Black Enterprise EDR con los parámetros proporcionados en la página de configuración de la integración en la pestaña Google Security Operations Marketplace.

Parámetros

N/A

Ejemplos de casos de uso de manuales

La acción se usa para probar la conectividad en la página de configuración de la integración en la pestaña Google Security OperationsMarketplace y se puede ejecutar como una acción manual, no se usa en los cuadernos de estrategias.

Ejecutar en

Esta acción no se ejecuta en entidades ni tiene parámetros de entrada obligatorios.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_success Verdadero/Falso is_success:False
Muro de casos
Tipo de resultado Valor/Descripción Tipo
Mensaje de salida*

La acción no debe fallar ni detener la ejecución de una guía:

  • Si la conexión se realiza correctamente, se imprimirá el mensaje "Successfully connected to the VMware Carbon Black Enterprise EDR server with the provided connection parameters!".

La acción debería fallar y detener la ejecución de la guía:

  • Si no se realiza correctamente, imprime el mensaje "No se pudo conectar al servidor de EDR de VMware Carbon Black Enterprise". Error is {0}".format(exception.stacktrace)
General

Descripción

Busca información sobre la actividad del proceso en el host con el sensor de CB según los parámetros de búsqueda proporcionados. La acción acepta entidades de Host Google SecOps.

Parámetros

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Consulta String N/A No Es la consulta que se ejecutará en la búsqueda de procesos. Por ejemplo, process_name:svchost.exe (para buscar por nombre del proceso) o process_hash:9520a99e77d6196d0d09833146424113 (para buscar por hash del proceso).
Período Número entero 4 No Especifica un período en horas para recuperar las alertas.
Límite de registros Número entero 20 Especifica cuántos registros puede devolver la acción.
Ordenar por String N/A No Especifica un parámetro para ordenar los datos.
Ordenar por DDL ASC No Orden de clasificación.

Ejemplos de casos de uso de manuales

Busca eventos causados por procesos según los parámetros de búsqueda proporcionados.

Durante el análisis de una alerta relacionada con un host específico que administra la Plataforma de CB, el usuario desea investigar el host y buscar eventos particulares causados por procesos que se ejecutan según los parámetros de búsqueda proporcionados. Los usuarios pueden ejecutar esta acción para la actividad de búsqueda de amenazas, es decir, buscar de forma proactiva si hay procesos o eventos sospechosos en el host en cuestión.

Ejecutar en

Esta acción se ejecuta en la entidad Host.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_success Verdadero/Falso is_success:False
Resultado de JSON
{
"results": [
    {
        "alert_id": [
            "null/WSD2CQMT"
        ],
        "backend_timestamp": "2020-03-04T21:42:45.080Z",
        "device_id": 3078944,
        "device_name": "qaam\\manticorewin864",
        "device_policy_id": 6525,
        "device_timestamp": "2020-03-04T21:39:33.180Z",
        "enriched": true,
        "enriched_event_type": "CREATE_PROCESS",
        "event_description": "The script \"<share><link hash=\"74fcbbb574bfd505cf0680575a1c025f6cead071fce78ee0cc2c7bac7dd24ce9\">C:\\programdata\\wmirepair.bat</link></share>\" invoked the application \"<share><link hash=\"7eadc73f8aa77148ca289d5ce5c2632f3a157d313079583454c0421bb97d5646\">C:\\windows\\syswow64\\regsvr32.exe</link></share>\". ",
        "event_id": "ecc6954f5e6011eaa0de89cc027330db",
        "event_type": "childproc",
        "ingress_time": 1583358118950,
        "legacy": true,
        "org_id": "7DESJ9GN",
        "parent_guid": "7DESJ9GN-002efb20-00001604-00000000-1d5f26cab1067fe",
        "parent_pid": 5636,
        "process_guid": "7DESJ9GN-002efb20-00000d58-00000000-1d5f26d6615c568",
        "process_hash": [
            "629ae017d28848b68485bd2aeede9129",
            "74fcbbb574bfd505cf0680575a1c025f6cead071fce78ee0cc2c7bac7dd24ce9"
        ],
        "process_name": "c:\\programdata\\wmirepair.bat",
        "process_pid": [
            3416
        ],
        "process_username": [
            "NT AUTHORITY\\SYSTEM"
        ]
    },
    ...
]  }
Muro de casos
Tipo de resultado Valor o descripción Tipo
Mensaje de salida*

La acción no debe fallar ni detener la ejecución de una guía:

  • Si la operación se realiza correctamente, se imprimirá el mensaje "Found process information for the following entities:\n {0}".format( lista de identificadores de la entidad).
  • Si is_success=False para todas las entidades proporcionadas, imprime "No se devolvieron resultados de la búsqueda".
  • Si is_success=False para algunas de las entidades proporcionadas porque no se pueden encontrar resultados para los parámetros de búsqueda especificados, imprime "Action was not able to find process information for the following entities:\n {0}".format(entity.Identifiers list)
  • Si is_success=False para algunas de las entidades proporcionadas porque hubo un error al ejecutar la búsqueda (por ejemplo, se agotó el tiempo de espera), imprime "No se pudieron obtener resultados debido a los errores que se produjeron al ejecutar la búsqueda de las siguientes entidades:/n {0}".format(entity.identifiers list)

La acción debería fallar y detener la ejecución de la guía:

  • Si se produce un error grave, como credenciales incorrectas, falta de conexión con el servidor o algún otro problema, imprime el mensaje “No se pudo ejecutar la acción”. Error is {0}".format(exception.stacktrace)
Ambos
Tabla

Nombre de la tabla: Procesa los resultados de la búsqueda para {entityIdentifier}

Columnas:

  • ID del evento (event_id)
  • Tipo de evento ("enriched_event_type")
  • Nombre del proceso (process_name)
  • GUID del proceso (process_guid)
  • PID del proceso (process_pid)
  • GUID del proceso principal (parent_guid)
  • PID del proceso principal (parent_pid)
  • Hash del archivo de proceso (process_hash)
  • Ejecutar como proceso ("process_username")
  • Hora de creación (“device_timestamp”)
  • Descripción del evento (event_description)
  • Dirección IPv4 local (event_network_local_ipv4)
  • Protocolo de red (event_network_protocol)
  • Dirección IPv4 remota (event_network_remote_ipv4)
  • Puerto remoto (event_network_remote_port)
Entidad

Obtén eventos asociados con el proceso por GUID de proceso

Descripción

Obtén eventos asociados con procesos específicos según la información del EDR de VMware Carbon Black Enterprise. Esta acción puede obtener resultados más detallados sobre la actividad de un proceso específico que la acción "Búsqueda de procesos". Ten en cuenta que, para que la acción funcione, el artefacto procesado por las Operaciones de seguridad de Google que se pasa a la acción debe ser de tipo GUID de proceso.

Parámetros

Nombre visible del parámetro Tipo Valor predeterminado Es obligatorio Descripción
Criterios de búsqueda String N/A No Especifica un criterio de búsqueda para la solicitud. Actualmente, solo se aceptan los valores de "event_type" como criterios de búsqueda, por ejemplo, netconn. Se aceptan varios valores como una cadena separada por comas.
Consulta Buscar N/A Es la consulta que se ejecutará en la búsqueda de procesos. Por ejemplo, "netconn_action:ACTION_CONNECTION_CREATE OR netconn_action:ACTION_CONNECTION_ESTABLISHED".
Período Número entero 4 No Especifica un período en horas para recuperar las alertas.
Límite de registros Número entero 20 No Especifica cuántos registros puede devolver la acción.
Ordenar por String N/A No Especifica un parámetro para ordenar los datos.
Ordenar por DDL ASC No Ordenar por

Ejemplos de casos de uso de manuales

Investiga la actividad de un proceso específico.

Durante el análisis de una alerta relacionada con un host específico que administra la Plataforma de CB, se descubrió que el host tiene un proceso sospechoso en ejecución. El usuario de SecOps de Google necesita una acción que use la funcionalidad de CB Enterprise EDR para obtener eventos asociados a un proceso determinado de SecOps de Google.

Ejecutar en

Esta acción no se ejecuta en entidades.

Resultados de la acción

Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_success Verdadero/Falso is_success:False
Resultado de JSON
{
    "results": [
        {
            "backend_timestamp": "2020-04-26T18:38:50.128Z",
            "created_timestamp": "2020-05-19T03:56:53.483Z",
            "event_guid": "ufzid3pPQs-yrRlPBe8-ww",
            "event_hash": "ce6a949bcd3879897c9eac258ec6a091",
            "event_timestamp": "2020-04-26T18:34:16.258Z",
            "event_type": "netconn",
            "legacy": false,
            "netconn_action": "ACTION_CONNECTION_CREATE",
            "netconn_inbound": true,
            "netconn_local_ipv6": "FF020000000000000000000000010003",
            "netconn_local_port": 5355,
            "netconn_protocol": "PROTO_UDP",
            "netconn_remote_ipv6": "FE800000000000000000000000000000",
            "netconn_remote_port": 58994,
            "process_guid": "7DESJ9GN-002efb20-000003ec-00000000-1d5fb6d63ba535c",
            "process_pid": 1004
        },
        ...
    ]
}
Muro de casos
Tipo de resultado Valor o descripción Tipo
Mensaje de salida*

La acción no debe fallar ni detener la ejecución de una guía:

  • Si la operación se realiza correctamente, imprime "Se encontraron eventos para los siguientes GUIDs de proceso:\n {0}".format( lista de GUIDs de proceso)
  • Si is_success=False para todos los GUID de proceso proporcionados, imprime "No se devolvió ningún resultado de la búsqueda".
  • Si is_success=False para algunas de las entidades proporcionadas porque no se puede encontrar el GUID del proceso especificado, se debe imprimir "Action was not able to find information for the following processes:\n {0}".format(process guids list).
  • Si is_success=False para algunas de las entidades proporcionadas porque hubo un error al ejecutar la búsqueda (por ejemplo, tiempo de espera agotado), imprime "No se pudieron obtener resultados debido a errores al ejecutar la búsqueda para los siguientes GUIDs de proceso:/n {0}".format(lista de identificadores de la entidad)

La acción debería fallar y detener la ejecución de la guía:

  • Si se produce un error grave, como credenciales incorrectas, falta de conexión con el servidor o algún otro problema, imprime el mensaje “No se pudo ejecutar la acción”. Error is {0}".format(exception.stacktrace)
General
Tabla

Nombre de la tabla: Se encontraron eventos para el proceso {identificador del artefacto del proceso}

Columnas: Se deben generar automáticamente en función de los resultados devueltos.

Entidad

Hash de enriquecimiento

Descripción

Enriquece la entidad de hash de archivo de Google SecOps en función de la información del EDR de VMware Carbon Black Enterprise.

Ejemplos de casos de uso de manuales

Enriquece la entidad filehash de Google SecOps con información de CB Enterprise EDR.

Durante el procesamiento de una posible alerta de infección de malware asociada a un host que tiene un sensor de la Plataforma de CB, el usuario debe tener datos de enriquecimiento del EDR de CB Enterprise (parte de la plataforma) sobre los hashes de archivos particulares que están asociados a la alerta en cuestión por motivos de investigación. Por ejemplo, como parte del enriquecimiento, el usuario puede obtener metadatos relacionados con el hash del archivo, cuándo se detectó por primera vez este hash en la organización y en qué host.

Ejecutar en

Esta acción se ejecuta en la entidad Filehash en formato Sha256.

Resultados de la acción

Enriquecimiento de entidades
Nombre del campo de enriquecimiento Fuente (clave JSON) Lógica: Cuándo aplicar
CB_ENT_EDR.sha256 sha256 siempre
CB_ENT_EDR.md5 md5 siempre
CB_ENT_EDR.architecture arquitectura siempre
CB_ENT_EDR.available_file_size available_file_size siempre
CB_ENT_EDR.charset_id charset_id siempre
CB_ENT_EDR.comments comentarios Si no es nulo
CB_ENT_EDR.company_name company_name siempre
CB_ENT_EDR.copyright derechos de autor siempre
CB_ENT_EDR.file_available file_available siempre
CB_ENT_EDR.file_description file_description siempre
CB_ENT_EDR.file_size file_size siempre
CB_ENT_EDR.file_version file_version siempre
CB_ENT_EDR.internal_name internal_name siempre
CB_ENT_EDR.lang_id lang_id Si no es nulo
CB_ENT_EDR.original_filename original_filename siempre
CB_ENT_EDR.os_type os_type siempre
CB_ENT_EDR.private_build private_build Si no es nulo
CB_ENT_EDR.product_description product_description Si no es nulo
CB_ENT_EDR.product_name product_name siempre
CB_ENT_EDR.product_version product_version siempre
CB_ENT_EDR.special_build special_build Si no es nulo
CB_ENT_EDR.trademark marca Si no es nulo
CB_ENT_EDR.found_times num_devices siempre
CB_ENT_EDR.first_seen_device_timestamp first_seen_device_timestamp siempre
CB_ENT_EDR.first_seen_device_id first_seen_device_id siempre
CB_ENT_EDR.first_seen_device_name first_seen_device_name siempre
CB_ENT_EDR.last_seen_device_timestamp last_seen_device_timestamp siempre
CB_ENT_EDR.last_seen_device_id last_seen_device_id siempre
CB_ENT_EDR.last_seen_device_name last_seen_device_name siempre
Resultado de secuencia de comandos
Nombre del resultado de la secuencia de comandos Opciones de valor Ejemplo
is_success Verdadero/Falso is_success:False
Resultado de JSON
{
    "sha256": "e24dd278cec867486b68418c9066ffa9bd4f394dac3ba94125d58415f677f0f4",
    "architecture": [
        "amd64"
    ],
    "available_file_size": 207800,
    "charset_id": 1200,
    "comments": null,
    "company_name": "Example Organization",
    "copyright": "Copyright  © 2019",
    "file_available": true,
    "file_description": "OpenJDK Platform binary",
    "file_size": 207800,
    "file_version": "8.0.2320.9",
    "internal_name": "java",
    "lang_id": null,
    "md5": "afede6f64ed8878bc0cac57e1831a3bc",
    "original_filename": "java.exe",
    "os_type": "WINDOWS",
    "private_build": null,
    "product_description": null,
    "product_name": "OpenJDK Platform 8",
    "product_version": "8.0.2320.9",
    "special_build": null,
    "trademark": null
}
Muro de casos
Tipo de resultado Valor o descripción Tipo
Mensaje de salida*

La acción no debe fallar ni detener la ejecución de una guía:

  • Si la operación se realiza correctamente y se enriqueció al menos una de las entidades proporcionadas, se imprimirá "Successfully enriched entities: {0}".format([entity.Identifier]).
  • Si no se pueden enriquecer todas las entidades proporcionadas, se imprimirá el mensaje "No se enriqueció ninguna entidad".
  • Si no se encuentran datos en VMware Carbon Black Enterprise EDR para enriquecer entidades específicas, se imprimirá el mensaje "Action was not able to find VMware Carbon Black Enterprise EDR info to enrich the following entities: {0}".format([entity.identifier])
  • Si no se puede ejecutar una de las búsquedas de enriquecimiento (por ejemplo, se produce el error 500 cuando se obtiene una respuesta, pero la otra es correcta), is_success debe ser False, pero la acción debe enriquecerse con los datos que obtuvo de la otra respuesta y mostrar el siguiente mensaje: "Las siguientes entidades se enriquecieron parcialmente debido a los errores que se produjeron al obtener los datos de la entidad:/n {0}".format(entityIdentifier list)

La acción debería fallar y detener la ejecución de la guía:

  • Si se produce un error fatal, como credenciales incorrectas, falta de conexión al servidor o algún otro problema, imprime el mensaje "Failed to execute Enrich Entities action! Error is {0}".format(exception.stacktrace)
General