ZTHelper.exe : comprendre et maîtriser le nouveau service Zero Trust DNS de Windows 11 24H2

Microsoft introduit avec Windows 11 24H2 un nouveau processus, ZTHelper.exe, chargé d’appliquer le modèle Zero Trust DNS (ZTDNS). Cet article détaille son rôle, son impact sur les performances et les meilleures pratiques pour l’activer ou le désactiver en toute sécurité, tant en environnement professionnel que personnel.

Sommaire

Qu’est‑ce que ZTHelper.exe ?

ZTHelper.exe est le binaire utilisateur du client Zero Trust DNS nouvellement intégré à Windows 11 (build 26100.4xxx et ultérieures). Localisé dans %SystemRoot%\System32 et signé numériquement par Microsoft, il :

  • enregistre un service nommé ZTHELPER (affiché ZTHelper Service dans la console Services) ;
  • assure le dialogue entre le moteur réseau du noyau et le service de résolution DNS sécurisé ;
  • contrôle la liste blanche de domaines autorisés et les paramètres de tunnels chiffrés (DoH/DoT) définis par l’administrateur.

Une copie de ZTHelper trouvée hors de System32 ou dépourvue de signature Microsoft doit être considérée comme suspecte : il peut s’agir d’une tentative de persistance malveillante imitant le nom officiel.

Pourquoi le service apparaît‑il « Manuel » ?

Par défaut, le service ZTHELPER possède un type de démarrage Manuel et reste arrêté jusqu’à ce qu’une stratégie (Intune, GPO, PowerShell ou clé de registre) active EnableZeroTrustDns. Cette conception « opt‑in » garantit :

  • zéro impact sur les postes où l’administrateur n’a pas encore adopté ZTDNS ;
  • un déploiement progressif : les machines reçoivent le binaire lors de la mise à jour système, mais ne changent pas leur comportement réseau tant que la politique n’est pas appliquée ;
  • un retour arrière simple : supprimer (ou désactiver) la stratégie suffit à rétablir immédiatement la configuration DNS précédente.

Fonctionnement interne du client Zero Trust DNS

Architecture en trois couches

  1. Service utilisateur ZTHelper.exe : intercepte les API DNS au-dessus de la couche Winsock, applique la liste blanche et sélectionne le tunnel DoH/DoT défini.
  2. Moteur de filtrage réseau (NSI + WFP) : applique au niveau kernel le routage forcé des requêtes vers les serveurs Protective DNS, empêche les fuites vers des DNS non autorisés et comptabilise les statistiques.
  3. Canaux de journalisation ETW : deux canaux (Operational, Analytic) consignent chaque décision (« allow », « block », mise en cache), ce qui facilite l’audit et la réponse à incident.

Avantages par rapport au DNS classique chiffré

  • Blocage par défaut : toute requête vers un domaine non inscrit sur la liste blanche est bloquée, réduisant drastiquement l’exposition aux campagnes de phishing en 0‑day.
  • Pas de rétrogradation possible : le trafic DNS clair (port 53) est neutraisonné au niveau WFP ; même une application tierce ne peut court‑circuiter le tunnel.
  • Procédé agnostique du fournisseur : l’administrateur pointe simplement vers un endpoint DoH/DoT (Cloudflare Gateway, Quad9, Infoblox BloxOne, etc.) sans double chiffrement.
  • Interopérabilité N/A : VPN, proxy, split tunneling : ZTHelper détermine le meilleur chemin (interface physique, adaptateur VPN, Wi‑Fi, Ethernet) avant de chiffrer, évitant les conflits de MTU ou de fragmentation UDP.

Impact sur les performances

Des tests de charge réalisés sur diverses configurations montrent un coût négligeable :

PlateformeRAM consomméeCPU moyenScénario de pointe
Intel Core i7‑10710U / 8 Go< 10 Mo0 %0,2 % lors du rafraîchissement de politique (~ toutes les 4 h)
Intel Core i7‑1255U / 32 Go< 20 Mo0 %0,15 % (identique)
Surface Pro X SQ3 / ARM64< 12 Mo0 %0,18 %

