Coletar registros do Carbon Black EDR

Compatível com:

Este documento explica como coletar registros do Carbon Black EDR de ambientes de nuvem e locais usando o AWS S3. O analisador extrai campos de mensagens formatadas em JSON, CSV ou syslog, normaliza e mapeia para a UDM. Ele processa vários tipos de eventos do Carbon Black, incluindo conexões de rede, eventos de processo, modificações de arquivos, alterações de registro e hits de IOC, enriquecendo os dados com inteligência de ameaças e informações do dispositivo, quando disponíveis.

Antes de começar

Verifique se você atende aos seguintes pré-requisitos:

  • Instância do Google SecOps.
  • Acesso privilegiado ao IAM e ao S3 da AWS.
  • Acesso privilegiado ao Carbon Black EDR na nuvem ou no local.

Configurar o Carbon Black EDR localmente

Configurar o bucket do Amazon S3 para o ambiente local

  1. Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket
  2. Salve o Nome e a Região do bucket para uso posterior.
  3. Crie um usuário seguindo este guia: Como criar um usuário do IAM.
  4. Selecione o usuário criado.
  5. Selecione a guia Credenciais de segurança.
  6. Clique em Criar chave de acesso na seção Chaves de acesso.
  7. Selecione Serviço de terceiros como o Caso de uso.
  8. Clique em Próxima.
  9. Opcional: adicione uma tag de descrição.
  10. Clique em Criar chave de acesso.
  11. Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para uso posterior.
  12. Clique em Concluído.
  13. Selecione a guia Permissões.
  14. Clique em Adicionar permissões na seção Políticas de permissões.
  15. Selecione Adicionar permissões.
  16. Selecione Anexar políticas diretamente.
  17. Pesquise e selecione a política AmazonS3FullAccess.
  18. Clique em Próxima.
  19. Clique em Adicionar permissões

Instalar o cb-event-forwarder no servidor EDR local

  1. Instale o repositório CbOpenSource se ele ainda não estiver presente:

    cd /etc/yum.repos.d
    curl -O https://opensource.carbonblack.com/release/x86_64/CbOpenSource.repo
    
  2. Instale o RPM usando o YUM:

    yum install cb-event-forwarder
    
  3. Se você estiver usando o EDR 7.1.0 ou uma versão mais recente, execute o script a seguir para definir as permissões adequadas necessárias para o EDR:

    /usr/share/cb/integrations/event-forwarder/cb-edr-fix-permissions.sh
    

Configurar o cb-event-forwarder para gerar registros JSON

  1. Abra o arquivo de configuração:

    sudo nano /etc/cb/integrations/event-forwarder/cb-event-forwarder.conf
    
  2. Modifique os seguintes parâmetros:

    [event_forwarder]
    output_format=json   # Enable JSON format
    output_type=s3       # Send logs to AWS S3
    s3_bucket_name=YOUR-S3-BUCKET-NAME
    s3_region=YOUR-S3-BUCKET-NAME
    s3_access_key_id=YOUR_AWS_ACCESS_KEY
    s3_secret_access_key=YOUR_AWS_SECRET_KEY
    s3_prefix=carbonblack/edr/logs
    
  3. Salve e saia usando o teclado:

    • Ctrl + X, depois Y e Enter.
  4. Inicie o cb-event-forwarder:

    sudo systemctl enable cb-event-forwarder
    sudo systemctl restart cb-event-forwarder
    sudo systemctl status cb-event-forwarder
    

Configurar o encaminhador de eventos do Carbon Black Cloud para o S3

Criar um bucket do AWS S3

  1. Faça login no console de gerenciamento da AWS.
  2. Verifique se a região da AWS corresponde à região do encaminhador de eventos:
    1. Na página Console da AWS, localize a região.
    2. Use o menu suspenso para selecionar a região correta do encaminhador de eventos.
    3. A lista a seguir informa a região da AWS aplicável a cada URL do Carbon Black EDR.
      • "instance-alias".my.carbonblack.io - Região: US East (N. Virgínia) (us-east-1)
      • "instance-alias".my.cbcloud.de - Região: Europa (Frankfurt) (eu-central-1)
      • "instance-alias".my.cbcloud.sg Região: Ásia-Pacífico (Singapura) (ap-southeast-1)
  3. Selecione Serviços.
  4. Acesse o console do S3.
  5. Clique em Criar bucket para abrir o assistente Criar bucket.
    1. Em Nome do bucket, insira um nome exclusivo para o bucket (por exemplo, CB-EDR).
    2. Verifique se a região padrão é a mesma que você selecionou antes.
    3. Atualize os padrões de Bloquear acesso público para permitir o acesso público. Isso é necessário para ingerir os registros no Google SecOps.
    4. Selecione Criar bucket.

