Recolha registos do Sophos Central

Compatível com:

Este documento explica como recolher registos do Sophos Central através do Bindplane. O analisador transforma os registos JSON num modelo de dados unificado (UDM). 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

  • Certifique-se de que tem uma instância do Google Security Operations.
  • Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com systemd.
  • Certifique-se de que tem um computador Windows ou Linux adicional capaz de executar o Python continuamente.
  • Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
  • Certifique-se de que tem acesso privilegiado à firewall Sophos XG.

Obtenha o ficheiro de autenticação de carregamento do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. Transfira o ficheiro de autenticação de carregamento. Guarde o ficheiro de forma segura no sistema onde o Bindplane vai ser instalado.

Obtenha o ID de cliente do Google SecOps

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane

Instalação do Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte 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 o seguinte comando:

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

Recursos de instalação adicionais

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. Aceda ao ficheiro de configuração:

    1. Localize o ficheiro config.yaml. Normalmente, encontra-se no diretório /etc/bindplane-agent/ no Linux ou no diretório de instalação no Windows.
    2. Abra o ficheiro com um editor de texto (por exemplo, nano, vi ou Bloco de notas).
  2. Edite o ficheiro 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 de cliente real.

  5. Atualize /path/to/ingestion-authentication-file.json para o caminho onde o ficheiro de autenticação foi guardado na secção Obtenha o ficheiro de autenticação de carregamento do Google SecOps.

Reinicie o agente do Bindplane para aplicar as alterações

  • 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, pode usar a consola Services ou introduzir o seguinte comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configure o acesso à API do Sophos Central

  1. Inicie sessão no Sophos Central Admin.
  2. Selecione Definições globais > Gestão de tokens da API.
  3. Clique em Adicionar token para criar um novo token.
  4. Introduza um nome de token e clique em Guardar. É apresentado o Resumo do token de API para o token fornecido.
  5. Na secção Resumo do token de API, clique em Copiar para copiar o URL e os cabeçalhos de acesso à API.

Instale o Python na máquina adicional

  1. Abra o navegador de Internet e aceda ao Website do Python.
  2. Clique em Transferir Python para o seu sistema operativo (Windows ou Mac).
  3. Instale o Python.

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

      1. O Python pode já estar instalado. Caso contrário, pode instalar a versão mais recente através do terminal.
      2. Abra o Terminal e escreva o seguinte comando:

        python --version
        

Transfira o script de integração do Sophos

  1. Aceda à página do GitHub para o repositório do GitHub de integração do SIEM do Sophos Central.
  2. Clique no botão Códigoverde> Transferir ZIP.
  3. Extraia o ficheiro ZIP.

Configure a configuração do script

  1. Encontre e abra o ficheiro config.ini com um editor de texto.
  2. Edite o ficheiro de configuração:
    • Token de API: introduza a chave da API copiada anteriormente do Sophos Central.
    • Detalhes do servidor Syslog: introduza os detalhes do seu servidor Syslog.
    • Anfitrião: introduza o endereço IP do Bindplane.
    • Porta: introduza o número da porta do Bindplane.
    • Protocolo: introduza UDP (também pode usar TCP ou TLS, consoante a sua configuração).
  3. Guarde o ficheiro.

Execute o script

  1. Aceda à pasta de scripts.

    • Em Windows:

      1. Prima a tecla Windows e escreva cmd.
      2. Clique em Linha de comandos.
      3. Aceda à pasta de scripts:

        cd C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration
        
    • No macOS:

      1. Aceda a Aplicações > Utilitários.
      2. Abra o Terminal.
      3. Aceda à pasta de scripts:

        cd /Users/YourName/Downloads/Sophos-Central-SIEM-Integration
        
  2. Execute o guião:

    • Escreva o seguinte comando para iniciar o script:

      python siem.py
      

