要約:
最近、Windows 11 のパフォーマンスに対するユーザーからの批判が続いており、「Windows Health and Optimized Experiences」と呼ばれるバックグラウンド サービスも注目を集めています。このサービスはプロセッサー、温度、バッテリーの情報を監視し、15分ごとにデータをMicrosoftに送信すると以前から主張されていた。この点に関して、リバース エンジニアの Xusheng Li 氏は、同社のコア サービス whesvc を分析し、このサービスには非常に広範なシステム権限があるが、既存のスクリプトは主にパフォーマンス診断に使用されており、ユーザー データの自動アップロードや画面監視の兆候は見つからなかったと結論付けました。

Microsoft エンジニアの Scott Hanselman 氏は以前、このサービスは、Windows が動作の遅れや応答の遅さを検出したときに、対象となるパフォーマンス診断データを収集するように位置づけられていると説明しました。関連する追跡情報はまずローカルに保存され、ユーザーは「フィードバック センター」を通じて送信するかどうかを選択できます。 Xusheng Li の逆分析は、基本的にこのステートメントを裏付けていますが、その基礎となる実装が通常のパフォーマンス診断サービスよりもはるかに複雑であることも示しています。
分析の結果、whesvc サービス本体のサイズは大きくなく、主要な機能は主に windiag.dll に配置されていることがわかりました。ダイナミック リンク ライブラリには、Lua 5.4.7 スクリプト言語が組み込まれています。 Microsoft はシステムとともに whesvc_assets.dll も提供しています。これには 84 個のコンパイル済み Lua スクリプトが含まれており、それぞれがさまざまな診断シナリオを担当します。
Xusheng Li 氏は、スクリプト エンジンが広範囲の呼び出し可能な機能を備えた 79 のネイティブ関数をスクリプトに公開していることを発見しました。これには、Windows レジストリの読み取りと変更、ファイル操作の実行、プロセスの作成と制御、WMI (Windows Management Instrumentation) のクエリ、ETW (Windows Event Tracing) データの収集、セキュリティ トークンのチェック、電力と温度の情報の取得、シンボル ファイルのダウンロード、.cab 圧縮パッケージの生成、HTTP 要求の開始などが含まれます。
さらに、このメカニズムには共通外部関数インターフェイス (FFI) が含まれており、スクリプトがネイティブ DLL およびさまざまな Windows ハンドルと対話できるようになります。機能の観点だけで見ると、この基盤となるエンジンの権限は通常のパフォーマンス診断に必要な権限をはるかに超えており、ユーザーはプライバシーやシステム制御について心配する可能性があります。
ただし、強力だからといって、不適切な目的に使用されるわけではありません。リバース エンジニアリングの結果、Microsoft がシステムとともに提供するスクリプトのほとんどは、これらの機能を日常的な診断タスクにのみ使用していることが示されています。たとえば、レジストリ関連の関数は主に、サービスの再起動後に独自のカウンターを保存するために使用されます。ドライバー情報モジュールは Windows Driver Verifier の設定を変更できますが、この機能は特定の環境変数によってトリガーされ、メモリ監視プロセスを実行する必要があります。研究者らは、これが実際に使用されている whesvc の最も侵襲的な操作の 1 つである可能性があると考えています。
一部のスクリプトは Microsoft 独自のツールも呼び出します。たとえば、あるスクリプトは powercfg.exe を起動して Sleep Study 睡眠レポートを生成し、別のパスは wpr.exe を呼び出して、Windows パフォーマンス レコーダーによって生成されたパフォーマンス追跡レコードをマージします。
実用的な診断機能の点では、whesvc は、アプリケーションが応答しなくなったときにトレース情報を収集し、入力ラグと表示の異常を監視し、起動が遅いアプリケーションを特定し、長時間待機状態にあるシステム サービスを検出できます。その電源モジュールは、異常な電力消費のトラブルシューティング、コンピューターのスリープ状態を妨げる要因の分析、持続的な電力消費の問題への対応に使用できます。
メモリ リークのトラブルシューティングに特に使用される、memory_handle_leak モジュールを例に挙げます。複数の時間間隔にわたってメモリとハンドルの数を追跡し、逐次的な増加と線形回帰勾配を組み合わせて、潜在的なメモリ リークと通常のリソースの増加を区別しようとします。
物議を醸した「15 分ごとにデータをアップロードする」という記述も、この分析で明らかになりました。 system_summary モジュールは 900 秒、つまり 15 分の JSON システム概要を生成しますが、このデータはデフォルトでローカルに保存されます。このサービスのネットワーク通信機能にもかかわらず、研究者はランダムな HTTP リクエストを行うスクリプト シナリオを発見できませんでした。 84 個のスクリプトすべての中で、唯一特定された URL は Microsoft のパブリック シンボル サーバーを指していました。この機能は、通常の Windows インストールでは無効になっていると報告されています。
したがって、Xusheng Li 氏は、不審な動作の可能性を特に調べたが、サービスが秘密裏に画面を記録するという証拠は見つからなかったし、ユーザーの操作なしに診断追跡データが自動的に Microsoft にアップロードされることも見つからなかったと述べました。インターネット上で広まった「Windows 11 はこのサービスを利用してユーザーを秘密裏に監視している」という記述には、対応する技術的根拠がありません。
全体として、Microsoft が Windows 11 用に構築したものは、SYSTEM 権限で実行され、レジストリ、ファイル、プロセス、ネイティブ コードの実行などのタスクを処理できるユニバーサル システム診断エンジンです。その基礎となる機能は、パフォーマンスのトラブルシューティング自体に必要な機能よりも明らかに強力ですが、現在システムに提供されているスクリプトは依然としてパフォーマンス診断の範囲に限定されています。言い換えれば、whesvc の権限設計は引き続き注目に値するかもしれませんが、既存の分析では、それが「スパイウェア」であるという直接的な特徴付けはサポートされていません。
コメント