Coletar registros do Elastic Windows Event Log Beats

Compatível com:

Este documento explica como ingerir registros do Elastic Windows Event Log Beats no Google Security Operations usando o agente Bindplane.

O Winlogbeat é o agente de envio de registros de eventos específico do Windows da Elastic, que coleta registros de eventos do Windows e os encaminha para vários destinos. Ele é executado como um serviço do Windows em sistemas Windows e pode coletar eventos de canais de log de eventos do Windows, como aplicativo, segurança, sistema e outros.

Antes de começar

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

  • Uma instância do Google SecOps
  • Windows Server 2016 ou mais recente ou um host Linux com systemd para executar o agente do Bindplane
  • Conectividade de rede entre o agente do Bindplane e o servidor do Logstash
  • Conectividade de rede entre o Logstash e o agente do Bindplane
  • Se você estiver executando um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente do Bindplane.
  • Sistemas Windows em que o Winlogbeat será instalado para coletar registros de eventos
  • Acesso de administrador aos sistemas Windows para instalação do Winlogbeat
  • Servidor Logstash (versão 7.x ou 8.x) para processamento intermediário

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 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

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
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sc query observiq-otel-collector
    

    O status do serviço deve ser EM EXECUÇÃO.

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
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sudo systemctl status observiq-otel-collector
    

    O status do serviço precisa ser active (running).

Outros recursos de instalação

Para mais opções de instalação e solução de problemas, consulte o guia de instalação do agente do Bindplane.

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

Localizar o arquivo de configuração

  • Linux:

    sudo nano /etc/bindplane-agent/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Editar o arquivo de configuração

  1. Substitua todo o conteúdo de config.yaml pela seguinte configuração:

    receivers:
        tcplog:
            listen_address: "0.0.0.0:1514"
    
    exporters:
        chronicle/winlogbeat:
            compression: gzip
            creds_file_path: '<CREDS_FILE_PATH>'
            customer_id: '<CUSTOMER_ID>'
            endpoint: <REGION_ENDPOINT>
            log_type: ELASTIC_WINLOGBEAT
            raw_log_field: body
            ingestion_labels:
                env: production
                source: winlogbeat
    
    service:
        pipelines:
            logs/winlogbeat_to_chronicle:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/winlogbeat
    
  2. Substitua os seguintes marcadores de posição:

    • Configuração do receptor:

      • listen_address: defina como 0.0.0.0:1514 para detectar todas as interfaces na porta 1514 (TCP). É possível mudar o número da porta, se necessário, mas verifique se ele corresponde à configuração de saída do syslog do Logstash.
    • Configuração do exportador:

      • <CREDS_FILE_PATH>: caminho completo para o arquivo de autenticação de ingestão:

        • Linux: /etc/bindplane-agent/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • <CUSTOMER_ID>: ID do cliente da etapa anterior

      • <REGION_ENDPOINT>: URL do endpoint regional:

        • EUA: malachiteingestion-pa.googleapis.com
        • Europa: europe-malachiteingestion-pa.googleapis.com
        • Ásia: asia-southeast1-malachiteingestion-pa.googleapis.com
        • Consulte a lista completa em Endpoints regionais.

Exemplo de configuração:

  • receivers:
      tcplog:
        listen_address: "0.0.0.0:1514"
    
    exporters:
      chronicle/winlogbeat:
        compression: gzip
        creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
        customer_id: 'a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6'
        endpoint: malachiteingestion-pa.googleapis.com
        log_type: ELASTIC_WINLOGBEAT
        raw_log_field: body
        ingestion_labels:
          env: production
          source: winlogbeat
    
    service:
      pipelines:
        logs/winlogbeat_to_chronicle:
          receivers:
            - tcplog
          exporters:
            - chronicle/winlogbeat
    

Salve o arquivo de configuração.

Depois de editar, salve o arquivo:

  • Linux: pressione Ctrl+O, Enter e Ctrl+X.
  • Windows: clique em Arquivo > Salvar.