Automatize o script para ser executado continuamente no Windows (através do Agendador de tarefas):

  1. Abra o Agendador de tarefas escrevendo Agendador de tarefas no menu Iniciar.
  2. Clique em Criar tarefa.
  3. No separador Geral:
    • Atribua um nome à tarefa; por exemplo, Sophos Central Log Export.
  4. No separador Acionadores:
    • Clique em Novo e defina a tarefa para ser executada Diariamente ou No arranque (consoante a sua preferência).
  5. No separador Ações:
    • Clique em Novo e selecione Iniciar um programa.
    • Procure o ficheiro executável python.exe (normalmente encontrado em C:\PythonXX\python.exe).
    • No campo Adicionar argumentos, escreva o caminho para o guião; por exemplo, C:\Users\YourName\Downloads\Sophos-Central-SIEM-Integration\siem.py.
  6. Clique em OK para guardar a tarefa.

Automatize o script para ser executado continuamente no Mac (através de tarefas cron):

  1. Abra o Terminal.
  2. Escreva crontab -e e prima Enter.
  3. Adicione uma nova linha no final do ficheiro:

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

Tabela de mapeamento da UDM

Campo de registo Mapeamento de UDM Lógica
customer_id target.resource.id Mapeado diretamente a partir do campo customer_id.
data.core_remedy_items.items.0.descriptor target.process.file.full_path Mapeado diretamente a partir do campo data.core_remedy_items.items.0.descriptor.
data.source_info.ip principal.ip
principal.asset.ip
Mapeado diretamente a partir do campo data.source_info.ip.
descrição metadata.description Mapeado diretamente a partir do campo description quando metadata.event_type é GENERIC_EVENT.
dhost principal.hostname
principal.asset.hostname
Mapeado diretamente a partir do campo dhost.
duid security_result.detection_fields.value Mapeado diretamente a partir do campo duid.
fim 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 a partir do campo endpoint_type.
grupo security_result.category_details Mapeado diretamente a partir do campo group.
nome security_result.description
security_result.summary
Mapeado diretamente a partir do campo name.
metadata.event_type Determinado com base no campo type e na lógica adicional 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 e STATUS_UPDATE.
metadata.log_type Definido como SOPHOS_CENTRAL.
metadata.product_event_type Mapeado diretamente a partir do campo type.
metadata.product_name Definido como Sophos Central.
metadata.vendor_name Definido como Sophos.
network.direction Definido como OUTBOUND para valores type específicos que indicam ligações de rede de saída.
network.ip_protocol Definido como TCP para valores type específicos que indicam ligações de rede TCP.
security_result.action Determinado com base no campo action extraído do campo name através de 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ído do campo name através de padrões grok para valores type específicos.
security_result.severity Mapeado a partir do campo severity com o seguinte mapeamento: low -> LOW, medium -> MEDIUM, high/critical -> HIGH.
target.application Extraído do campo name através de padrões grok para valores type específicos.
target.asset.hostname Mapeado a partir do campo dhost para valores específicos de type.
target.file.full_path Extraído do campo name através de padrões grok para valores type específicos ou mapeado diretamente a partir de data.core_remedy_items.items.0.descriptor ou core_remedy_items.items.0.descriptor.
target.file.size Extraído do campo name através de padrões grok e convertido em uinteger para valores type específicos.
target.hostname Mapeado a partir do campo dhost para valores específicos de type.
target.resource.name Definido para valores específicos com base no campo type ou extraído do campo name através de padrões grok.
target.resource.type Definido para valores específicos com base no campo type.
target.user.userid Mapeado a partir do campo suser após a extração do nome de utilizador através de padrões grok.
target.url Extraído do campo name através de padrões grok para valores type específicos.
source_info.ip principal.ip
principal.asset.ip
Mapeado diretamente a partir do campo source_info.ip.
suser principal.user.userid
target.user.userid
Extraído do campo suser através de padrões grok para remover prefixos de nomes de anfitriões.
escrever metadata.product_event_type Mapeado diretamente a partir do campo type.

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