Collecter les journaux Elastic Windows Event Log Beats

Compatible avec :

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

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. 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

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres SIEM> Profil.
  3. 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

  1. Ouvrez l'invite de commandes ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sc query observiq-otel-collector
    

    L'état du service doit être RUNNING (EN COURS D'EXÉCUTION).

Installation de Linux

  1. Ouvrez un terminal avec les droits root ou sudo.
  2. Exécutez la commande suivante :

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Attendez la fin de l'installation.

  4. Vérifiez l'installation en exécutant la commande suivante :

    sudo systemctl status observiq-otel-collector
    

    L'é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.yaml
    
  • Windows :

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

Modifiez le fichier de configuration

  1. Remplacez l'intégralité du contenu de config.yaml par 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/winlogbeat
    
  2. Remplacez les espaces réservés suivants :

    • Configuration du récepteur :

      • listen_address : définissez la valeur sur 0.0.0.0:1514 pour é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
      • <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.

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 sur Enter, puis sur Ctrl+X.
  • Windows : cliquez sur Fichier > Enregistrer.

Redémarrez l'agent Bindplane pour appliquer les modifications.

  • Pour redémarrer l'agent Bindplane sous Linux :

    1. Exécutez la commande suivante :

      sudo systemctl restart observiq-otel-collector
      
    2. Vérifiez que le service est en cours d'exécution :

      sudo systemctl status observiq-otel-collector
      
    3. Recherchez les erreurs dans les journaux :

      sudo journalctl -u observiq-otel-collector -f
      
  • Pour redémarrer l'agent Bindplane sous Windows :

    1. Choisissez l'une des options suivantes :

      • Invite de commandes ou PowerShell en tant qu'administrateur :

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

        1. Appuyez sur Win+R, saisissez services.msc, puis appuyez sur Entrée.
        2. Recherchez observIQ OpenTelemetry Collector.
        3. Effectuez un clic droit, puis sélectionnez Redémarrer.
    2. Vérifiez que le service est en cours d'exécution :

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

  1. Téléchargez Logstash depuis la page de téléchargements Elastic.
  2. 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 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. Téléchargez le fichier ZIP depuis la page de téléchargements Elastic.
    2. Extraire vers C:\logstash.

Configurer le pipeline Logstash

  1. Créez un fichier de configuration de pipeline :

    • Linux :

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

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

    1. Démarrez Logstash :

      sudo systemctl start logstash
      sudo systemctl enable logstash
      
    2. Vérifiez que Logstash est en cours d'exécution :

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

    Pour 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

  1. Téléchargez Winlogbeat depuis la page de téléchargements Elastic.
  2. Choisissez le programme d'installation ZIP ou MSI pour Windows.

Installer Winlogbeat

  • Utiliser le programme d'installation MSI :

    1. Exécutez le programme d'installation MSI.
    2. Suivez l'assistant d'installation.
    3. Installez-le à l'emplacement par défaut : C:\Program Files\Winlogbeat.
  • Utiliser un fichier ZIP :

    1. Extrayez le fichier ZIP dans C:\Program Files\Winlogbeat.
    2. Ouvrez PowerShell en tant qu'administrateur.
    3. Accédez au répertoire Winlogbeat :

      cd 'C:\Program Files\Winlogbeat'
      
    4. Exécutez le script d'installation :

      .\install-service-winlogbeat.ps1
      

Configurer Winlogbeat pour envoyer des journaux à Logstash

  1. Ouvrez le fichier de configuration Winlogbeat :

    notepad "C:\Program Files\Winlogbeat\winlogbeat.yml"
    
  2. Configurez les journaux d'événements à collecter. Recherchez la section winlogbeat.event_logs et 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]
    
  3. Mettez en commentaire la section de sortie Elasticsearch en ajoutant # au début de chaque ligne :

    #output.elasticsearch:
    #  hosts: ["localhost:9200"]
    
  4. Décommentez et configurez la section de sortie Logstash :

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

  1. Ouvrez PowerShell en tant qu'administrateur.
  2. Démarrez le service Winlogbeat :

    Start-Service winlogbeat
    
  3. Vérifiez que le service est en cours d'exécution :

    Get-Service winlogbeat
    

    L'état doit être En cours d'exécution.

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

  1. Sur le serveur Logstash, vérifiez les journaux Logstash :

    • Linux :

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

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

  1. Sur le serveur de l'agent Bindplane, vérifiez les journaux de l'agent :

    • Linux :

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

      type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
      
  2. Recherchez les messages indiquant que l'ingestion des journaux a réussi.

Vérifier les journaux dans Google SecOps

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Recherche.
  3. Exécutez une requête de recherche pour vérifier que les journaux Winlogbeat sont ingérés :

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

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

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

      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_type est défini sur ELASTIC_WINLOGBEAT exactement 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.