Raccogli i log di Elastic Windows Event Log Beats
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
systemdper 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
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
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
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
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
- Apri Prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo il comando:
sc query observiq-otel-collectorLo stato del servizio deve essere RUNNING.
Installazione di Linux
- Apri un terminale con privilegi root o sudo.
Esegui questo comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo il comando:
sudo systemctl status observiq-otel-collectorLo 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.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modifica il file di configurazione
Sostituisci l'intero contenuto di
config.yamlcon 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/winlogbeatSostituisci i seguenti segnaposto:
Configurazione del ricevitore:
listen_address: impostalo su0.0.0.0:1514per 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
- Linux:
<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.
- Stati Uniti:
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, poiEntere infineCtrl+X. - Windows: fai clic su File > Salva.
Riavvia l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux:
Esegui questo comando:
sudo systemctl restart observiq-otel-collectorVerifica che il servizio sia in esecuzione:
sudo systemctl status observiq-otel-collectorControlla i log per individuare eventuali errori:
sudo journalctl -u observiq-otel-collector -f
Per riavviare l'agente Bindplane in Windows:
Scegli una delle seguenti opzioni:
Prompt dei comandi o PowerShell come amministratore:
net stop observiq-otel-collector && net start observiq-otel-collectorConsole Services:
- Premi
Win+R, digitaservices.msce premi Invio. - Individua observIQ OpenTelemetry Collector.
- Fai clic con il tasto destro del mouse e seleziona Riavvia.
- Premi
Verifica che il servizio sia in esecuzione:
sc query observiq-otel-collectorControlla 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
- Scarica Logstash dalla pagina dei download di Elastic.
- 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 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:
- Scarica il file ZIP dalla pagina dei download di Elastic.
- Estrai in
C:\logstash.
Configura la pipeline Logstash
Crea un nuovo file di configurazione della pipeline:
Linux:
sudo nano /etc/logstash/conf.d/winlogbeat-to-syslog.confWindows:
notepad "C:\logstash\config\winlogbeat-to-syslog.conf"
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" } }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:
Avvia Logstash:
sudo systemctl start logstash sudo systemctl enable logstashVerifica che Logstash sia in esecuzione:
sudo systemctl status logstashControlla 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.confPer l'utilizzo in produzione, installa Logstash come servizio Windows utilizzando NSSM o strumenti simili.
Installare Winlogbeat sui sistemi Windows
Scaricare Winlogbeat
- Scarica Winlogbeat dalla pagina di download di Elastic.
- Scegli il programma di installazione ZIP o MSI per Windows.
Installare Winlogbeat
Utilizzo del programma di installazione MSI:
- Esegui il programma di installazione MSI.
- Segui la procedura guidata di installazione.
- Installa nella posizione predefinita:
C:\Program Files\Winlogbeat.
Utilizzo del file ZIP:
- Estrai il file ZIP in
C:\Program Files\Winlogbeat. - Apri PowerShell come amministratore.
Vai alla directory Winlogbeat:
cd 'C:\Program Files\Winlogbeat'Esegui lo script di installazione:
.\install-service-winlogbeat.ps1
- Estrai il file ZIP in
Configura Winlogbeat per inviare i log a Logstash
Apri il file di configurazione di Winlogbeat:
notepad "C:\Program Files\Winlogbeat\winlogbeat.yml"Configura i log eventi da raccogliere. Individua la sezione
winlogbeat.event_logse 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]Commenta la sezione di output di Elasticsearch aggiungendo
#all'inizio di ogni riga:#output.elasticsearch: # hosts: ["localhost:9200"]Rimuovi il commento dalla sezione di output di Logstash e configurala:
output.logstash: hosts: ["<LOGSTASH_SERVER_IP>:5044"]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
- Apri PowerShell come amministratore.
Avvia il servizio Winlogbeat:
Start-Service winlogbeatVerifica che il servizio sia in esecuzione:
Get-Service winlogbeatLo stato dovrebbe essere visualizzato come In esecuzione.
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
Sul server Logstash, controlla i log di Logstash:
Linux:
sudo tail -f /var/log/logstash/logstash-plain.logWindows:
type C:\logstash\logs\logstash-plain.log
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
Sul server dell'agente Bindplane, controlla i log dell'agente:
Linux:
sudo journalctl -u observiq-otel-collector -fWindows:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Cerca i messaggi che indicano l'importazione riuscita dei log.
Verifica i log in Google SecOps
- Accedi alla console Google SecOps.
- Vai a Ricerca.
Esegui una query di ricerca per verificare che i log Winlogbeat vengano inseriti:
metadata.log_type = "ELASTIC_WINLOGBEAT"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 5044Controlla 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 5044Windows:
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> 1514Windows:
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 1514Windows:
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_typesia impostato suELASTIC_WINLOGBEATesattamente 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.