Coletar registros do Sophos Intercept EDR

Compatível com:

Este documento explica como coletar registros do Sophos Intercept EDR usando o Bindplane. O analisador extrai campos dos registros JSON do Sophos EDR, transformando-os no modelo de dados unificado (UDM). Ele analisa o campo message, mapeia os campos da Sophos para os campos da UDM (por exemplo, suser para principal.user.userid), realiza fusões condicionais com base na presença do campo e categoriza eventos com base no campo type, definindo os tipos de eventos e as ações de resultado de segurança adequados da UDM.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma instância do Google SecOps
  • Windows 2016 ou mais recente ou um host Linux com systemd
  • Outra máquina Windows ou Linux capaz de executar Python continuamente
  • Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente Bindplane.
  • Acesso privilegiado ao console do Sophos Central Admin

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. Baixe o arquivo de autenticação de ingestão. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.

Receber o ID do cliente do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. Copie e salve o ID do cliente na seção Detalhes da organização.

Instalar o agente do Bindplane

Instale o agente do Bindplane no seu sistema operacional Windows ou Linux de acordo com as instruções a seguir.

Instalação do Windows

  1. Abra o Prompt de Comando ou o PowerShell como administrador.
  2. Execute este comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalação do Linux

  1. Abra um terminal com privilégios de root ou sudo.
  2. Execute este comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Outros recursos de instalação

Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:

    1. Localize o arquivo config.yaml. Normalmente, ele fica no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    2. Abra o arquivo usando um editor de texto (por exemplo, nano, vi ou Bloco de Notas).
  2. Edite o arquivo config.yaml da seguinte forma:

    receivers:
      udplog:
        # Replace the port and IP address as required
        listen_address: "0.0.0.0:514"
    
    exporters:
      chronicle/chronicle_w_labels:
        compression: gzip
        # Adjust the path to the credentials file you downloaded in Step 1
        creds_file_path: '/path/to/ingestion-authentication-file.json'
        # Replace with your actual customer ID from Step 2
        customer_id: <customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        # Add optional ingestion labels for better organization
        log_type: 'SOPHOS_EDR'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    
    • Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
    • Substitua <customer_id> pelo ID do cliente real.
    • Atualize /path/to/ingestion-authentication-file.json para o caminho em que o arquivo de autenticação foi salvo na seção Receber arquivo de autenticação de ingestão do Google SecOps.

Reinicie o agente do Bindplane para aplicar as mudanças

  • Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:

    sudo systemctl restart bindplane-agent
    
  • Para reiniciar o agente do Bindplane no Windows, use o console Serviços ou insira o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurar o acesso à API do Sophos Central

  1. Faça login no Sophos Central Admin.
  2. Selecione Configurações globais > Gerenciamento de tokens de API.
  3. Clique em Adicionar token para criar um novo.
  4. Insira um nome para o token e clique em Salvar. O Resumo do token de API do token fornecido vai aparecer.
  5. Na seção Resumo do token de API, clique em Copiar para copiar o URL e os cabeçalhos de acesso à API.

Instalar o Python em outra máquina

  1. Abra o navegador da Web e acesse o site do Python.
  2. Clique em Fazer o download do Python para seu sistema operacional.
  3. Instale o Python:

    • No Windows:
      1. Execute o instalador.
      2. Marque a caixa Adicionar Python ao PATH.
      3. Clique em Instalar agora.
    • No Mac:

      1. O Python já pode estar instalado. Caso contrário, instale a versão mais recente usando o terminal.
      2. Abra o Terminal e digite o seguinte comando:

        python --version
        

Baixar o script de integração do Sophos

  1. Acesse a página do GitHub para o repositório do GitHub de integração do SIEM do Sophos Central.
  2. Clique no botão verde Code > Download ZIP.
  3. Extraia o arquivo ZIP.

Configurar o script

  1. Abra o arquivo config.ini no diretório em que você extraiu o arquivo ZIP.
  2. Edite o arquivo de configuração:
    • Token da API: insira a chave de API copiada anteriormente do Sophos Central.
    • Detalhes do servidor Syslog: insira os detalhes do seu servidor Syslog.
    • Host: insira o endereço IP do agente do BindPlane.
    • Porta: insira o número da porta do agente do BindPlane.
    • Protocolo: insira UDP. Também é possível usar TCP ou TLS, dependendo da sua configuração.
  3. Salve o arquivo.

