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.
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
- 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.
- 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.
- 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 :
Plateforme | RAM consommée | CPU moyen | Scénario de pointe |
---|---|---|---|
Intel Core i7‑10710U / 8 Go | < 10 Mo | 0 % | 0,2 % lors du rafraîchissement de politique (~ toutes les 4 h) |
Intel Core i7‑1255U / 32 Go | < 20 Mo | 0 % | 0,15 % (identique) |
Surface Pro X SQ3 / ARM64 | < 12 Mo | 0 % | 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:> 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éfinitivement | services.msc → ZTHELPER → Type : Désactivé → cliquer Arrêter ou exécuter sc config ZTHelper start= disabled |
Activer en pilote | Dé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ésolution | nslookup 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 journaux | Observateur d’événements → Applications 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.