Riassunto:
Recentemente, le prestazioni di Windows 11 hanno continuato a essere criticate dagli utenti e anche un servizio in background chiamato "Windows Health and Optimized Experiences" ha attirato l'attenzione. In precedenza è stato affermato che il servizio monitora le informazioni su processore, temperatura e batteria e invia dati a Microsoft ogni 15 minuti. A questo proposito, il reverse engineer Xusheng Li ha analizzato il suo servizio principale whesvc e ha concluso che il servizio ha permessi di sistema piuttosto estesi, ma gli script esistenti vengono utilizzati principalmente per la diagnosi delle prestazioni e non è stato trovato alcun segno di caricamento automatico dei dati utente o monitoraggio dello schermo.

L'ingegnere Microsoft Scott Hanselman ha spiegato in precedenza che il servizio è in grado di raccogliere dati diagnostici mirati sulle prestazioni quando Windows rileva ritardi o risposte lente. Le informazioni di tracciamento pertinenti verranno prima salvate localmente e gli utenti potranno scegliere se inviarle tramite il "Centro feedback". L'analisi inversa di Xusheng Li conferma sostanzialmente questa affermazione, ma mostra anche che la sua implementazione sottostante è molto più complessa dei normali servizi diagnostici delle prestazioni.
L'analisi mostra che la dimensione del corpo del servizio whesvc non è grande e che le funzioni chiave si trovano principalmente in windiag.dll. La libreria di collegamento dinamico incorpora il linguaggio di scripting Lua 5.4.7. Microsoft fornisce anche whesvc_assets.dll con il sistema, che contiene 84 script Lua compilati, ciascuno responsabile di diversi scenari diagnostici.
Xusheng Li ha scoperto che il motore di script apriva 79 funzioni native agli script, con un'ampia gamma di funzionalità richiamabili. Questi includono la lettura e la modifica del registro di Windows, l'esecuzione di operazioni sui file, la creazione e il controllo di processi, l'esecuzione di query su WMI (Strumentazione gestione Windows), la raccolta di dati ETW (Tracciamento eventi di Windows), il controllo dei token di sicurezza, l'ottenimento di informazioni su alimentazione e temperatura, il download di file di simboli, la generazione di pacchetti compressi .cab e l'avvio di richieste HTTP.
Inoltre, questo meccanismo include un'interfaccia FFI (Common Foreign Function Interface), che consente agli script di interagire con DLL native e diversi handle di Windows. Dal solo punto di vista delle capacità, le autorizzazioni di questo motore sottostante sono infatti ben oltre quanto richiesto per la normale diagnosi delle prestazioni, il che può facilmente indurre gli utenti a preoccuparsi della privacy e del controllo del sistema.
Tuttavia, essere potenti non equivale a essere utilizzati per scopi inappropriati. I risultati del reverse engineering mostrano che la maggior parte degli script forniti da Microsoft con il sistema utilizzano queste funzionalità solo per attività diagnostiche di routine. Ad esempio, le funzioni relative al registro vengono utilizzate principalmente per salvare i propri contatori dopo il riavvio del servizio; un modulo di informazioni sul driver può modificare le impostazioni di Windows Driver Verifier, ma questa funzione deve essere attivata da variabili di ambiente specifiche e serve al processo di monitoraggio della memoria. I ricercatori ritengono che questa potrebbe essere una delle operazioni più invasive di whesvc nell'uso pratico.
Alcuni script richiamano anche gli strumenti di Microsoft. Ad esempio, uno script avvierà powercfg.exe per generare un rapporto sul sonno Sleep Study e un altro percorso chiamerà wpr.exe per unire i record di monitoraggio delle prestazioni generati da Windows Performance Recorder.
In termini di funzionalità diagnostiche pratiche, whesvc può raccogliere informazioni di traccia quando un'applicazione non risponde, monitorare il ritardo di input e visualizzare anomalie, identificare le applicazioni che si avviano lentamente e rilevare i servizi di sistema che rimangono in uno stato di attesa per lungo tempo. Il suo modulo di alimentazione può essere utilizzato per risolvere i problemi relativi al consumo energetico anomalo, analizzare i fattori che impediscono al computer di entrare in modalità di sospensione e rispondere ai problemi persistenti di consumo energetico.
Prendiamo come esempio il modulo memory_handle_leak, utilizzato appositamente per risolvere i problemi relativi alle perdite di memoria. Tiene traccia dei conteggi della memoria e della gestione su più intervalli di tempo e combina la crescita sequenziale con pendenze di regressione lineare per cercare di distinguere potenziali perdite di memoria dalla normale crescita delle risorse.
In questa analisi è stata chiarita anche la controversa affermazione di "caricare i dati ogni 15 minuti". Il modulo system_summary genera un riepilogo del sistema JSON di 900 secondi o 15 minuti, ma questi dati vengono salvati localmente per impostazione predefinita. Nonostante le capacità di comunicazione di rete del servizio, i ricercatori non hanno trovato scenari di script che avrebbero effettuato richieste HTTP casuali; tra tutti gli 84 script, l'unico URL identificato puntava al server dei simboli pubblici di Microsoft, una funzionalità che secondo quanto riferito è disabilitata nelle normali installazioni Windows al dettaglio.
Pertanto, Xusheng Li ha affermato di aver cercato specificamente possibili comportamenti sospetti, ma non ha trovato prove che il servizio registrasse segretamente lo schermo, né ha scoperto che i dati di tracciamento diagnostico sarebbero stati caricati automaticamente su Microsoft senza l'intervento dell'utente. L'affermazione diffusa in Internet secondo cui "Windows 11 utilizza questo servizio per monitorare segretamente gli utenti" è priva di un corrispondente fondamento tecnico.
Nel complesso, ciò che Microsoft ha creato per Windows 11 è un motore diagnostico di sistema universale che funziona con autorizzazioni SYSTEM e può gestire attività come il registro, i file, i processi e l'esecuzione di codice nativo. Le sue capacità sottostanti sono ovviamente più potenti di quelle richieste per la risoluzione dei problemi relativi alle prestazioni, ma gli script attualmente forniti con il sistema sono ancora limitati all'ambito della diagnosi delle prestazioni. In altre parole, la progettazione dei permessi di whesvc potrebbe meritare un’attenzione continua, ma l’analisi esistente non supporta la sua caratterizzazione diretta come “spyware”.
Commenti