Executar o script

  1. Acesse a pasta de scripts.

    • No Windows:

      1. Pressione a tecla Windows e digite cmd.
      2. Clique em Prompt de comando.
      3. Acesse a pasta do script:
      cd C:/Users/YourName/Downloads/Sophos-Central-SIEM-Integration
      
    • No macOS:

      1. Acesse Aplicativos > Utilitários.
      2. Abra o Terminal.
      3. Acesse a pasta do script:
      cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
      
  2. Execute o script:

    • Digite o seguinte comando para iniciar o script:

      python siem.py
      

Automatize o script para ser executado continuamente no Windows (usando o Agendador de Tarefas):

  1. Abra o Agendador de tarefas digitando Agendador de tarefas no menu Iniciar.
  2. Clique em Criar tarefa.
  3. Na guia Geral:
    • Nomeie a tarefa (por exemplo, Sophos AV Log Export).
  4. Na guia Gatilhos:
    • Clique em Novo e defina a tarefa para ser executada Diariamente ou Na inicialização (dependendo da sua preferência).
  5. Na guia Ações:
    • Clique em Novo e selecione Iniciar um programa.
    • Procure o executável python.exe (geralmente encontrado em C:/Python/XX/python.exe).
    • No campo Adicionar argumentos, digite o caminho para o script (por exemplo, C:/Users/YourName/Downloads/Sophos-Central-SIEM-Integrationsiem.py).
  6. Clique em OK para salvar a tarefa.

Automatize o script para ser executado continuamente no Mac (usando Cron Jobs):

  1. Abra o Terminal.
  2. Digite crontab -e e pressione Enter.
  3. Adicione uma nova linha ao final do arquivo:

    * * * * * /usr/bin/python /Users/YourName/Downloads/Sophos-Central-SIEM-Integration/siem.py
    
  4. Clique em Salvar e saia do editor.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
appSha256 principal.process.file.sha256 O valor de appSha256 do registro bruto é atribuído a esse campo da UDM.
core_remedy_items.items[].descriptor principal.process.file.names O valor de cada descriptor na matriz items em core_remedy_items do log bruto é adicionado como uma entrada names separada na UDM.
customer_id target.resource.id O valor de customer_id do registro bruto é atribuído a esse campo da UDM.
detection_identity_name security_result.threat_feed_name O valor de detection_identity_name do registro bruto é atribuído a esse campo da UDM.
dhost target.hostname O valor de dhost do registro bruto é atribuído a esse campo da UDM.
endpoint_id target.resource.attribute.labels[].value O valor de endpoint_id do registro bruto é atribuído como o valor de um rótulo em target.resource.attribute.labels. A chave desse rótulo é "endpoint_id".
endpoint_type target.resource.attribute.labels[].value O valor de endpoint_type do registro bruto é atribuído como o valor de um rótulo em target.resource.attribute.labels. A chave desse rótulo é "endpoint_type".
filePath target.file.full_path O valor de filePath do registro bruto é atribuído a esse campo da UDM.
group principal.group.group_display_name O valor de group do registro bruto é atribuído a esse campo da UDM.
id target.process.pid O valor de id do registro bruto é atribuído a esse campo da UDM.
name metadata.description O valor de name do registro bruto é atribuído a esse campo da UDM. O valor é derivado do campo type no registro bruto usando lógica condicional no analisador. O valor padrão é NETWORK_UNCATEGORIZED. Valores específicos de type são mapeados para diferentes tipos de eventos da UDM (por exemplo, "UpdateSuccess" é mapeado para STATUS_UPDATE, "ServiceNotRunning" é mapeado para SERVICE_STOP etc. Fixado no código como "SOPHOS_EDR". O valor de type do registro bruto é atribuído a esse campo da UDM. Fixado no código como "Sophos EDR". Fixado no código como "SOPHOS".
rt metadata.event_timestamp, timestamp O valor de rt do registro bruto, que representa o horário do evento, é analisado e usado para preencher os campos metadata.event_timestamp e timestamp de nível superior na UDM.
security_result.severity security_result.severity O valor de severity do registro bruto é convertido para maiúsculas e atribuído a esse campo da UDM.
source_info.ip principal.ip O valor de ip em source_info do registro bruto é atribuído a esse campo da UDM.
suser principal.user.userid O valor de suser do registro bruto é atribuído a esse campo da UDM.
threat security_result.threat_name O valor de threat do registro bruto é atribuído a esse campo da UDM.
security_result.action O valor é derivado do campo type no registro bruto. Se type contiver "Blocked" ou "Warn" (sem diferenciar maiúsculas e minúsculas), o valor será definido como "BLOCK". Se type contiver "Allow" (sem distinção entre maiúsculas e minúsculas), o valor será definido como "ALLOW". O valor é definido como "TASK" se o campo type no registro bruto for "ScheduledDataUploadResumed" ou "ScheduledDailyLimitExceeded".

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