VMware Carbon Black Enterprise EDR

Versão da integração: 6.0

Exemplos de utilização de produtos

  1. Realize ações de investigação: obtenha dados do CB Enterprise EDR como parte de uma análise de alertas no Google Security Operations.
  2. Realizar ações de configuração: configurar feeds/listas de observação do CB Enterprise EDR a partir do Google SecOps.

Autorização do produto

Conceitos necessários para aceder às APIs Carbon Black Enterprise EDR (ThreatHunter):

  1. Nome do anfitrião do serviço
  2. Chaves da API
  3. RBAC
  4. Chaves da organização

Nomes de anfitriões de serviços

Existem dois nomes de anfitrião do Carbon Black Cloud:

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

Além disso, temos vários ambientes, como (lista não exaustiva):

  • prod02
  • prod04
  • prod05

Para a API Carbon Black Enterprise EDR (ThreatHunter), vão ser usados os seguintes nomes de anfitrião: https://defense-<environment>.conferdeploy.net/

Chaves da API

As APIs e os serviços do Carbon Black Enterprise EDR (ThreatHunter) são autenticados através de chaves da API. Os utilizadores podem ver as definições da chave de API na consola do Carbon Black Cloud em Definições > Chaves de API.

As chaves da API incluem duas partes:

  • Chave secreta da API (anteriormente chave da API).
  • ID da API (anteriormente ID do conetor).

A autenticação é transmitida à API através do cabeçalho HTTP X-Auth-Token.

  1. Para gerar o cabeçalho adequado, concatene a chave secreta da API com o ID da API com uma barra invertida entre os dois.
  2. Por exemplo, se a chave secreta da API for ABCD e o ID da API for 1234, o cabeçalho HTTP X-Auth-Token correspondente será: X-Auth-Token: ABCD/1234

Todos os pedidos de API têm de ser autenticados através de uma chave secreta da API e um ID da API. Os pedidos não autenticados devolvem um erro HTTP 401.

Como obter uma chave secreta da API e um ID da API

  1. Inicie sessão na sua organização do Carbon Black Cloud.
  2. Navegue para Definições > Chaves de API.
  3. Clique em "Adicionar chave da API".
  4. Configure o nome, o nível de acesso, etc.
  5. Obtenha o par de ID da API e chave secreta da API.

Isto permite que um administrador da organização defina uma chave da API e aceda à chave secreta da API e ao ID da API que serão necessários para autenticar o pedido da API. Além disso, os administradores podem restringir a utilização desta chave da API a um conjunto específico de endereços IP por motivos de segurança.

Níveis de acesso da chave da API

Atualmente, existem quatro níveis de acesso principais para chaves da API disponíveis na página Chaves da API. Cada nível de acesso oferece diferentes níveis de acesso às rotas da API:

  1. Nível de acesso de chave personalizada: oferece autorização personalizável.

    • As chaves da API personalizadas são o resultado dos nossos esforços de controlo de acesso baseado em funções (CABF).
    • Permite que os clientes apliquem controlos de acesso e criem chaves de API com privilégios mínimos.
    • As chaves de API personalizadas podem ser atribuídas a funções de utilizador ou níveis de acesso.
  2. Nível de acesso da chave da API: fornece acesso a todas as APIs, exceto à API Notifications e à API Live Response.

  3. Nível de acesso da chave SIEM: fornece acesso à API Notifications.

  4. Nível de acesso da chave de resposta em direto: fornece acesso a todas as APIs disponíveis para (1) acima, além da API Live Response.

Serviço Carbon Black Enterprise EDR (ThreatHunter) para nível de acesso à API Correlação A API Platform está em negrito

