Passer au contenu principal

Prise en main

Wirespeed prend en charge l’ingestion des journaux et de la télémétrie Windows grâce à une architecture gratuite et sans agent :
  1. WEF (Windows Event Forwarding) sur les terminaux dont vous souhaitez collecter les journaux
  2. WEC (Windows Event Collector) sur un seul serveur
  3. Winlogbeat : pour lire les journaux WEC (par exemple, depuis le journal ForwardedEvents) et les envoyer à Logstash
  4. Logstash : pour transférer les journaux de Winlogbeat vers Wirespeed via HTTPS
WEF (de nombreux hôtes) envoie les journaux → WEC (un seul serveur) les rassemble et les transfère → Logstash → Wirespeed Avant de configurer Logstash, suivez le guide commun Redirecteurs de journaux pour ajouter Windows Event Logs et ouvrir Détails du redirecteur. Utilisez l’écouteur HTTPS qui y est indiqué comme destination de Logstash.
Pour en savoir plus sur WEF/WEC, consultez cet article de Microsoft.

WEF (Windows Event Forwarding)

WEF est la méthode native de Microsoft (sans agent) pour collecter les journaux et la télémétrie Windows et les envoyer vers un emplacement centralisé. Il s’agit généralement de serveurs Windows sur site ou dans un cloud privé, mais cela peut aussi inclure des terminaux Windows à forte valeur. Dans cette documentation, nous appelons ces machines les systèmes sources.

WEC (Windows Event Collection)

WEC est la méthode native de Microsoft (sans agent) pour collecter de manière centralisée les journaux des systèmes sources. Dans une architecture simple, un seul serveur au sein de l’environnement sur site ou du cloud privé joue le rôle de serveur WEC. Il ne doit pas s’agir d’un contrôleur de domaine (les contrôleurs de domaine sont des systèmes sources WEF).

Winlogbeat

Winlogbeat fait partie des nombreux Beats qu’Elastic fournit pour l’expédition de données. Winlogbeat envoie les journaux d’événements Windows vers Elasticsearch ou Logstash et peut être installé en tant que service Windows.

Logstash

Logstash est un pipeline open source de traitement de données côté serveur qui peut ingérer des données provenant de multiples sources, les transformer, puis les envoyer vers un « stash ».

Configurer le redirecteur d’événements Windows

