Recolha registos do Sophos AV

Compatível com:

Este documento explica como recolher registos do Sophos AV 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 UDM e realiza a categorização de eventos com base no campo de tipo, enriquecendo os dados com detalhes e ações específicos para diferentes tipos de eventos do Sophos AV.

Antes de começar

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

  • Uma instância do Google SecOps
  • Windows 2016 ou posterior, ou um anfitrião Linux com systemd
  • Uma máquina Windows ou Linux adicional capaz de executar continuamente o Python
  • Se estiver a ser executado através de um proxy, certifique-se de que as portas da firewall estão abertas de acordo com os requisitos do agente Bindplane
  • Acesso privilegiado à consola de administração do Sophos Central

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

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

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_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_AV'
        raw_log_field: body
        ingestion_labels:
    
    service:
      pipelines:
        logs/source0__chronicle_w_labels-0:
          receivers:
            - udplog
          exporters:
            - chronicle/chronicle_w_labels
    

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 Serviços 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 numa 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.
  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 do repositório do GitHub de integração do SIEM do Sophos Central.
  2. Clique no botão verde Código > Transferir ZIP.
  3. Extraia o ficheiro ZIP.

Configure a configuração do script

  1. Abra o ficheiro config.ini no diretório onde extraiu o arquivo ZIP.
  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 agente BindPlane.
    • Porta: introduza o número da porta do agente 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 AV 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, encontra-se em C:/Python/XX/python.exe).
    • No campo Adicionar argumentos, escreva o caminho para o guião (por exemplo, C:/Users/YourName/Downloads/Sophos-Central-SIEM-Integrationsiem.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. Clique em Guardar e saia do editor.

Tabela de mapeamento da UDM

Campo de registo Mapeamento do UDM Lógica
customer_id target.resource.id Mapeamento direto
data.customer_id target.resource.id Mapeamento direto
data.dhost principal.hostname Mapeamento direto
data.end timestamp Mapeamento direto
data.endpoint_id principal.resource.id Mapeamento direto
data.group security_result.category_details Mapeamento direto
data.id principal.resource.id Mapeamento direto
data.location principal.hostname Mapeamento direto
data.name metadata.description Mapeamento direto
data.rt timestamp Mapeamento direto
data.severity security_result.severity Mapeamento direto
data.source principal.user.user_display_name Mapeamento direto
data.source_info.ip principal.ip Mapeamento direto
data.suser principal.user.userid Mapeamento direto
data.threat security_result.rule_name Mapeamento direto quando data.group é "POLICY"
data.type metadata.product_event_type Mapeamento direto
data.user_id principal.user.userid Mapeamento direto
data.when timestamp Mapeamento direto
dhost principal.hostname Mapeamento direto
fim timestamp Mapeamento direto
endpoint_id principal.resource.id Mapeamento direto
grupo security_result.category_details Mapeamento direto
id principal.resource.id Mapeamento direto
localização principal.hostname Mapeamento direto
nome metadata.description Mapeamento direto
rt timestamp Mapeamento direto
gravidade security_result.severity Mapeamento direto
fonte principal.user.user_display_name Mapeamento direto
source_info.ip principal.ip Mapeamento direto
suser principal.user.userid Mapeamento direto
escrever metadata.product_event_type Mapeamento direto
user_id principal.user.userid Mapeamento direto
quando timestamp Mapeamento direto
- is_alert O campo is_alert está definido como verdadeiro para eventos com "gravidade" "média" ou "elevada", ou quando o campo "tipo" indica um evento digno de alerta, como "Event::Endpoint::UpdateRebootRequired".
- is_significant O campo is_significant está definido como verdadeiro para eventos com "gravidade" "média" ou "alta".
- metadata.description O campo de descrição é preenchido com o valor do campo "name" do registo não processado.
- metadata.event_timestamp O campo event_timestamp é preenchido com o valor do campo "end", "rt" ou "when" do registo não processado.
- metadata.event_type O campo event_type é derivado do campo "type" no registo não processado, mapeando tipos de eventos específicos do Sophos para tipos de eventos do UDM do Chronicle.
- metadata.log_type O campo log_type está definido como "SOPHOS_AV" para todos os eventos.
- metadata.product_event_type O campo product_event_type é preenchido com o valor do campo "type" do registo não processado.
- metadata.product_name O campo product_name está definido como "Sophos Anti-Virus" para todos os eventos.
- metadata.vendor_name O campo vendor_name está definido como "Sophos" para todos os eventos.
- network.direction O campo de direção está definido como "OUTBOUND" para todos os eventos "NETWORK_CONNECTION".
- network.ip_protocol O campo ip_protocol está definido como "TCP" para eventos "NETWORK_CONNECTION" em que o campo "target.url" está presente.
- principal.hostname O campo hostname é preenchido com o valor do campo "dhost" ou "location" do registo não processado.
- principal.ip O campo ip é preenchido com o valor do campo "source_info.ip" do registo não processado.
- principal.resource.id O campo id é preenchido com o valor do campo "id" ou "endpoint_id" do registo não processado.
- principal.user.user_display_name O campo user_display_name é preenchido com o valor do campo "suser" ou "source" do registo não processado.
- principal.user.userid O campo userid é preenchido com o valor do campo "suser", "user_id" ou "data.suser" do registo não processado.
- security_result.action O campo de ação é derivado do campo "data.name" no registo não processado, mapeando ações específicas do Sophos para ações do UDM do Chronicle.
- security_result.category_details O campo category_details é preenchido com o valor do campo "group" do registo não processado.
- security_result.rule_name O campo rule_name é extraído do campo "data.name" no registo não processado, procurando especificamente padrões como "Policy non-compliance: [rule_name]" ou "Rule names: [rule_name]".
- security_result.severity O campo de gravidade é preenchido com o valor do campo "gravidade" do registo não processado, convertendo-o no nível de gravidade do UDM do Chronicle correspondente.
- security_result.summary O campo de resumo é preenchido com o valor do campo "name" do registo não processado quando o tipo de evento é "GENERIC_EVENT" ou "STATUS_HEARTBEAT".
- target.application O campo da aplicação é preenchido com o valor do campo "data.name" do registo não processado quando o tipo de evento é "NETWORK_CONNECTION" e a descrição menciona o bloqueio de uma aplicação.
- target.asset_id O campo asset_id é preenchido com o valor do campo "data.endpoint_id" do registo não processado quando o tipo de evento é "NETWORK_CONNECTION" e a descrição menciona um ID do recurso.
- target.file.full_path O campo full_path é extraído do campo "data.name" no registo não processado, procurando especificamente padrões como "Source path: [full_path]".
- target.file.size O campo de tamanho é extraído do campo "data.name" no registo não processado, procurando especificamente padrões como "Tamanho do ficheiro: [tamanho]".
- target.hostname O campo do nome do anfitrião é preenchido com o valor do campo "data.dhost" do registo não processado quando o tipo de evento é "NETWORK_CONNECTION" e a descrição menciona um nome do anfitrião de destino.
- target.process.file.full_path O campo full_path é extraído do campo "data.name" no registo não processado, procurando especificamente padrões como "Controlled application [action]: [full_path]".
- target.resource.id O campo id é preenchido com o valor do campo "customer_id" do registo não processado.
- target.resource.name O campo de nome é preenchido com valores específicos com base no tipo de evento. Para "SETTING_CREATION" e "SETTING_MODIFICATION", está definido como "Registo do dispositivo" e "Proteção em tempo real", respetivamente. Para "SCAN_UNCATEGORIZED", é preenchido com o valor do campo "data.name" do registo não processado.
- target.resource.type O campo de tipo é preenchido com valores específicos com base no tipo de evento. Para "SETTING_CREATION" e "SETTING_MODIFICATION", está definido como "SETTING". Para "SCAN_UNCATEGORIZED", está definido como "Scan". Para "SCAN_NETWORK", está definido como "Dispositivo".
- target.url O campo URL é extraído do campo "data.name" no registo não processado, procurando especificamente padrões como "'[url]' bloqueado".
- target.user.userid O campo userid é preenchido com o valor do campo "data.user_id" do registo não processado quando o tipo de evento é "USER_CREATION".
- timestamp O campo de data/hora é preenchido com o valor do campo "end", "rt" ou "when" do registo não processado.

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