Coletar registros do Sophos Central

Compatível com:

Este documento explica como coletar registros do Sophos Central usando o Bindplane. O analisador transforma os registros JSON em um modelo de dados unificado (UDM). Ele extrai campos de estruturas JSON aninhadas, as mapeia para campos do 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.
  • Verifique se você está usando 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 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. Faça o download do arquivo de autenticação de transferência. Salve o arquivo com segurança no sistema em que o BindPlane será instalado.

Receber o ID de 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 raiz 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 processar o Syslog e enviar ao Google SecOps

  1. Acesse o arquivo de configuração:

    1. Localize o arquivo config.yaml. Normalmente, ele está 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 Notepad).
  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 real do cliente.

  5. Atualize /path/to/ingestion-authentication-file.json para o caminho em que o arquivo de autenticação foi salvo na seção Receber o 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 Services ou digite o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurar o acesso à API 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 de token e clique em Salvar. O resumo do token da API para o token fornecido é exibido.
  5. Na seção Resumo do token de API, clique em Copiar para copiar o URL de acesso à API e os cabeçalhos.

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 Add Python to PATH.
      3. Clique em Instalar agora.
    • No Mac:

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

        python --version
        

Fazer o download do script de integração do Sophos

  1. Acesse a página do GitHub para o repositório do GitHub da 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 servidor syslog.
    • Host: insira o endereço IP do Bindplane.
    • Port: insira o número da porta do Bindplane.
    • Protocolo: insira UDP. Você também pode usar TCP ou TLS, dependendo da sua configuração.
  3. Salve o arquivo.

Executar o script

  1. Acesse a pasta do script.

    • 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 que ele seja executado continuamente no Windows (usando o Agendador de tarefas):

  1. Para abrir o Agendador de tarefas, digite Agendador de tarefas no menu "Iniciar".
  2. Clique em Criar tarefa.
  3. Na guia Geral:
    • Nomeie sua tarefa, por exemplo, Sophos Central Log Export.
  4. Na guia Gatilhos:
    • Clique em Nova 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 do 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 que ele seja executado continuamente no Mac (usando o Cron Jobs):

  1. Abra o Terminal.
  2. Digite crontab -e e pressione Enter.
  3. Adicione uma nova linha no 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. Se as flags is_alert ou is_significant estiverem definidas, elas serão mapeadas para security_result.summary.
is_alert Defina como true para valores específicos de type que indicam um alerta. Caso contrário, o padrão será false.
is_significant Definido como true para valores específicos de type que indicam um evento significativo. Caso contrário, o padrão é false.
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 específicos de type que indicam conexões de rede de saída.
network.ip_protocol Defina como TCP para valores específicos de type 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 Definido como duid quando o campo duid está presente.
security_result.rule_name Extraídos 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 -> BAIXO, médio -> MÉDIO, alto/crítico -> ALTO.
target.application Extraídos 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ídos do campo name usando padrões grok para valores específicos de type ou mapeados diretamente de data.core_remedy_items.items.0.descriptor ou core_remedy_items.items.0.descriptor.
target.file.size Extraídos do campo name usando padrões grok e convertidos em uinteger para valores específicos de type.
target.hostname Mapeado do campo dhost para valores específicos de type.
target.resource.name Define valores específicos com base no campo type ou extraídos do campo name usando padrões grok.
target.resource.type Defina valores específicos com base no campo type.
target.user.userid Mapeado do campo suser depois de extrair o nome de usuário usando padrões grok.
target.url Extraídos 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ídos do campo suser usando padrões grok para remover prefixos de host.
tipo metadata.product_event_type Mapeado diretamente do campo type.

Alterações

2025-01-30

Melhoria:

  • Foi adicionado suporte para analisar registros JSON não analisados.

2025-01-08

Melhoria:

  • url, action e scan_name foram adicionados a statedata para analisar registros não analisados.
  • user_id foi mapeado para principal.user.userid.

2024-09-05

Melhoria:

  • Foi adicionado suporte para analisar registros JSON não analisados.
  • location foi mapeado para principal.cloud.availability_zone.

2024-05-17

Melhoria:

  • Mapeamento de data.core_remedy_items.items.0.descriptor e core_remedy_items.items.0.descriptor para target.process.file.full_path.

2024-05-14

Correção de bugs:

  • O mapeamento de target.user.userid foi alterado de duid para suser.
  • duid foi mapeado para security_result.detection_fields.

2022-12-27

  • Parser recém-criado.

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