Recopila registros de Elastic Windows Event Log Beats
En este documento, se explica cómo transferir registros de Elastic Windows Event Log Beats a Google Security Operations con el agente de Bindplane.
Winlogbeat es el agente de envío de registros de eventos específico para Windows de Elastic que recopila registros de eventos de Windows y los reenvía a varios destinos. Se ejecuta como un servicio de Windows en sistemas Windows y puede recopilar eventos de los canales de registro de eventos de Windows de Aplicación, Seguridad, Sistema y otros.
Antes de comenzar
Asegúrate de cumplir con los siguientes requisitos previos:
- Una instancia de Google SecOps
- Windows Server 2016 o versiones posteriores, o un host de Linux con
systemdpara ejecutar el agente de Bindplane - Conectividad de red entre el agente de Bindplane y el servidor de Logstash
- Conectividad de red entre Logstash y el agente de Bindplane
- Si se ejecuta detrás de un proxy, asegúrate de que los puertos del firewall estén abiertos según los requisitos del agente de Bindplane.
- Sistemas Windows en los que se instalará Winlogbeat para recopilar registros de eventos
- Acceso de administrador a los sistemas de Windows para la instalación de Winlogbeat
- Servidor de Logstash (versión 7.x o 8.x) para el procesamiento intermedio
Obtén el archivo de autenticación de transferencia de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Agentes de recopilación.
Descarga el archivo de autenticación de transferencia. Guarda el archivo de forma segura en el sistema en el que se instalará Bindplane.
Obtén el ID de cliente de Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
Copia y guarda el ID de cliente de la sección Detalles de la organización.
Instala el agente de BindPlane
Instala el agente de Bindplane en tu sistema operativo Windows o Linux según las siguientes instrucciones.
Instalación en Windows
- Abre el símbolo del sistema o PowerShell como administrador.
Ejecuta el comando siguiente:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietEspera a que se complete la instalación.
Ejecute el siguiente comando para verificar la instalación:
sc query observiq-otel-collectorEl estado del servicio debe ser RUNNING.
Instalación en Linux
- Abre una terminal con privilegios de administrador o sudo.
Ejecuta el comando siguiente:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shEspera a que se complete la instalación.
Ejecute el siguiente comando para verificar la instalación:
sudo systemctl status observiq-otel-collectorEl estado del servicio debe ser active (running).
Recursos de instalación adicionales
Para obtener más opciones de instalación y solución de problemas, consulta la guía de instalación del agente de Bindplane.
Configura el agente de BindPlane para transferir Syslog y enviarlo a Google SecOps
Ubica el archivo de configuración
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Edita el archivo de configuración
Reemplaza todo el contenido de
config.yamlpor la siguiente configuración: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/winlogbeatReemplaza los marcadores de posición que se indican más abajo:
Configuración del receptor:
listen_address: Se establece en0.0.0.0:1514para escuchar en todas las interfaces del puerto 1514 (TCP). Puedes cambiar el número de puerto si es necesario, pero asegúrate de que coincida con la configuración de salida de syslog de Logstash.
Configuración del exportador:
<CREDS_FILE_PATH>: Ruta de acceso completa al archivo de autenticación de la transferencia:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
<CUSTOMER_ID>: ID de cliente del paso anterior<REGION_ENDPOINT>: URL del extremo regional:- EE.UU.:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Consulta Extremos regionales para obtener la lista completa.
- EE.UU.:
Configuración de ejemplo:
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
Guarda el archivo de configuración
Después de editarlo, guarda el archivo:
- Linux: Presiona
Ctrl+O, luegoEntery, después,Ctrl+X. - Windows: Haz clic en Archivo > Guardar
Reinicia el agente de Bindplane para aplicar los cambios
Para reiniciar el agente de Bindplane en Linux, haz lo siguiente:
Ejecuta el comando siguiente:
sudo systemctl restart observiq-otel-collectorVerifica que el servicio esté en ejecución:
sudo systemctl status observiq-otel-collectorRevisa los registros en busca de errores:
sudo journalctl -u observiq-otel-collector -f
Para reiniciar el agente de Bindplane en Windows, haz lo siguiente:
Elige una de las siguientes opciones:
Símbolo del sistema o PowerShell como administrador:
net stop observiq-otel-collector && net start observiq-otel-collectorConsola de Services:
- Presiona
Win+R, escribeservices.mscy presiona Intro. - Busca observIQ OpenTelemetry Collector.
- Haz clic con el botón derecho y selecciona Reiniciar.
- Presiona
Verifica que el servicio esté en ejecución:
sc query observiq-otel-collectorRevisa los registros en busca de errores:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Instala y configura Logstash
Logstash es necesario como intermediario para recibir eventos de Winlogbeat y reenviarlos al agente de Bindplane a través de syslog. Winlogbeat no tiene capacidad de salida de syslog nativa.
Instala Logstash
- Descarga Logstash desde la página de descargas de Elastic.
- Instala Logstash en un servidor de Windows o 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:
- Descarga el archivo ZIP desde la página de descargas de Elastic.
- Extrae el archivo en
C:\logstash.
Configura la canalización de Logstash
Crea un archivo de configuración de canalización nuevo:
Linux:
sudo nano /etc/logstash/conf.d/winlogbeat-to-syslog.confWindows:
notepad "C:\logstash\config\winlogbeat-to-syslog.conf"
Agrega la siguiente configuración:
input { beats { port => 5044 } } output { syslog { host => "<BINDPLANE_AGENT_IP>" port => 1514 protocol => "tcp" rfc => "rfc5424" appname => "winlogbeat" facility => "user-level" severity => "informational" } }Reemplaza
<BINDPLANE_AGENT_IP>por la dirección IP del servidor que ejecuta el agente de Bindplane.
Ejemplo de configuración de 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" } }
Inicia Logstash
Linux:
Inicia Logstash:
sudo systemctl start logstash sudo systemctl enable logstashVerifica que Logstash se esté ejecutando:
sudo systemctl status logstashVerifica los registros de 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 el uso en producción, instala Logstash como un servicio de Windows con NSSM o herramientas similares.
Instala Winlogbeat en sistemas Windows
Descarga Winlogbeat
- Descarga Winlogbeat desde la página de descargas de Elastic.
- Elige el instalador ZIP o MSI para Windows.
Instala Winlogbeat
Cómo usar el instalador MSI:
- Ejecuta el instalador de MSI.
- Sigue el asistente de instalación.
- Instalar en la ubicación predeterminada:
C:\Program Files\Winlogbeat
Cómo usar el archivo ZIP:
- Extrae el archivo ZIP en
C:\Program Files\Winlogbeat. - Abre PowerShell como administrador.
Navega al directorio de Winlogbeat:
cd 'C:\Program Files\Winlogbeat'Ejecuta la secuencia de comandos de instalación:
.\install-service-winlogbeat.ps1
- Extrae el archivo ZIP en
Configura Winlogbeat para enviar registros a Logstash
Abre el archivo de configuración de Winlogbeat:
notepad "C:\Program Files\Winlogbeat\winlogbeat.yml"Configura los registros de eventos que se recopilarán. Busca la sección
winlogbeat.event_logsy configúrala de la siguiente manera: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]Comenta la sección de salida de Elasticsearch agregando
#al principio de cada línea:#output.elasticsearch: # hosts: ["localhost:9200"]Quita la marca de comentario y configura la sección de salida de Logstash:
output.logstash: hosts: ["<LOGSTASH_SERVER_IP>:5044"]Reemplaza
<LOGSTASH_SERVER_IP>por la dirección IP de tu servidor de Logstash.
Ejemplo de configuración de 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"]
Guarda el archivo de configuración
Guarde y cierre el archivo.
Inicia el servicio de Winlogbeat
- Abre PowerShell como administrador.
Inicia el servicio de Winlogbeat:
Start-Service winlogbeatVerifica que el servicio esté en ejecución:
Get-Service winlogbeatEl estado debería mostrarse como En ejecución.
Comprueba si hay errores en los registros de Winlogbeat:
Get-Content "C:\ProgramData\winlogbeat\Logs\winlogbeat" -Tail 50
Verifica el flujo de registros
Verifica la conexión de Winlogbeat a Logstash
En el servidor de Logstash, verifica los registros de Logstash:
Linux:
sudo tail -f /var/log/logstash/logstash-plain.logWindows:
type C:\logstash\logs\logstash-plain.log
Busca mensajes que indiquen conexiones de Beats:
[INFO ][logstash.inputs.beats] Beats inputs: Starting input listener {:address=>"0.0.0.0:5044"}
Verifica la conexión del agente de Logstash a Bindplane
En el servidor del agente de BindPlane, verifica los registros del agente:
Linux:
sudo journalctl -u observiq-otel-collector -fWindows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Busca mensajes que indiquen que la transferencia de registros se realizó correctamente.
Verifica los registros en Google SecOps
- Accede a la consola de Google SecOps.
- Ve a Buscar.
Ejecuta una búsqueda para verificar que se transfieran los registros de Winlogbeat:
metadata.log_type = "ELASTIC_WINLOGBEAT"Verifica que los registros de eventos de Windows aparezcan en los resultados de la búsqueda.
Soluciona problemas
Winlogbeat no se conecta a Logstash
Verifica la conectividad de red entre Winlogbeat y Logstash:
Test-NetConnection -ComputerName <LOGSTASH_IP> -Port 5044Verifica que las reglas del Firewall de Windows permitan conexiones salientes en el puerto 5044.
Verifica que Logstash esté escuchando en el puerto 5044:
Linux:
sudo netstat -tulpn | grep 5044Windows:
netstat -an | findstr 5044
Logstash no reenvía datos al agente de Bindplane
Verifica la conectividad de red entre el agente de Logstash y Bindplane:
Linux:
telnet <BINDPLANE_IP> 1514Windows:
Test-NetConnection -ComputerName <BINDPLANE_IP> -Port 1514
Verifica que las reglas del firewall permitan conexiones TCP en el puerto 1514.
Verifica que el agente de Bindplane esté escuchando en el puerto 1514:
Linux:
sudo netstat -tulpn | grep 1514Windows:
netstat -an | findstr 1514
Los registros no aparecen en Google SecOps
- Verifica que el ID de cliente y el archivo de autenticación de transferencia sean correctos.
- Revisa los registros del agente de Bindplane en busca de errores de autenticación.
- Verifica que el extremo regional coincida con la región de tu instancia de Google SecOps.
- Asegúrate de que
log_typeesté configurado enELASTIC_WINLOGBEATexactamente como se muestra.
Tabla de asignación de UDM
La información de la asignación de campos no está disponible para este analizador.
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.