Il existe plusieurs options pour déployer WEF + WEC. Nous recommandons d’utiliser une stratégie de groupe pour que les hôtes Windows envoient (push) leur télémétrie au serveur WEC, plutôt que de la récupérer (pull). Vous pouvez utiliser la méthode pull, mais elle n’est pas décrite dans cette documentation.
  1. Ouvrez la console de gestion des stratégies de groupe
    1. Sur un contrôleur de domaine ou un poste d’administration, exécutez gpmc.msc.
  2. Créez un nouveau GPO (objet de stratégie de groupe)
    1. Cliquez avec le bouton droit sur l’OU contenant vos serveurs (par exemple, Servers OU) → Create a GPO in this domain, and Link it here.
    2. Nom : Windows Event Forwarding.
    3. Cliquez avec le bouton droit sur le GPO > Edit.
  3. Activez le service WinRM (sans la gestion à distance)
    1. Computer Configuration > Policies > Windows Settings > Security Settings > System Services.
      1. Définissez Windows Remote Management (WS-Management) sur Automatic.
      2. **[FACULTATIF] **Wirespeed vous recommande de bloquer le trafic réseau WinRM entrant sur tous les terminaux Windows où il n’est pas nécessaire, car il offre aux attaquants une voie de mouvement latéral. Cependant, le serveur WEC doit l’avoir activé ; si vous appliquez cette modification, placez donc votre serveur WEC dans une OU distincte, non concernée par ce paramètre de stratégie de groupe.
        1. Computer Configuration > Policies > Administrative Templates > Windows Components > Windows Remote Management (WinRM) > WinRM Service.
        2. Définissez sur Disabled
  4. Définissez l’adresse du serveur WEC
    1. Computer Configuration > Policies > Administrative Templates > Windows Components > Event Forwarding.
    2. Activez le paramètre et saisissez la valeur suivante dans le champ Option : Server=http://WEC-Server01.domain.local:5985/wsman/SubscriptionManager/WEC,Refresh=60
    3. Remplacez WEC-Server01.domain.local par le FQDN de votre serveur WEC. Le port 5985 est le port standard pour WinRM sur HTTP. Le port 5986 est le standard pour WinRM sur HTTPS, mais il nécessite une véritable autorité de certification TLS déployée en interne dans votre environnement Active Directory, afin que tous les terminaux puissent faire confiance aux certificats HTTPS. Sans PKI adaptée, conservez 5985 sur HTTP.
  5. Activez la journalisation et la transcription PowerShell
    1. Computer Configuration > Policies > Administrative Templates > Windows Components > Windows PowerShell
    2. Activez Turn on PowerShell Script Block Logging
      1. Cochez Log script block invocation start/stop events (4105/4106)
    3. Activez Turn on Module Logging
      1. Définissez Module Names sur *
    4. Activez Turn on PowerShell Transcription
      1. Transcription Output Directory : laissez vide (valeur par défaut : %UserProfile%\Documents\PowerShell_transcripts)
      2. Cochez Include invocation headers.
    5. Activez Turn on PowerShell Remoting Transcription (si disponible)
      1. Transcription Output Directory : laissez vide (valeur par défaut : %UserProfile%\Documents\PowerShell_transcripts)
      2. Cochez Include invocation headers.
  6. Activez la journalisation de la ligne de commande
    1. Computer Configuration > Policies > Administrative Templates > System > Audit Process Creation
    2. Activez « Include command line in process creation events »
      1. Cela renseigne le champ CommandLine de l’événement de sécurité 4688 pour toutes les créations de processus
  7. Définissez la journalisation minimale
    1. Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration > System Audit Policies > Detailed Tracking
      1. Activez Audit Process Creation
        1. Définissez sur Success (événement 4688 pour l’appel de PowerShell)
    2. Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration > System Audit Policies > Account Logon
      1. Activez Audit Kerberos Authentication Service
        1. Définissez sur Success et Failure (événements 4768, 4771)
      2. Activez Audit Kerberos Service Ticket Operations
        1. Définissez sur Success et Failure (événement 4769)
      3. Activez Audit Other Account Logon Events
        1. Définissez sur Success et Failure (événement 4776)
    3. Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration > System Audit Policies > Logon/Logoff
      1. Activez Audit Logoff
        1. Définissez sur Success (événement 4634 pour la fin de session)
      2. Activez Audit Other Logon/Logoff Events
        1. Définissez sur Success et Failure (événements 4648, 4778, 4779, 4800, 4801)
    4. Computer Configuration > Policies > Windows Settings > Security Settings > Advanced Audit Policy Configuration > System Audit Policies
      1. Audit Logon : activez Success et Failure pour couvrir les types de connexion locale, interactive et distante (par exemple, RDP, réseau).
      2. Audit Account Lockout : activez Success et Failure
      3. Audit Special Logon : activez Success (connexions privilégiées, par exemple avec des droits d’administrateur)
      4. Audit User Account Management : activez Success et Failure (création et modification d’utilisateurs)
      5. Audit Security Group Management : activez Success et Failure (création et modification de groupes)
      6. Audit Audit Policy Change : activez Success et Failure (modifications de la stratégie d’audit)
      7. Audit Security System Extension : activez Success et Failure (modifications des paramètres de journalisation)
      8. Privilege Use : [Recommandation] désactivé ou Failure uniquement (événements 4673, 4674)
      9. Process Creation : [Recommandation] Success activé (étape 6, événement 4688)
      10. File and Registry Access (Object Access) : [Recommandation] Disabled ou Failure uniquement (événements 4656, 4663)
        1. [Facultatif] Si nécessaire, activez-le de manière sélective via des SACL sur des objets précis (hors du périmètre de ce guide)
  8. Activez la journalisation du Planificateur de tâches
    1. Computer Configuration > Policies > Administrative Templates > Windows Components > Task Scheduler
    2. Activez « Turn On logging for task registration »
      1. Cela génère des événements lors de la création, de la modification et de l’exécution de tâches planifiées (événements 106, 200, 201)

