Raccogli i log di Elastic Windows Event Log Beats

Supportato in:

Questo documento spiega come importare i log di Elastic Windows Event Log Beats in Google Security Operations utilizzando l'agente Bindplane.

Winlogbeat è l'agente di spedizione dei log eventi specifico per Windows di Elastic che raccoglie i log eventi di Windows e li inoltra a varie destinazioni. Viene eseguito come servizio Windows sui sistemi Windows e può raccogliere eventi dai canali di log eventi di Windows Applicazione, Sicurezza, Sistema e altri.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Windows Server 2016 o versioni successive oppure un host Linux con systemd per l'esecuzione dell'agente Bindplane
  • Connettività di rete tra l'agente Bindplane e il server Logstash
  • Connettività di rete tra Logstash e l'agente Bindplane
  • Se l'esecuzione avviene tramite un proxy, assicurati che le porte firewall siano aperte in base ai requisiti dell'agente Bindplane.
  • Sistemi Windows in cui verrà installato Winlogbeat per raccogliere i log eventi
  • Accesso amministratore ai sistemi Windows per l'installazione di Winlogbeat
  • Server Logstash (versione 7.x o 8.x) per l'elaborazione intermedia

Recuperare il file di autenticazione importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.

Recuperare l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa l'agente Bindplane

Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.

Installazione di Windows

  1. Apri Prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo il comando:

    sc query observiq-otel-collector
    

    Lo stato del servizio deve essere RUNNING.

Installazione di Linux

  1. Apri un terminale con privilegi root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Attendi il completamento dell'installazione.

  4. Verifica l'installazione eseguendo il comando:

    sudo systemctl status observiq-otel-collector
    

    Lo stato del servizio deve essere attivo (in esecuzione).

Risorse aggiuntive per l'installazione

Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la Guida all'installazione dell'agente Bindplane.

Configura l'agente Bindplane per importare syslog e inviarli a Google SecOps

Individua il file di configurazione

  • Linux:

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

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

Modifica il file di configurazione

  1. Sostituisci l'intero contenuto di config.yaml con la seguente configurazione:

    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. Sostituisci i seguenti segnaposto:

    • Configurazione del ricevitore:

      • listen_address: impostalo su 0.0.0.0:1514 per ascoltare tutte le interfacce sulla porta 1514 (TCP). Se necessario, puoi modificare il numero di porta, ma assicurati che corrisponda alla configurazione dell'output syslog di Logstash.
    • Configurazione dell'esportatore:

      • <CREDS_FILE_PATH>: Percorso completo del file di autenticazione importazione:

        • Linux: /etc/bindplane-agent/ingestion-auth.json
        • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
      • <CUSTOMER_ID>: l'ID cliente del passaggio precedente

      • <REGION_ENDPOINT>: URL endpoint regionale:

        • Stati Uniti: malachiteingestion-pa.googleapis.com
        • Europa: europe-malachiteingestion-pa.googleapis.com
        • Asia: asia-southeast1-malachiteingestion-pa.googleapis.com
        • Per un elenco completo, vedi Endpoint regionali.

Configurazione di esempio:

  • 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
    

Salvare il file di configurazione

Dopo la modifica, salva il file:

  • Linux: premi Ctrl+O, poi Enter e infine Ctrl+X.
  • Windows: fai clic su File > Salva.

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux:

    1. Esegui questo comando:

      sudo systemctl restart observiq-otel-collector
      
    2. Verifica che il servizio sia in esecuzione:

      sudo systemctl status observiq-otel-collector
      
    3. Controlla i log per individuare eventuali errori:

      sudo journalctl -u observiq-otel-collector -f
      
  • Per riavviare l'agente Bindplane in Windows:

    1. Scegli una delle seguenti opzioni:

      • Prompt dei comandi o PowerShell come amministratore:

        net stop observiq-otel-collector && net start observiq-otel-collector
        
      • Console Services:

        1. Premi Win+R, digita services.msc e premi Invio.
        2. Individua observIQ OpenTelemetry Collector.
        3. Fai clic con il tasto destro del mouse e seleziona Riavvia.
    2. Verifica che il servizio sia in esecuzione:

      sc query observiq-otel-collector
      
    3. Controlla i log per individuare eventuali errori:

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

Installa e configura Logstash

Logstash è necessario come intermediario per ricevere eventi da Winlogbeat e inoltrarli all'agente Bindplane tramite syslog. Winlogbeat non dispone di una funzionalità di output syslog nativa.

Installa Logstash

  1. Scarica Logstash dalla pagina dei download di Elastic.
  2. Installa Logstash su un server 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. Scarica il file ZIP dalla pagina dei download di Elastic.
    2. Estrai in C:\logstash.

Configura la pipeline Logstash

  1. Crea un nuovo file di configurazione della pipeline:

    • Linux:

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

      notepad "C:\logstash\config\winlogbeat-to-syslog.conf"
      
  2. Aggiungi la seguente configurazione:

    input {
        beats {
            port => 5044
        }
    }
    
    output {
        syslog {
            host => "<BINDPLANE_AGENT_IP>"
            port => 1514
            protocol => "tcp"
            rfc => "rfc5424"
            appname => "winlogbeat"
            facility => "user-level"
            severity => "informational"
        }
    }
    
  3. Sostituisci <BINDPLANE_AGENT_IP> con l'indirizzo IP del server che esegue l'agente Bindplane.

