Coletar registros do Elastic Windows Event Log Beats
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
systemdpara 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
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
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
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
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
- Abra o Prompt de comando ou o PowerShell como administrador.
Execute este comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAguarde a conclusão da instalação.
Execute o seguinte comando para confirmar a instalação:
sc query observiq-otel-collectorO status do serviço deve ser EM EXECUÇÃO.
Instalação do Linux
- Abra um terminal com privilégios de root ou sudo.
Execute este comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAguarde a conclusão da instalação.
Execute o seguinte comando para confirmar a instalação:
sudo systemctl status observiq-otel-collectorO 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.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Editar o arquivo de configuração
Substitua todo o conteúdo de
config.yamlpela 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/winlogbeatSubstitua os seguintes marcadores de posição:
Configuração do receptor:
listen_address: defina como0.0.0.0:1514para 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
- Linux:
<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.
- EUA:
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,EntereCtrl+X. - Windows: clique em Arquivo > Salvar.
Reinicie o agente do Bindplane para aplicar as mudanças
Para reiniciar o agente do Bindplane no Linux:
Execute este comando:
sudo systemctl restart observiq-otel-collectorVerifique se o serviço está em execução:
sudo systemctl status observiq-otel-collectorVerifique se há erros nos registros:
sudo journalctl -u observiq-otel-collector -f
Para reiniciar o agente do Bindplane em Windows:
Escolha uma das seguintes opções:
Prompt de comando ou PowerShell como administrador:
net stop observiq-otel-collector && net start observiq-otel-collectorConsole de serviços:
- Pressione
Win+R, digiteservices.msce pressione Enter. - Localize o Coletor do OpenTelemetry da observIQ.
- Clique com o botão direito do mouse e selecione Reiniciar.
- Pressione
Verifique se o serviço está em execução:
sc query observiq-otel-collectorVerifique 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
- Faça o download do Logstash na página de downloads da Elastic.
- 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 logstashLinux (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 logstashWindows:
- Faça o download do arquivo ZIP na página de downloads da Elastic.
- Extraia para
C:\logstash.
Configurar o pipeline do Logstash
Crie um arquivo de configuração de pipeline:
Linux:
sudo nano /etc/logstash/conf.d/winlogbeat-to-syslog.confWindows:
notepad "C:\logstash\config\winlogbeat-to-syslog.conf"
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" } }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:
Inicie o Logstash:
sudo systemctl start logstash sudo systemctl enable logstashVerifique se o Logstash está em execução:
sudo systemctl status logstashVerifique 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.confPara 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
- Faça o download do Winlogbeat na página de downloads da Elastic.
- Escolha o instalador ZIP ou MSI para Windows.
Instalar o Winlogbeat
Usando o instalador MSI:
- Execute o instalador MSI.
- Siga o assistente de instalação.
- Instale no local padrão:
C:\Program Files\Winlogbeat.
Usando um arquivo ZIP:
- Extraia o arquivo ZIP para
C:\Program Files\Winlogbeat. - Abra o PowerShell como administrador.
Navegue até o diretório do Winlogbeat:
cd 'C:\Program Files\Winlogbeat'Execute o script de instalação:
.\install-service-winlogbeat.ps1
- Extraia o arquivo ZIP para
Configurar o Winlogbeat para enviar registros ao Logstash
Abra o arquivo de configuração do Winlogbeat:
notepad "C:\Program Files\Winlogbeat\winlogbeat.yml"Configure os registros de eventos a serem coletados. Localize a seção
winlogbeat.event_logse 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]Comente a seção de saída do Elasticsearch adicionando
#no início de cada linha:#output.elasticsearch: # hosts: ["localhost:9200"]Remova o comentário e configure a seção de saída do Logstash:
output.logstash: hosts: ["<LOGSTASH_SERVER_IP>:5044"]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
- Abra o PowerShell como administrador.
Inicie o serviço Winlogbeat:
Start-Service winlogbeatVerifique se o serviço está em execução:
Get-Service winlogbeatO status deve aparecer como Em execução.
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
No servidor do Logstash, verifique os registros dele:
Linux:
sudo tail -f /var/log/logstash/logstash-plain.logWindows:
type C:\logstash\logs\logstash-plain.log
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
No servidor do agente do Bindplane, verifique os registros do agente:
Linux:
sudo journalctl -u observiq-otel-collector -fWindows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Procure mensagens indicando a ingestão de registros.
Verificar registros no Google SecOps
- Faça login no console do Google SecOps.
- Acesse Pesquisar.
Execute uma consulta de pesquisa para verificar se os registros do Winlogbeat estão sendo ingeridos:
metadata.log_type = "ELASTIC_WINLOGBEAT"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 5044Verifique 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 5044Windows:
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> 1514Windows:
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 1514Windows:
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_typeestá definido comoELASTIC_WINLOGBEATexatamente 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.