Configurer le collecteur d’événements Windows

  1. Choisissez un serveur (il doit correspondre au serveur identifié et défini dans la stratégie de groupe ci-dessus), qui doit exécuter une version prise en charge de Windows Server (Server 2016 ou ultérieure).
    Si vous suivez nos recommandations ci-dessus pour désactiver le trafic WinRM entrant sur les hôtes Windows supervisés, assurez-vous que ce paramètre ne s’applique PAS au serveur WEC, sinon WEC ne fonctionnera pas.
  2. Téléchargez WEC-Setup.ps1 depuis le dépôt GitHub de Wirespeed : https://github.com/WirespeedSecurity/utils/
  3. Créez le répertoire C:/Program Files/Wirespeed et déplacez-y le script. Ouvrez un terminal PowerShell en tant qu’administrateur dans ce répertoire et exécutez le script avec ./WEC-Setup.ps1. Ce script va :
    1. Activer et configurer le service Windows Remote Management (WinRM), dont dépend WEC.
    2. Configurer le service Windows Event Collector (wecsvc) pour qu’il démarre automatiquement et le démarrer immédiatement avec wecutil qc.
    3. Ajouter le compte NT AUTHORITY\Network Service au groupe local Event Log Readers afin de garantir les autorisations nécessaires à la collecte des événements.
    4. Créer des règles de pare-feu autorisant le trafic entrant sur les ports 5985 (WinRM sur HTTP) et 5986 (WinRM sur HTTPS) pour la communication WEF.
    5. Configurer le serveur WEC pour qu’il transfère ses propres événements Windows vers lui-même (localhost) via HTTP sur le port 5985, ce qui permet de superviser le serveur WEC lui-même, en définissant la clé de registre HKLM:\SOFTWARE\Policies\Microsoft\Windows\EventLog\EventForwarding\SubscriptionManager.
    6. Créer un abonnement WEC initié par la source, nommé « Security and PowerShell Events », pour collecter les événements des journaux Security, Microsoft-Windows-PowerShell/Operational, Windows PowerShell, System et Application, en utilisant HTTP et en stockant les événements dans le journal ForwardedEvents.
  4. Pour valider la configuration :
    1. Consultez le journal ForwardedEvents dans l’Observateur d’événements (eventvwr.msc) sur le serveur WEC pour confirmer que les événements des systèmes sources (et du serveur WEC lui-même) sont bien collectés.
    2. Consultez le journal d’installation C:\Program Files\Wirespeed\collector.log pour repérer d’éventuelles erreurs ou la confirmation que les étapes de configuration ont réussi.
    3. Générez un événement de test sur un système source (par exemple, eventcreate /Id 500 /D "Test event" /T ERROR /L System) et vérifiez qu’il apparaît dans le journal ForwardedEvents du serveur WEC.
      Toutes les actions et erreurs du script sont consignées dans un fichier journal, C:\Program Files\Wirespeed\collector.log, pour toute validation ou tout débogage supplémentaire.

Configurer le transfert des journaux

Pour en savoir plus, consultez la documentation officielle de Winlogbeat et de Logstash.

Installer et configurer Winlogbeat

L’installation suit le guide d’installation de Winlogbeat officiel d’Elastic.
  1. Téléchargez et installez Winlogbeat
    1. Téléchargez le fichier zip depuis la page de téléchargement
    2. Extrayez son contenu dans C:\Program Files
    3. Renommez le répertoire winlogbeat-<version> en Winlogbeat
    4. Ouvrez une invite PowerShell en tant qu’administrateur (cliquez avec le bouton droit sur l’icône PowerShell et sélectionnez Run As Administrator)
    5. Dans l’invite PowerShell, exécutez les commandes suivantes pour installer le service
      1. cd 'C:\Program Files\Winlogbeat'
      2. .\install-service-winlogbeat.ps1
