Recopila registros de Elastic Windows Event Log Beats

Compatible con:

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

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Agentes de recopilación.
  3. 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

  1. Accede a la consola de Google SecOps.
  2. Ve a Configuración de SIEM > Perfil.
  3. 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

  1. Abre el símbolo del sistema o PowerShell como administrador.
  2. Ejecuta el comando siguiente:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Espera a que se complete la instalación.

  4. Ejecute el siguiente comando para verificar la instalación:

    sc query observiq-otel-collector
    

    El estado del servicio debe ser RUNNING.

Instalación en Linux

  1. Abre una terminal con privilegios de administrador o sudo.
  2. Ejecuta el comando siguiente:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Espera a que se complete la instalación.

  4. Ejecute el siguiente comando para verificar la instalación:

    sudo systemctl status observiq-otel-collector
    

    El 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.yaml
    
  • Windows:

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

Edita el archivo de configuración

  1. Reemplaza todo el contenido de config.yaml por 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/winlogbeat
    
  2. Reemplaza los marcadores de posición que se indican más abajo:

    • Configuración del receptor:

      • listen_address: Se establece en 0.0.0.0:1514 para 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
      • <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.

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, luego Enter y, 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:

    1. Ejecuta el comando siguiente:

      sudo systemctl restart observiq-otel-collector
      
    2. Verifica que el servicio esté en ejecución:

      sudo systemctl status observiq-otel-collector
      
    3. Revisa los registros en busca de errores:

      sudo journalctl -u observiq-otel-collector -f
      
  • Para reiniciar el agente de Bindplane en Windows, haz lo siguiente:

    1. Elige una de las siguientes opciones:

      • Símbolo del sistema o PowerShell como administrador:

        net stop observiq-otel-collector && net start observiq-otel-collector
        
      • Consola de Services:

        1. Presiona Win+R, escribe services.msc y presiona Intro.
        2. Busca observIQ OpenTelemetry Collector.
        3. Haz clic con el botón derecho y selecciona Reiniciar.
    2. Verifica que el servicio esté en ejecución:

      sc query observiq-otel-collector
      
    3. Revisa 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

  1. Descarga Logstash desde la página de descargas de Elastic.
  2. 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 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. Descarga el archivo ZIP desde la página de descargas de Elastic.
    2. Extrae el archivo en C:\logstash.

Configura la canalización de Logstash

  1. Crea un archivo de configuración de canalización nuevo:

    • Linux:

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

      notepad "C:\logstash\config\winlogbeat-to-syslog.conf"
      
  2. 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"
        }
    }
    
  3. 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:

    1. Inicia Logstash:

      sudo systemctl start logstash
      sudo systemctl enable logstash
      
    2. Verifica que Logstash se esté ejecutando:

      sudo systemctl status logstash
      
    3. Verifica 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.conf
    

    Para el uso en producción, instala Logstash como un servicio de Windows con NSSM o herramientas similares.

Instala Winlogbeat en sistemas Windows

Descarga Winlogbeat

  1. Descarga Winlogbeat desde la página de descargas de Elastic.
  2. Elige el instalador ZIP o MSI para Windows.

Instala Winlogbeat

  • Cómo usar el instalador MSI:

    1. Ejecuta el instalador de MSI.
    2. Sigue el asistente de instalación.
    3. Instalar en la ubicación predeterminada: C:\Program Files\Winlogbeat
  • Cómo usar el archivo ZIP:

    1. Extrae el archivo ZIP en C:\Program Files\Winlogbeat.
    2. Abre PowerShell como administrador.
    3. Navega al directorio de Winlogbeat:

      cd 'C:\Program Files\Winlogbeat'
      
    4. Ejecuta la secuencia de comandos de instalación:

      .\install-service-winlogbeat.ps1
      

Configura Winlogbeat para enviar registros a Logstash

  1. Abre el archivo de configuración de Winlogbeat:

    notepad "C:\Program Files\Winlogbeat\winlogbeat.yml"
    
  2. Configura los registros de eventos que se recopilarán. Busca la sección winlogbeat.event_logs y 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]
    
  3. Comenta la sección de salida de Elasticsearch agregando # al principio de cada línea:

    #output.elasticsearch:
    #  hosts: ["localhost:9200"]
    
  4. Quita la marca de comentario y configura la sección de salida de Logstash:

    output.logstash:
      hosts: ["<LOGSTASH_SERVER_IP>:5044"]
    
  5. 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

  1. Abre PowerShell como administrador.
  2. Inicia el servicio de Winlogbeat:

    Start-Service winlogbeat
    
  3. Verifica que el servicio esté en ejecución:

    Get-Service winlogbeat
    

    El estado debería mostrarse como En ejecución.

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

  1. En el servidor de Logstash, verifica los registros de Logstash:

    • Linux:

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

      type C:\logstash\logs\logstash-plain.log
      
  2. 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

  1. En el servidor del agente de BindPlane, verifica los registros del agente:

    • Linux:

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

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      
  2. Busca mensajes que indiquen que la transferencia de registros se realizó correctamente.

Verifica los registros en Google SecOps

  1. Accede a la consola de Google SecOps.
  2. Ve a Buscar.
  3. Ejecuta una búsqueda para verificar que se transfieran los registros de Winlogbeat:

    metadata.log_type = "ELASTIC_WINLOGBEAT"
    
  4. 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 5044
    
  • Verifica 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 5044
      
    • Windows:

      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> 1514
      
    • Windows:

      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 1514
      
    • Windows:

      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_type esté configurado en ELASTIC_WINLOGBEAT exactamente 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.