Configurazione di esempio di 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"
        }
    }
    

Avvia Logstash

  • Linux:

    1. Avvia Logstash:

      sudo systemctl start logstash
      sudo systemctl enable logstash
      
    2. Verifica che Logstash sia in esecuzione:

      sudo systemctl status logstash
      
    3. Controlla i log di 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
    

    Per l'utilizzo in produzione, installa Logstash come servizio Windows utilizzando NSSM o strumenti simili.

Installare Winlogbeat sui sistemi Windows

Scaricare Winlogbeat

  1. Scarica Winlogbeat dalla pagina di download di Elastic.
  2. Scegli il programma di installazione ZIP o MSI per Windows.

Installare Winlogbeat

  • Utilizzo del programma di installazione MSI:

    1. Esegui il programma di installazione MSI.
    2. Segui la procedura guidata di installazione.
    3. Installa nella posizione predefinita: C:\Program Files\Winlogbeat.
  • Utilizzo del file ZIP:

    1. Estrai il file ZIP in C:\Program Files\Winlogbeat.
    2. Apri PowerShell come amministratore.
    3. Vai alla directory Winlogbeat:

      cd 'C:\Program Files\Winlogbeat'
      
    4. Esegui lo script di installazione:

      .\install-service-winlogbeat.ps1
      

Configura Winlogbeat per inviare i log a Logstash

  1. Apri il file di configurazione di Winlogbeat:

    notepad "C:\Program Files\Winlogbeat\winlogbeat.yml"
    
  2. Configura i log eventi da raccogliere. Individua la sezione winlogbeat.event_logs e configurala nel seguente modo:

    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. Commenta la sezione di output di Elasticsearch aggiungendo # all'inizio di ogni riga:

    #output.elasticsearch:
    #  hosts: ["localhost:9200"]
    
  4. Rimuovi il commento dalla sezione di output di Logstash e configurala:

    output.logstash:
      hosts: ["<LOGSTASH_SERVER_IP>:5044"]
    
  5. Sostituisci <LOGSTASH_SERVER_IP> con l'indirizzo IP del tuo server Logstash.

Configurazione di esempio di 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"]
    

Salvare il file di configurazione

Salva e chiudi il file.

Avvia il servizio Winlogbeat

  1. Apri PowerShell come amministratore.
  2. Avvia il servizio Winlogbeat:

    Start-Service winlogbeat
    
  3. Verifica che il servizio sia in esecuzione:

    Get-Service winlogbeat
    

    Lo stato dovrebbe essere visualizzato come In esecuzione.

  4. Controlla la presenza di errori nei log di Winlogbeat:

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

Verifica il flusso dei log

Verifica la connessione da Winlogbeat a Logstash

  1. Sul server Logstash, controlla i log di Logstash:

    • Linux:

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

      type C:\logstash\logs\logstash-plain.log
      
  2. Cerca i messaggi che indicano le connessioni Beats:

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

Verifica la connessione da Logstash all'agente Bindplane

  1. Sul server dell'agente Bindplane, controlla i log dell'agente:

    • Linux:

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

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      
  2. Cerca i messaggi che indicano l'importazione riuscita dei log.

Verifica i log in Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Ricerca.
  3. Esegui una query di ricerca per verificare che i log Winlogbeat vengano inseriti:

    metadata.log_type = "ELASTIC_WINLOGBEAT"
    
  4. Verifica che i log eventi di Windows vengano visualizzati nei risultati di ricerca.

Risoluzione dei problemi

Winlogbeat non si connette a Logstash

  • Verifica la connettività di rete tra Winlogbeat e Logstash:

    Test-NetConnection -ComputerName <LOGSTASH_IP> -Port 5044
    
  • Controlla che le regole di Windows Firewall consentano le connessioni in uscita sulla porta 5044.

  • Verifica che Logstash sia in ascolto sulla porta 5044:

    • Linux:

      sudo netstat -tulpn | grep 5044
      
    • Windows:

      netstat -an | findstr 5044
      

Logstash non inoltra all'agente Bindplane

  • Verifica la connettività di rete tra Logstash e l'agente Bindplane:

    • Linux:

      telnet <BINDPLANE_IP> 1514
      
    • Windows:

      Test-NetConnection -ComputerName <BINDPLANE_IP> -Port 1514
      
  • Verifica che le regole del firewall consentano le connessioni TCP sulla porta 1514.

  • Verifica che l'agente Bindplane sia in ascolto sulla porta 1514:

    • Linux:

      sudo netstat -tulpn | grep 1514
      
    • Windows:

      netstat -an | findstr 1514
      

I log non vengono visualizzati in Google SecOps

  • Verifica che l'ID cliente e il file di autenticazione dell'importazione siano corretti.
  • Controlla i log dell'agente Bindplane per rilevare errori di autenticazione.
  • Verifica che l'endpoint regionale corrisponda alla regione dell'istanza Google SecOps.
  • Assicurati che log_type sia impostato su ELASTIC_WINLOGBEAT esattamente come mostrato.

Tabella di mappatura UDM

Le informazioni sulla mappatura dei campi non sono disponibili per questo parser.

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.