Categoria da API/serviço Níveis de acesso da chave da API permitidos
PSC /appservices/* Personalizada (com as autorizações adequadas)
CB-TH /threathunter/* API personalizada (com as autorizações adequadas)
CB-LO /livequery/* Personalizada (com as autorizações adequadas)
CB-D /integrationServices/v3/notification/ SIEM
CB-D /integrationServices/* Resposta APILive

Chaves da organização

Além das chaves de API, muitas APIs ou serviços do Carbon Black Cloud requerem uma org_key no caminho do pedido de API. Isto destina-se a apoiar os clientes que gerem várias organizações.

Pode encontrar a sua org_key na Carbon Black Cloud Console em Settings > API Keys.

Configure o acesso à API para a integração do Carbon Black Enterprise EDR (ThreatHunter) com o Google SecOps

Para configurar o acesso à API para a integração do Google SecOps com o Carbon Black Enterprise EDR (ThreatHunter), tem de seguir os passos seguintes:

  1. Inicie sessão na Carbon Black Cloud Console e aceda a Settings > API Access.
  2. Na página de acesso à API, aceda a Níveis de acesso.
  3. Na página Níveis de acesso, clique em + Adicionar nível de acesso.
  4. Na janela aberta, indique um nome e uma descrição para o novo nível de acesso e selecione autorizações, como na captura de ecrã abaixo:

    Lista de autorizações necessárias

  5. Volte ao separador Acesso à API.

  6. Clique em "+ Adicionar chave da API" para criar uma nova chave da API.

  7. No separador aberto, preencha o campo obrigatório e selecione o nível de acesso que configurou no passo 4:

    Edite as definições
da chave da API

  8. Depois de clicar em Guardar, são apresentados o ID da API e a chave secreta da API. Guarde esses valores, porque só são apresentados uma vez.

  9. Assim que o ID da API e a chave secreta da API forem guardados, o acesso à API no Carbon Black Enterprise EDR (ThreatHunter) está concluído.

Configure a integração do VMware Carbon Black Enterprise EDR (Threat Hunter) no Google SecOps

Para obter instruções detalhadas sobre como configurar uma integração no Google SecOps, consulte o artigo Configure integrações.

Parâmetros de integração

Use os seguintes parâmetros para configurar a integração:

Nome a apresentar do parâmetro Tipo Valor predefinido É obrigatório Descrição
Nome da instância String N/A Não Nome da instância para a qual pretende configurar a integração.
Descrição String N/A Não Descrição da instância.
Raiz da API String N/A Sim URL raiz da API VMware Carbon Black Cloud.
Chave da organização String N/A Sim Chave da organização do VMware Carbon Black Cloud.
ID da API String N/A Sim ID da API VMware Carbon Black Cloud (ID da chave de API personalizada).
Chave secreta da API String N/A Sim Chave secreta da API VMware Carbon Black Cloud (chave secreta da API personalizada).
Executar remotamente Caixa de verificação N/A Não Selecione o campo para executar a integração configurada remotamente. Depois de selecionada, a opção aparece para selecionar o utilizador remoto (agente).

Ações

Tchim-tchim

Descrição

Teste a conetividade ao VMware Carbon Black Enterprise EDR com os parâmetros fornecidos na página de configuração da integração no separador Marketplace do Google Security Operations.

Parâmetros

N/A

Exemplos de utilização do manual de estratégias

A ação é usada para testar a conetividade na página de configuração da integração no separador Marketplace do Google Security Operations e pode ser executada como uma ação manual, não usada em manuais de procedimentos.

Executar em

Esta ação não é executada em entidades nem tem parâmetros de entrada obrigatórios.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False
Case Wall
Tipo de resultado Valor/descrição Tipo
Mensagem de saída*

A ação não deve falhar nem parar a execução de um guia interativo:

  • Se tiver êxito: imprima "Successfully connected to the VMware Carbon Black Enterprise EDR server with the provided connection parameters!" (Ligação estabelecida com êxito ao servidor VMware Carbon Black Enterprise EDR com os parâmetros de ligação fornecidos!)

A ação deve falhar e parar a execução de um guia interativo:

  • Se não for bem-sucedido: imprima "Failed to connect to the VMware Carbon Black Enterprise EDR server! O erro é {0}".format(exception.stacktrace)
Geral

Descrição

Pesquise informações sobre a atividade de processos no anfitrião com o sensor CB com base nos parâmetros de pesquisa fornecidos. A ação aceita entidades do Google SecOps do anfitrião.

Parâmetros

Nome a apresentar do parâmetro Tipo Valor predefinido É obrigatório Descrição
Consulta String N/A Não Consulta a executar na pesquisa de processos. Por exemplo, process_name:svchost.exe – para pesquisar com base no nome do processo, process_hash:9520a99e77d6196d0d09833146424113 – para pesquisar com base no hash do processo.
Intervalo de tempo Número inteiro 4 Não Especifique um período de tempo em horas para obter alertas.
Limite de registos Número inteiro 20 Sim Especifique quantos registos podem ser devolvidos pela ação.
Ordenar por String N/A Não Especifique um parâmetro para ordenar os dados.
Ordenação LDD ASC Não Ordenação.

Exemplos de utilização do manual de estratégias

Pesquise eventos causados por processos com base nos parâmetros de pesquisa indicados.

Durante a análise de um alerta relacionado com um anfitrião específico gerido pela plataforma CB, o utilizador quer investigar o anfitrião, pesquisar eventos específicos causados por processos em execução com base nos parâmetros de pesquisa fornecidos. Os utilizadores podem executar esta ação para atividade de deteção de ameaças, pesquisando proativamente se existem processos/eventos suspeitos no anfitrião em questão.

Executar em

Esta ação é executada na entidade anfitriã.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False
Resultado 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"
        ]
    },
    ...
]  }
Case Wall
Tipo de resultado Valor / descrição Tipo
Mensagem de saída*

A ação não deve falhar nem parar a execução de um guia interativo:

  • Se for bem-sucedido: imprime "Found process information for the following entities:\n {0}".format( entity.Identifiers list)
  • Se is_success=False para todas as entidades fornecidas: imprima "Não foram devolvidos resultados da pesquisa."
  • Se is_success=False para algumas das entidades fornecidas porque não consegue encontrar resultados para os parâmetros de pesquisa especificados: print "Action was not able to find process information for the following entities:\n {0}".format(entity.Identifiers list)
  • Se is_success=False para algumas das entidades fornecidas porque ocorreu um erro ao executar a pesquisa (por exemplo, tempo limite): print "Failed to get results because of the errors running search for the following entities:/n {0}".format(entity.identifiers list)

A ação deve falhar e parar a execução de um guia interativo:

  • Se for um erro fatal, como credenciais incorretas, sem ligação ao servidor ou outro: imprima "Falha ao executar a ação! O erro é {0}".format(exception.stacktrace)
Ambos
Tabela

Nome da tabela: processar resultados da pesquisa para {entityIdentifier}

Colunas:

  • ID do evento (event_id)
  • Tipo de evento ("enriched_event_type")
  • Nome do processo (process_name)
  • GUID do processo (process_guid)
  • PID do processo (process_pid)
  • Process Parent GUID (parent_guid)
  • Process Parent PID (parent_pid)
  • Hash do ficheiro de processo (process_hash)
  • Process Run As ("process_username")
  • Data de criação ("device_timestamp")
  • Descrição do evento (event_description)
  • Endereço IPv4 local (event_network_local_ipv4)
  • Protocolo de rede (event_network_protocol)
  • Endereço IPv4 remoto (event_network_remote_ipv4)
  • Porta remota (event_network_remote_port)
Entidade

Obtenha eventos associados ao processo por GUID do processo

Descrição

Receba eventos associados a processos específicos com base nas informações do VMware Carbon Black Enterprise EDR. Esta ação pode obter resultados mais detalhados sobre a atividade de processos específica do que a ação "Pesquisa de processos". Tenha em atenção que, para que a ação funcione, o artefacto processado pela Google SecOps transmitido à ação deve ser um tipo de GUID de processo.

Parâmetros

Nome a apresentar do parâmetro Tipo Valor predefinido É obrigatório Descrição
Critérios de pesquisa String N/A Não Especifique um critério de pesquisa para o pedido. Atualmente, apenas os valores de "event_type" são aceites como critérios de pesquisa, por exemplo, netconn. São aceites vários valores como uma string separada por vírgulas.
Consulta Pesquisar N/A Sim Consulta a executar na pesquisa de processos.Por exemplo, "netconn_action:ACTION_CONNECTION_CREATE OR netconn_action:ACTION_CONNECTION_ESTABLISHED"
Intervalo de tempo Número inteiro 4 Não Especifique um período de tempo em horas para obter alertas.
Limite de registos Número inteiro 20 Não Especifique quantos registos podem ser devolvidos pela ação.
Ordenar por String N/A Não Especifique um parâmetro para ordenar os dados.
Ordenação LDD ASC Não Ordenação

Exemplos de utilização do manual de estratégias

Investigar a atividade de processos específicos.

Durante a análise de um alerta relacionado com um anfitrião específico gerido pela plataforma CB, foi descoberto que o anfitrião tem um processo suspeito em execução. O utilizador do Google SecOps precisa de uma ação que use a funcionalidade CB Enterprise EDR para obter eventos associados a um determinado processo do Google SecOps.

Executar em

Esta ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False
Resultado 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
        },
        ...
    ]
}
Case Wall
Tipo de resultado Valor / descrição Tipo
Mensagem de saída*

A ação não deve falhar nem parar a execução de um guia interativo:

  • Se for bem-sucedido: imprima "Found events for the following process guids:\n {0}".format( process guid list)
  • Se is_success=False para todos os GUIDs de processo fornecidos: imprima "Não foram devolvidos resultados da pesquisa."
  • Se is_success=False para algumas das entidades fornecidas porque não consegue encontrar o GUID do processo especificado: imprima "Não foi possível encontrar informações para os seguintes processos:\n {0}".format(process guids list).
  • Se is_success=False para algumas das entidades fornecidas porque ocorreu um erro ao executar a pesquisa (por exemplo, tempo limite): print "Failed to get results because of errors running search for the following process guids:/n {0}".format(entity.identifiers list)

A ação deve falhar e parar a execução de um guia interativo:

  • Se for um erro fatal, como credenciais incorretas, sem ligação ao servidor ou outro: imprima "Falha ao executar a ação! O erro é {0}".format(exception.stacktrace)
Geral
Tabela

Nome da tabela: eventos encontrados para o processo {process artifact identifier}

Colunas: devem ser geradas automaticamente com base nos resultados devolvidos.

Entidade

Hash de enriquecimento

Descrição

Enriqueça a entidade hash de ficheiro do Google SecOps com base nas informações do VMware Carbon Black Enterprise EDR.

Exemplos de utilização do manual de estratégias

Enriqueça a entidade filehash do Google SecOps com informações do CB Enterprise EDR.

Durante o processamento de um possível alerta de infeção por software malicioso associado a um anfitrião com um sensor da plataforma CB, o utilizador tem de ter dados de enriquecimento da CB Enterprise EDR (parte da plataforma) sobre hashes de ficheiros específicos associados ao alerta em questão por motivos de investigação. Por exemplo, como parte do enriquecimento, o utilizador pode obter metadados filehash relacionados, quando este filehash foi detetado pela primeira vez na organização e em que anfitrião.

Executar em

Esta ação é executada na entidade Filehash no formato Sha256.

Resultados da ação

Enriquecimento de entidades
Nome do campo de enriquecimento Origem (chave JSON) Lógica: quando aplicar
CB_ENT_EDR.sha256 sha256 sempre
CB_ENT_EDR.md5 md5 sempre
CB_ENT_EDR.architecture arquitetura sempre
CB_ENT_EDR.available_file_size available_file_size sempre
CB_ENT_EDR.charset_id charset_id sempre
CB_ENT_EDR.comments comentários Se não for nulo
CB_ENT_EDR.company_name company_name sempre
CB_ENT_EDR.copyright direitos de autor sempre
CB_ENT_EDR.file_available file_available sempre
CB_ENT_EDR.file_description file_description sempre
CB_ENT_EDR.file_size file_size sempre
CB_ENT_EDR.file_version file_version sempre
CB_ENT_EDR.internal_name internal_name sempre
CB_ENT_EDR.lang_id lang_id Se não for nulo
CB_ENT_EDR.original_filename original_filename sempre
CB_ENT_EDR.os_type os_type sempre
CB_ENT_EDR.private_build private_build Se não for nulo
CB_ENT_EDR.product_description product_description Se não for nulo
CB_ENT_EDR.product_name product_name sempre
CB_ENT_EDR.product_version product_version sempre
CB_ENT_EDR.special_build special_build Se não for nulo
CB_ENT_EDR.trademark marca comercial Se não for nulo
CB_ENT_EDR.found_times num_devices sempre
CB_ENT_EDR.first_seen_device_timestamp first_seen_device_timestamp sempre
CB_ENT_EDR.first_seen_device_id first_seen_device_id sempre
CB_ENT_EDR.first_seen_device_name first_seen_device_name sempre
CB_ENT_EDR.last_seen_device_timestamp last_seen_device_timestamp sempre
CB_ENT_EDR.last_seen_device_id last_seen_device_id sempre
CB_ENT_EDR.last_seen_device_name last_seen_device_name sempre
Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False
Resultado 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
}
Case Wall
Tipo de resultado Valor / descrição Tipo
Mensagem de saída*

A ação não deve falhar nem parar a execução de um guia interativo:

  • Se for bem-sucedido e, pelo menos, uma das entidades fornecidas tiver sido enriquecida: imprima "Successfully enriched entities: {0}".format([entity.Identifier]).
  • Se não for possível enriquecer todas as entidades fornecidas: imprima "Nenhuma entidade foi enriquecida".
  • Se não conseguir encontrar dados no VMware Carbon Black Enterprise EDR para enriquecer entidades específicas: imprima "Action was not able to find VMware Carbon Black Enterprise EDR info to enrich the following entities: {0}".format([entity.identifier])
  • Se não conseguir executar uma das consultas de enriquecimento, por exemplo, o erro 500 ao receber uma resposta, mas a outra estiver bem, is_success deve ser False, mas a ação deve enriquecer com os dados que recebeu da outra resposta e imprimir: "As seguintes entidades foram parcialmente enriquecidas devido a erros na obtenção de dados de entidades:/n {0}".format(entityIdentifier list)

A ação deve falhar e parar a execução de um guia interativo:

  • Se ocorrer um erro fatal, como credenciais incorretas, sem ligação ao servidor, entre outros: imprima "Falha ao executar a ação Enrich Entities! O erro é {0}".format(exception.stacktrace)
Geral