Si l’exécution de scripts est désactivée sur votre système, vous devez définir la stratégie d’exécution de la session en cours pour autoriser l’exécution du script. Par exemple : PowerShell.exe -ExecutionPolicy UnRestricted -File .\install-service-winlogbeat.ps1.
  1. Configurez Winlogbeat
    1. Dans winlogbeat.yml, remplacez le contenu existant par la configuration ci-dessous :
Il s’agit d’une configuration très basique. Nous vous recommandons d’en apprendre davantage sur les options de configuration de Winlogbeat et d’adapter la configuration ci-dessus à vos besoins. Consultez la documentation officielle d’Elastic pour connaître toutes les options de configuration disponibles.

Installer et configurer Logstash

Logstash nécessite l’une des versions suivantes :
  • Java 17
  • Java 21
  1. Téléchargez et installez Logstash
    1. Téléchargez le fichier zip depuis la page de téléchargement
    2. Extrayez son contenu dans C:\Program Files
    3. Renommez le répertoire logstash-<version> en Logstash
    4. Accédez au répertoire C:\Program Files\Logstash\config\
  2. Configurez Logstash
    1. Ouvrez Détails du redirecteur pour votre intégration Windows Event Logs et copiez le domaine HTTPS et le port de l’écouteur
    2. Modifiez logstash.conf pour récupérer les événements de Winlogbeat et les envoyer à Wirespeed :
      1. Remplacez le contenu du fichier logstash.conf existant par le contenu ci-dessous (ou créez-le s’il n’existe pas) :
      2. Remplacez <WIRESPEED_DOMAIN> et <WIRESPEED_PORT> par les valeurs indiquées dans Détails du redirecteur
    3. Modifiez logstash.yml pour que la nouvelle configuration soit utilisée par défaut
      1. Ajoutez les lignes suivantes à la fin du fichier, puis enregistrez-le et fermez-le :
        Il s’agit d’une configuration très basique. Nous vous recommandons d’en apprendre davantage sur les options de configuration de Logstash et d’adapter la configuration ci-dessus à vos besoins. Consultez la documentation officielle d’Elastic pour connaître toutes les options de configuration disponibles.
    4. Installez Logstash en tant que service
      Nous vous recommandons d’exécuter Logstash manuellement pour vérifier que la configuration est valide avant de l’exécuter en tant que service. Pour en savoir plus : Running Logstash Manually
      Recommandé : pour en savoir plus sur cette configuration : Running Logstash as a service with NSSM
      1. Téléchargez et installez NSSM
        1. https://nssm.cc/download, puis extrayez nssm.exe de nssm-<version.number>\win64\nssm.exe vers Logstash\bin\
      2. Utilisez NSSM pour créer le service Logstash
        1. Ouvrez un terminal PowerShell en tant qu’administrateur et exécutez les commandes suivantes pour installer Logstash en tant que service :
          1. cd "C:\Program Files\Logstash\bin"
          2. .\nssm.exe install logstash
        2. Lorsque la fenêtre NSSM service installer apparaît, renseignez les paramètres suivants dans l’onglet Application :
          1. Path : C:\Program Files\Logstash\bin\logstash.bat
          2. Startup Directory : C:\Program Files\Logstash\bin
        3. Cliquez sur Install Service, puis sur Ok
    5. Démarrez Logstash et WinLogbeat :
      1. Start-Service logstash
      2. Start-Service winlogbeat
      3. Vérifiez que les services sont en cours d’exécution avec
        1. Get-Service Logstash
        2. Get-Service winlogbeat
    6. Contactez un ingénieur Wirespeed via le chat intégré à la plateforme ou par e-mail à support@wirespeed.co pour vous assurer que les journaux arrivent comme prévu