ここから本文です

一瞬で消え去る怪しいウィンドウ、「Windows 10のウソクライアント(usoclient.exe)」のナゾ

@IT 7月1日(金)6時10分配信

 今回は「Windows 10版スカイフィッシュ」のお話です。Windows 10を使用中、「C:\Windows\System32\usoclient.exe」と書かれたウィンドウが一瞬表示されるのを目撃したことはありませんか。この不思議な現象は何でしょうか。また、怪しげな名前の実行ファイル「usoclient.exe」の正体は……。それでは、調査報告といきましょう。

【その他の画像】ついに謎の「usoclient.exe」の捕獲に成功!?

--

 Windows 10を使っていると、まれにタイトルバーに「C:\WINDOWS\system32\usoclient.exe」と書かれたコマンドプロンプトウィンドウが出現し、一瞬で消えることがあります。

 筆者は1年近くWindows 10を使っていますが、複数のPCで何度もこの「usoclient.exe」を目撃しています。本当に一瞬なので、鮮明に画像をキャプチャーすることはまだできていません。その昔、オカルト系の雑誌やテレビを騒がせた「スカイフィッシュ(Sky Fish)」のようです。

●管理者必携ツール、SysinternalsのAutorunsで調査開始

 Windows 10の「C:\Windows\System32」フォルダには、確かに「usoclient.exe」が存在します。しかし、ファイルのプロパティを見ても、このファイルの目的が何なのか、ヒントになるようなものはありません。プロパティで確認できるファイルの説明は「UsoClient」になっています。このファイルは、Windows 8.1以前には存在しません。

 これは日本人だけかもしれませんが、「ウソクライアント」とも読める「usoclient.exe」は、いかにも怪しく見えます。一瞬で消えるその挙動から“マルウェアの類いでは?”と疑う人もいるかもしれません。結論から言いましょう。安心してください。「usoclient.exe」は、Windows 10に含まれる“正規のシステムファイルの1つ”です。

 本連載第8回では、Windows 7以降に存在する怪しげなスクリプトファイル「C:\Windows\system32\GatherNetworkInfo.vbs」がマルウェアでないことを確認するために、「Windows Sysinternals」の「Autoruns」を利用しました。

 Windows SysinternalsのAutorunsは、Windowsの起動問題やマルウェアの疑いのあるファイルの調査、解決に役立つ便利なツールです。Windowsに存在する「自動開始ポイント」を検索し、不審なエントリーを一時的に無効にしたり、削除したり、コード署名を確認したりすることができます。最新版のAutorunsには「VirusTotal」を利用した、複数エンジンによるウイルス検査機能も搭載されています。

 Autorunsで「Options」メニューの「Hide Windows Entries」をオフに設定し、フィルター条件に「uso」を指定して検索してみると、「タスクスケジューラ」に登録されているタスクに「usoclient.exe」が設定されていることがヒットしました。

 コード署名の検証結果(x64環境では「not verified」になりますが、GUI版のAutoruns側の不具合であり、「usoclient.exe」の署名に問題があるわけではありません)も、VirusTotalのウイルス検査結果も問題ありません。また、「usoclient.exe」と“対”になっていると予想されるサービス名「UsoSvc」も見つかりました。

●謎のウィンドウはスケジュールされた「Windows Updateスキャンの開始」でした

 Autorunsによる調査結果から「usoclient.exe」は怪しいマルウェアではないこと、そして、タスクスケジューラから起動されていることが分かりました。

 タスクスケジューラで該当のタスク「\Microsoft\Windows\UpdateOrchestrator\Schedule Scan」を確認すると、説明に「このタスクは、スケジュールされたWindows Updateスキャンを実行します」とあり、コマンドライン「%systemroot%\system32\usoclient.exe StartScan」が設定されています。実行トリガーは複数構成されていますが、PCが動作中である限り、少なくとも22時間ごとに繰り返し実行されるようになっています。

 Windows 10の「設定」アプリの「更新とセキュリティ」で「Windows Update」を開いた状態で、コマンドプロンプトから「usoclient.exe StartScan」を実行してみました。すると、「usoclient.exe StartScan」は「更新プログラムのチェック」ボタンをクリックしたのと同じ挙動を示すことが分かりました(画面4)。

 また、「usoclient.exe StartScan」を実行すると、停止状態であったサービス「UsoSvc(表示名:Update Orchestrator Service)」が実行中に状態が遷移することも分かりました。

 Windows 10では、Windows Updateの機能がWindows 8.1以前から大きく変更されました。コントロールパネルにあった「Windows Update」は削除され、「設定」アプリの「更新とセキュリティ」の「Windows Update」に一本化されたのは、目に見える大きな変更の1つに過ぎません。

 Windows 8.1以前はWindows Updateのクライアントエージェントのユーティリティー「C:\Windows\System32\wuauclt.exe」(wuaucltコマンド)を使用して、Windows Updateによる更新の確認やインストールの開始を制御できました。

 例えば、「wuauclt /detectnow」コマンドや「wuauclt /updatenow」コマンドは、更新の確認や更新のインストールをバックグラウンドで開始します。また、「wuauclt /showWUAutoScan」コマンドを実行すると、コントロールパネルの「Windows Update」を開いて、更新の確認を開始します(画面5)。

 Windows 10にも「wuauclt.exe」は存在しますが、Windows 8.1以前で使えていたオプションの多くが削除されているためか、Windows 10では以前と同じようには使えないことがあります。その理由は、コントロールパネルから「Windows Update」が削除されたことが関係しているようです。

 Windows 10では「usoclient.exe」が「UsoSvc(表示名:Update Orchestrator Service)」とやりとりをして、「設定」アプリの「更新とセキュリティ」にある「Windows Update」の機能を制御するようになっているように見えます。この辺りの動作に関するマイクロソフトの公式ドキュメントが見当たらないため、あくまでも筆者の想像です。

●USOのホントの名前は何なのさ?

 さて、「usoclient.exe」や「UsoSvc」の「USO」は、何の頭文字なのでしょうか。「UsoSvc」サービスの表示名である「Update Orchestrator Service」の頭文字は近いですが、順番が違います。

 「C:\Windows」フォルダの中で「uso」で始まるファイルを検索し、ファイルの説明を確認したところ、「usoapi.dll」に答えを見つけました。「Update Session Orchestrator API」の「Update Session Orchestrator」の略がホントの「uso」でした(画面6)。

 Windows 10の新しいWindows Updateには謎がいっぱいです。これからも謎の解明に取り組みます。

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

最終更新:7月1日(金)6時10分

@IT