Reinicie o agente do Bindplane para aplicar as mudanças

  • Para reiniciar o agente do Bindplane no Linux:

    1. Execute este comando:

      sudo systemctl restart observiq-otel-collector
      
    2. Verifique se o serviço está em execução:

      sudo systemctl status observiq-otel-collector
      
    3. Verifique se há erros nos registros:

      sudo journalctl -u observiq-otel-collector -f
      
  • Para reiniciar o agente do Bindplane em Windows:

    1. Escolha uma das seguintes opções:

      • Prompt de comando ou PowerShell como administrador:

        net stop observiq-otel-collector && net start observiq-otel-collector
        
      • Console de serviços:

        1. Pressione Win+R, digite services.msc e pressione Enter.
        2. Localize o Coletor do OpenTelemetry da observIQ.
        3. Clique com o botão direito do mouse e selecione Reiniciar.
    2. Verifique se o serviço está em execução:

      sc query observiq-otel-collector
      
    3. Verifique se há erros nos registros:

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      

Instalar e configurar o Logstash

O Logstash é necessário como intermediário para receber eventos do Winlogbeat e encaminhá-los ao agente do Bindplane via syslog. O Winlogbeat não tem capacidade nativa de saída do syslog.

Instalar o Logstash

  1. Faça o download do Logstash na página de downloads da Elastic.
  2. Instale o Logstash em um servidor Windows ou Linux:
  • Linux (Debian/Ubuntu):

    wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
    sudo apt-get install apt-transport-https
    echo "deb https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-8.x.list
    sudo apt-get update && sudo apt-get install logstash
    
  • Linux (RHEL/CentOS):

    sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    sudo tee /etc/yum.repos.d/logstash.repo <<EOF
    [logstash-8.x]
    name=Elastic repository for 8.x packages
    baseurl=https://artifacts.elastic.co/packages/8.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md
    EOF
    sudo yum install logstash
    
  • Windows:

    1. Faça o download do arquivo ZIP na página de downloads da Elastic.
    2. Extraia para C:\logstash.

Configurar o pipeline do Logstash

  1. Crie um arquivo de configuração de pipeline:

    • Linux:

      sudo nano /etc/logstash/conf.d/winlogbeat-to-syslog.conf
      
    • Windows:

      notepad "C:\logstash\config\winlogbeat-to-syslog.conf"
      
  2. Adicione a seguinte configuração:

    input {
        beats {
            port => 5044
        }
    }
    
    output {
        syslog {
            host => "<BINDPLANE_AGENT_IP>"
            port => 1514
            protocol => "tcp"
            rfc => "rfc5424"
            appname => "winlogbeat"
            facility => "user-level"
            severity => "informational"
        }
    }
    
  3. Substitua <BINDPLANE_AGENT_IP> pelo endereço IP do servidor que executa o agente do Bindplane.

Exemplo de configuração do Logstash

  • input {
        beats {
            port => 5044
        }
    }
    
    output {
        syslog {
            host => "192.168.1.100"
            port => 1514
            protocol => "tcp"
            rfc => "rfc5424"
            appname => "winlogbeat"
            facility => "user-level"
            severity => "informational"
        }
    }
    

Iniciar o Logtash

  • Linux:

    1. Inicie o Logstash:

      sudo systemctl start logstash
      sudo systemctl enable logstash
      
    2. Verifique se o Logstash está em execução:

      sudo systemctl status logstash
      
    3. Verifique os registros do Logstash:

      sudo tail -f /var/log/logstash/logstash-plain.log
      
  • Windows:

    cd C:\logstash\bin
    logstash.bat -f C:\logstash\config\winlogbeat-to-syslog.conf
    

    Para uso em produção, instale o Logstash como um serviço do Windows usando o NSSM ou ferramentas semelhantes.

Instalar o Winlogbeat em sistemas Windows

Baixar o Winlogbeat

  1. Faça o download do Winlogbeat na página de downloads da Elastic.
  2. Escolha o instalador ZIP ou MSI para Windows.

Instalar o Winlogbeat

  • Usando o instalador MSI:

    1. Execute o instalador MSI.
    2. Siga o assistente de instalação.
    3. Instale no local padrão: C:\Program Files\Winlogbeat.
  • Usando um arquivo ZIP:

    1. Extraia o arquivo ZIP para C:\Program Files\Winlogbeat.
    2. Abra o PowerShell como administrador.
    3. Navegue até o diretório do Winlogbeat:

      cd 'C:\Program Files\Winlogbeat'
      
    4. Execute o script de instalação:

      .\install-service-winlogbeat.ps1
      

