Collecter les journaux Elastic Windows Event Log Beats
Ce document explique comment ingérer des journaux Elastic Windows Event Log Beats dans Google Security Operations à l'aide de l'agent Bindplane.
Winlogbeat est l'agent d'expédition des journaux d'événements spécifiques à Windows d'Elastic. Il collecte les journaux d'événements Windows et les transmet à différentes destinations. Il s'exécute en tant que service Windows sur les systèmes Windows et peut collecter des événements à partir des canaux de journaux des événements Windows "Application", "Sécurité", "Système" et d'autres.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Une instance Google SecOps
- Windows Server 2016 ou version ultérieure, ou un hôte Linux avec
systemdpour exécuter l'agent Bindplane - Connectivité réseau entre l'agent Bindplane et le serveur Logstash
- Connectivité réseau entre Logstash et l'agent Bindplane
- Si vous exécutez l'agent derrière un proxy, assurez-vous que les ports du pare-feu sont ouverts conformément aux exigences de l'agent Bindplane.
- Systèmes Windows sur lesquels Winlogbeat sera installé pour collecter les journaux d'événements
- Accès administrateur aux systèmes Windows pour l'installation de Winlogbeat
- Serveur Logstash (version 7.x ou 8.x) pour le traitement intermédiaire
Obtenir le fichier d'authentification d'ingestion Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane sera installé.
Obtenir l'ID client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres SIEM> Profil.
Copiez et enregistrez le numéro client de la section Informations sur l'organisation.
Installer l'agent Bindplane
Installez l'agent Bindplane sur votre système d'exploitation Windows ou Linux en suivant les instructions ci-dessous.
Installation de fenêtres
- Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAttendez la fin de l'installation.
Vérifiez l'installation en exécutant la commande suivante :
sc query observiq-otel-collectorL'état du service doit être RUNNING (EN COURS D'EXÉCUTION).
Installation de Linux
- Ouvrez un terminal avec les droits root ou sudo.
Exécutez la commande suivante :
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAttendez la fin de l'installation.
Vérifiez l'installation en exécutant la commande suivante :
sudo systemctl status observiq-otel-collectorL'état du service doit être active (running).
Ressources d'installation supplémentaires
Pour obtenir d'autres options d'installation et de dépannage, consultez le guide d'installation de l'agent Bindplane.
Configurer l'agent Bindplane pour ingérer les journaux syslog et les envoyer à Google SecOps
Localiser le fichier de configuration
Linux :
sudo nano /etc/bindplane-agent/config.yamlWindows :
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modifiez le fichier de configuration
Remplacez l'intégralité du contenu de
config.yamlpar la configuration suivante :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/winlogbeatRemplacez les espaces réservés suivants :
Configuration du récepteur :
listen_address: définissez la valeur sur0.0.0.0:1514pour écouter toutes les interfaces sur le port 1514 (TCP). Vous pouvez modifier le numéro de port si nécessaire, mais assurez-vous qu'il correspond à la configuration de sortie syslog de Logstash.
Configuration de l'exportateur :
<CREDS_FILE_PATH>: chemin d'accès complet au fichier d'authentification de l'ingestion :- Linux :
/etc/bindplane-agent/ingestion-auth.json - Windows :
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux :
<CUSTOMER_ID>: ID client de l'étape précédente<REGION_ENDPOINT>: URL du point de terminaison régional :- États-Unis :
malachiteingestion-pa.googleapis.com - Europe :
europe-malachiteingestion-pa.googleapis.com - Asie :
asia-southeast1-malachiteingestion-pa.googleapis.com - Pour obtenir la liste complète, consultez Points de terminaison régionaux.
- États-Unis :
Exemple de configuration :
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
Enregistrez le fichier de configuration.
Après avoir modifié le fichier, enregistrez-le :
- Linux : appuyez sur
Ctrl+O, puis surEnter, puis surCtrl+X. - Windows : cliquez sur Fichier > Enregistrer.
Redémarrez l'agent Bindplane pour appliquer les modifications.
Pour redémarrer l'agent Bindplane sous Linux :
Exécutez la commande suivante :
sudo systemctl restart observiq-otel-collectorVérifiez que le service est en cours d'exécution :
sudo systemctl status observiq-otel-collectorRecherchez les erreurs dans les journaux :
sudo journalctl -u observiq-otel-collector -f
Pour redémarrer l'agent Bindplane sous Windows :
Choisissez l'une des options suivantes :
Invite de commandes ou PowerShell en tant qu'administrateur :
net stop observiq-otel-collector && net start observiq-otel-collectorConsole Services :
- Appuyez sur
Win+R, saisissezservices.msc, puis appuyez sur Entrée. - Recherchez observIQ OpenTelemetry Collector.
- Effectuez un clic droit, puis sélectionnez Redémarrer.
- Appuyez sur
Vérifiez que le service est en cours d'exécution :
sc query observiq-otel-collectorRecherchez les erreurs dans les journaux :
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Installer et configurer Logstash
Logstash est requis en tant qu'intermédiaire pour recevoir les événements de Winlogbeat et les transférer à l'agent Bindplane via syslog. Winlogbeat ne dispose pas de fonctionnalité de sortie syslog native.
Installer Logstash
- Téléchargez Logstash depuis la page de téléchargements Elastic.
- Installez Logstash sur un serveur 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 :
- Téléchargez le fichier ZIP depuis la page de téléchargements Elastic.
- Extraire vers
C:\logstash.
Configurer le pipeline Logstash
Créez un fichier de configuration de pipeline :
Linux :
sudo nano /etc/logstash/conf.d/winlogbeat-to-syslog.confWindows :
notepad "C:\logstash\config\winlogbeat-to-syslog.conf"
Ajoutez la configuration suivante :
input { beats { port => 5044 } } output { syslog { host => "<BINDPLANE_AGENT_IP>" port => 1514 protocol => "tcp" rfc => "rfc5424" appname => "winlogbeat" facility => "user-level" severity => "informational" } }Remplacez
<BINDPLANE_AGENT_IP>par l'adresse IP du serveur exécutant l'agent Bindplane.
Exemple de configuration 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" } }
Démarrer Logstash
Linux :
Démarrez Logstash :
sudo systemctl start logstash sudo systemctl enable logstashVérifiez que Logstash est en cours d'exécution :
sudo systemctl status logstashVérifiez les journaux Logstash :
sudo tail -f /var/log/logstash/logstash-plain.log
Windows :
cd C:\logstash\bin logstash.bat -f C:\logstash\config\winlogbeat-to-syslog.confPour une utilisation en production, installez Logstash en tant que service Windows à l'aide de NSSM ou d'outils similaires.
Installer Winlogbeat sur les systèmes Windows
Télécharger Winlogbeat
- Téléchargez Winlogbeat depuis la page de téléchargements Elastic.
- Choisissez le programme d'installation ZIP ou MSI pour Windows.
Installer Winlogbeat
Utiliser le programme d'installation MSI :
- Exécutez le programme d'installation MSI.
- Suivez l'assistant d'installation.
- Installez-le à l'emplacement par défaut :
C:\Program Files\Winlogbeat.
Utiliser un fichier ZIP :
- Extrayez le fichier ZIP dans
C:\Program Files\Winlogbeat. - Ouvrez PowerShell en tant qu'administrateur.
Accédez au répertoire Winlogbeat :
cd 'C:\Program Files\Winlogbeat'Exécutez le script d'installation :
.\install-service-winlogbeat.ps1
- Extrayez le fichier ZIP dans
Configurer Winlogbeat pour envoyer des journaux à Logstash
Ouvrez le fichier de configuration Winlogbeat :
notepad "C:\Program Files\Winlogbeat\winlogbeat.yml"Configurez les journaux d'événements à collecter. Recherchez la section
winlogbeat.event_logset configurez-la comme suit :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]Mettez en commentaire la section de sortie Elasticsearch en ajoutant
#au début de chaque ligne :#output.elasticsearch: # hosts: ["localhost:9200"]Décommentez et configurez la section de sortie Logstash :
output.logstash: hosts: ["<LOGSTASH_SERVER_IP>:5044"]Remplacez
<LOGSTASH_SERVER_IP>par l'adresse IP de votre serveur Logstash.
Exemple de configuration 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"]
Enregistrez le fichier de configuration.
Enregistrez et fermez le fichier.
Démarrer le service Winlogbeat
- Ouvrez PowerShell en tant qu'administrateur.
Démarrez le service Winlogbeat :
Start-Service winlogbeatVérifiez que le service est en cours d'exécution :
Get-Service winlogbeatL'état doit être En cours d'exécution.
Recherchez les erreurs dans les journaux Winlogbeat :
Get-Content "C:\ProgramData\winlogbeat\Logs\winlogbeat" -Tail 50
Vérifier le flux de journaux
Vérifier la connexion Winlogbeat à Logstash
Sur le serveur Logstash, vérifiez les journaux Logstash :
Linux :
sudo tail -f /var/log/logstash/logstash-plain.logWindows :
type C:\logstash\logs\logstash-plain.log
Recherchez les messages indiquant des connexions Beats :
[INFO ][logstash.inputs.beats] Beats inputs: Starting input listener {:address=>"0.0.0.0:5044"}
Vérifier la connexion entre Logstash et l'agent Bindplane
Sur le serveur de l'agent Bindplane, vérifiez les journaux de l'agent :
Linux :
sudo journalctl -u observiq-otel-collector -fWindows :
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
Recherchez les messages indiquant que l'ingestion des journaux a réussi.
Vérifier les journaux dans Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Recherche.
Exécutez une requête de recherche pour vérifier que les journaux Winlogbeat sont ingérés :
metadata.log_type = "ELASTIC_WINLOGBEAT"Vérifiez que les journaux d'événements Windows apparaissent dans les résultats de recherche.
Dépannage
Winlogbeat ne se connecte pas à Logstash
Vérifiez la connectivité réseau entre Winlogbeat et Logstash :
Test-NetConnection -ComputerName <LOGSTASH_IP> -Port 5044Vérifiez que les règles du pare-feu Windows autorisent les connexions sortantes sur le port 5044.
Vérifiez que Logstash écoute sur le port 5044 :
Linux :
sudo netstat -tulpn | grep 5044Windows :
netstat -an | findstr 5044
Logstash ne transfère pas les données à l'agent Bindplane
Vérifiez la connectivité réseau entre l'agent Logstash et Bindplane :
Linux :
telnet <BINDPLANE_IP> 1514Windows :
Test-NetConnection -ComputerName <BINDPLANE_IP> -Port 1514
Vérifiez que les règles de pare-feu autorisent les connexions TCP sur le port 1514.
Vérifiez que l'agent Bindplane écoute sur le port 1514 :
Linux :
sudo netstat -tulpn | grep 1514Windows :
netstat -an | findstr 1514
Journaux n'apparaissant pas dans Google SecOps
- Vérifiez que le numéro client et le fichier d'authentification de l'ingestion sont corrects.
- Recherchez les erreurs d'authentification dans les journaux de l'agent Bindplane.
- Vérifiez que le point de terminaison régional correspond à la région de votre instance Google SecOps.
- Assurez-vous que
log_typeest défini surELASTIC_WINLOGBEATexactement comme indiqué.
Table de mappage UDM
Les informations sur le mappage des champs ne sont pas disponibles pour cet analyseur.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.