Windows 10で増殖する“謎サービス”の正体を追え!その知識、ホントに正しい? Windowsにまつわる都市伝説(82)

Windows 10になって、Windows 8.1以前には存在しなかった「CDPUsersvc_XXXXX」のように「_XXXXX(XXXXXはランダム)」で終わるサービス名のサービスが追加されたことに気が付いた人はいるでしょうか。“マルウェアやスパイウェアが入り込んだのでは”と不安に思った人も少なくないかもしれません。でも安心してください。謎は多いものの、Windows 10の正規のコンポーネントであることは確かです。

» 2017年05月01日 05時00分 公開
[山市良テクニカルライター]
「Windowsにまつわる都市伝説」のインデックス

怪しげなサービス名と足りない説明……

 Windows 10には「_XXXXX」(XXXXXはランダムな字数の英数字)で終わるサービス名/表示名のサービスが幾つか追加され、ログオンユーザーの権限で必要時に実行されるようになりました。

 Windows 10初期リリース(便宜上のバージョン1507、以下同)では、「_Session#」(#は番号)というサービス名/表示名でした。この謎のサービス群は、Windows 10初期リリース(バージョン1507)では4つ、Windows 10 November Update(バージョン1511)では5つ、Windows 10 Anniversary Update(バージョン1607)では7つと、その数は機能更新(旧称、機能アップグレード)とともに増えてきました(画面1表1)。

画面1 画面1 Unistackサービスグループ(UnistackSvcGroup)として「svchost.exe」により制御される謎のサービス群。画面は、Windows 10 Anniversary Update(バージョン1607)の場合
サービス名 表示名 説明 実行ファイルのパス 1507 1511 1607
CDPUserSvc
_XXXXX
CDPUserSvc
_XXXXX
<説明を読み取れませんでした。エラー コード: 15100 > C:\WINDOWS\system32\svchost.exe -k UnistackSvcGroup
MessagingService
_XXXXX
MessagingService
_XXXXX
テキスト メッセージと関連する機能をサポートしているサービスです。 C:\WINDOWS\system32\svchost.exe -k UnistackSvcGroup
OneSyncSvc
_XXXXX
ホストの同期
_XXXXX
このサービスはメール、連絡先、カレンダー、および他のさまざまなユーザー データを同期します。このサービスが実行中でないときは、メールと、この機能に依存する他のアプリケーションは正しく機能しません。 C:\WINDOWS\system32\svchost.exe -k UnistackSvcGroup
PimIndexMaintenanceSvc
_XXXXX
Contact Data
_XXXXX
連絡先のインデックスを作成して、連絡先の検索を高速化します。このサービスを停止または無効にすると、連絡先が検索結果に含まれなくなる可能性があります。 C:\WINDOWS\system32\svchost.exe -k UnistackSvcGroup
UnistoreSvc
_XXXXX
User Data Storage
_XXXXX
構造化されたユーザー データのストレージを処理します。ユーザー データには、連絡先情報、予定表、メッセージなどのコンテンツが含まれます。このサービスを停止または無効にすると、このデータを使用するアプリが正しく動作しなくなる可能性があります。 C:\WINDOWS\system32\svchost.exe -k UnistackSvcGroup
UserDataSvc
_XXXXX
User Data Access
_XXXXX
構造化されたユーザー データへのアクセスをアプリに提供します。ユーザー データには、連絡先情報、予定表、メッセージなどのコンテンツが含まれます。このサービスを停止または無効にすると、このデータを使用するアプリが正しく動作しなくなる可能性があります。 C:\WINDOWS\system32\svchost.exe -k UnistackSvcGroup
WpnUserService
_XXXXX
Windows プッシュ通知ユーザー
サービス_XXXXX
このサービスは、ローカル通知とプッシュ通知をサポートする Windows 通知プラットフォームをホストします。タイル通知、トースト通知、直接通知がサポートされています。 C:\WINDOWS\system32\svchost.exe -k UnistackSvcGroup
表1 Windows 10に追加された謎のサービス。機能更新のたびに増えている

 「タスクマネージャー」(Taskmgr.exe)の「プロセス」タブでは、「サービス ホスト:Unistack サービス グループ」として表示されます。これらのサービスは「svchost.exe」(Windowsサービスのホストプロセス)によって、「UnistackSvcGroup」というサービスグループ名でホストされます。

 サービスグループの登録は、「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost」キーに「REG_MULTI_SZ」(複数行文字列)値として定義されています(画面2)。先日リリースされたWindows 10 Creators Update(バージョン1703)については、UnistackSvcGroupサービスグループに含まれる項目は変わっていませんでした。2017年初めの時点のInsider Previewビルドでは、UnistackSvcGroupのメンバーに増減はありませんでしたが、新たに「DevicesFlowUserSvc_XXXXX」という名前のサービスを含む「DevicesFlow」グループが追加されていました。