Configurar o Winlogbeat para enviar registros ao Logstash

  1. Abra o arquivo de configuração do Winlogbeat:

    notepad "C:\Program Files\Winlogbeat\winlogbeat.yml"
    
  2. Configure os registros de eventos a serem coletados. Localize a seção winlogbeat.event_logs e configure da seguinte maneira:

    winlogbeat.event_logs:
      - name: Application
        ignore_older: 72h
      - name: System
      - name: Security
      - name: Microsoft-Windows-Sysmon/Operational
        ignore_older: 72h
      - name: Windows PowerShell
        event_id: 400, 403, 600, 800
      - name: Microsoft-Windows-PowerShell/Operational
        event_id: 4103, 4104, 4105, 4106
      - name: ForwardedEvents
        tags: [forwarded]
    
  3. Comente a seção de saída do Elasticsearch adicionando # no início de cada linha:

    #output.elasticsearch:
    #  hosts: ["localhost:9200"]
    
  4. Remova o comentário e configure a seção de saída do Logstash:

    output.logstash:
      hosts: ["<LOGSTASH_SERVER_IP>:5044"]
    
  5. Substitua <LOGSTASH_SERVER_IP> pelo endereço IP do seu servidor do Logstash.

Exemplo de configuração do Winlogbeat

  • winlogbeat.event_logs:
      - name: Application
        ignore_older: 72h
      - name: System
      - name: Security
      - name: Microsoft-Windows-Sysmon/Operational
        ignore_older: 72h
    
    output.logstash:
      hosts: ["192.168.1.50:5044"]
    

Salve o arquivo de configuração.

Salve e feche o arquivo.

Iniciar o serviço Winlogbeat

  1. Abra o PowerShell como administrador.
  2. Inicie o serviço Winlogbeat:

    Start-Service winlogbeat
    
  3. Verifique se o serviço está em execução:

    Get-Service winlogbeat
    

    O status deve aparecer como Em execução.

  4. Verifique se há erros nos registros do Winlogbeat:

    Get-Content "C:\ProgramData\winlogbeat\Logs\winlogbeat" -Tail 50
    

Verificar o fluxo de registros

Verificar a conexão do Winlogbeat com o Logstash

  1. No servidor do Logstash, verifique os registros dele:

    • Linux:

      sudo tail -f /var/log/logstash/logstash-plain.log
      
    • Windows:

      type C:\logstash\logs\logstash-plain.log
      
  2. Procure mensagens que indiquem conexões do Beats:

    [INFO ][logstash.inputs.beats] Beats inputs: Starting input listener {:address=>"0.0.0.0:5044"}
    

Verificar a conexão do Logstash com o agente do Bindplane

  1. No servidor do agente do Bindplane, verifique os registros do agente:

    • Linux:

      sudo journalctl -u observiq-otel-collector -f
      
    • Windows:

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      
  2. Procure mensagens indicando a ingestão de registros.

Verificar registros no Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Pesquisar.
  3. Execute uma consulta de pesquisa para verificar se os registros do Winlogbeat estão sendo ingeridos:

    metadata.log_type = "ELASTIC_WINLOGBEAT"
    
  4. Verifique se os registros de eventos do Windows aparecem nos resultados da pesquisa.

Solução de problemas

O Winlogbeat não se conecta ao Logstash

  • Verifique a conectividade de rede entre o Winlogbeat e o Logstash:

    Test-NetConnection -ComputerName <LOGSTASH_IP> -Port 5044
    
  • Verifique se as regras do Windows Firewall permitem conexões de saída na porta 5044.

  • Verifique se o Logstash está detectando a atividade na porta 5044:

    • Linux:

      sudo netstat -tulpn | grep 5044
      
    • Windows:

      netstat -an | findstr 5044
      

O Logstash não encaminha para o agente do Bindplane

  • Verifique a conectividade de rede entre o Logstash e o agente do Bindplane:

    • Linux:

      telnet <BINDPLANE_IP> 1514
      
    • Windows:

      Test-NetConnection -ComputerName <BINDPLANE_IP> -Port 1514
      
  • Verifique se as regras de firewall permitem conexões TCP na porta 1514.

  • Verifique se o agente do Bindplane está detectando na porta 1514:

    • Linux:

      sudo netstat -tulpn | grep 1514
      
    • Windows:

      netstat -an | findstr 1514
      

Os registros não aparecem no Google SecOps

  • Verifique se o ID do cliente e o arquivo de autenticação de ingestão estão corretos.
  • Verifique os registros do agente Bindplane para identificar erros de autenticação.
  • Verifique se o endpoint regional corresponde à região da sua instância do Google SecOps.
  • Verifique se o log_type está definido como ELASTIC_WINLOGBEAT exatamente como mostrado.

Tabela de mapeamento do UDM

As informações de mapeamento de campos não estão disponíveis para este analisador.

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