Comprendre le suivi d'événements Windows - ETW

  • Comprendre le suivi d’événements Windows - ETW

Comprendre ETW

Filtrage d’informations inutiles, documentation complète disponible sur : https://docs.microsoft.com/en-us/windows/win32/etw/event-tracing-portal

Comprendre les bases

https://learn.microsoft.com/en-us/windows/win32/etw/about-event-tracing

Architecture

Session

Il existe quatre types de session

Type de sessionUtilisationLimitesCaractéristiques
Session de suivi d’événements(ETW Standard)1. EVENT_TRACE_PROPERTIES2. StartTrace, création de session3. EnableTrace 1. EnableTrace pour fournisseur classique 2. EnableTraceEx pour fournisseur basé sur manifest4. ControlTrace Arrêt de session- Un fournisseur basé sur manifest ne prend en charge que jusqu’à 8 sessions- Un fournisseur classique ne peut servir qu’une seule session.- Le comportement de prise de contrôle d’un fournisseur par session est “dernier arrivé, premier servi”.ETW standard.
Session SystemTraceProvider1. EVENT_TRACE_PROPERTIES->EnableFlags2. StartTrace3. ControlTrace Arrêt de session- SystemTraceProvider est un fournisseur d’événements noyau, fournissant un ensemble d’événements noyau prédéfinis.- Session NT Kernel Logger est une session système prédéfinie, enregistrant une série d’événements noyau prédéfinis.- Win7/WinServer2008R2 : seul NT Kernel Logger session peut utiliser SystemTraceProvider - Win8/WinServer2012 : SystemTraceProvider peut fournir des événements à 8 sessions logger, dont deux sont fixes : NT Kernel Logger et Circular Kernel Context Logger.- Après Win10 20348 : chaque fournisseur système peut être contrôlé séparément.Obtention d’événements noyau prédéfinis système.
Session AutoLogger1. Modification du registre 2. EnableTraceEx3. ControlTrace Arrêt de session- Session Global Logger est une session indépendante spéciale, enregistrant les événements pendant le démarrage système.- AutoLogger normal doit activer manuellement le fournisseur, GlobalLogger non.- AutoLogger ne prend pas en charge les événements NT Kernel Logger, seul GlobalLogger prend en charge.- Impact sur le temps de démarrage, utilisation modéréeEnregistrement des événements pendant le démarrage système
Session Private Logger-- ETW en mode utilisateur- Usage uniquement intra-processus- Non inclus dans la limite parallèle de 64 sessions.Privé processus

Outils

  • logman
  • wevtutil
    • Exemple de requête xpath : wevtutil qe Security /c:2 /q:"*[System[EventID=5157]]" /f:text
  • tracelog
    • Utilisation de l’outil tracelog de Visual Studio, permettant d’ajouter et de supprimer dynamiquement des fournisseurs ETW et des sessions ETW lors de l’exécution
  • mc
  • etw-providers-docs