Coletar registros do Sophos Central

Compatível com:

Este documento explica como coletar registros do Sophos Central usando o Bindplane. O analisador transforma registros JSON em um modelo de dados unificado (UDM). Ele extrai campos de estruturas JSON aninhadas, mapeia-os para campos da UDM e realiza a categorização de eventos com base no campo type, enriquecendo os dados com detalhes e ações específicos para diferentes tipos de eventos do Sophos Central.

Antes de começar

  • Verifique se você tem uma instância do Google Security Operations.
  • Use o Windows 2016 ou uma versão mais recente ou um host Linux com systemd.
  • Verifique se você tem outra máquina Windows ou Linux capaz de executar o Python continuamente.
  • Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
  • Verifique se você tem acesso privilegiado ao Sophos XG Firewall.

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

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: '/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
            ingestion_labels:
                log_type: SYSLOG
                namespace: sophos_central
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
  3. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID do cliente real.

  5. 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 token.
  4. Insira um nome para o token e clique em Salvar. O Resumo do token da API do token fornecido é exibido.
  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 na máquina extra

  1. Abra o navegador da Web e acesse o site do Python.
  2. Clique em Fazer o download do Python para seu sistema operacional (Windows ou Mac).
  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. Encontre e abra o arquivo config.ini com um editor de texto.
  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 Bindplane.
    • Porta: insira o número da porta 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 Central 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:\PythonXX\python.exe).
    • No campo Adicionar argumentos, digite o caminho para o script. Por exemplo, C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration\siem.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. Salve e saia do editor.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
customer_id target.resource.id Mapeado diretamente do campo customer_id.
data.core_remedy_items.items.0.descriptor target.process.file.full_path Mapeado diretamente do campo data.core_remedy_items.items.0.descriptor.
data.source_info.ip principal.ip
principal.asset.ip
Mapeado diretamente do campo data.source_info.ip.
description metadata.description Mapeado diretamente do campo description quando metadata.event_type é GENERIC_EVENT.
dhost principal.hostname
principal.asset.hostname
Mapeado diretamente do campo dhost.
duid security_result.detection_fields.value Mapeado diretamente do campo duid.
end metadata.event_timestamp Analisado no formato RFC 3339 e mapeado para o campo event_timestamp.
endpoint_id target.asset_id Mapeado como Device endpoint Id: {endpoint_id}.
endpoint_type security_result.about.labels.value Mapeado diretamente do campo endpoint_type.
grupo security_result.category_details Mapeado diretamente do campo group.
nome security_result.description
security_result.summary
Mapeado diretamente do campo name.
metadata.event_type Determinado com base no campo type e em outra lógica no analisador. Os valores possíveis incluem: FILE_OPEN, SCAN_HOST, SETTING_MODIFICATION, STATUS_HEARTBEAT, SETTING_CREATION, NETWORK_CONNECTION, SCAN_PROCESS, SCAN_UNCATEGORIZED, USER_CREATION, USER_UNCATEGORIZED, STATUS_UPDATE.
metadata.log_type Defina como SOPHOS_CENTRAL.
metadata.product_event_type Mapeado diretamente do campo type.
metadata.product_name Defina como Sophos Central.
metadata.vendor_name Defina como Sophos.
network.direction Defina como OUTBOUND para valores type específicos que indicam conexões de rede de saída.
network.ip_protocol Definido como TCP para valores type específicos que indicam conexões de rede TCP.
security_result.action Determinado com base no campo action extraído do campo name usando padrões grok. Os valores possíveis incluem: ALLOW, BLOCK, ALLOW_WITH_MODIFICATION, UNKNOWN_ACTION.
security_result.detection_fields.key Defina como duid quando o campo duid estiver presente.
security_result.rule_name Extraído do campo name usando padrões grok para valores específicos de type.
security_result.severity Mapeado do campo severity com o seguinte mapeamento: baixo -> LOW, médio -> MEDIUM, alto/crítico -> HIGH.
target.application Extraído do campo name usando padrões grok para valores específicos de type.
target.asset.hostname Mapeado do campo dhost para valores específicos de type.
target.file.full_path Extraído do campo name usando padrões grok para valores type específicos ou mapeado diretamente de data.core_remedy_items.items.0.descriptor ou core_remedy_items.items.0.descriptor.
target.file.size Extraído do campo name usando padrões grok e convertido para uinteger em valores específicos de type.
target.hostname Mapeado do campo dhost para valores específicos de type.
target.resource.name Definido como valores específicos com base no campo type ou extraído do campo name usando padrões grok.
target.resource.type Definido como valores específicos com base no campo type.
target.user.userid Mapeado do campo suser após extrair o nome de usuário usando padrões grok.
target.url Extraído do campo name usando padrões grok para valores específicos de type.
source_info.ip principal.ip
principal.asset.ip
Mapeado diretamente do campo source_info.ip.
suser principal.user.userid
target.user.userid
Extraído do campo suser usando padrões grok para remover prefixos de nome do host.
tipo metadata.product_event_type Mapeado diretamente do campo type.

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