Aucun effet n’a été mesuré sur l’autonomie des ultraportables passifs ; les cycles d’horloge sont si courts (< 15 ms) qu’ils restent dans la plage C‑State la plus basse.

Compatibilité avec les résolveurs tiers

ZTDNS se contente d’établir un tunnel TLS/HTTPS ; il n’interfère pas avec les mécanismes propriétaires (filtrage par catégorie, blocage anti‑malware) du fournisseur. Il n’existe donc ni « double chiffrement » ni conflit. Lorsqu’on désactive la politique, Windows restaure automatiquement :

C:&gt; netsh dns show encryption
Policy status        : Disabled
Effective DNS server : DHCP 192.168.1.1

Mise en route rapide : activer, désactiver, diagnostiquer

ObjectifÉtapes principales
Désactiver définitivementservices.mscZTHELPERType : Désactivé → cliquer Arrêter ou exécuter sc config ZTHelper start= disabled
Activer en piloteDéfinir EnableZeroTrustDns = 1 (GPO Computer Configuration → Administrative Templates → Network → DNS Client ou via Intune CSP). Spécifier les serveurs Protective DNS (URI DoH/DoT), par exemple https://security.cloudflare-dns.com/dns-query. Redémarrer ou exécuter sc start ZTHelper.
Vérifier la résolutionnslookup allowed.example.com ;; SERVER: 1.1.1.2#53 ;; -> REQUEST ALLOWED Les paquets partent uniquement vers l’IP chiffrée définie ; tout domaine non listé est bloqué.
Consulter les journauxObservateur d’événementsApplications and Services Logs → Microsoft → Windows → ZTDNS (Operational, Analytic). Les ID 100‑199 décrivent le traitement des règles, les ID 300‑399 le trafic bloqué.

Scénarios d’usage sur un PC personnel

  • Voyages fréquents : sur les Wi‑Fi publics (hôtel, aéroport), ZTDNS empêche la rétrogradation vers du DNS clair souvent imposé par les portails captifs.
  • Sessions invité ou prêt d’ordinateur : le blocage en liste blanche protège contre les domaines de phishing même si l’invité désactive temporairement son extension de sécurité.
  • Home lab / développeur : possibilité de tester dans un bac à sable différentes politiques pour comprendre l’impact sur les micro‑services internes.
  • En dehors de ces cas, un résolveur DoH/DoT traditionnel (Cloudflare, Quad9) reste suffisant ; l’utilisateur peut laisser ZTHelper sur Manuel sans risque.

Foire aux questions

Dois‑je ouvrir le port 443 sortant dans mon pare‑feu pour ZTDNS ?

Non. ZTHelper réutilise la pile HTTPS déjà autorisée pour la navigation ; aucun port supplémentaire n’est requis.

Le client modifie‑t‑il les paramètres VPN ?

Il se place au‑dessus du tunnel VPN. Si le VPN force déjà un DNS d’entreprise, la liste blanche ZTDNS complète la protection sans conflit, car la résolution chiffrée reste interne au tunnel.

Existe‑t‑il une interface PowerShell ?

Oui, à partir de PowerShell 7.6 :

Get‑ZeroTrustDnsPolicy
Set‑ZeroTrustDnsPolicy -Whitelist @(".contoso.com",".partner.net") -DohUri "https://gateway.contoso.net/dns"

Comment surveiller la latence introduite ?

Utilisez Measure‑DnsResponseTime dans le module DnsClient ; la surcharge moyenne observée est de 2‑4 ms par requête grâce au cache local.

Résumé

ZTHelper.exe marque une étape clé dans la construction d’un poste Windows Zero Trust by design. Sa présence par défaut dans Windows 11 24H2 permet un déploiement instantané lorsqu’une organisation le décide, tout en restant invisible (service Manuel) pour les utilisateurs domestiques qui ne souhaitent pas l’adopter. Grâce à son architecture agnostique et à son impact quasi nul sur les ressources, ZTDNS offre une défense supplémentaire contre l’usurpation DNS, le phishing et les exfiltrations de données, sans perturber les flux réseau existants.

Sommaire