Recolha registos do Carbon Black EDR

Compatível com:

Este documento explica como recolher registos do Carbon Black EDR de ambientes na nuvem e no local através do AWS S3. O analisador extrai campos de mensagens formatadas em JSON, CSV ou syslog, normaliza-os e mapeia-os para o UDM. Processa vários tipos de eventos do Carbon Black, incluindo ligações de rede, eventos de processos, modificações de ficheiros, alterações de registo e resultados de IOCs, enriquecendo os dados com informações sobre ameaças e informações de dispositivos, quando disponíveis.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

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

Configure o Carbon Black EDR no local

Configure o contentor do Amazon S3 para a solução no local

  1. Crie um contentor do Amazon S3 seguindo este manual do utilizador: Criar um contentor
  2. Guarde o Nome e a Região do contentor para utilização posterior.
  3. Crie um utilizador seguindo este guia do utilizador: Criar um utilizador do IAM.
  4. Selecione o utilizador criado.
  5. Selecione o separador Credenciais de segurança.
  6. Clique em Criar chave de acesso na secção Chaves de acesso.
  7. Selecione Serviço de terceiros como o Exemplo de utilização.
  8. Clicar em Seguinte.
  9. Opcional: adicione uma etiqueta de descrição.
  10. Clique em Criar chave de acesso.
  11. Clique em Transferir ficheiro CSV para guardar a chave de acesso e a chave de acesso secreta para utilização posterior.
  12. Clique em Concluído.
  13. Selecione o separador Autorizações.
  14. Clique em Adicionar autorizações na secção Políticas de autorizações.
  15. Selecione Adicionar autorizações.
  16. Selecione Anexar políticas diretamente.
  17. Pesquise e selecione a política AmazonS3FullAccess.
  18. Clicar em Seguinte.
  19. Clique em Adicionar autorizações.

Instale o cb-event-forwarder no servidor EDR no local

  1. Instale o repositório CbOpenSource se 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 através do YUM:

    yum install cb-event-forwarder
    
  3. Se estiver a usar o EDR 7.1.0 ou superior, execute o seguinte script para definir as autorizações adequadas necessárias para o EDR:

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

Configure o cb-event-forwarder para gerar registos JSON

  1. Abra o ficheiro 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. Guardar e sair através do teclado:

    • Ctrl + X e, de seguida, Y e Enter.
  4. Start cb-event-forwarder:

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

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

Crie um contentor do AWS S3

  1. Inicie sessão na AWS Management Console.
  2. Certifique-se de que a região da AWS corresponde à região do encaminhador de eventos:
    1. Na página AWS Console, localize a região.
    2. Use o menu pendente para selecionar a região correta do encaminhador de eventos.
    3. A lista seguinte indica a região da AWS aplicável para cada URL do Carbon Black EDR.
      • "instance-alias".my.carbonblack.io – Região: US East (N. do Norte) (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. Aceda à consola do S3.
  5. Clique em Criar contentor para abrir o assistente Criar contentor.
    1. Em Nome do contentor, introduza um nome exclusivo para o contentor (por exemplo, CB-EDR).
    2. Certifique-se de que a Região é predefinida para a que selecionou anteriormente.
    3. Atualize as predefinições de Bloquear acesso público para permitir o acesso público (isto é necessário para carregar os registos para o Google SecOps).
    4. Selecione Criar contentor.

Configure o contentor S3 para permitir que o encaminhador de eventos escreva eventos

  1. Crie um utilizador seguindo este guia do utilizador: criar um utilizador do IAM.
  2. Selecione o utilizador criado.
  3. Selecione o separador Credenciais de segurança.
  4. Clique em Criar chave de acesso na secção Chaves de acesso.
  5. Selecione Serviço de terceiros como o Exemplo de utilização.
  6. Clicar em Seguinte.
  7. Opcional: adicione uma etiqueta de descrição.
  8. Clique em Criar chave de acesso.
  9. Clique em Transferir ficheiro CSV para guardar a chave de acesso e a chave de acesso secreta para utilização posterior.
  10. Clique em Concluído.
  11. Selecione o separador Autorizações.
  12. Clique em Adicionar autorizações na secção Políticas de autorizações.
  13. Selecione Adicionar autorizações.
  14. Selecione Anexar políticas diretamente.
  15. Pesquise a política AmazonS3FullAccess.
  16. Selecione a política.
  17. Clicar em Seguinte.
  18. Clique em Adicionar autorizações.

Configure o encaminhamento de eventos na consola de EDR

  1. Inicie sessão no VMware Carbon Black Cloud.
  2. Aceda ao separador Encaminhador de eventos
  3. Ative os eventos que quer que o produto carregue para o S3.
  4. Aceda a Output and Type e defina como S3.
  5. Indique o nome do contentor do S3 no seguinte formato: <region>:<bucket-name> (por exemplo, us-east-1:cb-edr).
  6. Selecione o ficheiro carregar credenciais da AWS no formato INI.
  7. Segue-se um exemplo de um 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 Guardar e reinicie o serviço para que as alterações entrem em vigor.

Configure feeds

Para configurar um feed, siga estes passos:

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, introduza um nome para o feed (por exemplo, Registos de EDR do Carbon Black).
  5. Selecione Amazon S3 V2 como o Tipo de origem.
  6. Selecione Carbon Black EDR como o Tipo de registo.
  7. Clicar em Seguinte.
  8. Especifique valores para os seguintes parâmetros de entrada:

    • URI do S3: o URI do contentor.
      • s3:/BUCKET_NAME
        • Substitua BUCKET_NAME pelo nome real do contentor.
    • Opções de eliminação da origem: selecione a opção de eliminação de acordo com a sua preferência.
  9. Clicar em Seguinte.

  10. Reveja a nova configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.

Tabela de mapeamento da UDM

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

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