画面2 画面2 サービスグループは、レジストリの「HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost」キーに登録されている。画面は、Windows 10 Anniversary Update(バージョン1607)の場合

従来のWindowsサービスとは異なる特徴

 この謎のサービス群は、従来のWindowsサービスとは異なる幾つかの特徴を備えています。その特徴には、マルウェアやスパイウェアを想像させるものもあります。例えば、サービス名/表示名に付加されたランダムな文字列は、マルウェアが正規のWindowsサービスを装っているように見えるかもしれません。

 サービス名をインターネットで検索すると、怪しげなツールやコンポーネントのダウンロードサイトへのリンクが表示されたり、マイクロソフト自身がデータ収集のために組み込んだスパイウェア的なものであると主張する投稿が出てきたりします。

 さらに不審さを増すものとして、マイクロソフトの公式情報が1つも検索結果に引っ掛からないことがあります。このサービス群がマルウェアの類いではなく、Windowsの正規コンポーネントであることは先に指摘しておきます。

 また、マイクロソフトがデータ収集の目的で使用しているものであるという“うわさ”については、その真偽について筆者は興味ありません。Windows 10を使用しているということは、プライバシーデータを含む情報がマイクロソフトに送信されることに同意しているということです。データ収集に同意できないなら、Windows 10を使用しなければいいのです。

 この謎のサービス群の目的や用途について、マイクロソフトから公開されている情報はないため(少なくとも筆者は見つけられませんでした)、前出の表1のサービスの説明以上のことは分かりません。「ユニバーサルWindowsプラットフォーム(Universal Windows Platform:UWP)アプリ」(ストアアプリ、モダンアプリとも呼ばれます)に対して、ユーザーデータの同期、メッセージング、検索、保存、通知に関係する機能を提供しているようです。任意のUWPアプリを開始すると、必要に応じて謎のサービス群が開始状態になることを確認できます。

 謎のサービスが追加されたことに、Windows 10 Anniversary Update(バージョン1607)で初めて気が付いたという人も多いのではないでしょうか。「CDPUserSvc_XXXXX」は、Windows 10 Anniversary Updateで追加されたサービスで、説明には「<説明を読み取れませんでした。エラー コード: 15100 >」と表示されます。このことから、マルウェア作成者が説明を作成するのが面倒だったのではと勘繰る人もいそうです。

 しかし、説明が表示されない理由は、恐らくWindows 10のバグでしょう。サービスを登録しているレジストリのDescription値「@%SystemRoot%\system32\cdpusersvc.dll,-101」に対応する、多言語リソースのMUI(Multilingual User Interface)ファイルが「%SystemRoot%\system32\言語名(ja-jpなど)\cdpusersvc.dll.mui」に本来あるべきなのですが、日本語版にも英語版にもこのファイルが存在しないのです。なお、先日、リリースされたWindows 10 Creators Updateでは、サービスの表示名が「Connected Devices Platform ユーザー サービス_XXXXX」、説明が「このユーザー サービスは、Connected Devices Platform のシナリオに使用されます」となっていました。

 Windows 10 Anniversary Update(バージョン1607)で初めて気が付いた人が多いという理由は、もう1つあります。Windows 10 November Update(バージョン1511)までは、これらのサービスは「タスクマネージャー」(「プロセス」タブおよび「サービス」タブ)には表示されるものの、管理ツールの「サービス」スナップイン(Services.msc)には表示されませんでした(画面3)。

画面3 画面3 Windows 10 November Update(バージョン1511)以前のWindows 10の場合、「タスクマネージャー」で確認できるサービスが、「サービス」スナップイン(Services.msc)には表示されない

サービス開始を無効化できないという不思議

 謎のサービスは、サービスの構成設定についても、従来のサービスとは異なる特徴があります。「サービス」スナップインや「SC.EXE」コマンドを使用して、サービスのスタートアップを変更(例えば、「自動」から「無効」に変更)しようとすると、あるサービスは「パラメーターが間違っています」と表示されます。また、別のサービスは「スタートアップの種類」ドロップダウンリストがグレーアウト表示となり、変更できません(画面4)。