Configure o bucket do S3 para permitir que o encaminhador de eventos grave eventos

  1. Crie um usuário seguindo este guia: Como criar um usuário do IAM.
  2. Selecione o usuário criado.
  3. Selecione a guia Credenciais de segurança.
  4. Clique em Criar chave de acesso na seção Chaves de acesso.
  5. Selecione Serviço de terceiros como o Caso de uso.
  6. Clique em Próxima.
  7. Opcional: adicione uma tag de descrição.
  8. Clique em Criar chave de acesso.
  9. Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para uso posterior.
  10. Clique em Concluído.
  11. Selecione a guia Permissões.
  12. Clique em Adicionar permissões na seção Políticas de permissões.
  13. Selecione Adicionar permissões.
  14. Selecione Anexar políticas diretamente.
  15. Pesquise a política AmazonS3FullAccess.
  16. Selecione a política.
  17. Clique em Próxima.
  18. Clique em Adicionar permissões

Configurar o encaminhamento de eventos no console da EDR

  1. Faça login no VMware Carbon Black Cloud.
  2. Acesse a guia Encaminhador de eventos.
  3. Ative os eventos que você quer que o produto faça upload para o S3.
  4. Acesse Saída e tipo e defina como S3.
  5. Forneça o nome do bucket do S3 no seguinte formato: <region>:<bucket-name> (por exemplo, us-east-1:cb-edr).
  6. Selecione Fazer upload do arquivo de credenciais da AWS no formato INI.
  7. Confira um exemplo de perfil:

    AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
    AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
    Default region name [None]: us-east-1
    
  8. Clique em Salvar e reinicie o serviço para que as mudanças entrem em vigor.

Configurar feeds

Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:

  • Configurações do SIEM > Feeds
  • Central de conteúdo > Pacotes de conteúdo

Configure feeds em "Configurações do SIEM" > "Feeds".

Para configurar um feed, siga estas etapas:

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na próxima página, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed (por exemplo, Registros do Carbon Black EDR).
  5. Selecione Amazon S3 como o Tipo de origem.
  6. Selecione Carbon Black EDR como o Tipo de registro.
  7. Clique em Próxima.
  8. Especifique valores para os seguintes parâmetros de entrada:

    • Região: a região em que o bucket do Amazon S3 está localizado.
    • URI do S3: o URI do bucket.
      • s3:/BUCKET_NAME
        • Substitua BUCKET_NAME pelo nome real do bucket.
    • URI é um: selecione o URI_TYPE de acordo com a configuração do fluxo de registros (Arquivo único | Diretório | Diretório que inclui subdiretórios).
    • Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.
    • ID da chave de acesso: a chave de acesso do usuário com acesso ao bucket do S3.
    • Chave de acesso secreta: a chave secreta do usuário com acesso ao bucket do S3.
  9. Clique em Próxima.

  10. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Configurar feeds na Central de conteúdo

Especifique valores para os seguintes campos:

  • Região: a região em que o bucket do Amazon S3 está localizado.
  • URI do S3: o URI do bucket.
    • s3:/BUCKET_NAME
      • Substitua BUCKET_NAME pelo nome real do bucket.
  • URI é um: selecione o URI_TYPE de acordo com a configuração do fluxo de registros (Arquivo único | Diretório | Diretório que inclui subdiretórios).
  • Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.
  • ID da chave de acesso: a chave de acesso do usuário com acesso ao bucket do S3.
  • Chave de acesso secreta: a chave secreta do usuário com acesso ao bucket do S3.

Opções avançadas

  • Nome do feed: um valor pré-preenchido que identifica o feed.
  • Tipo de origem: método usado para coletar registros no Google SecOps.
  • Namespace do recurso: namespace associado ao feed.
  • Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
