Résumé :
Récemment, les performances de Windows 11 ont continué à être critiquées par les utilisateurs, et un service en arrière-plan appelé « Windows Health and Optimized Experiences » a également attiré l'attention. Il a déjà été affirmé que le service surveillait les informations sur le processeur, la température et la batterie et envoyait des données à Microsoft toutes les 15 minutes. À cet égard, l'ingénieur inverse Xusheng Li a analysé son service principal whesvc et a conclu que le service dispose d'autorisations système assez étendues, mais que les scripts existants sont principalement utilisés pour le diagnostic des performances, et aucun signe de téléchargement automatique des données utilisateur ou de surveillance d'écran n'a été trouvé.

L'ingénieur Microsoft Scott Hanselman a précédemment expliqué que le service est positionné pour collecter des données de diagnostic de performances ciblées lorsque Windows détecte un retard d'exécution ou une réponse lente. Les informations de suivi pertinentes seront d'abord enregistrées localement et les utilisateurs pourront choisir de les soumettre via le « Centre de commentaires ». L'analyse inverse de Xusheng Li confirme fondamentalement cette affirmation, mais montre également que sa mise en œuvre sous-jacente est bien plus complexe que les services de diagnostic de performances ordinaires.
L'analyse montre que la taille du corps du service whesvc n'est pas grande et que les fonctions clés sont principalement situées dans windiag.dll. La bibliothèque de liens dynamiques intègre le langage de script Lua 5.4.7. Microsoft fournit également whesvc_assets.dll avec le système, qui contient 84 scripts Lua compilés, chacun responsable de différents scénarios de diagnostic.
Xusheng Li a découvert que le moteur de script ouvrait 79 fonctions natives aux scripts, avec un large éventail de fonctionnalités appelables. Celles-ci incluent la lecture et la modification du registre Windows, l'exécution d'opérations sur les fichiers, la création et le contrôle de processus, l'interrogation de WMI (Windows Management Instrumentation), la collecte de données ETW (Windows Event Tracing), la vérification des jetons de sécurité, l'obtention d'informations sur l'alimentation et la température, le téléchargement de fichiers de symboles, la génération de packages compressés .cab et le lancement de requêtes HTTP.
De plus, ce mécanisme inclut une interface de fonction étrangère commune (FFI), qui permet aux scripts d'interagir avec les DLL natives et différents handles Windows. Du seul point de vue des capacités, les autorisations de ce moteur sous-jacent vont en effet bien au-delà de ce qui est requis pour un diagnostic de performances ordinaire, ce qui peut facilement amener les utilisateurs à s'inquiéter de la confidentialité et du contrôle du système.
Cependant, être puissant ne signifie pas être utilisé à des fins inappropriées. Les résultats de l'ingénierie inverse montrent que la plupart des scripts fournis par Microsoft avec le système n'utilisent ces fonctionnalités que pour des tâches de diagnostic de routine. Par exemple, les fonctions liées au registre sont principalement utilisées pour sauvegarder ses propres compteurs après le redémarrage du service ; un module d'informations sur le pilote peut modifier les paramètres de Windows Driver Verifier, mais cette fonction doit être déclenchée par des variables d'environnement spécifiques et sert au processus de surveillance de la mémoire. Les chercheurs pensent qu’il s’agit peut-être de l’une des opérations les plus invasives en pratique.
Certains scripts font également appel aux propres outils de Microsoft. Par exemple, un script démarrera powercfg.exe pour générer un rapport de sommeil Sleep Study, et un autre chemin appellera wpr.exe pour fusionner les enregistrements de suivi des performances générés par Windows Performance Recorder.
En termes de capacités de diagnostic pratiques, whesvc peut collecter des informations de trace lorsqu'une application ne répond plus, surveiller le décalage d'entrée et afficher les anomalies, identifier les applications qui démarrent lentement et détecter les services système qui restent en attente pendant une longue période. Son module d'alimentation peut être utilisé pour dépanner une consommation d'énergie anormale, analyser les facteurs qui empêchent l'ordinateur de se mettre en veille et répondre aux problèmes persistants de consommation d'énergie.
Prenons comme exemple le module memory_handle_leak, qui est spécialement utilisé pour dépanner les fuites de mémoire. Il suit le nombre de mémoires et de poignées sur plusieurs intervalles de temps et combine une croissance séquentielle avec des pentes de régression linéaire pour tenter de distinguer les fuites de mémoire potentielles de la croissance normale des ressources.
La déclaration controversée selon laquelle « télécharger des données toutes les 15 minutes » a également été clarifiée dans cette analyse. Le module system_summary génère un résumé système JSON de 900 secondes, soit 15 minutes, mais ces données sont enregistrées localement par défaut. Malgré les capacités de communication réseau du service, les chercheurs n'ont trouvé aucun scénario de script permettant d'effectuer des requêtes HTTP aléatoires ; parmi les 84 scripts, la seule URL identifiée pointait vers le serveur de symboles public de Microsoft, une fonctionnalité qui serait désactivée dans les installations Windows commerciales classiques.
Par conséquent, Xusheng Li a déclaré qu'il avait spécifiquement recherché d'éventuels comportements suspects, mais n'avait trouvé aucune preuve que le service enregistrerait secrètement l'écran, ni que les données de suivi de diagnostic seraient automatiquement téléchargées vers Microsoft sans action de l'utilisateur. L'affirmation répandue sur Internet selon laquelle « Windows 11 utilise ce service pour surveiller secrètement les utilisateurs » ne repose pas sur une base technique correspondante.
Dans l'ensemble, ce que Microsoft a créé pour Windows 11 est un moteur de diagnostic système universel qui s'exécute avec les autorisations SYSTEM et peut gérer des tâches telles que le registre, les fichiers, les processus et l'exécution de code natif. Ses capacités sous-jacentes sont évidemment plus puissantes que celles requises pour le dépannage des performances lui-même, mais les scripts actuellement fournis avec le système sont encore limités à la portée du diagnostic des performances. En d’autres termes, la conception des autorisations de whesvc mérite peut-être une attention continue, mais les analyses existantes ne soutiennent pas sa qualification directe de « logiciel espion ».
Commentaires