画面4 画面4 謎のサービスの「スタートアップの種類」は、「サービス」スナップインやSCコマンドでは変更できない

 レジストリの「HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\<サービス名>」キーの「Start」値を直接編集することで、サービスを無効化することは可能です。Windows Sysinternalsの「Autoruns(Autoruns for Windows)」ユーティリティーを使用すれば、チェックボックスをオフにするだけで、簡単かつ安全にサービスを無効化できます。

 しかし、謎のサービスを無効化することはお勧めしません。前出の表1のサービスの説明にあるように、アプリの正常な実行に影響するかもしれませんし、そもそもサービスの無効化が無意味である可能性があるからです。

 筆者は、全てのUWPアプリを終了して、現在実行中の謎のサービスを全て停止し、Autorunsを使用して謎のサービスを無効化してみました。その状態でUWPアプリを開始すると、スタートアップを無効にしたサービスが再度開始され、実行中の状態になったのです。Autorunsでは、「サービス」スナップインには表示されない、「_XXXXX」の付かない同名のサービスも含めて無効化しましたが、アプリを起動すると実行中になりました(画面5)。Windows 10では、Windowsサービスに関して、公開されていない新しい仕様が追加されているようなのです。

画面5 画面5 Autorunsを使用して謎のサービス(「_XXXXX」の付かないサービスも含めて)を無効化しても、アプリを起動すると、無効にしたサービスが開始され、実行中になった

 レジストリに登録されているサービスグループ「UnistackSvcGroup」には、「_XXXXX」の付かないサービスが定義されていました(前出の画面2)。しかし、実際に「svchost.exe」でホストされるサービスは「_XXXXX」が付きます。Windows 10 Anniversary Update(バージョン1607)では、「サービス」スナップインに表示されるのは「_XXXXX」が付くサービスで、「_XXXXX」が付かないサービスは非表示になっています。そして、「_XXXXX」が付かないサービスは、「タスクマネージャー」の「サービス」タブやSCコマンド、「NET START」コマンドを使用しても、開始することができません(前出の画面2)。

 「SC QC」コマンドを使用して「_XXXXX」の付くサービスと「_XXXXX」の付かない同名のサービスの構成設定を確認すると、「_XXXXX」の付くサービスの種類(TYPE)は「0xE0(224)」で識別される「USER_SHARE_PROCESS INSTANCE」、「_XXXXX」の付かない同名のサービスの種類は「0x60(96)」で識別される「USER_SHARE_PROCESS TEMPLATE」となっていました(画面6)。従来のサービスの種類は、0x10(16)の「WIN32_OWN_PROCESS」や0x20(32)の「WIN32_SHARE_PROCESS」などです。0xE0(224)の「USER_SHARE_PROCESS INSTANCE」と0x60(96)の「USER_SHARE_PROCESS TEMPLATE」は、どちらもWindows 8.1以前は存在しなかった種類です。

画面6 画面6 「0xE0(224)」と「0x60(96)」は、Windows 10に新たに追加されたサービスの種類

 サービスを無効にする意味がない理由は、スタートアップの無効化で制御できないだけではありません。謎のサービス群の「_XXXXX」部分は、PCを起動するごとに変化するからです。実行中のWindowsで謎のサービス群のスタートアップやその他の設定を変更したとしても、次のPC起動時には新しいサービス名を持つ、既定の設定で復活してしまうからです。

 AutorunsにはオフラインのWindowsインストールを調査する機能(「File」メニューの「Analyze Offline System」)があります。この機能を使って、Windowsインストールを含むオフラインのディスクをマウントし、サービス登録状況を見てみると、「_XXXXX」が付くサービスが存在しないことが分かります(画面7)。

画面7 画面7 AutorunsでオフラインのWindowsイメージを調査すると、「_XXXXX」の付くサービスが存在しない

 これは筆者の想像ですが、Windowsが起動する際に、「0x60(96)」の「USER_SHARE_PROCESS TEMPLATE」のサービスをテンプレートとして、「_XXXXX」が付く、「0xE0(224)」の「USER_SHARE_PROCESS INSTANCE」のサービスが作成されるのでしょう。

仕様がないのはしょうがない?

 結局、謎サービスの謎はますます深まるばかりですが、少なくとも、Windows 10のWindowsサービスに関して、Windows 8.1以前にはなかった幾つかの仕様変更(追加)が行われていることは明らかになりました。正式な公開情報がないため、謎のサービスの設定には、下手に触れない方がよいでしょう。思わぬトラブルに見舞われる可能性があります。

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Cloud and Datacenter Management(Oct 2008 - Sep 2016)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジーを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手掛ける。個人ブログは『山市良のえぬなんとかわーるど』。近著は『Windows Server 2016テクノロジ入門-完全版』(日経BP社)。

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

Server & Storage 髫ェ蛟�スコ荵斟帷ケ晢スウ郢ァ�ュ郢晢スウ郢ァ�ー

隴幢スャ隴鯉ス・隴帷」ッ菫」

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。