action security_result.detection_fields[?key == 'action'].value O valor do campo action do registro bruto.
cb_server intermediary.hostname O valor do campo cb_server do registro bruto.
cb_version metadata.product_version O valor do campo cb_version do registro bruto.
child_pid target.process.pid (para eventos ingress.event.childproc) O valor do campo child_pid do registro bruto quando type é ingress.event.childproc.
child_process_guid target.process.product_specific_process_id (para eventos ingress.event.childproc) "CB:" concatenado com o valor do campo child_process_guid do registro bruto quando type é ingress.event.childproc.
child_username target.user.userid (para eventos ingress.event.childproc) O valor do campo child_username do registro bruto quando type é ingress.event.childproc.
childproc_guid target.process.product_specific_process_id (para eventos endpoint.event.procstart) "CB:" concatenado com o valor do campo childproc_guid do registro bruto quando type é endpoint.event.procstart.
childproc_hash.0 target.process.file.md5 (para eventos endpoint.event.procstart) O primeiro elemento da matriz childproc_hash do registro bruto quando type é endpoint.event.procstart.
childproc_hash.1 target.process.file.sha256 (para eventos endpoint.event.procstart) O segundo elemento da matriz childproc_hash do registro bruto quando type é endpoint.event.procstart.
childproc_name target.process.file.full_path (para eventos endpoint.event.procstart) O valor do campo childproc_name do registro bruto quando type é endpoint.event.procstart.
childproc_pid target.process.pid (para eventos endpoint.event.procstart) O valor do campo childproc_pid do registro bruto quando type é endpoint.event.procstart.
childproc_publisher.0.name security_result.detection_fields[?key == 'childproc_publisher_name'].value (para eventos endpoint.event.procstart) "childproc_publisher_name:" concatenado com o valor de childproc_publisher.0.name do registro bruto quando type é endpoint.event.procstart.
childproc_publisher.0.state security_result.detection_fields[?key == 'childproc_publisher_state'].value (para eventos endpoint.event.procstart) "childproc_publisher_state:" concatenado com o valor de childproc_publisher.0.state do registro bruto quando type é endpoint.event.procstart.
childproc_reputation security_result.detection_fields[?key == 'childproc_reputation'].value (para eventos endpoint.event.procstart) O valor do campo childproc_reputation do registro bruto quando type é endpoint.event.procstart.
childproc_username target.user.userid (para eventos endpoint.event.procstart) O valor do campo childproc_username do registro bruto quando type é endpoint.event.procstart.
clientIp principal.ip, principal.asset.ip O valor do campo clientIp do registro bruto.
cmdline target.process.command_line (para eventos feed.query.hit.process e feed.storage.hit.process), additional.fields[?key == 'cmdline_*'].value.string_value (para eventos watchlist.storage.hit.process) O valor do campo cmdline do registro bruto quando o type é feed.query.hit.process ou feed.storage.hit.process. Para eventos watchlist.storage.hit.process, ele é armazenado em additional.fields com a chave "cmdline_*".
command_line target.process.command_line (para eventos ingress.event.procstart) O valor do campo command_line do registro bruto quando type é ingress.event.procstart.
comms_ip intermediary.ip O valor do campo comms_ip do registro bruto.
computer_name principal.hostname, principal.asset.hostname O valor do campo computer_name do registro bruto.
crossproc_api additional.fields[?key == 'crossproc_api'].value.string_value (para eventos endpoint.event.apicall) O valor do campo crossproc_api do registro bruto quando type é endpoint.event.apicall.
crossproc_guid additional.fields[?key == 'crossproc_guid'].value.string_value (para eventos endpoint.event.crossproc) O valor do campo crossproc_guid do registro bruto quando type é endpoint.event.crossproc.
crossproc_hash.0 additional.fields[?key == 'crossproc_md5'].value.string_value (para eventos endpoint.event.crossproc) O primeiro elemento da matriz crossproc_hash do registro bruto quando type é endpoint.event.crossproc.
crossproc_hash.1 additional.fields[?key == 'crossproc_sha256'].value.string_value (para eventos endpoint.event.crossproc) O segundo elemento da matriz crossproc_hash do registro bruto quando type é endpoint.event.crossproc.
crossproc_name target.process.file.full_path (para eventos endpoint.event.crossproc) O valor do campo crossproc_name do registro bruto quando type é endpoint.event.crossproc.
crossproc_publisher.0.name security_result.detection_fields[?key == 'crossproc_publisher_name'].value (para eventos endpoint.event.crossproc) "crossproc_publisher_name:" concatenado com o valor de crossproc_publisher.0.name do registro bruto quando o type é endpoint.event.crossproc.
crossproc_publisher.0.state security_result.detection_fields[?key == 'crossproc_publisher_state'].value (para eventos endpoint.event.crossproc) "crossproc_publisher_state:" concatenado com o valor de crossproc_publisher.0.state do registro bruto quando type é endpoint.event.crossproc.
crossproc_reputation additional.fields[?key == 'crossproc_reputation'].value.string_value (para eventos endpoint.event.crossproc) O valor do campo crossproc_reputation do registro bruto quando type é endpoint.event.crossproc.
crossproc_target additional.fields[?key == 'crossproc_target'].value.string_value (para eventos endpoint.event.crossproc) O valor do campo crossproc_target do registro bruto quando type é endpoint.event.crossproc. Convertido para uma string "true" ou "false".

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.